Documente Academic
Documente Profesional
Documente Cultură
Seciuni lucrare:
Placa de dezvoltare Arduino Uno
Arhitectura plcii Arduino Uno
Microcontrolerul ATmega328
IDE Arduino
Primul exemplu de program
Referine online
Familia de plci de dezvoltare Arduino [1] a fost lansat n 2005 fiind un proiect derivat din
proiectul open-source Wiring Platform [2] framework open source pentru plci de dezvoltare
bazate pe diverse circuite de tip microcontroler. Iniiatorii proiectului, Massimo Banzi i David
Cuartielles, au denumit proiectul dup un caracter istoric al oraului Ivrea (Italia) n care a fost
iniiat proiectul Arduin of Ivrea. Arduino este un substantiv propriu in limba italian care se
poate traduce prin bun prieten. Familia Arduino include mai multe versiuni de plci de
dezvoltare cu funcionaliti i scopuri diverse: Arduino ADK bazat pe un circuit ATmega2560
proiectat pentru interfaarea cu dispozitivele care ruleaz sistemul de operare Android;
Arduino Leonardo bazat pe un circuit ATmega32u4 foarte asemntoare cu placa Arduino Uno
pe care este foarte probabil s o nlocuiasc n viitor; LilyPad Arduino bazat pe circuitul
ATmega168V sau ATmega328V proiectat pentru a putea fi inclus n materiale textile .a.m.d.
Pn n anul 2011 se estimeaz ca au fost produse mai mult de 300.000 de plci Arduino.
Microcontrolerul ATmega328
Circuitul ATmega328 este un microcontroler pe 8 bii din familia Atmel AVR avnd o arhitectur
RISC i atingnd performane de 1 MIPS per MHz. Ruleaz la frecvene de pn la 20MHz i
deine un numr de instruciuni de 131 i 32 de registre de uz general pe 8 bii. Ca memorie
intern conine 32KB memorie program de tip flash (10,000 de cicluri tergere / scriere), 1KB
memorie utilizator de tip EEPROM (100,000 de cicluri tergere / scriere) i 2KB memorie de date
de tip SRAM.
Din cei 28 de pini ai circuitul 23 sunt ocupai de cele trei porturi I/O: portul B (8 pini), portul C (7
pini) i portul D (8 pini). Toate cele trei porturi sunt formate din linii I/O bidirecionale
configurabile individual care dein i funcionaliti suplimentare. De exemplu, pinii PB6-PB7
pot fi utilizai n conjuncie cu o surs de oscilaie extern. PC6 poate fi transformat n pin de
RESET dac se seteaz intern sigurana fuzibil RSTDISBL.
IDE Arduino
Arduino este un concept care implic att partea hardware ct i partea software. Pentru a
putea lucra cu plcile din aceasta familie trebuie neles att modul de funcionare a
componentelor hardware dar i modul de programare asociat.
Mediul de programare open-source IDE
Arduino este derivat din proiectul
software Processing [4] o colecie de
instrumente open-source ce permit
scrierea de programe orientate spre
grafic pentru sistemele de tip PC.
Placa de dezvoltare Arduino Uno a fost
botezat dup versiunea 1.0 a mediului
de programare IDE Arduino lansat n anul
2010 (cu puin timp naintea plcii
Arduino Uno).
IDE Arduino este disponibil pentru cele mai importante sisteme de operare actuale (Windows,
Mac OS X, Linux). Att versiunea compilat ct i sursele sunt disponibile gratuit pe site-ul
proiectului Arduino [5]. Pe lng copierea aplicaiei software IDE Arduino este necesar
instalarea driverului de comunicaie USB pentru a putea ncrca programele scrise pe placa
Arduino Uno.
Interfaa mediului IDE Arduino este extrem de simpl fiind
mprit n patru zone (de sus n jos): zona de meniuri, zona
de pictograme pentru comenzi rapide, zona de editare a
programului i zona de mesaje a procesului de compilare i
transfer.
Cele cinci meniuri ale interfeei permit:
File operaii de baz cu fiierele ce conin codul
surs de lucru (Save, New, Open, Print) dar i
personalizarea interfeei de lucru (Preferences).
Edit operaii de baz cu diverse zone de text (Copy,
Cut, Paste, Comment / Uncomment, Find).
Zona de comenzi rapide permite urmtoarele operaii (de la stnga la dreapta): compilare,
ncrcare binar pe placa de dezvoltare, program nou, deschidere i salvare cod surs.
Zona de editare a programului permite utilizatorului editarea propriu-zis a codului surs.
Mediul IDE este syntax-highlighting coloreaz cuvintele cheie rezervate i instruciunile
limbajului de programare dar nu include instrumente de auto complete sau debugging (rulare
pas cu pas, trace de variabile, breakpoints etc.).
Zona de mesaje a interfeei permite
vizualizarea de mesaje de eroare la compilare
sau la procesul de ncrcare a codului binar n
memoria microcontrolerului de pe placa de
dezvoltare. Gradul de raportare a acestor
mesaje poate fi modificat din meniul File /
Preferences opiunea Show verbose output
during. n cadrul aceluiai meniu se pot
modifica i ali parametrii de funcionare a
IDE-ului Arduino: efectuarea de verificare a
codului
binar
scris
n
memoria
microcontrolerului, utilizarea unui editor
extern pentru codul surs, asocierea extensiei
fiierelor cod surs cu aplicaia IDE Arduino,
modificarea limbii meniurilor aplicaiei,
modificarea dimensiunii fonturilor pentru zona
de editare cod surs .a.m.d.
Avnd n vedere faptul c plcile de dezvoltare Arduino sunt echipate cu microcontrolere din
familia Atmel AVR mediul de dezvoltare IDE Arduino nu este singurul instrument de dezvoltare
care poate fi utilizat pentru a scrie programe. WinAVR i Atmel Studio (AVR Studio) sunt alte
dou produse foarte performante pentru scrierea de programe n C/C++ i limbaj de asamblare .
Funcia setup a programului seteaz pinul 13 a plcii Arduino Uno ca fiind pin de ieire cu
ajutorul funciei pinMode(pin, mode). Acest lucru este necesar deoarece pinii
microcontrolerelor ATmega conin cte o rezisten de pullup configurabil software care
implicit este conectat la +5V pinii sunt implicit configurai ca intrri.
void setup() {
pinMode(led, OUTPUT);
}
Funcia loop a programului aprinde i stinge ledul conectat pe pinul 13 al plcii n mod
succesiv la intervale de 1 secund (1000 milisecunde).
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
Referine online
[1] Pagina oficial a proiectului Arduino http://arduino.cc/
[2] Wiring Platform http://wiring.org.co/
[3] Atmel 8-bit AVR Microcontroller with 4/8/16/32K Bytes In-System Programmable Flash
http://www.atmel.com/Images/doc8161.pdf
[4] Processing http://www.processing.org
[5] IDE Arduino http://arduino.cc/en/Main/Software
[6] WinAVR http://winavr.sourceforge.net/
[7] Atmel Studio 6 http://www.atmel.com/microsite/atmel_studio6/default.aspx