Vom incepe un sir de tutoriale pentru a invata cum sa folosim un Arduino. Sper sa scoatem cate un tutorial pe saptamana. In dreapta poti vedea necesarul de echipamente, daca vrei sa incerci sa realizezi fizic ce citesti aici.

Ce este Arduino?

Arduino este o platforma de dezvoltare open-source cu care poti automatiza tot felul de lucruri, ai intrari si iesiri, poti face cam orice fel de proiect electronic. Este foarte usor de invatat si destul de accesibil ca pret.

Arduino este bazat pe procesoarele Atmega de la Atmel si poate fi programat foarte usor de voi folosind IDE-ul oferit. Limbajul de programare este un C simplificat, in care se folosesc doar comenzile de baza.

Iata cateva din proiectele realizate cu Arduino:

Pumpktris

Polar Plotter

WiiChuck si Laser Pointer

Cum arata un Arduino?

Acesta este un Arduino UNO:
CreativeChip ARDUINO UNO

Este cel mai cunoscut model Arduino. Fiind o platforma open-sourse, schemele Arduino se gasesc gratis, de aceea exista foarte multe versiuni de clone Arduino, care sunt compatibile intre ele.

Un Arduino este compus in principal din urmatoarele:
CreativeChip ARDUINO UNO2

1. Microcontroller-ul

Microcontroller-ul Atmega este la baza oricarui Arduino. Acesta este creierul placutei si pe ea o programezi sa faca tot ce doresti.

La Arduino Uno este modelul ATmega328. Are 32KB memorie flash care poate fi programata (0.5 KB folosit de bootloader). Are deasemenea 2 KB SRAM si 1KB EEPROM.

2. Pini de conectare

In mare sunt 3 tipuri de pini.

Pini de curent marcati cu GND, Vin, 5V, 3.3V etc.
14 pini digitali (in imagine marcati cu nr de la 0-13)
6 pini analogici (A0-A5)

Numarul acestora poate diferi de la model la model, dar in principiu asezarea si functia lor este aceeasi.

La acesti pini se leaga senzorii, motorasele, led-urile sau orice alte componente pe care vrei sa la controlezi.

3. Mufa de conectare USB

CreativeChip usb cable
Cu ajutorul mufei USB de tip A (de imprimanta) Arduino se poate conecta la un calculator pentru a il programa sau a vedea informatii trimise de microcontroller.

Deasemenea Arduino se poate alimenta si prin USB.

Exista modele de Arduino la care pentru conectarea la un calculator este nevoie de inca o componenta, FTDI.

Cu ajutorul mufei USB de tip A (de imprimanta) Arduino se poate conecta la un calculator pentru a il programa sau a vedea informatii trimise de microcontroller.

Deasemenea Arduino se poate alimenta si prin USB.

Exista modele de Arduino la care pentru conectarea la un calculator este nevoie de inca o componenta, FTDI.

4. Alimentare

In afara de alimentarea prin USB, Arduino mai poate fi alimentat direct de la o priza (cu adaptor de curent continuu) sau baterie prin intermediul unui conector jack.

Placa functioneaza alimentata cu 6V – 20 V. Totusi se recomanda un voltaj intre 7 si 12 V.

5. LED-uri de control

LED-urile marcate TX/RX iti arata daca exista comunicare seriala intre Arduino si alte dispozitive (calculator, XBee etc.).

Al treilea LED este direct conectat la pinul digital 13 si poate fi folosit in proiectele tale ca si un LED normal.

6. Conector ISP

Conectorul ISP poate fi folosit pentru comunicare SPI cu un shield Ethernet de exemplu sau pentru programarea bootloaderului.

7. Butonul de Reset

Foarte important este acest buton. Iti reseteaza Arduino, repornind programul incarcat in memoria chip-ului.
Cum se programeaza?

Prima data trebuie descarcat programul pe care il vei folosi cu Arduino-ul tau. Programul se descarca de aici:

http://arduino.cc/en/Main/Software

Nu se instaleaza, doar se dezarhiveaza si daca il rulati o sa arate cam asa:

CreativeChip software

Primul lucru pe care trebuie sa il faci cand deschizi IDE este sa iti alegi placa pe care o folosesti. Acest lucru il faci in Tools > Board.

Urmatorul lucru este sa alegi pe ce port comunica Arduino cu calculatorul in Tools > Serial Port.

Sa incepem  sa programam. Cel mai simplu program este urmatorul:

void setup() {  

}

void loop() {  

}


Bine, acest program nu face nimic pentru ca nu are nici o instructiune, dar este foarte bun pentru exemplificare.

Exista 3 zone ale programului:

  • Inainte de comanda void setup()Aici se pot defini librariile pentru diferiti senzori, constantele, variabilele si tot felul de obiecte ce vor fi folosite pe parcursul programului.
  • In setup()Intre acoladele setup-ului vom pune instructiunile pe care vrem sa le rulam o singura data la pornirea Arduino-ului
    Aici intra initializarea senzorilor, a diferitelor clase de functii sau orice fel de instructiuni.
  • In loop()Intre acoladele loop-ului vom avea instructiunile ce vor rula la nesfarsit, atata timp cat Arduino este alimentat.

Primul Program

Pentru inceput hai sa facem sa se aprinda si sa se stinga LED-ul care vine pe placa de dezvoltare. Programul este urmatorul:

int led = 13;

void setup() {                

  pinMode(led, OUTPUT);     

}

void loop() {

  digitalWrite(led, HIGH);   

  delay(1000);              

  digitalWrite(led, LOW);    

  delay(1000);              

}


Sa-l explicam linie cu linie.

int led = 13; –> Dupa cum am spus inainte de setup() sunt declarate variabile si constante. In acest rand am declarat variabila led care este int (numeric) si are valoarea 13.


Vom folosi aceasta valoare pentru a accesa pin-ul 13, avand in vedere ca pinii digitali sunt numerotati de la 0-13

Daca pui un led pe alt pin, trebuie sa modifici aceasta valoare cu numarul pinului pe care vrei sa-l folosesti.

Variabilele pot fi de mai multe feluri, int, char, float, bool. Vom afla pe parcursul tutorialelor mai multe despre fiecare din ele. Dar daca vrei sa citesti poti gasi aici:

http://arduino.cc/en/Reference/HomePage

la capitolul Data Types.

Cam atat trebuie sa declaram in materie de variabile. Trecem mai departe la setup().

Setup-ul este delimitat de acolade si asa vor fi toate functiile in program. Vom vedea pe parcurs.

pinMode(led, OUTPUT);  –> functia pinMode spune microcontrollerului ce functie va indeplini un anumit pin. Trebuie sa spui care pin (in cazul nostru led , pe care l-am definit la inceput ca fiind 13) si ce functie are (OUTPUT). Un pin poate indeplini una din doua functii INPUT sau OUTPUT. In general pinii sunt predefiniti ca INPUT, deci in multe cazuri nu trebuie sa-i mai redefinesti la inceput.

In exemplul nostru LED-ul este clar un OUTPUT. Un buton sau senzor este un INPUT.

S-a terminat si setup-ul initial.

Noi vrem ca LED-ul sa se stinga si sa se aprinda pentru totdeauna. Asa ca o sa punem codul care face acest lucru in loop().

digitalWrite(led, HIGH);   –> la inceput LED-ul este stins si vrem sa il aprindem. Pentru aceasta folosim functia digitalWrite, care ii spune unui pin sa fie HIGH sau LOW(sa aiba curent sau sa nu aiba curent). Un pin digital poate avea doar valori 1 sau 0HIGH sau LOW. La fel ca si la definirea pinului, digitalWrite are doua argumente. led spune carui pin ii aplicam functia si HIGH ii spune ce valoare sa ii dea.

delay(1000);  –> dupa ce am aprins LED-ul vrem sa avem o perioada in care sa stea aprins si trebuie sa punem o pauza. Pentru aceasta folosim functia delay, care face o pauza in program. Argumentul (1000) ii spune cat timp sa faca acest delay. Deoarece viteza de rulare a programului din loop este foarte mare, functiadelay iti permite sa pui pauze de nivelul milisecundei. Deci 1000 de milisecunde inseamna o secunda in care va ramane ledul deschis. 

digitalWrite(led, LOW);    

delay(1000);    –> in aceste doua linii repetam ce am facut mai sus, doar ca stingem ledul. 

Cam asta este programul pentru a face led-ul sa se aprinda si sa se stinga. Tot ce mai trebuie sa faci este sa il uploadezi pe microcontroller. Daca ai ales corect placa si portul, apasa pe:

CreativeChip arrows

butonul din stanga sa verifici corectitudinea programului si pe cel din dreapta pentru a incepe sa-l urci pe microcontroller.

LED-urile de TX/RX se vor aprinde si Arduino-ul va prinde viata.