Sunteți pe pagina 1din 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 @ robot care

0ttp+""!!!%8outube%com"!atc09v:;74-<=p2m>? parc0ea&a singur

0ttp+""!!!%8outube%com"!atc09v:An3N*ugx$4) @ masina de taiat iarba (autonoma# 0ttp+""!!!%8outube%com"!atc09v:;(nBCc3x,Bs recunoastere video a obstacolelor @ robot cu

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 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 de mana -

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 intrun 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 -eonardo 3ega etc#%

Curs Gratuit Arduino si Robotica

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, ON O!!


?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 Arduino Digital 13

GND Led 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 contact robofun.ro . Iti multumim, Ec!ipa "obofun."#

http://www.robofun.ro/forum