Arduino

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare
Arduino
Arduino Logo.svg
Arduino Uno - R3.jpg
Produs "Arduino Uno" SMD Revision 3
Tip Placă de dezvoltare cu microcontroler
Data lansării 24 septembrie 2010
CPU Atmega328P @ 16MHz
Memorie 32KB Flash din care 0.5KB este ocupat de bootloader, 2KB SRAM, 1KB EEPROM

Arduino este o companie open-source care produce atât plăcuțe de dezvoltare bazate pe microcontrolere, cât și partea de software destinată funcționării și programării acestora. Pe lângă acestea include și o comunitate uriașă care se ocupă cu creația și distribuirea de proiecte care au ca scop crearea de dispozitive care pot sesiza și controla diverse activități sau procese în lumea reală.[1]

Proiectul este bazat pe designul plăcilor cu microcontroler produse de câțiva furnizori, folosind diverse tipuri de microcontrolere. Aceste plăci pun la dispoziția utilizatorului pini I/O, digitali și analogici, care pot fi interfațați cu o gamă largă de plăcuțe numite scuturi (shield-uri) și/sau cu alte circuite. Plăcile au interfețe de comunicații seriale, inclusiv USB pe unele modele, pentru a încărca programe din calculatorele personale. Pentru programarea microcontrolerelor, Arduino vine cu un mediu de dezvoltare integrat (IDE) bazat pe proiectul Processing, care include suport pentru limbaje de programare ca C și C++.

Primul Arduino a fost lansat în 2005, având ca țintă asigurarea unei soluții ieftine și simple pentru începători și profesioniști spre a crea dispozitive capabile să interacționeze cu mediul, folosind senzori și sisteme de acționare. Cele mai comune exemple sunt dispozitivele pentru utilizatorii începători precum: roboții simpli, termostatele și/sau detectoarele de mișcare.

Plăcuțele Arduino sunt disponibile comercial sub formă preasamblată sau sub forma unor kituri de asamblat acasă (do-it-yourself). Specificațiile schemelor sunt disponibile pentru orice utilizator, permițând oricui să fabrice plăcuțe Arduino. Adafruit Industries estimase la mijlocul anului 2011 că peste 300.000 de plăcuțe oficiale Arduino au fost produse[2], iar în 2013 700.000 de plăcuțe oficiale erau în posesia utilizatorilor.[3]

Istoric[modificare | modificare sursă]

Arduino a început în 2005 ca un proiect al unui student al Institutului de Interacțiune a Designului din Ivrea, Italia. La acea vreme studenții foloseau o plăcuță de dezvoltare BASIC Stamp care costau 100 de dolari, ceea ce era considerat foarte scump pentru studenți. Massimo Banzi, unul dintre fondatori, era student la Ivrea.[4] Numele "Arduino" provine de la un bar din Ivrea, locul unde o parte din fondatori obișnuiau să se întâlnească.

Studentul columbian Hernando Barragán a creat platforma de dezvoltare Wiring care a servit ca bază pentru Arduino. După finalizarea platformei Wiring, mai multe versiuni, mai light și mai ieftine [5], au fost create și puse la dispoziția comunităților open-source. Din echipa inițială Arduino au făcut parte Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino și David Mellis.[4]

Hardware[modificare | modificare sursă]

Una dintre primele plăcuțe Arduino[6] cu interfață de comunicații serială RS-232 (stânga sus) și un microcontroler Atmel ATmega8(cu negru, dreapta jos); Cei 14 pini digitali de intrare/ieșire sunt localizați în partea de sus, iar cele 6 intrări analogice sunt pe partea dreaptă, jos sub microcontroler.

O plăcuță Arduino este compusă dintr-un microcontroler Atmel AVR de 8-, 16- sau 32-biți (deși începând cu 2015 s-au folosit microcontrolere de la alți producători) cu componente complementare care facilitează programarea și încorporarea în alte circuite. Un aspect important la Arduino este că acesta dispune de conectori standard, care permit utilizatorului să conecteze plăcuța cu procesorul la diferite module interschimbabile numite shield-uri. Unele shield-uri comunică cu Arduino direct prin pinii digitali sau analogici, dar altele sunt adresabile individual prin magistrala serială I²C permițând utilizarea mai multor module în paralel. Până în anul 2015 plăcuțele Arduino oficiale au folosit cipuri Atmel din seria megaAVR, în special ATmega8, ATmega168, ATmega328, ATmega1280 și ATmega2560, iar în 2015 au fost adăugate cipuri de la alți producători. O multitudine de alte procesoare au fost folosite de dispozitive compatibile Arduino. Multe plăcuțe includ un regulator liniar de 5 V și un oscilator cu cuarț de 16 MHz (sau un rezonator ceramic în unele variante), deși anumite plăcuțe, cum ar fi LilyPad, funcționează la 8 MHz și nu necesită regulator, datorită restricțiilor de formă. Un microcontroler instalat pe Arduino vine preprogramat cu un bootloader care simplifică încărcarea programelor pe memoria flash a cipului, în comparație cu alte dispozitive care necesită programatoare externe. Acest aspect face Arduino o soluție simplă, permițând programarea de pe orice computer ordinar. În prezent, bootloader-ul optiboot este bootloader-ul implicit instalat pe Arduino UNO.[7]

La nivel conceptual, când se folosește mediul de dezvoltare integrat Arduino, programarea tuturor plăcuțelor se face prin conexiune serială. Implementarea acesteia diferă în funcție de versiunea hardware. Unele plăcuțe Arduino au implementate convertoare de nivel logic pentru a realiza conversia între nivelele logice RS-232 și cele TTL. Plăcuțele Arduino din prezent sunt programate prin USB, având integrate cipuri de conversie USB-serial, cum ar fi FTDI FT232. Unele modele UNO, mai noi, folosesc un cip AVR separat programat să funcționeze ca un convertor USB-serial, care poate fi reprogramat printr-un port ICSP dedicat. Alte variante, cum ar fi Arduino Mini și versiunea neoficială Boarduino, folosesc adaptoare detașabile USB-serial, cabluri, Bluetooth sau alte metode.

O plăcuță Arduino cu descrierile pinilor I/O

Plăcuța Arduino are expuși mulți dintre pinii de intrare/ieșire ai microcontrolerului, pentru ca aceștia să fie folosiți de alte circuite. Diecimila, Duemilanove și UNO oferă 14 pini digitali de intrare/ieșire, dintre care 6 pot produce semnale PWM și 6 intrări analogice care, de asemenea, pot fi folosite ca intrări/ieșiri digitale. Acești pini sunt accesibili prin partea superioară a plăcuței, prin intermediul unor barete mamă cu pasul între pini de 2,54 mm.


Plăcuțe oficiale[modificare | modificare sursă]

Plăcuțele originale Arduino erau produse de compania italiană Smart Projects.[8] O parte dintre plăcuțele cu brandul Arduino au fost proiectate de companiile americane SparkFun Electronics și Adafruit Industries.[9] 16 versiuni de hardware Arduino au fost produse în scop comercial până la această dată.

Shield-uri[modificare | modificare sursă]

Arduino și plăcuțele Arduino-compatibile folosesc plăcuțe de expansiune cu circuite imprimate numite shield-uri, care se conectează la pinii disponibili pe Arduino. Shield-urile au capacități de a controla motoare, GPS, Ethernet, LCD sau de prototipare. Un număr de shield-uri pot fi create în regim de amator(DIY).[11][12][13]

Software[modificare | modificare sursă]

Arduino Software IDE
Arduino Uno logo.png
Dezvoltator Arduino Software
Ultima versiune 1.6.7 (17 decembrie 2015; acum 17 luni (2015-12-17)[14])
Scris în Java, C și C++
Sistem de operare Cross-platform
Tip Mediu de dezvoltare
Licență Licență LGPL sau GPL
Prezență online
arduino.cc

Programele Arduino pot fi scrise în orice limbaj de programare cu un compilator capabil să producă un cod mașină binar. Atmel oferă un mediu de dezvoltare pentru microcontrolerele sale, AVR Studio și mai nou, Atmel Studio.[15][16]

Proiectul Arduino oferă un mediu integrat de dezvoltare (IDE), care este o aplicație cross-platform, scrisă în Java. Acesta își are originile în mediul de dezvoltare pentru limbajul de programare Processing și în proiectul Wiring. Este proiectat pentru a introduce programarea în lumea artiștilor și a celor nefamiliarizați cu dezvoltarea software. Include un editor de cod cu funcții ca evidențierea sintaxelor, potrivirea acoladelor și spațierea automată și oferă mecanisme simple cu un singur click, pentru a compila și a încărca programele în plăcuța Arduino. Un program scris în IDE pentru Arduino se numește sketch.[17]

Arduino IDE suportă limbajele de programare C și C++ folosind reguli speciale de organizare a codului. Arduino IDE oferă o librărie software numită Wiring, din proiectul Wiring, care oferă multe proceduri comune de intrare și ieșire. Un sketch tipic Arduino scris în C/C++ este compus din două funcții care sunt compilate și legate cu un ciot de program main(), într-un program executabil cu o execuție ciclică:

  • setup(): o funcție care este rulată o singură dată la începutul programului, când se inițializează setările.
  • loop(): o funcție apelată în mod repetat până la oprirea alimentării cu energie a plăcuței.

După compilarea și legarea cu GNU toolchain inclus, de asemenea, în IDE, mediul de dezvoltare Arduino trimite comandă către programul avrdude pentru a converti codul executabil într-un fișier text codat hexazecimal, care poate fi încărcat în placa Arduino de un program de încărcare.

Exemplu de program[modificare | modificare sursă]

Un program Arduino tipic pentru un programator începător face ca un LED să se aprindă intermitent. Acest program este încărcat pe placă, în mod normal, de către producător. În mediul de dezvoltare Arduino, utilizatorul ar trebui să scrie un astfel de program după cum urmează:[18]


Multe plăcuțe Arduino conțin un LED, împreună cu un rezistor în serie, între pinul 13 și masă (GND), ceea ce este un amănunt util pentru multe teste.[18]

Dezvoltare[modificare | modificare sursă]

Plăcuță compatibilă Arduino UNO R3 produsă în China fără logo-ul Arduino, dar cu semne identice, inclusiv inscripția Made in Italy

Arduino are o platformă hardware open-source: referințele de design pentru Arduino sunt distribuite sub licența Creative Commons Attribution Share-Alike 2.5 și sunt disponibile pe situl Arduino. Schemele și fișierele de producție sunt și ele disponibile. Codul sursă pentru IDE este disponibil sub GNU General Public License, version 2.[19]


Aplicații[modificare | modificare sursă]

  • Proiecte utile cu Arduino(română)[20]
  • Arduino+Stepper=Encoder(română)[21]
  • Control sistem de irigații(română)[22]
  • Controlul prin internet al unui sistem de aer conditiona(A/C) cu Arduino(engleză)[23]
  • Xoscillo, osciloscop open-source(engleză)[24]
  • OBDuino, un calculator de bord care folosește interfața de diagnoză disponibilă pe toate autoturismele moderne.
  • Ardupilot, software/hardware pentru drone
  • ArduinoPhone, un telefon DIY (engleză)[25][26]
  • GertDuino, un Arduino ușor de conectat la Raspberry Pi(engleză)[27]
  • Sistem de automatizare pentru locuință cu Arduino și modul GSM SIM900(engleză)[28]
  • Proiecte și idei de proiecte cu Arduino UNO, de la HomoFaciens(engleză)[29]
  • CNC V2.0 cu Arduino și motoare de curent continuu cu control close-loop, de la HomoFaciens(engleză)[30]


Note[modificare | modificare sursă]

  1. ^ a b This is a compatible version of the MEGA 2560 R3 board, made by an alternative manufacturer.[10]

Referințe[modificare | modificare sursă]

  1. ^ Arduino - Introduction”. arduino.cc. http://arduino.cc/en/guide/introduction. 
  2. ^ How many Arduinos are "in the wild?" About 300,000”. Adafruit Industries. 15 mai 2011. http://www.adafruit.com/blog/2011/05/15/how-many-arduinos-are-in-the-wild-about-300000/. Accesat la 26 mai 2013. 
  3. ^ Arduino FAQ – With David Cuartielles”. Malmö University. 5 aprilie 2013. http://medea.mah.se/2013/04/arduino-faq//. Accesat la 24 martie 2014. 
  4. ^ a b David Kushner (26 octombrie 2011). „The Making of Arduino”. IEEE Spectrum. http://spectrum.ieee.org/geek-life/hands-on/the-making-of-arduino. 
  5. ^ Rhizome - Interview with Casey Reas and Ben Fry”. 23 septembrie 2009. http://rhizome.org/editorial/2009/sep/23/interview-with-casey-reas-and-ben-fry/. Accesat la 23 august 2014. 
  6. ^ Hardware Index”. Arduino Project. http://arduino.cc/en/main/boards. Accesat la 10 decembrie 2013. 
  7. ^ Optiboot Bootloader for Arduino and Atmel AVR. https://github.com/Optiboot/optiboot. Accesat la 1 octombrie 2015. 
  8. ^ Redirect...”. smartprj.com. http://smartprj.com/. 
  9. ^ Schmidt, M. ["Arduino: A Quick Start Guide"], Pragmatic Bookshelf, January 22, 2011, Pg. 201
  10. ^ Arduino - ArduinoBoardMega2560”. arduino.cc. http://www.arduino.cc/en/Main/ArduinoBoardMega2560. 
  11. ^ Arduino breadboard shield: $10 & 10 mins”. todbot blog. http://todbot.com/blog/2006/07/11/arduino-breadboard-shield/. 
  12. ^ Arduino Shields for Prototyping”. tigoe.net. http://www.tigoe.net/pcomp/code/arduinowiring/26. 
  13. ^ Jonathan Oxer. „Arduino Shield list. http://shieldlist.org/. Accesat la 5 noiembrie 2013. 
  14. ^ Arduino Software Release Notes”. Arduino Project. http://arduino.cc/en/Main/ReleaseNotes. Accesat la 31 mai 2013. 
  15. ^ Using Atmel Studio for Arduino development”. Megunolink.com. http://www.megunolink.com/Building_an_Arduino_project_with_MegunoLink_and_Atmel_Studio_(Blink_Tutorial). Accesat la 18 ianuarie 2013. 
  16. ^ Using AVR Studio for Arduino development”. Engblaze.com. http://www.engblaze.com/tutorial-using-avr-studio-5-with-arduino-projects/. Accesat la 18 ianuarie 2013. 
  17. ^ Programming Arduino Getting Started with Sketches”. McGraw-Hill. 8 noiembrie 2011. http://www.amazon.com/Programming-Arduino-Getting-Started-Sketches/dp/0071784225/ref=sr_1_1?s=books&ie=UTF8&qid=1364494138&sr=1-1&keywords=arduino+sketches. Accesat la 28 martie 2013. 
  18. ^ The arduino source code”. The arduino source code. https://github.com/arduino/Arduino. 
  19. ^ Proiecte cu Arduino de Nicu Florica. nicuflorica.blogspot.ro . Accesat la data de 2016-02-24
  20. ^ Arduino+Stepper=Encoder de Cristian Petrescu. hobbyelectro.blogspot.ro . Accesat la data de 2016-02-24
  21. ^ Control sistemd e irigații. creativechip.ro. Accesat la data de 2016-02-25
  22. ^ Air Conditioning web controlled by Arduino by MoniCris. Instructables.com (2015-08-22). Accesat la data de 2016-02-24
  23. ^ xoscillo – A software oscilloscope that acquires data using an arduino or a parallax (more platforms to come). – Google Project Hosting”. Code.google.com. https://code.google.com/p/xoscillo/. Accesat la 18 ianuarie 2013. 
  24. ^ ArduinoPhone. Instructables.com (2013-07-17). Accesat la data de 2013-08-04.
  25. ^ DIY Cellphone, MIT
  26. ^ Raspberry Pi Spy. Introducing The GertDuino Add-on Board For Raspberry Pi. Accesat la data de 2014-11-09.
  27. ^ Home automation system using Arduino and SIM900 GSM module de Timofte Andrei. Instructables.com (2014-07-28) . Accesat la data de 2016-02-24
  28. ^ Arduino projects by Homofaciens.de. Homofaciens.de . Accesat la data de 2016-02-24
  29. ^ CNC V2.0. Homofaciens.de . Accesat la data de 2016-02-25

Citește mai departe[modificare | modificare sursă]

  • Getting Started with Arduino; Massimo Banzi, Michael Shiloh; 262 pages; 2014; ISBN 1-4493-6333-4.
  • Arduino For Dummies; John Nussey; 446 pages; 2013; ISBN 978-1118446379.
  • Programming Arduino Next Steps: Going Further with Sketches; Simon Monk; 2013; ISBN 978-0071830256.
  • Exploring Arduino: Tools and Techniques for Engineering Wizardry; Jeremy Blum; 384 pages; 2013; ISBN 978-1118549360.
  • Arduino Workshop: A Hands-On Introduction with 65 Projects; John Boxall; 392 pages; 2013; ISBN 978-1593274481.
  • Beginning C for Arduino: Learn C Programming for the Arduino and Compatible Microcontrollers; Jack Purdum; 280 pages; 2012; ISBN 978-1430247760.
  • Programming Arduino: Getting Started With Sketches; Monk Simon; 162 pages; 2011; ISBN 978-0071784221.
  • Make: Electronics (Learning by Discovery); Charles Platt; 352 pages; 2009; ISBN 978-0596153748.

Legături externe[modificare | modificare sursă]

Commons
Wikimedia Commons conține materiale multimedia legate de Arduino