1. ce este arduino?robotics.ucv.ro/data/_uploaded/cursuri/programarea... · 2020-01-08 · arduino...

16
ARDUINO 1. 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. Arduino este un instrument prin care poţi realiza sisteme informatice capabile să ‘perceapă’ şi să ‘controleze’ lumea înconjurătoare . Acest instrument este open-source şi este compus dintr- un mediu de dezvoltare (o varianta de Wiring platforma folosită pentru procesare multimedia) şi o placă de dezvoltare cu microcontroler AVR. Arduino poate fi folosit pentru dezvoltarea de obiecte interactive. Informaţia este preluată de la o gamă variată de senzori şi comutatoare, se procesează în interiorul microcontrolerului AVR, şi este transmisă către o gamă la fel de variată de lumini, motoare, actuatoare etc. A) Lucruri necesare înainte de a începe Pentru a putea să foloseşti platforma Arduino ai nevoie de urmatoarele: cablu USB placă de dezvoltare Arduino mediu de dezvoltare B) Instalarea plăcii de dezvoltare Instalarea plăcii de dezvoltare se face foarte simplu. Se leagă placa de dezvoltare cu calculatorul prin intermediul cablului USB, şi gata. Pentru Windows mai trebuie instalezi şi driverul plăcii: Trebuie mergi în Start->Control Pannel->System and Security->System->Device Manager În grupul Ports (COM & LPT) ar trebuii găseşti un port numit Arduino Uno (sau Arduino Mega). Click dreapta pe portul respectiv şi selectează Update drivers->Browse my computer for Driver software Mai departe mergi în directorul în care ai dezarhivat aplicaţia Arduino iar aici va trebuii alegi directorul Drivers pentru ArduinoUno sau FTDI USB Drivers pentru plăcile ce folosesc adaptor FTDI.

Upload: others

Post on 17-May-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1. Ce este Arduino?robotics.ucv.ro/data/_uploaded/Cursuri/Programarea... · 2020-01-08 · ARDUINO 1. Ce este Arduino? Arduino este una dintre cele mai simplu de utilizat platforme

ARDUINO

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

Arduino este un instrument prin care poţi realiza sisteme informatice capabile să ‘perceapă’

şi să ‘controleze’ lumea înconjurătoare . Acest instrument este open-source şi este compus dintr-

un mediu de dezvoltare (o varianta de Wiring – platforma folosită pentru procesare multimedia) şi

o placă de dezvoltare cu microcontroler AVR.

Arduino poate fi folosit pentru dezvoltarea de obiecte interactive. Informaţia este preluată de

la o gamă variată de senzori şi comutatoare, se procesează în interiorul microcontrolerului AVR,

şi este transmisă către o gamă la fel de variată de lumini, motoare, actuatoare etc.

A) Lucruri necesare înainte de a începe

Pentru a putea să foloseşti platforma Arduino ai nevoie de urmatoarele:

– cablu USB

– placă de dezvoltare Arduino

– mediu de dezvoltare

B) Instalarea plăcii de dezvoltare

Instalarea plăcii de dezvoltare se face foarte simplu. Se leagă placa de dezvoltare cu

calculatorul prin intermediul cablului USB, şi gata.

Pentru Windows mai trebuie să instalezi şi driverul plăcii: Trebuie să mergi în Start->Control

Pannel->System and Security->System->Device Manager În grupul Ports (COM & LPT) ar trebuii

să găseşti un port numit Arduino Uno (sau Arduino Mega). Click dreapta pe portul respectiv şi

selectează Update drivers->Browse my computer for Driver software

Mai departe mergi în directorul în care ai dezarhivat aplicaţia Arduino iar aici va trebuii să

alegi directorul Drivers pentru ArduinoUno sau FTDI USB Drivers pentru plăcile ce folosesc

adaptor FTDI.

Page 2: 1. Ce este Arduino?robotics.ucv.ro/data/_uploaded/Cursuri/Programarea... · 2020-01-08 · ARDUINO 1. Ce este Arduino? Arduino este una dintre cele mai simplu de utilizat platforme

C) Descrierea plăcii de dezvoltare ArduinoUNO

Plăcile de dezvoltare Arduino seamănă foarte mult între ele (din elementele comune am putea

enumera: intrările/ieşirile digitale, intrările analogice, microcontrolerul etc.). Din acest motiv

descriem în continuare doar placa de dezvoltare ArduinoUno:

Page 3: 1. Ce este Arduino?robotics.ucv.ro/data/_uploaded/Cursuri/Programarea... · 2020-01-08 · ARDUINO 1. Ce este Arduino? Arduino este una dintre cele mai simplu de utilizat platforme

-intrare analogică: este folosită pentru citirea semnalelor nondigitale. Ex. senzori de temperatură,

senzori de lumină, senzori de presiune, umiditate etc.

-intrare/ieşire digitală:imaginativa un intrerupator de la un bec. Acesta poate să aibă 2 stări: inchis

sau deschis adica 0 sau 1

-PWM (Pulse-width modulation): modulaţia în durată a impulsurilor. Poate fi utilizat pentru a

indeplinii o varietate foarte mare de sarcini, de la iluminarea LED pana la controlul vitezei

motoarelor electrice.

D) Mediul de dezvoltare Arduino IDE

Instalare:

Descărcă ultima versiune pentru ArduinoIDE de aici: http://arduino.cc/en/Main/Software,

după care dezarhivează fişierul proaspăt descărcat în locaţia dorită.

E) Configurare:

ArduinoIDE se configurează astfel. Din meniul Tools->Boards se selectează tipul de placă

folosit,

Page 4: 1. Ce este Arduino?robotics.ucv.ro/data/_uploaded/Cursuri/Programarea... · 2020-01-08 · ARDUINO 1. Ce este Arduino? Arduino este una dintre cele mai simplu de utilizat platforme

iar din meniul Tools->Ports se selectează portul COM folosit de placa de dezvoltare

Page 5: 1. Ce este Arduino?robotics.ucv.ro/data/_uploaded/Cursuri/Programarea... · 2020-01-08 · ARDUINO 1. Ce este Arduino? Arduino este una dintre cele mai simplu de utilizat platforme

F) Utilizare:

Fereastra aplicaţiei arată ca în imaginea de mai jos.

1) Zona meniu:

Verifică programul pentru erori

Incarcă programul în placa de dezvoltare

Crează un nou proiect

Deschide un proiect

Salvează proiectul curent

Monitorizare serială – acest buton este folosit pentru comunicarea prin portul serial cu

calculatorul

Page 6: 1. Ce este Arduino?robotics.ucv.ro/data/_uploaded/Cursuri/Programarea... · 2020-01-08 · ARDUINO 1. Ce este Arduino? Arduino este una dintre cele mai simplu de utilizat platforme

2) Zona program:

Această parte din aplicaţie este folosită pentru scrierea şi editatrea programelor. Cu ajutorul

iconiţei din dreapta sus (sub forma de sageata orientata în jos) poţi redenumi/crea fisiere noi.

3) Zona compilator:

În această zonă vor aparea eventualele erori de compilare.

Regulă: fiecare proiect Arduino, chiar daca are doar un singur fișier sursă, trebuie plasat într-un

director cu același nume ca fișierul sursa.

Page 7: 1. Ce este Arduino?robotics.ucv.ro/data/_uploaded/Cursuri/Programarea... · 2020-01-08 · ARDUINO 1. Ce este Arduino? Arduino este una dintre cele mai simplu de utilizat platforme

Placa pe care o vom folosi pentru activitatea de laborator este Arduino Mega 2560, bazată

pe microcontrollerul Atmel AVR ATMega2560, pe 8 biti. Placa dispune de 54 de pini digitali

pentru intrare/ieşire, şi16 pini pentru preluare de semnale analogice. Unii pini pot avea funcție

multiplă, constituind semnale pentru diferite interfețe de comunicație (UART, SPI, I2C). Frecvența

microcontrollerului este de 16 MHz. Placa se alimentează prin cablul USB cu care se conectează

la calculator, sau poate fi alimentată cu o sursă de tensiune continuă, de 7 … 12 V, care poate

furniza o intensitate a curentului de minim 0.25 A. A doua opțiune este necesară când placa trebuie

să alimenteze periferice mari consumatoare, precum motoare, shield-uri GSM. Etc.

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

H) Breadboard

Un breadboard este un dispozitiv care permite conectarea extrem de simpla a

componentelor electronice, fara lipituri. Pentru a conecta dispozitivele se folosesc fire tata-tata (cu

pini la ambele capete), care se introduc in gaurile din breaboard. Gaurile existente in breaboard

sunt conectate intre ele (de obicei pe linie), astfel incat firele introduse pe aceeasi linie vor fi

conectate intre ele. In imaginea de mai jos am marcat cu linie neagra pinii conectati intre ei (eu am

marcat doar pentru primele 3 coloane, dar toate liniile breadboard-ului sunt conectate intre ele).

Page 8: 1. Ce este Arduino?robotics.ucv.ro/data/_uploaded/Cursuri/Programarea... · 2020-01-08 · ARDUINO 1. Ce este Arduino? Arduino este una dintre cele mai simplu de utilizat platforme

2. Rezistori

Rezistorul este cel mai banal şi mai des utilizat component electronic. Spre exemplu un

telefon mobil are câteva sute de rezistori în interiorul lui. Menirea unui rezistor într-un circuit

electronic este să limiteze curentul (să reziste la trecerea curentului). Pentru a înţelege mai bine

haideţi să luăm ca exemplu o conductă cu apă. Cu cât conducta este mai îngustă, prin ea trece o

cantitate mai mică de apă. Aceasta are o rezistenţa mare. În schimb dacă lărgim conducta

respectivă, prin aceasta va putea trece o cantitate mai mare de apă, ceea ce înseamnă că rezistenţa

scade.

Rezistorii se măsoară în ohmi (Ω) şi se calculează după formula R=U/I. Unde U resprezintă

tensiunea, care se măsoară în Volţi, iar I reprezintă intensitatea, care se măsoară în Amperi.

Un caz mai aparte de rezistor este cel variabil. Valoarea acestuia (rezistenţa) poate fi

ajustată prin reglarea unui contact mecanic (cursor). De obicei acest tip de rezistori au trei

terminale şi se mai numesc potenţiometre.

Simbolizare:

A) Codul culorilor:

Valorile rezistenţelor sunt fie scrise fizic ca valoare pe acestea, fie trecută sub forma unor

bande colorate pe corpul rezistorilor. Pentru mai multe informaţii despre codurile de culoare vezi

şi http://en.wikipedia.org/wiki/Electronic_color_code . Programul gResistor te poate ajuta în

interpretarea codurilor de culoare.

B) Despre LED-uri:

Cuvântul LED vine de la Light Emitting Diode (diodă care emite lumină). Pentru a înţelege

ce înseamnă o diodă va trebuii să îţi imaginezi o stradă cu sens unic. Dacă vrei să intri pe această

stradă din sensul opus, există un poliţist care nu îţi va permite acest lucru. La fel, şi dioda permite

curentului să circule într-un singur sens. Printr-o diodă curentul poate trece doar de la pozitiv(+)

Page 9: 1. Ce este Arduino?robotics.ucv.ro/data/_uploaded/Cursuri/Programarea... · 2020-01-08 · ARDUINO 1. Ce este Arduino? Arduino este una dintre cele mai simplu de utilizat platforme

spre negativ(-). Exact acelaşi principiu se aplică şi LED-ului, ceea ce înseamnă că polaritatea este

importantă în alimentarea unui LED. LED-urile se folosesc în electronică încă din 1962, iar în

prezent tehnologia a permis folosirea acestora în cele mai diverse aplicaţii. De la dysplay-uri video

până la senzori optici.

Identificarea pinilor (+) şi (-) în cazul unui led se face foarte simplu.

Tot timpul pinul mai lung este (+) sau ANOD iar cel mai scurt este CATOD sau (-). De

asemenea în interiorul LED-ului catodul este mai proeminent faţă de ANOD.

Simbolizare:

C) Legarea LED-urilor la placa de dezvoltare

Pentru obţinerea unui efect puţin mai frumos decât clipirea unui led îţi propun aplicaţia de

mai jos. Pentru aceasta vei avea nevoie de 8 leduri şi de 8 rezistenţe de 220Ω.

Page 10: 1. Ce este Arduino?robotics.ucv.ro/data/_uploaded/Cursuri/Programarea... · 2020-01-08 · ARDUINO 1. Ce este Arduino? Arduino este una dintre cele mai simplu de utilizat platforme
Page 11: 1. Ce este Arduino?robotics.ucv.ro/data/_uploaded/Cursuri/Programarea... · 2020-01-08 · ARDUINO 1. Ce este Arduino? Arduino este una dintre cele mai simplu de utilizat platforme

Şi acum programul:

/*Joc de lumini pe 8 LED-uri*/

int LED[] = {6,7,8,9,10,11,12,13};//se definesc pinii pe care sunt conectate LED-urile

void setup()

{

/*Se seteaza pinii mai sus definiti ca si IESIRI

Functia FOR lucreaza in felul urmator:

i=0

pinMode(ledPins[0],OUTPUT)-adica pinMode(6,OUTPUT) -seteaza pinul 6 ca iesire

i++ variabila i este incrementata dinou cu 1 in concluzie i=1

i=1

pinMode(ledPins[1],OUTPUT)-adica pinMode(7,OUTPUT) -seteaza pinul 7 ca iesire

.............

se continua pana cand i este mai mic ca 8 adica i=7 cand se seteaza pin-ul 13 ca iesire

*/

for (int i = 0; i < 8; i++)

{

pinMode(LED[i],OUTPUT);

}

}

Page 12: 1. Ce este Arduino?robotics.ucv.ro/data/_uploaded/Cursuri/Programarea... · 2020-01-08 · ARDUINO 1. Ce este Arduino? Arduino este una dintre cele mai simplu de utilizat platforme

void loop()

{

animatie();

}

void animatie()

{

int intarziere = 100; //se defineste 100ms interval intre aprinderea si stingerea unui led

for(int i = 0; i <8; i++){

int stopLED = i - 1; //calculeaza care a fost ultimul led aprins

if(i == 0) { //in cazul in care procesul se reia se stinge ultimul LED

stopLED = 7;

}

digitalWrite(LED[i], HIGH); //se aprinde un nou LED

digitalWrite(LED[stopLED], LOW); //se stinge ultimul LED

delay(intarziere);

}

}

Page 13: 1. Ce este Arduino?robotics.ucv.ro/data/_uploaded/Cursuri/Programarea... · 2020-01-08 · ARDUINO 1. Ce este Arduino? Arduino este una dintre cele mai simplu de utilizat platforme

3. Butoane

A) Ce sunt butoanele?

Sigur eşti familiarizat cu întrerupătoarele. În locuinţa ta foloseşti cel puţin unul, cel de

lumină. Rolul întrerupătorului este de a permite sau nu trecerea curentului electric prin acţionarea

unui contact mecanic.

Diferenţa între un întrerupător şi un buton este faptul că butonul are revenire, ceea ce

înseamnă că în momentul în care apeşi un buton acesta va revenii automat în poziţia iniţială fără

intervenţia ta. Exemple de butoane: tastatura de la PC, tastele unui telefon mobil etc.

Simbolizare

B) Bounce/Debounce

Datorită contactului mecanic din interiorul butonului în momentul acţionării acestuia,

semnalul trimis catre microcontroler nu este unul „curat” pornit/oprit ci este o trecere continuă

între pornit/oprit până la stabilizarea pe una dintre cele două stări. Efectul este de cele mai multe

ori nedorit. Spre exemplu: în momentul în care apeşi un buton trebuie să se deschidă o poartă iar

în momentul când îl apeşi din nou vrei ca poarta respectivă să se închidă. Fără o procedură adecvată

de debounce poarta ta va oscila între închis/deschis făcând din butonul respectiv o comandă

nesigură.

Pentru a „curăţa” acest semnal se pot folosi mai multe metode, şi anume hardware sau

software. Dacă eşti interesat de efectul de bounce al butoanelor găseşti mai multe informaţii

aici: http://roroid.ro/wiki/pmwiki.php/Main/DebouncingButtonsOnVirtualPorts, noi în continuare

vom folosi metoda software, deoarece este mai simplă şi nu implica modificari suplimentare în

partea electronică a montajului.

Secvenţa de program utilizată pentru a face debounce unui buton este urmatoarea:

Page 14: 1. Ce este Arduino?robotics.ucv.ro/data/_uploaded/Cursuri/Programarea... · 2020-01-08 · ARDUINO 1. Ce este Arduino? Arduino este una dintre cele mai simplu de utilizat platforme

#include <Bounce.h>// se include libraria pentru functiile de debounce

Bounce buton1 = Bounce(2,5); /*se defineste pinul pe care este legat butonul si durata in ms

pentru care se face debounce. Aici butonul este legat pe pinul 2 iar durata este definita la 5ms.

Durata aceasta inseamna ca daca apasati butonul intr-un interval mai mic de 5ms microcontrolerul

va inregistra 2 apasari astfel va inregistra 1 apasare.*/

if ( buton1.update() ) { //se verifica starea butonului

if ( buton1.read() == HIGH) { //daca butonul este apasat se executa secventa de cod

descrisa mai jos

Serial.println("Salut lume!"); //se tipareste pe portul serial urmatorul mesaj si muta

cursorul pe o noua linie

}

}

C) Legarea butonului la placa de dezvoltare

Pentru a realiza montajul de mai jos aveţi nevoie de o rezistenţă de 220Ω şi de un buton.

Page 15: 1. Ce este Arduino?robotics.ucv.ro/data/_uploaded/Cursuri/Programarea... · 2020-01-08 · ARDUINO 1. Ce este Arduino? Arduino este una dintre cele mai simplu de utilizat platforme

D) Programul final

#include <Bounce.h> // se include libraria pentru functiile de debounce

Bounce buton1 = Bounce(2,5);

/*se defineste pinul pe care este legat butonul si durata in ms

pentru care se face debounce. Aici butonul este legat pe pinul 2 iar durata este definita la 5ms.

Durata aceasta inseamna ca daca apasati butonul intr-un interval mai mic de 5ms

microcontrolerul va inregistra 2 apasari astfel va inregistra 1 apasare.*/

void tasta(){

Page 16: 1. Ce este Arduino?robotics.ucv.ro/data/_uploaded/Cursuri/Programarea... · 2020-01-08 · ARDUINO 1. Ce este Arduino? Arduino este una dintre cele mai simplu de utilizat platforme

if ( buton1.update() ) { //se verifica starea butonului

if ( buton1.read() == HIGH) {

//daca butonul este apasat se executa secventa de cod descrisa mai jos

Serial.println("Salut lume!");

//se tipareste pe portul serial urmatorul mesaj si muta cursorul pe o noua linie

}

}

}

void setup()//functia de initializare

{

Serial.begin(9600);//se initializeaza portul serial

pinMode(2, INPUT);//se defineste pinul pe care este conectat butonul ca si intrare

}

void loop(){

tasta();//se apeleaza continuu functia tasta

}

Bibliografie

https://www.robofun.ro/docs/Arduino%20pentru%20Toti%20pagini%201-30.pdf

http://www.roroid.ro/prima-lectie/

http://www.roroid.ro/arduinoleduri-si-nu-numai/

http://www.roroid.ro/butoane/

http://users.utcluj.ro/~rdanescu/pmp-lab01.pdf

https://tighpiverriapresas.wixsite.com/presanalbat/blog/arduino-pentru-incepatori-limba-romana-

download

https://tutoriale-pe.net/programarea-c-pe-placi-arduino/

https://gamessoon.ru/ro/arduino-basis-arduino-lessons-for-beginners-we-blink-led/