SlideShare a Scribd company logo
1 of 9
Download to read offline
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 website /
blog, printare, sau orice alt mijloc), atat timp cat nu aduci nici un fel de modificari acestuia. Codul
sursa din acest document poate fi utilizat in orice fel de scop, de natura comerciala sau nu, fara
nici un fel 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 utilizat platforme cu
microcontroller. Te poti gandi la el ca la un minicalculator (are puterea de calcul
a unui computer obisnuit de acum 15 ani), fiind capabil sa culeaga informatii
din mediu si sa reactioneze la acestea.
In jurul lui Arduino exista un ecosistem de dispozitive extrem de bine
dezvoltat. Orice fel de informatie ti-ai dori sa culegi din mediu, orice fel de
conexiuni cu alte sisteme ai avea nevoie, exista o sansa foarte mare sa gasesti
un dispozitiv pentru Arduino capabil sa iti ofere ceea ce ai nevoie.
Astfel, daca discutam despre preluarea de informatii din mediu, mai jos
sunt doar cateva exemple de senzori : senzori ce determina nivelul de alcool in
aerul respirat, senzor de incediu, gaz GPL, monoxid de carbon, acceleratii ale
dispozitivelor in miscare, curent consumat de diverse dispozitive casnice, forta
de apasare, gradul de rotire, cartele RFID, distante, nivel de iluminare, directia
nordului, prezenta umana, sunet, temperatura, umiditate, presiune atmosferica
sau video. Daca ne referim la posibilitatea de a ne conecta cu alte sisteme,
exista placi de retea Ethernet pentru Arduino capabile sa comunice informatii
prin Internet, dispozitive capabile sa transmita date prin conexiune radio, placi
de retea WIFI, dispozitive GSM pentru Arduino (capabile sa trimita /
receptioneze SMS-uri, sa initieze apeluri de voce sau sa trimita date prin
reteaua 3G) sau conectori Bluetooth pentru conectarea Arduino cu telefonul
mobil sau laptop. In zona mecanica, exista motoare de curent continuu
(utilizate pentru robotica), motoare pas cu pas (utilizate de obicei in zona
industriala) sau servomotoare, controlate foarte exact. Pentru afisarea
informatiilor preluate, exista ecrane LCD pentru Arduino, incepand cu cele mai
simple (LCD text cu 16 caractere) pana la ecran LCD grafice. In prima parte a
acestui curs vom dezvolta integrarea Arduino cu fiecare dintre dispozitivele pe
care le-am amintit mai sus (si alte cateva in plus). In cea de-a doua parte a
cursului vom prezenta pe larg o serie de proiecte interesante realizate prin
combinarea Arduino cu unul sau mai multe dispozitive dintre cele enumerate
mai devreme.
Pentru a-ti face o idee despre ceea ce se poate face cu Arduino, in
continuare iti prezint cateva exemple de proiecte care se pot realiza cu Arduino
(proiecte pe care le vom detalia pe larg in cea de-a doua parte a cursului) :
– senzor de alcool conectat la Arduino, Arduino conectat la PC; atunci cand
nivelul de alcool in aerul expirat depaseste un anumit nivel prestabilit,
computerul iti da un warning cand incerci sa postezi lucruri pe Facebook. Aici
poti gasi un articol cu mai multe poze despre acest proiect.
– robot autonom care ocoleste obstacole.
Cateva exemple de filme cu roboti care fac acest lucru :
http://www.robofun.ro/forum
http://www.robofun.ro Curs Gratuit Arduino si Robotica
– http://www.youtube.com/watch?v=Xk3-HZpSm2U – robot care
parcheaza singur
– http://www.youtube.com/watch?v=4nMNOugxf3I – masina de taiat
iarba (autonoma)
– http://www.youtube.com/watch?v=X5nqCcMxGBs – robot cu
recunoastere video a obstacolelor
– http://www.youtube.com/watch?v=6b4ZZQkcNEo – robot dezvoltat
de armata americana
– http://www.youtube.com/watch?v=cNZPRsrwumQ – un alt robot
dezvoltat de armata americana
– robot controlat prin Bluetooth folosind telefonul mobil sau laptop-ul
– aici poti gasi mai multe exemple de filme cu un astfel de robot
http://www.robofun.ro/magician-robot-arduino-driver-bluetooth
– dispozitiv pentru pictat oua ("the EggBot").
– http://www.youtube.com/watch?v=ZC-VTRjaHk0
– Arduino + senzor temperatura + senzor umiditate + senzor presiune
atmosferica + placa de retea Ethernet care transmite datele de mediu pe
Google Docs, la fiecare 10 secunde.
– mana robotica, bazata pe o manusa cu senzori de indoire si servomotoare.
– aici gasesti un film cu acest gen de mana -
http://www.tehnorama.ro/animatronic-hand
– Quadcopter-e
– aici gasest un film cu mai multe quad-uri care zboara in formatie -
http://www.youtube.com/watch?v=YQIMGV5vtd4
– OpenEnergyMonitor, sistem bazat pe Arduino care monitorizeaza energia
electrica consumata in casa.
– prastie reala (din lemn) combinata cu Arduino, un accelerometru si Bluetooth,
pentru jucat Angry Birds pe PC.
http://www.robofun.ro/forum
http://www.robofun.ro Curs Gratuit Arduino si Robotica
– acces bazat pe cartele RFID + notificari prin Twitter.
In cazul Arduino, totul este foarte simplu de utilizat. Ai nevoie de circa 5
minute ca sa iti instalezi mediul de dezvoltare si sa scrii primul tau program pe
Arduino. Nu este necesar sa lipesti fire, tot ce ai nevoie este un port USB liber.
Instalare Drivere Arduino
Primul lucru pe care trebuie sa il faci inainte de a putea programa placa
Arduino, este sa ii instalezi driver-ele pe PC. Daca rulezi Linux sau MAC, ai
scapat, nu ai nevoie de driver-e. Daca insa rulezi Window, va trebui instalezi si
drivere-le, ca pentru orice alt dispozitiv hardware. Driver-ele sunt disponibile in
mediul de dezvoltare, pe care il vei descarca de la adresa
http://arduino.cc/en/Main/Software . Descarca arhiva .zip, si dezarhiveaz-o intr-
un director la alegerea ta. Conecteaza apoi placa Arduino la portul USB. PC-ul
va detecta ca ai un nou dispozitiv, si iti va cere sa instalezi drivere pentru el.
Alege optiunea de instalare prin care ii spui Windows ca ai tu drivere, si ii ceri
sa nu se conecteze la Internet pentru a cauta in mod automat. Selecteaza
directorul "drivers" din directorul unde ai dezarhivat arhiva .zip de la pasul
precedent (NU directorul "FTDI Drivers" !). Procesul continua apoi cu "Next". In
final, daca deschizi Device Manager, in sectiunea "Ports (COM & LPT)" ar trebui
sa vezi o intrare numita "Arduino UNO".
Aici - http://arduino.cc/en/Guide/Windows - gasesti un ghid detaliat, cu
screenshot-uri, referitor la instalarea driver-elor pentru Arduino.
Arduino IDE, Program Arduino, Upload
Dupa ce ai instalat drivere-ele, urmatorul pas este sa iti programezi placa
Arduino. Ruleaza programul "arduino", din mediul de dezvoltare pe care tocmai
l-ai descarcat la pasul precedent (vezi screenshot-ul de mai jos). Arduino se
conecteaza la PC prin intermediul unui port serial. Primul pas pe care il ai de
facut este sa determini acest port. Cea mai simpla cale este de conectezi placa,
astepti circa 30 de secunde – 1 minut, ca sa fii sigur ca a fost detectata de PC,
iar apoi deschizi meniul "Tools -> Serial Port". Ar trebui sa vezi una sau mai
multe intrari. Memoreaza-le (sau scrie-le pe o foaie de hartie / fa un
screenshot). Deconecteaza placa Arduino din portul USB (scoate cablul din PC).
Deschide din nou meniul "Tools -> Serial Port". Acel port care a disparut este
portul asociat placii Arduino. Conecteaza din nou placa Arduino la PC, asteapta
sa fie recunoscuta de PC, si apoi selecteaza portul respectiv din meniul "Tools
-> Serial Port".
Urmatorul pas este selectarea tipului de placa cu care lucrezi. Din meniul
"Tools -> Board", selecteaza tipul de placa cu care lucrezi (Arduino Uno,
http://www.robofun.ro/forum
http://www.robofun.ro Curs Gratuit Arduino si Robotica
Leonardo, Mega, etc).
Anatomia unui program Arduino
Orice program Arduino are doua sectiuni. Sectiunea "setup", care este
rulata doar o singura data, atunci cand placa este alimentata (sau este apasat
butonul "Reset"), si sectiunea "loop", care este rulata in ciclu, atat timp cat este
alimentata placa. Sa luam un exemplu.
void setup() {
//codul scris aici ruleaza o singura data
}
void loop() {
//codul scris aici ruleaza tot timpul
}
Astfel, in rutina "setup" vom pune de obicei cod de initializare, iar in
rutina "loop" 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 folosi un led montat din
fabricatie pe placa. Placa Arduino are din constructie un led conectat la pinul
digital 13. Acest led se aprinde atunci cand pinul 13 digital este pus in HIGH
(din programul scris pe Arduino) se stinge atunci cand pinul 13 este pus in
LOW.
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Daca urci acest program pe placa Arduino si urmaresti led-ul conectat la
pinul 13 vei observa ca el clipeste o data pe secunda. Sa analizam un pic
programul de mai sus. In sectiunea "setup" avem o singura instructiune, care
declara ca pinul 13 digital va fi folosit in continuare pentru a controla un
dispozitiv (daca am fi vrut sa citim informatie din mediul – sa atasam un senzor
la el – am fi scris "pinMode(13, INPUT)"). Aceasta instructiune se executa o
singura data. Urmeaza sectiunea "loop", care aprinde led-ul conectat la pinul
13 ("digitalWrite(13, HIGH)"), asteapta o secunda, il stinge si iarasi asteapta o
secunda. Asa cum am spus mai sus, instructiunile din sectiunea "loop" se
executa ciclic, astfel 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 fabrica pe placa Arduino vom utiliza un led fizic conectat la pinul 13
al placii.
Led Brick, ON/OFF
Un led brick reprezinta cea mai simpla posibilitate de a genera un semnal
luminos folosind Arduino. Un led brick necesita un port digital liber pentru a fi
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() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Rutina setup, care se executa exact o singura data cand Arduino este
alimentat, declara pinul digital 13 (cel la care am conectat led-ul) ca fiind un
pin de iesire (in sensul ca va controla un dispozitiv extern conectat la Arduino,
si nu va citi o informatie digitala din mediu).
Rutina loop, care se executa atata timp cat Arduino este alimentat,
aprinde led-ul ridicand pinul 13 in HIGH (mai exact, face ca tensiunea pinului sa
fie 5 V), apoi asteapta o secunda, stinge led-ul (tensiunea pinului devine 0 V) 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 firele ?
–sigur programul s-a incarcat pe Arduino (ai vazut mesajul "Done Uploading" ) ?
–daca scoti firul de conectare din pinul 13 (marcat pe led cu "IN") si il muti in
pinul VCC, se aprinde led-ul ? (daca nu, atunci led-ul probabil este defect)
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,
Echipa Robofun.RO
http://www.robofun.ro/forum

More Related Content

What's hot

Curs gratuitarduino lectia6-senzoriforta
Curs gratuitarduino lectia6-senzorifortaCurs gratuitarduino lectia6-senzoriforta
Curs gratuitarduino lectia6-senzorifortaIulius Bors
 
Curs gratuitarduino lectia7-senzoridistanta
Curs gratuitarduino lectia7-senzoridistantaCurs gratuitarduino lectia7-senzoridistanta
Curs gratuitarduino lectia7-senzoridistantaIulius Bors
 
Curs gratuitarduino lectia12-conexiunewifi-googledocs
Curs gratuitarduino lectia12-conexiunewifi-googledocsCurs gratuitarduino lectia12-conexiunewifi-googledocs
Curs gratuitarduino lectia12-conexiunewifi-googledocsIulius Bors
 
Curs gratuitarduino lectia11-muzicacuarduino
Curs gratuitarduino lectia11-muzicacuarduinoCurs gratuitarduino lectia11-muzicacuarduino
Curs gratuitarduino lectia11-muzicacuarduinoIulius Bors
 
Arduino comparatorul intern
Arduino comparatorul internArduino comparatorul intern
Arduino comparatorul internIulius Bors
 
Curs gratuitarduino lectia13-mousesitastatura
Curs gratuitarduino lectia13-mousesitastaturaCurs gratuitarduino lectia13-mousesitastatura
Curs gratuitarduino lectia13-mousesitastaturaIulius Bors
 
Arduino yala electronicabazatapecodsecret
Arduino yala electronicabazatapecodsecretArduino yala electronicabazatapecodsecret
Arduino yala electronicabazatapecodsecretIulius Bors
 
Conector bluetoothmatesilver arduino-pc
Conector bluetoothmatesilver arduino-pcConector bluetoothmatesilver arduino-pc
Conector bluetoothmatesilver arduino-pcIulius Bors
 
Arduino comunicatie i2c
Arduino comunicatie i2cArduino comunicatie i2c
Arduino comunicatie i2cIulius Bors
 
Arduino multiplexarea le-durilor
Arduino multiplexarea le-durilorArduino multiplexarea le-durilor
Arduino multiplexarea le-durilorIulius Bors
 
Arduino toraspberrypi firmata
Arduino toraspberrypi firmataArduino toraspberrypi firmata
Arduino toraspberrypi firmataIulius Bors
 
Arduino uno rfidid-12
Arduino uno rfidid-12Arduino uno rfidid-12
Arduino uno rfidid-12Iulius Bors
 
Arduino releemodio2
Arduino releemodio2Arduino releemodio2
Arduino releemodio2Iulius Bors
 
Arduino matriceled8x8
Arduino matriceled8x8Arduino matriceled8x8
Arduino matriceled8x8Iulius Bors
 
Curs gratuitarduino lectia15-seismografcuexcel
Curs gratuitarduino lectia15-seismografcuexcelCurs gratuitarduino lectia15-seismografcuexcel
Curs gratuitarduino lectia15-seismografcuexcelIulius Bors
 
Set prizecomandatedinarduino
Set prizecomandatedinarduinoSet prizecomandatedinarduino
Set prizecomandatedinarduinoIulius Bors
 
Arduino flexsensorbrickbionicfinger
Arduino flexsensorbrickbionicfingerArduino flexsensorbrickbionicfinger
Arduino flexsensorbrickbionicfingerIulius Bors
 
Arduino protocolul 1 wire
Arduino   protocolul 1 wireArduino   protocolul 1 wire
Arduino protocolul 1 wireIulius Bors
 

What's hot (20)

Curs gratuitarduino lectia6-senzoriforta
Curs gratuitarduino lectia6-senzorifortaCurs gratuitarduino lectia6-senzoriforta
Curs gratuitarduino lectia6-senzoriforta
 
Curs gratuitarduino lectia7-senzoridistanta
Curs gratuitarduino lectia7-senzoridistantaCurs gratuitarduino lectia7-senzoridistanta
Curs gratuitarduino lectia7-senzoridistanta
 
Curs gratuitarduino lectia12-conexiunewifi-googledocs
Curs gratuitarduino lectia12-conexiunewifi-googledocsCurs gratuitarduino lectia12-conexiunewifi-googledocs
Curs gratuitarduino lectia12-conexiunewifi-googledocs
 
Curs gratuitarduino lectia11-muzicacuarduino
Curs gratuitarduino lectia11-muzicacuarduinoCurs gratuitarduino lectia11-muzicacuarduino
Curs gratuitarduino lectia11-muzicacuarduino
 
Arduino comparatorul intern
Arduino comparatorul internArduino comparatorul intern
Arduino comparatorul intern
 
Aiesec University 2012-arduino
Aiesec University 2012-arduinoAiesec University 2012-arduino
Aiesec University 2012-arduino
 
Curs gratuitarduino lectia13-mousesitastatura
Curs gratuitarduino lectia13-mousesitastaturaCurs gratuitarduino lectia13-mousesitastatura
Curs gratuitarduino lectia13-mousesitastatura
 
Arduino yala electronicabazatapecodsecret
Arduino yala electronicabazatapecodsecretArduino yala electronicabazatapecodsecret
Arduino yala electronicabazatapecodsecret
 
Conector bluetoothmatesilver arduino-pc
Conector bluetoothmatesilver arduino-pcConector bluetoothmatesilver arduino-pc
Conector bluetoothmatesilver arduino-pc
 
Arduino comunicatie i2c
Arduino comunicatie i2cArduino comunicatie i2c
Arduino comunicatie i2c
 
Arduino multiplexarea le-durilor
Arduino multiplexarea le-durilorArduino multiplexarea le-durilor
Arduino multiplexarea le-durilor
 
Arduino toraspberrypi firmata
Arduino toraspberrypi firmataArduino toraspberrypi firmata
Arduino toraspberrypi firmata
 
Arduino uno rfidid-12
Arduino uno rfidid-12Arduino uno rfidid-12
Arduino uno rfidid-12
 
Arduino releemodio2
Arduino releemodio2Arduino releemodio2
Arduino releemodio2
 
Arduino matriceled8x8
Arduino matriceled8x8Arduino matriceled8x8
Arduino matriceled8x8
 
Curs gratuitarduino lectia15-seismografcuexcel
Curs gratuitarduino lectia15-seismografcuexcelCurs gratuitarduino lectia15-seismografcuexcel
Curs gratuitarduino lectia15-seismografcuexcel
 
Set prizecomandatedinarduino
Set prizecomandatedinarduinoSet prizecomandatedinarduino
Set prizecomandatedinarduino
 
Arduino flexsensorbrickbionicfinger
Arduino flexsensorbrickbionicfingerArduino flexsensorbrickbionicfinger
Arduino flexsensorbrickbionicfinger
 
Arduino eeprom
Arduino   eepromArduino   eeprom
Arduino eeprom
 
Arduino protocolul 1 wire
Arduino   protocolul 1 wireArduino   protocolul 1 wire
Arduino protocolul 1 wire
 

Viewers also liked

Asamblare statie meteo
Asamblare statie meteoAsamblare statie meteo
Asamblare statie meteoIulius Bors
 
Arduino yun arduino-wifi-ethernet-linux
Arduino yun arduino-wifi-ethernet-linuxArduino yun arduino-wifi-ethernet-linux
Arduino yun arduino-wifi-ethernet-linuxIulius Bors
 
Raspberry piuln2803
Raspberry piuln2803Raspberry piuln2803
Raspberry piuln2803Iulius Bors
 
Cum instaleziapachesimysql peraspberrypi
Cum instaleziapachesimysql peraspberrypiCum instaleziapachesimysql peraspberrypi
Cum instaleziapachesimysql peraspberrypiIulius Bors
 
Programare in prolog_pentru_inteligenta_artificiala
Programare in prolog_pentru_inteligenta_artificialaProgramare in prolog_pentru_inteligenta_artificiala
Programare in prolog_pentru_inteligenta_artificialaIulius Bors
 
Raspberry pi wirelesshotspot
Raspberry pi wirelesshotspotRaspberry pi wirelesshotspot
Raspberry pi wirelesshotspotIulius Bors
 
Arduino gyro stabilizator
Arduino gyro stabilizatorArduino gyro stabilizator
Arduino gyro stabilizatorIulius Bors
 

Viewers also liked (11)

Arduino pid
Arduino pidArduino pid
Arduino pid
 
Arduino sht11
Arduino sht11Arduino sht11
Arduino sht11
 
Asamblare statie meteo
Asamblare statie meteoAsamblare statie meteo
Asamblare statie meteo
 
Arduino yun arduino-wifi-ethernet-linux
Arduino yun arduino-wifi-ethernet-linuxArduino yun arduino-wifi-ethernet-linux
Arduino yun arduino-wifi-ethernet-linux
 
Raspberry piuln2803
Raspberry piuln2803Raspberry piuln2803
Raspberry piuln2803
 
Cum instaleziapachesimysql peraspberrypi
Cum instaleziapachesimysql peraspberrypiCum instaleziapachesimysql peraspberrypi
Cum instaleziapachesimysql peraspberrypi
 
Programare in prolog_pentru_inteligenta_artificiala
Programare in prolog_pentru_inteligenta_artificialaProgramare in prolog_pentru_inteligenta_artificiala
Programare in prolog_pentru_inteligenta_artificiala
 
Raspberry pi wirelesshotspot
Raspberry pi wirelesshotspotRaspberry pi wirelesshotspot
Raspberry pi wirelesshotspot
 
Arduino mod-gps
Arduino mod-gpsArduino mod-gps
Arduino mod-gps
 
Arduino rtc
Arduino rtcArduino rtc
Arduino rtc
 
Arduino gyro stabilizator
Arduino gyro stabilizatorArduino gyro stabilizator
Arduino gyro stabilizator
 

Similar to Curs gratuitarduino lectia1-arduinoblink

Raspberry pi firmata - arduino
Raspberry pi   firmata - arduinoRaspberry pi   firmata - arduino
Raspberry pi firmata - arduinoIulius Bors
 
Arduino wifi shield-drivermotoarel298
Arduino wifi shield-drivermotoarel298Arduino wifi shield-drivermotoarel298
Arduino wifi shield-drivermotoarel298Iulius Bors
 
Adxl345 raspberry pi
Adxl345 raspberry piAdxl345 raspberry pi
Adxl345 raspberry piIulius Bors
 
Instalare si setari Ubuntu
Instalare si setari UbuntuInstalare si setari Ubuntu
Instalare si setari Ubuntuanabaptistul
 
Manual utilizare samsung_sgh-i900_rom
Manual utilizare samsung_sgh-i900_romManual utilizare samsung_sgh-i900_rom
Manual utilizare samsung_sgh-i900_romQuickmobile
 
Manual utilizare samsung_sgh-i900_rom
Manual utilizare samsung_sgh-i900_romManual utilizare samsung_sgh-i900_rom
Manual utilizare samsung_sgh-i900_romQuickmobile
 
Arduino gsmgprs-shield-partea-a-2-a
Arduino gsmgprs-shield-partea-a-2-aArduino gsmgprs-shield-partea-a-2-a
Arduino gsmgprs-shield-partea-a-2-aIulius Bors
 
Raspberry pi bmp085blueedition
Raspberry pi bmp085blueeditionRaspberry pi bmp085blueedition
Raspberry pi bmp085blueeditionIulius Bors
 
Arduino indicatoare cp-usiram
Arduino indicatoare cp-usiramArduino indicatoare cp-usiram
Arduino indicatoare cp-usiramIulius Bors
 
Rt n12 manual_romania
Rt n12 manual_romaniaRt n12 manual_romania
Rt n12 manual_romaniacicioie
 
HOBBY.23-3-2009.pdf
HOBBY.23-3-2009.pdfHOBBY.23-3-2009.pdf
HOBBY.23-3-2009.pdfivan ion
 

Similar to Curs gratuitarduino lectia1-arduinoblink (14)

Raspberry pi firmata - arduino
Raspberry pi   firmata - arduinoRaspberry pi   firmata - arduino
Raspberry pi firmata - arduino
 
Arduino wifi shield-drivermotoarel298
Arduino wifi shield-drivermotoarel298Arduino wifi shield-drivermotoarel298
Arduino wifi shield-drivermotoarel298
 
Adxl345 raspberry pi
Adxl345 raspberry piAdxl345 raspberry pi
Adxl345 raspberry pi
 
Instalare si setari Ubuntu
Instalare si setari UbuntuInstalare si setari Ubuntu
Instalare si setari Ubuntu
 
Manual utilizare samsung_sgh-i900_rom
Manual utilizare samsung_sgh-i900_romManual utilizare samsung_sgh-i900_rom
Manual utilizare samsung_sgh-i900_rom
 
Manual utilizare samsung_sgh-i900_rom
Manual utilizare samsung_sgh-i900_romManual utilizare samsung_sgh-i900_rom
Manual utilizare samsung_sgh-i900_rom
 
Arduino gsmgprs-shield-partea-a-2-a
Arduino gsmgprs-shield-partea-a-2-aArduino gsmgprs-shield-partea-a-2-a
Arduino gsmgprs-shield-partea-a-2-a
 
Raspberry pi bmp085blueedition
Raspberry pi bmp085blueeditionRaspberry pi bmp085blueedition
Raspberry pi bmp085blueedition
 
Arduino indicatoare cp-usiram
Arduino indicatoare cp-usiramArduino indicatoare cp-usiram
Arduino indicatoare cp-usiram
 
Prezentare webinar Internet of Things (IoT)
Prezentare webinar Internet of Things (IoT)Prezentare webinar Internet of Things (IoT)
Prezentare webinar Internet of Things (IoT)
 
Curs linux 2
Curs linux 2Curs linux 2
Curs linux 2
 
Rt n12 manual_romania
Rt n12 manual_romaniaRt n12 manual_romania
Rt n12 manual_romania
 
A Lap Around Windows 8
A Lap Around Windows 8A Lap Around Windows 8
A Lap Around Windows 8
 
HOBBY.23-3-2009.pdf
HOBBY.23-3-2009.pdfHOBBY.23-3-2009.pdf
HOBBY.23-3-2009.pdf
 

Curs gratuitarduino lectia1-arduinoblink

  • 1.
  • 2. 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 website / blog, printare, sau orice alt mijloc), atat timp cat nu aduci nici un fel de modificari acestuia. Codul sursa din acest document poate fi utilizat in orice fel de scop, de natura comerciala sau nu, fara nici un fel de limitari. http://www.robofun.ro/forum
  • 3. http://www.robofun.ro Curs Gratuit Arduino si Robotica Ce este Arduino ? Arduino este una dintre cele mai simplu de utilizat platforme cu microcontroller. Te poti gandi la el ca la un minicalculator (are puterea de calcul a unui computer obisnuit de acum 15 ani), fiind capabil sa culeaga informatii din mediu si sa reactioneze la acestea. In jurul lui Arduino exista un ecosistem de dispozitive extrem de bine dezvoltat. Orice fel de informatie ti-ai dori sa culegi din mediu, orice fel de conexiuni cu alte sisteme ai avea nevoie, exista o sansa foarte mare sa gasesti un dispozitiv pentru Arduino capabil sa iti ofere ceea ce ai nevoie. Astfel, daca discutam despre preluarea de informatii din mediu, mai jos sunt doar cateva exemple de senzori : senzori ce determina nivelul de alcool in aerul respirat, senzor de incediu, gaz GPL, monoxid de carbon, acceleratii ale dispozitivelor in miscare, curent consumat de diverse dispozitive casnice, forta de apasare, gradul de rotire, cartele RFID, distante, nivel de iluminare, directia nordului, prezenta umana, sunet, temperatura, umiditate, presiune atmosferica sau video. Daca ne referim la posibilitatea de a ne conecta cu alte sisteme, exista placi de retea Ethernet pentru Arduino capabile sa comunice informatii prin Internet, dispozitive capabile sa transmita date prin conexiune radio, placi de retea WIFI, dispozitive GSM pentru Arduino (capabile sa trimita / receptioneze SMS-uri, sa initieze apeluri de voce sau sa trimita date prin reteaua 3G) sau conectori Bluetooth pentru conectarea Arduino cu telefonul mobil sau laptop. In zona mecanica, exista motoare de curent continuu (utilizate pentru robotica), motoare pas cu pas (utilizate de obicei in zona industriala) sau servomotoare, controlate foarte exact. Pentru afisarea informatiilor preluate, exista ecrane LCD pentru Arduino, incepand cu cele mai simple (LCD text cu 16 caractere) pana la ecran LCD grafice. In prima parte a acestui curs vom dezvolta integrarea Arduino cu fiecare dintre dispozitivele pe care le-am amintit mai sus (si alte cateva in plus). In cea de-a doua parte a cursului vom prezenta pe larg o serie de proiecte interesante realizate prin combinarea Arduino cu unul sau mai multe dispozitive dintre cele enumerate mai devreme. Pentru a-ti face o idee despre ceea ce se poate face cu Arduino, in continuare iti prezint cateva exemple de proiecte care se pot realiza cu Arduino (proiecte pe care le vom detalia pe larg in cea de-a doua parte a cursului) : – senzor de alcool conectat la Arduino, Arduino conectat la PC; atunci cand nivelul de alcool in aerul expirat depaseste un anumit nivel prestabilit, computerul iti da un warning cand incerci sa postezi lucruri pe Facebook. Aici poti gasi un articol cu mai multe poze despre acest proiect. – robot autonom care ocoleste obstacole. Cateva exemple de filme cu roboti care fac acest lucru : http://www.robofun.ro/forum
  • 4. http://www.robofun.ro Curs Gratuit Arduino si Robotica – http://www.youtube.com/watch?v=Xk3-HZpSm2U – robot care parcheaza singur – http://www.youtube.com/watch?v=4nMNOugxf3I – masina de taiat iarba (autonoma) – http://www.youtube.com/watch?v=X5nqCcMxGBs – robot cu recunoastere video a obstacolelor – http://www.youtube.com/watch?v=6b4ZZQkcNEo – robot dezvoltat de armata americana – http://www.youtube.com/watch?v=cNZPRsrwumQ – un alt robot dezvoltat de armata americana – robot controlat prin Bluetooth folosind telefonul mobil sau laptop-ul – aici poti gasi mai multe exemple de filme cu un astfel de robot http://www.robofun.ro/magician-robot-arduino-driver-bluetooth – dispozitiv pentru pictat oua ("the EggBot"). – http://www.youtube.com/watch?v=ZC-VTRjaHk0 – Arduino + senzor temperatura + senzor umiditate + senzor presiune atmosferica + placa de retea Ethernet care transmite datele de mediu pe Google Docs, la fiecare 10 secunde. – mana robotica, bazata pe o manusa cu senzori de indoire si servomotoare. – aici gasesti un film cu acest gen de mana - http://www.tehnorama.ro/animatronic-hand – Quadcopter-e – aici gasest un film cu mai multe quad-uri care zboara in formatie - http://www.youtube.com/watch?v=YQIMGV5vtd4 – OpenEnergyMonitor, sistem bazat pe Arduino care monitorizeaza energia electrica consumata in casa. – prastie reala (din lemn) combinata cu Arduino, un accelerometru si Bluetooth, pentru jucat Angry Birds pe PC. http://www.robofun.ro/forum
  • 5. http://www.robofun.ro Curs Gratuit Arduino si Robotica – acces bazat pe cartele RFID + notificari prin Twitter. In cazul Arduino, totul este foarte simplu de utilizat. Ai nevoie de circa 5 minute ca sa iti instalezi mediul de dezvoltare si sa scrii primul tau program pe Arduino. Nu este necesar sa lipesti fire, tot ce ai nevoie este un port USB liber. Instalare Drivere Arduino Primul lucru pe care trebuie sa il faci inainte de a putea programa placa Arduino, este sa ii instalezi driver-ele pe PC. Daca rulezi Linux sau MAC, ai scapat, nu ai nevoie de driver-e. Daca insa rulezi Window, va trebui instalezi si drivere-le, ca pentru orice alt dispozitiv hardware. Driver-ele sunt disponibile in mediul de dezvoltare, pe care il vei descarca de la adresa http://arduino.cc/en/Main/Software . Descarca arhiva .zip, si dezarhiveaz-o intr- un director la alegerea ta. Conecteaza apoi placa Arduino la portul USB. PC-ul va detecta ca ai un nou dispozitiv, si iti va cere sa instalezi drivere pentru el. Alege optiunea de instalare prin care ii spui Windows ca ai tu drivere, si ii ceri sa nu se conecteze la Internet pentru a cauta in mod automat. Selecteaza directorul "drivers" din directorul unde ai dezarhivat arhiva .zip de la pasul precedent (NU directorul "FTDI Drivers" !). Procesul continua apoi cu "Next". In final, daca deschizi Device Manager, in sectiunea "Ports (COM & LPT)" ar trebui sa vezi o intrare numita "Arduino UNO". Aici - http://arduino.cc/en/Guide/Windows - gasesti un ghid detaliat, cu screenshot-uri, referitor la instalarea driver-elor pentru Arduino. Arduino IDE, Program Arduino, Upload Dupa ce ai instalat drivere-ele, urmatorul pas este sa iti programezi placa Arduino. Ruleaza programul "arduino", din mediul de dezvoltare pe care tocmai l-ai descarcat la pasul precedent (vezi screenshot-ul de mai jos). Arduino se conecteaza la PC prin intermediul unui port serial. Primul pas pe care il ai de facut este sa determini acest port. Cea mai simpla cale este de conectezi placa, astepti circa 30 de secunde – 1 minut, ca sa fii sigur ca a fost detectata de PC, iar apoi deschizi meniul "Tools -> Serial Port". Ar trebui sa vezi una sau mai multe intrari. Memoreaza-le (sau scrie-le pe o foaie de hartie / fa un screenshot). Deconecteaza placa Arduino din portul USB (scoate cablul din PC). Deschide din nou meniul "Tools -> Serial Port". Acel port care a disparut este portul asociat placii Arduino. Conecteaza din nou placa Arduino la PC, asteapta sa fie recunoscuta de PC, si apoi selecteaza portul respectiv din meniul "Tools -> Serial Port". Urmatorul pas este selectarea tipului de placa cu care lucrezi. Din meniul "Tools -> Board", selecteaza tipul de placa cu care lucrezi (Arduino Uno, http://www.robofun.ro/forum
  • 6. http://www.robofun.ro Curs Gratuit Arduino si Robotica Leonardo, Mega, etc). Anatomia unui program Arduino Orice program Arduino are doua sectiuni. Sectiunea "setup", care este rulata doar o singura data, atunci cand placa este alimentata (sau este apasat butonul "Reset"), si sectiunea "loop", care este rulata in ciclu, atat timp cat este alimentata placa. Sa luam un exemplu. void setup() { //codul scris aici ruleaza o singura data } void loop() { //codul scris aici ruleaza tot timpul } Astfel, in rutina "setup" vom pune de obicei cod de initializare, iar in rutina "loop" vom scrie partea principala a programului nostru. http://www.robofun.ro/forum
  • 7. http://www.robofun.ro Curs Gratuit Arduino si Robotica Arduino Blink Pentru cel de-al doilea exemplu Arduino, vom folosi un led montat din fabricatie pe placa. Placa Arduino are din constructie un led conectat la pinul digital 13. Acest led se aprinde atunci cand pinul 13 digital este pus in HIGH (din programul scris pe Arduino) se stinge atunci cand pinul 13 este pus in LOW. void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); } Daca urci acest program pe placa Arduino si urmaresti led-ul conectat la pinul 13 vei observa ca el clipeste o data pe secunda. Sa analizam un pic programul de mai sus. In sectiunea "setup" avem o singura instructiune, care declara ca pinul 13 digital va fi folosit in continuare pentru a controla un dispozitiv (daca am fi vrut sa citim informatie din mediul – sa atasam un senzor la el – am fi scris "pinMode(13, INPUT)"). Aceasta instructiune se executa o singura data. Urmeaza sectiunea "loop", care aprinde led-ul conectat la pinul 13 ("digitalWrite(13, HIGH)"), asteapta o secunda, il stinge si iarasi asteapta o secunda. Asa cum am spus mai sus, instructiunile din sectiunea "loop" se executa ciclic, astfel 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 fabrica pe placa Arduino vom utiliza un led fizic conectat la pinul 13 al placii. Led Brick, ON/OFF Un led brick reprezinta cea mai simpla posibilitate de a genera un semnal luminos folosind Arduino. Un led brick necesita un port digital liber pentru a fi controlat de catre Arduino. http://www.robofun.ro/forum
  • 8. 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() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); } Rutina setup, care se executa exact o singura data cand Arduino este alimentat, declara pinul digital 13 (cel la care am conectat led-ul) ca fiind un pin de iesire (in sensul ca va controla un dispozitiv extern conectat la Arduino, si nu va citi o informatie digitala din mediu). Rutina loop, care se executa atata timp cat Arduino este alimentat, aprinde led-ul ridicand pinul 13 in HIGH (mai exact, face ca tensiunea pinului sa fie 5 V), apoi asteapta o secunda, stinge led-ul (tensiunea pinului devine 0 V) si apoi iarasi asteapta o secunda. http://www.robofun.ro/forum
  • 9. http://www.robofun.ro Curs Gratuit Arduino si Robotica De ce nu merge ? –sigur ai conectat corect firele ? –sigur programul s-a incarcat pe Arduino (ai vazut mesajul "Done Uploading" ) ? –daca scoti firul de conectare din pinul 13 (marcat pe led cu "IN") si il muti in pinul VCC, se aprinde led-ul ? (daca nu, atunci led-ul probabil este defect) 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, Echipa Robofun.RO http://www.robofun.ro/forum