You are on page 1of 9

http://www.robofun.

ro Curs Gratuit Arduino si Robotica


Textul si imaginile din acest document sunt licentiate
Attribution-NonCommercial-NoDerivs
CC BY-NC-ND
Codul sursa din acest document este licentiat
Public-Domain
Esti liber sa distribui acest document prin orice mijloace consideri (email publicare pe !ebsite "
blog printare sau orice alt mijloc# atat timp cat nu aduci nici un $el de modi$icari acestuia% Codul
sursa din acest document poate $i utili&at in orice $el de scop de natura comerciala sau nu $ara
nici un $el de limitari%

http://www.robofun.ro/forum
http://www.robofun.ro Curs Gratuit Arduino si Robotica
Ce este Arduino ?
Arduino este una dintre cele mai simplu de utili&at plat$orme cu
microcontroller% Te poti gandi la el ca la un minicalculator (are puterea de calcul
a unui computer obisnuit de acum '( ani# $iind capabil sa culeaga in$ormatii
din mediu si sa reactione&e la acestea%
)n jurul lui Arduino exista un ecosistem de dispo&itive extrem de bine
de&voltat% *rice $el de in$ormatie ti-ai dori sa culegi din mediu orice $el de
conexiuni cu alte sisteme ai avea nevoie exista o sansa $oarte mare sa gasesti
un dispo&itiv pentru Arduino capabil sa iti o$ere ceea ce ai nevoie%
Ast$el daca discutam despre preluarea de in$ormatii din mediu mai jos
sunt doar cateva exemple de sen&ori + sen&ori ce determina nivelul de alcool in
aerul respirat sen&or de incediu ga& ,P- monoxid de carbon acceleratii ale
dispo&itivelor in miscare curent consumat de diverse dispo&itive casnice $orta
de apasare gradul de rotire cartele ./)D distante nivel de iluminare directia
nordului pre&enta umana sunet temperatura umiditate presiune atmos$erica
sau video% Daca ne re$erim la posibilitatea de a ne conecta cu alte sisteme
exista placi de retea Et0ernet pentru Arduino capabile sa comunice in$ormatii
prin )nternet dispo&itive capabile sa transmita date prin conexiune radio placi
de retea 1)/) dispo&itive ,23 pentru Arduino (capabile sa trimita "
receptione&e 232-uri sa initie&e apeluri de voce sau sa trimita date prin
reteaua 4,# sau conectori Bluetoot0 pentru conectarea Arduino cu tele$onul
mobil sau laptop% )n &ona mecanica exista motoare de curent continuu
(utili&ate pentru robotica# motoare pas cu pas (utili&ate de obicei in &ona
industriala# sau servomotoare controlate $oarte exact% Pentru a$isarea
in$ormatiilor preluate exista ecrane -CD pentru Arduino incepand cu cele mai
simple (-CD text cu '5 caractere# pana la ecran -CD gra$ice% )n prima parte a
acestui curs vom de&volta integrarea Arduino cu $iecare dintre dispo&itivele pe
care le-am amintit mai sus (si alte cateva in plus#% )n cea de-a doua parte a
cursului vom pre&enta pe larg o serie de proiecte interesante reali&ate prin
combinarea Arduino cu unul sau mai multe dispo&itive dintre cele enumerate
mai devreme%
Pentru a-ti $ace o idee despre ceea ce se poate $ace cu Arduino in
continuare iti pre&int cateva exemple de proiecte care se pot reali&a cu Arduino
(proiecte pe care le vom detalia pe larg in cea de-a doua parte a cursului# +
sen&or de alcool conectat la Arduino Arduino conectat la PC6 atunci cand
nivelul de alcool in aerul expirat depaseste un anumit nivel prestabilit
computerul iti da un !arning cand incerci sa poste&i lucruri pe /aceboo7% Aici
poti gasi un articol cu mai multe po&e despre acest proiect%
robot autonom care ocoleste obstacole%
Cateva exemple de $ilme cu roboti care $ac acest lucru +
http://www.robofun.ro/forum
http://www.robofun.ro Curs Gratuit Arduino si Robotica
0ttp+""!!!%8outube%com"!atc09v:;74-<=p2m>? @ robot care
parc0ea&a singur
0ttp+""!!!%8outube%com"!atc09v:An3N*ugx$4) @ masina de taiat
iarba (autonoma#
0ttp+""!!!%8outube%com"!atc09v:;(nBCc3x,Bs @ robot cu
recunoastere video a obstacolelor
0ttp+""!!!%8outube%com"!atc09v:5bA==C7cNEo @ robot de&voltat
de armata americana
0ttp+""!!!%8outube%com"!atc09v:cN=P.sr!umC @ un alt robot
de&voltat de armata americana
robot controlat prin Bluetoot0 $olosind tele$onul mobil sau laptop-ul
aici poti gasi mai multe exemple de $ilme cu un ast$el de robot
0ttp+""!!!%robo$un%ro"magician-robot-arduino-driver-bluetoot0
dispo&itiv pentru pictat oua (Dt0e EggBotD#%
0ttp+""!!!%8outube%com"!atc09v:=C-ET.ja<7F
Arduino G sen&or temperatura G sen&or umiditate G sen&or presiune
atmos$erica G placa de retea Et0ernet care transmite datele de mediu pe
,oogle Docs la $iecare 'F secunde%
mana robotica ba&ata pe o manusa cu sen&ori de indoire si servomotoare%
aici gasesti un $ilm cu acest gen de mana -
0ttp+""!!!%te0norama%ro"animatronic-0and
Cuadcopter-e
aici gasest un $ilm cu mai multe Buad-uri care &boara in $ormatie -
0ttp+""!!!%8outube%com"!atc09v:YC)3,E(vtdA
*penEnerg83onitor sistem ba&at pe Arduino care monitori&ea&a energia
electrica consumata in casa%
prastie reala (din lemn# combinata cu Arduino un accelerometru si Bluetoot0
pentru jucat Angr8 Birds pe PC%
http://www.robofun.ro/forum
http://www.robofun.ro Curs Gratuit Arduino si Robotica
acces ba&at pe cartele ./)D G noti$icari prin T!itter%
)n ca&ul Arduino totul este $oarte simplu de utili&at% Ai nevoie de circa (
minute ca sa iti instale&i mediul de de&voltare si sa scrii primul tau program pe
Arduino% Nu este necesar sa lipesti $ire tot ce ai nevoie este un port ?2B liber%
Instalare Drivere Arduino
Primul lucru pe care trebuie sa il $aci inainte de a putea programa placa
Arduino este sa ii instale&i driver-ele pe PC% Daca rule&i -inux sau 3AC ai
scapat nu ai nevoie de driver-e% Daca insa rule&i 1indo! va trebui instale&i si
drivere-le ca pentru orice alt dispo&itiv 0ard!are% Driver-ele sunt disponibile in
mediul de de&voltare pe care il vei descarca de la adresa
0ttp+""arduino%cc"en"3ain"2o$t!are % Descarca ar0iva %&ip si de&ar0ivea&-o intr-
un director la alegerea ta% Conectea&a apoi placa Arduino la portul ?2B% PC-ul
va detecta ca ai un nou dispo&itiv si iti va cere sa instale&i drivere pentru el%
Alege optiunea de instalare prin care ii spui 1indo!s ca ai tu drivere si ii ceri
sa nu se conecte&e la )nternet pentru a cauta in mod automat% 2electea&a
directorul DdriversD din directorul unde ai de&ar0ivat ar0iva %&ip de la pasul
precedent (N? directorul D/TD) DriversD H#% Procesul continua apoi cu DNextD% )n
$inal daca desc0i&i Device 3anager in sectiunea DPorts (C*3 I -PT#D ar trebui
sa ve&i o intrare numita DArduino ?N*D%
Aici - 0ttp+""arduino%cc"en",uide"1indo!s - gasesti un g0id detaliat cu
screens0ot-uri re$eritor la instalarea driver-elor pentru Arduino%
Arduino IDE, Program Arduino, Upload
Dupa ce ai instalat drivere-ele urmatorul pas este sa iti programe&i placa
Arduino% .ulea&a programul DarduinoD din mediul de de&voltare pe care tocmai
l-ai descarcat la pasul precedent (ve&i screens0ot-ul de mai jos#% Arduino se
conectea&a la PC prin intermediul unui port serial% Primul pas pe care il ai de
$acut este sa determini acest port% Cea mai simpla cale este de conecte&i placa
astepti circa 4F de secunde @ ' minut ca sa $ii sigur ca a $ost detectata de PC
iar apoi desc0i&i meniul DTools -J 2erial PortD% Ar trebui sa ve&i una sau mai
multe intrari% 3emorea&a-le (sau scrie-le pe o $oaie de 0artie " $a un
screens0ot#% Deconectea&a placa Arduino din portul ?2B (scoate cablul din PC#%
Desc0ide din nou meniul DTools -J 2erial PortD% Acel port care a disparut este
portul asociat placii Arduino% Conectea&a din nou placa Arduino la PC asteapta
sa $ie recunoscuta de PC si apoi selectea&a portul respectiv din meniul DTools
-J 2erial PortD%
?rmatorul pas este selectarea tipului de placa cu care lucre&i% Din meniul
DTools -J BoardD selectea&a tipul de placa cu care lucre&i (Arduino ?no
http://www.robofun.ro/forum
http://www.robofun.ro Curs Gratuit Arduino si Robotica
-eonardo 3ega etc#%
Anatomia unui program Arduino
*rice program Arduino are doua sectiuni% 2ectiunea DsetupD care este
rulata doar o singura data atunci cand placa este alimentata (sau este apasat
butonul D.esetD# si sectiunea DloopD care este rulata in ciclu atat timp cat este
alimentata placa% 2a luam un exemplu%
void setup() {
//codul scris aici ruleaza o singura data
}
void loop() {
//codul scris aici ruleaza tot timpul
}
Ast$el in rutina DsetupD vom pune de obicei cod de initiali&are iar in
rutina DloopD vom scrie partea principala a programului nostru%
http://www.robofun.ro/forum
http://www.robofun.ro Curs Gratuit Arduino si Robotica
Arduino Blink
Pentru cel de-al doilea exemplu Arduino vom $olosi un led montat din
$abricatie pe placa% Placa Arduino are din constructie un led conectat la pinul
digital '4% Acest led se aprinde atunci cand pinul '4 digital este pus in <),<
(din programul scris pe Arduino# se stinge atunci cand pinul '4 este pus in
-*1%
void setup() {
pinMode(13, OUTPUT)
}
void loop() {
digital!rite(13, "#$")
dela%(1&&&)
digital!rite(13, 'O!)
dela%(1&&&)
}
Daca urci acest program pe placa Arduino si urmaresti led-ul conectat la
pinul '4 vei observa ca el clipeste o data pe secunda% 2a anali&am un pic
programul de mai sus% )n sectiunea DsetupD avem o singura instructiune care
declara ca pinul '4 digital va $i $olosit in continuare pentru a controla un
dispo&itiv (daca am $i vrut sa citim in$ormatie din mediul @ sa atasam un sen&or
la el @ am $i scris Dpin3ode('4 )NP?T#D#% Aceasta instructiune se executa o
singura data% ?rmea&a sectiunea DloopD care aprinde led-ul conectat la pinul
'4 (Ddigital1rite('4 <),<#D# asteapta o secunda il stinge si iarasi asteapta o
secunda% Asa cum am spus mai sus instructiunile din sectiunea DloopD se
executa ciclic ast$el ca imediat dupa ce s-a terminat un ciclu led-ul iarasi se
aprinde apoi iarasi se stinge si tot asa pana cand taiem alimentarea placii%
Exemplul urmator este extrem de similar cu acesta doar ca in locul led-ului
montat din $abrica pe placa Arduino vom utili&a un led $i&ic conectat la pinul '4
al placii%
Led Brick, ONO!!
?n led bric7 repre&inta cea mai simpla posibilitate de a genera un semnal
luminos $olosind Arduino% ?n led bric7 necesita un port digital liber pentru a $i
controlat de catre Arduino%
http://www.robofun.ro/forum
http://www.robofun.ro Curs Gratuit Arduino si Robotica
Arduino GND GND Led
Arduino Digital 13 IN Led
void setup() {
pinMode(13, OUTPUT)
}
void loop() {
digital!rite(13, "#$")
dela%(1&&&)
digital!rite(13, 'O!)
dela%(1&&&)
}
.utina setup, care se executa exact o singura data cand Arduino este
alimentat declara pinul digital '4 (cel la care am conectat led-ul# ca $iind un
pin de iesire (in sensul ca va controla un dispo&itiv extern conectat la Arduino
si nu va citi o in$ormatie digitala din mediu#%
.utina loop care se executa atata timp cat Arduino este alimentat
aprinde led-ul ridicand pinul '4 in <),< (mai exact $ace ca tensiunea pinului sa
$ie ( E# apoi asteapta o secunda stinge led-ul (tensiunea pinului devine F E# si
apoi iarasi asteapta o secunda%
http://www.robofun.ro/forum
http://www.robofun.ro Curs Gratuit Arduino si Robotica
De ce nu merge ?
sigur ai conectat corect $irele 9
sigur programul s-a incarcat pe Arduino (ai va&ut mesajul DDone ?ploadingD # 9
daca scoti $irul de conectare din pinul '4 (marcat pe led cu D)ND# si il muti in
pinul ECC se aprinde led-ul 9 (daca nu atunci led-ul probabil este de$ect#
Aceasta a fost lectia 1. In final, as vrea sa te rog sa ne oferi feedback
asupra acestei lectii, pentru a ne permite sa le facem mai bune pe
urmatoarele.
Este vorba despre un sondaj cu 4 intrebari (oricare este optionala), pe
care il poti accesa dand click aici. Sondajul este complet anonim.
Sau ne poti contacta direct prin email la contactrobofun.ro .
Iti multumim,
Ec!ipa "obofun."#
http://www.robofun.ro/forum

You might also like