Sari la conținut
ELFORUM - Forumul electronistilor

Boboc si la Atmega


kovari_andrei

Postări Recomandate

Acum am priceput...Atmega32 poate fi programat direct din calculator fara a mai avea nevoie de un programator....

Atentie, este vorba de Atmega32U4, nu Atmega32. Sunt cipuri diferite!Atmega32U4 poate fi programat direct prin USB. Pentru restul, scapi de programator "dedicat" doar cu ajutorul unui bootloader (care tot cu un programator "dedicat" se programeaza).

Si inca ceva: toate programatoarele din clasa Atmel/Atmega se pot programa cu acelasi set de librarii(avr/io.h, avr/interrupt.h etc)?

Alea nu sunt biblioteci (librarie e o denumire complet aiurea), sunt doar niste headere pentru niste biblioteci si nu inteleg ce legutura au cu programatoarele.
Link spre comentariu
  • Răspunsuri 22
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • kovari_andrei

    9

  • simplex

    6

  • vasile eugen

    4

  • godFather89

    2

Top autori în acest subiect

Imagini postate

Scuze, :jytuiyu Am vrut sa spun ucontrollere in loc de programatoare...Adica ma refeream la faptul ca sunt o gramada de softuri de programare in C++ si pentru toate ucontrollerele Atmega sunt valabile aceste biblioteci?Atunci, referitor la Atmega32u4, o sa aman un pic. Am gasit numai Atmega32 Oricum programul ar fi acelasi, singurul avantaj fiind eliminarea programatorului din tot procesu'.. :da .Pana atunci ma mai documentez...Daca e cineva mai experimentat in motoare servo si imi poate explica....mai ales cei care construiesc roboti sumo icon_jook

Link spre comentariu

Scuze, :jytuiyu Am vrut sa spun ucontrollere in loc de programatoare...Adica ma refeream la faptul ca sunt o gramada de softuri de programare in C++ si pentru toate controllerele Atmega sunt valabile aceste biblioteci?

Din toate acele compilatoare (softuri de programare?) de C/C++, doar o mana stiu sa genereze cod pentru Atmega-uri. Din acea mana de compilatoare, headere-le acelea exista doar in AVR-GCC.Cat despre C++, desi este suportat intr-o oarecare masure de AVR-GCC (din cate am citit, NU este tot standardul C++ suportat, doar cateva chestii mai generale), nu iti recomand sa il folosesti (din cauza lipsei de resurse pe atmega-uri, in special memorie RAM) si nici nu cred ca il folosesti (pentru ca nu cred ca stii care este diferenta dintre C si C++). Cred ca programezi in C doar ca nu iti dai seama.Am observat ca e o moda prin licee in ziua de azi sa se predea "C++", unde se invata despre "functiile" cin si cout. Cat despre POO...
Link spre comentariu

A) Ca sa faci programe pentru procesoarele AVR Atmega or tiny ai nevoie de doua lucruri:

 

1) mediul de dezvoltare AVRStudio pentru programe in limbaj de asamblare

2) un compilator (AVR-GCC), ceva care se numeste WinAVR, cu ajutorul caruia scrii programe in C, mult mai usor de conceput decit in asamblare.

 

Atit (1) cit si (2) sunt free:

 

Pentru detalii vezi:

http://winavr.scienceprog.com/winavr-to ... nment.html

sau cauta pe internet cu stringurile cheie: "AVRStudio", "AVR-GCC". "WinAVR".

 

B) Odata ce ai instalat cele doua softuri ai posibilitatea sa alegi din librariile lui AVRStudio un model virtual de Atmega sau tiny, orice fel de uC AVR pe 8 biti. Ii vezi registrii, semnalele de iesire, intrare, tot. Poti scrie programe pentru aceste Atmega virtuale ca sa te obisnuiesti cu ele. Codul pe care il realizezi (pe simulator) merge apoi si pe AVR-urile reale.

 

C) Servourile se comanda cu pinii PWM (Pulse Width Modulation) ai AVR-urilor. Microcontrolerul, prin program, modifica factorul de umplere al semnalului dreptunghiular generat de pinii PWM (fiecare servo are nevoie de 1 singur pin PWM) si in functie de cit este acest factor servoul se misca la dreapta sau la stinga cu un unghi proportional cu factorul de umplere.

Vezi poza de la sfirsitul articolului de aici:

http://www.seattlerobotics.org/guide/servos.html

Link spre comentariu

Ai aici:

16 channel serial servo controller for robotic applications using an Atmel AVR microcontroller

(vezi: http://www.seattlerobotics.org/encoder/ ... csscnt.htm )

o pagina care contine softul de comanda in limbaj de asamblare, pentru procesoare din familia Atmel AVR pe 8 biti, corespunzator unui montaj care actioneaza 16 servomecanisme.

 

Trebuie sa adaptezi programul respectiv la 1 servo, pentru inceput, sa-l rulezi pe simulator (AVRStudio) si sa vezi ca intr-adevar genereaza semnalele cu factorul de umplere corespunzator unei anumite pozitii a bratului servomecanismului.

 

Asta este primul pas pe care trebuie sa-l faci. Abia dupa ce pui programul la punct si te obisnuiesti cu modul de functionare / programare al uC-urilor Atmel AVR, abia atunci te gindesti si la o implementare fizica.

Link spre comentariu
Vizitator andrianu

Uite cum am inceput eu, am cumparat un mega8, si am avut noroc sa am un PC cu lpt port... (cred ca stii de magicile 5 cabluri). Apoi mi-am facut un programator prin USB (e simplu de tot, daca poti face un led sa clipeasca, faci si acest programator).

 

Ceea ce-ti recomand tie, e sa instalezi isis proteus, care are si servo in el, si com virtual, si tot ce ti-ai putea imagina. Faci proiectul acolo, si daca nu vrei s-o lasi balta (la sigur o sa vrei... treb vointa :d ), duci si cumperi restul componentelor necesare (astfel faci totul cu 0 lei , + economisesti timpul necesar gasirii componentelor).

daca ai idee de c, urmareste aceste exemple http://metku.net/index.html?path=articl ... index_eng5 (este si partea 1 la el pe site)

Link spre comentariu

Proteus este un program mamut de proiectare a circuitelor electronice, in general. Pe linga cablaje imprimate pe care le genereaza pronind de la schema electrica a unui montaj, Proteus este capabil sa simuleze functionarea aproape a oricarei componente electronice, de la cea mai amarita rezistenta, condensator, amplificator operational, poarta logica pina la microcontrolere ca Atmel AVR.

De ex., legi, pe schema electrica din Proteus, microcontrolerul cu niste leduri, un servo, switchuri (toate virtuale) si vezi cum ti se aprind becurile si se misca bratul servomecanismului in functie de ce comutatoare inchizi sau deschizi. De asemenea, vizualizezi forme de semnal in orice punct al montajului cu ajutorul unor sonde de osciloscop virtuale. Proteus este ceva exceptional pentru un electronist, un instrument care iti permite sa proiectezi montaje intregi doar la modul virtual, fara sa faci nici o lipitura si fara sa ai piesele fizice.

 

Totusi, Proteus nu este asa usor de stapinit la nivel de elev la liceu. Trebuie muncit mult pina devii productiv cu el si in plus pina ce nu te pui la punct cu AVRStudio, pina nu inveti cit de cit programarea unui AVR, Proteus in sine nu iti este de prea mare ajutor deoarece mai intii de a-l utiliza trebuie sa ai o idee buna despre cum functioneaza componentele electronice luate separat.

Nu te apuci de Proteus direct luind un uC din bibliotecile sale si punindu-l in mijlocul unei scheme. Mai intii incepi cu lucruri simple cum ar fi un circuit cu o baterie un comutator o rezistenta plus un bec (circuit a carui functionare o stii de la scoala) si abia dupa ce ai inteles cum se programeaza un uC AVR cu AVRStudio (asa cum ai inteles functionarea unei rezistente, legea lui Ohm) poti trece la integrarea microcontrolerului intr-o schema cu leduri si servomecanisme (toate virtuale).

 

Proteus este exceptional insa, sarind direct la el, fara a stapini cit de cit programarea unui uC, este o metoda neproductiva care mai mult te va descuraja deoarece ti se va parea ca este prea mult de invatat, de stapinit.

 

Daca esti pasionat de electronica si vrei sa folosesti Proteus pentru o multime de alte montaje atunci invatarea sa se justifica. Doar ca sa comanzi citeva servouri cu un uC AVR, nu stiu daca renteaza sa te complici cu el.

Link spre comentariu
  • 2 săptămâni mai târziu...

Asadar, schimbari de plan... :sparge: S-a ivit un concurs in 2 decembrie la Botosani... :da Si m-am hotarat sa realizez un robot care urmareste line sau iese dintr-un labirint pe baza unui atmega8... icon_jook Robotul va fi pus in miscare de doua motoare puternice pe care voi incerca sa adaptez oarecum un sistem de stabilizator(astel incat daca voi scoate de la atmega8 5 volti motorul sa se invarta/opreasca)...Senzorii vor fi compusi dintr-un LED si un fotorezistor. Pt versiunea urmartoare de linie voi avea nevoie de doar doi astfel de senzori, iar daca pe viitor il voi adapta pentru a iesi dintr-un labirint cu peretii de oglinda sau luciosi voi avea nevoie de 4 astfel de senzori... :freaza: Asadar toata problema ar fi probramarea lui atmega astfel incat sa comande cele doua motoare pe baza informatiilor primte de la senzori...Daca cineva are un pic de experienta in acest domeniu il rog sa ma ajute cu niste sfaturi... Pana deseara o sa revin cu ceva poze ale scheetului robotului...si cu alte detalii.... :dans:

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări