Sunteți pe pagina 1din 9

Laborator Sisteme cu Microprocesoare Integrate

Departamentul de Automatic i Informatic Industrial

Lucrare 1 Utilizarea plcii de dezvoltare Arduino Uno

Coninutul lucrrii pe scurt:


Prezentarea plcii de dezvoltare Arduino Uno
Arhitectura plcii Arduino Uno
Instrumente de programare pentru placa Arduino Uno

Echipamente necesare lucrrii:


Plac de dezvoltare Arduino Uno sau compatibil
Cablu de conectare USB

Seciuni lucrare:
Placa de dezvoltare Arduino Uno
Arhitectura plcii Arduino Uno
Microcontrolerul ATmega328
IDE Arduino
Primul exemplu de program
Referine online

Laborator Sisteme cu Microprocesoare Integrate


Departamentul de Automatic i Informatic Industrial

Placa de dezvoltare Arduino Uno


Placa de dezvoltare Arduino Uno este o plac bazat pe un microcontroler Atmel pe 8 bii din
familia AVR ATmega328P. Este o plac multifuncional care ofer suport pentru comunicaie
serial, achiziie analogic, comand PWM, comunicaii generice I/O digitale.

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.

Laborator Sisteme cu Microprocesoare Integrate


Departamentul de Automatic i Informatic Industrial

Arhitectura intern a plcii Arduino Uno


Arhitectura intern a plcii Arduino Uno este
extrem de simpl. Componentele plcii de
CONECTOR
dezvoltare asigur urmtoarele funcii:
MODUL
Alimentarea
plcii
de
dezvoltare
serial-USB
(microcontroler, modul de comunicaie
USB) i chiar i a componentelor care vor fi
MICROCONTROLER
interconectate;
MODUL
Interfaarea cu un sistem de tip PC printrALIMENTARE
CONECTOR
un modul serial-USB pentru programarea
plcii i realizarea comunicaiei seriale cu
PC-ul;
Facilitarea conectrii altor componente cu placa de dezvoltarea prin intermediul celor doi
conectori aflai pe plac.
Placa de dezvoltare Arduino Uno transform
microcontrolerul ncorporat ntr-o component
gata de interconectare. Placa nu adaug funcii
suplimentare
microcontrolerului
(exceptnd
conversia serial-USB) ci doar faciliteaz utilizarea
acestuia n cadrul unor aplicaii diverse fr a mai
avea nevoie de proiectarea i implementarea
componentelor suport de baz (alimentare,
programator, mufe de interconectare). Conectorii
de pe placa de dezvoltare asigur expunerea
ordonat a porturilor I/O ai microcontrolerului
ntr-o form standardizat (conectorul de sus
expune pinii porturilor B i D iar conectorul de jos
expune pinii portului C i pinii de alimentare).
Standardizarea
interconectrii
permite
proiectarea unor componente electronice
suplimentare care s permit extinderea
funcionalitii plcii. n acest mod proiectarea i
implementarea unui sistem nu mai necesit
proiectarea i realizarea unor componente
electronice ci doar alegerea unor componente
deja existente.
Imaginea alturat prezint un exemplu de
component suplimentar (shield) care extinde
funcionalitatea plcii de dezvoltare (n acest caz
permite comunicaia Ethernet).
3

Laborator Sisteme cu Microprocesoare Integrate


Departamentul de Automatic i Informatic Industrial

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.

Pinii Vcc i GND sunt pinii de alimentare ai


ciruitului iar pinii AVcc i AREF sunt pinii de
alimentare i tensiune de referin ai
convertorului analogic digital.
Alte funcionaliti suplimentare ale pinilor:
PB2-PB5 port de comunicaie SPI;
PC0-PC5 intrri ale convertorului AD;
PC4-PC5 2-wire serial communication
(I2C);
PD0-PD1 USART RX/TX;
PD2-PD3 linii de ntreruperi externe;

Laborator Sisteme cu Microprocesoare Integrate


Departamentul de Automatic i Informatic Industrial

Pe toate liniile se pot defini ntreruperi care


se declaneaz la modificarea strii pinilor
(PCINTx Pin Change Interrupt x). Circuitul
ATmega328 mai dispune de dou
mecanisme de tip timer/counter pe 8 bii
(T/C0 i T/C2) i unul pe 16 bii (T/C1). Toate
cele trei mecanisme pot servi ca i surs de
semnal PWM.
Pentru mai multe detalii despre circuitul
Atmel ATmega 328 putei consulta manualul
oficial al productorului [3].

Laborator Sisteme cu Microprocesoare Integrate


Departamentul de Automatic i Informatic Industrial

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).

Sketch operaii specifice procesului de compilare asupra programul scris (Compile,


Import Library) programul scris n IDE Arduino poart denumirea de sketch schi.
6

Laborator Sisteme cu Microprocesoare Integrate


Departamentul de Automatic i Informatic Industrial

Tools pune la dispoziie o serie de instrumente ce permit accesarea unor aciuni n


conjuncie cu placa de dezvoltare (Serial Monitor, Board alegerea plcii pe care se
ncarc programul, Programmer alegerea unui programator specializat dac este cazul,
Burn Bootloader).
Help meniu specific accesrii documentaiei mediului de programare.

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 .

Laborator Sisteme cu Microprocesoare Integrate


Departamentul de Automatic i Informatic Industrial

Mediul de dezvoltare opensource WinAVR [6]

Mediul de dezvoltate Atmel Studio 6 [7]

Primul exemplu de program


Primul exemplu de program propus pentru a testa mediul IDE Arduino este un program foarte
simplu care comand ledul aflat pe placa Arduino Uno conectat la pinul 13. Codul surs poate fi
accesat din setul de exemple cu care vine mediul IDE Arduino (File / Examples / 01.Basics /
Blink).
Orice program surs (schi / sketch) scris n mediul IDE Arduino are dou funcii importante:
setup n care se fac iniializrile i loop n care este scris codul principal, cod care va rula ntro bucl infinit pe microcontroler. n afar de aceste dou funcii programul mai poate conine
o seciune de iniializare a variabilelor globale i de includere a unor biblioteci suplimentare la
nceputul programului - i alte funcii definite de utilizator (nu este cazul exemplului de fa).
Partea de iniializare a exemplului definete o variabil de tip int denumit led i care va
indica faptul c facem referire la pinul 13 al plcii. Definirea acestei variabile nu este obligatorie
i, mai mult dect att, am putea defini o constant n acest scop.
int led = 13;

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);
}

Laborator Sisteme cu Microprocesoare Integrate


Departamentul de Automatic i Informatic Industrial

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);
}

Att compilare ct i ncrcarea programului va fi nsoit de urmtorul mesaj n zona de mesaje


a interfeei IDE Arduino. Acest mesaj echivaleaz cu confirmarea compilrii sau ncrcrii cu
succes a programului i indic dimensiunea codului binar rezultat n urma compilrii (precum i
dimensiunea maxim a memorie program disponibile).
Binary sketch size: 1,084 bytes (of a 32,256 byte maximum)

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

S-ar putea să vă placă și