vineri, 12 martie 2010

AVRSH - un shell pentru Arduino / AVR

De ceva timp ma tenta sa incerc AVRSH, un "shell" gen UNIX pentru AVR-uri. Asa ca in loc de "Hello, world!"-ul microcontrolerelor (pornit-oprit un LED) m-am decis sa fac acest lucru "in timp real" :)

Am descarcat de pe site-ul Open Content-based AVR Battle Droid (care promite sa devina foarte interesant) AVR Shell si AVR Terminal.

AVR Shell se dezarhiveaza, se deschide proiectul cu Programmers Notepad din WinAVR, se compileaza si se trimite mai apoi pe Arduino. Aici a intervenit singura problema... eliminata simplu printr-un fisier de comenzi plasat in acelasi folder unde se gaseste si fisierul "avrsh.hex".

Continutul fisierului de comenzi:
D:\arduino-0018\hardware/tools/avr/bin/avrdude -CD:\arduino-0018\hardware/tools/avr/etc/avrdude.conf -patmega328p -cstk500v1 -P\\.\COM20 -b57600 -D -Uflash:w:avrsh.hex:i
Observatii:
  • softul pentru Arduino se afla la mine pe discul D: (daca s-ar afla pe C, in comanda de mai sus se inlocuiesc cele doua aparitii ale lui D:\ cu C:\)
  • portul folosit la mine este COM20 (se modifica in comanda de mai sus cu portul pe care il utilizati la Arduino IDE)
  • comanda ocupa in fisier o singura linie, aici este afisata pe mai multe
Dupa rularea cu succes a fisierului de comenzi se poate deschide AVR Terminal. Se alege Baud rate 57600 si portul COM de mai sus, apoi se apasa "Connect to AVR" si gata!

Suntem "logati" la AVR ca root, dupa cum se observa si din imagine...

Si acum, marea realizare: aprindem si stingem LED-ul de pe placa, conectat la PB5

Tastam comenzile (evident, fara ghilimele):

"set pin PB5 output"
Raspunsul trebuie sa fie: "Set PB5 for output"

"set pin PB5 high"
Raspunsul trebuie sa fie: "Set PB5 for high"

LED-ul este acum aprins... ne verificam acuitatea vizuala :D
"read pin PB5"
Daca totul a mers OK raspunsul este "Pin: PB5 is HIGH"

Acum putem sa-l stingem...
"set pin PB5 low"
Raspunsul trebuie sa fie: "Set PB5 for low"

In documentatia de la instructables gasim si alte comenzi, care de care mai interesante... inclusiv cum sa punem parola pentru root, in situatia putin probabila ca am avea nevoie sa nu se logheze la microcontroler persoane neautorizate :D

Niciun comentariu:

Trimiteți un comentariu