Software-ul Arduino | |
---|---|
Arduino IDE cu un exemplu de program simplu. | |
Tip de | Mediu de dezvoltare integrat |
Dezvoltator | Software-ul Arduino |
Scris in | C++ |
Sistem de operare | Multiplatformă |
Platformă hardware | AVR |
ultima versiune | 1.8.19 [1] ( 20 decembrie 2021 ) |
Licență | LGPL sau GPL |
Site-ul web | arduino.cc |
Fișiere media la Wikimedia Commons |
Arduino este o marcă de instrumente hardware și software pentru construirea și prototiparea sistemelor simple, modelelor și experimentelor în electronică , automatizare , automatizare a proceselor și robotică .
Partea de software constă dintr-un shell software liber ( IDE ) pentru scrierea programelor, compilarea acestora și programarea hardware-ului. Partea hardware este un set de plăci de circuite imprimate asamblate , vândute atât de producătorul oficial, cât și de producătorii terți. Arhitectura complet deschisă a sistemului vă permite să copiați liber [2] sau să adăugați la linia de produse Arduino.
Este folosit atât pentru a crea obiecte de sine stătătoare, cât și pentru a se conecta la software prin interfețe cu fir și fără fir. Potrivit pentru utilizatorii începători cu un prag minim de intrare de cunoștințe în domeniul dezvoltării și programarii electronice.
Programarea se desfășoară în întregime prin propriul shell software gratuit Arduino IDE (distribuit în condițiile GPLv2) [3] [4] . Acest shell conține un editor de text , un manager de proiect, un preprocesor , un compilator și instrumente pentru încărcarea programului în microcontroler. Shell-ul este scris în Java pe baza proiectului Processing și rulează pe Windows , Mac OS X și Linux . Se folosește kitul de bibliotecă Arduino (sub licență LGPL) [4] [5] .
Limbajul de programare Arduino se numește Arduino C și este un limbaj C++ cu framework -ul Wiring [6] , are unele diferențe în ceea ce privește scrierea codului care este compilat și construit folosind avr-gcc , cu caracteristici care facilitează scrierea unui cod de lucru . program - există un set de biblioteci, inclusiv include funcții și obiecte. La compilarea unui program, IDE-ul creează un fișier temporar * .cpp .
Așa arată textul complet al celui mai simplu program (schiță) de a clipi un LED conectat la al 13-lea pin (pin) al controlerului Arduino cu o perioadă de 2 secunde (jumătate de perioadă, adică 1 secundă LED-ul este pornit, o jumătate de perioadă este oprită) [7] . Este disponibil în mediul de dezvoltare la Schiță>Exemple>Standard>Blink.
void setup () { pinMode ( 13 , IEȘIRE ); // Atribuiți portul 13 ca port de ieșire } buclă goală ( ) { digitalWrite ( 13 , HIGH ); // Setați portul 13 la starea „1”, LED-ul se aprinde cu întârziere ( 1000 ); // Întârziere cu 1000 de milisecunde digitalWrite ( 13 , LOW ); // Setați portul 13 la starea „0”, LED-ul stinge întârzierea ( 1000 ); // Întârziere 1000 milisecunde }Toate funcțiile utilizate în acest exemplu sunt funcții de bibliotecă. Arduino IDE vine cu multe programe eșantion încorporate. Există o traducere a documentației Arduino în rusă [8] [9] .
Programul este încărcat în microcontrolerul Arduino printr-un bootloader special preprogramat (toate microcontrolerele Arduino sunt vândute cu acest bootloader). Bootloader-ul se bazează pe Atmel AVR Application Note AN109. Încărcătorul poate funcționa prin interfețe RS-232 , USB sau Ethernet , în funcție de compoziția periferiei unei anumite plăci de procesor. Unele variante, precum Arduino Mini sau Boarduino neoficial, necesită un adaptor separat pentru programare.
Utilizatorul poate programa independent bootloader-ul într-un microcontroler pur. Pentru aceasta, suportul pentru programator este integrat în IDE bazat pe proiectul AVRDude . Sunt acceptate mai multe tipuri de programatori ieftini populari.
Popularitatea, deschiderea și simplitatea platformei Arduino a provocat un val mare de soluții software terțe. Practic, acestea sunt soluții pentru integrarea compilatorului Arduino și a încărcătorul (încărcătorul) în shell-urile existente pentru programatori (IDE). O listă mare a acestor instrumente este disponibilă aici . Printre acestea se numără atât instrumente profesionale precum Proccesing , Eclipse [10] , Microsoft Visual Studio [11] , Atmel Studio , cât și instrumente pentru copii precum Scratch pentru Arduino .
Limbaje de programare graficăMinibloq
Scratch pentru Arduino
Snap4Arduino
Fritzing
Fritzing
Fritzing
Sub marca Arduino, sunt produse mai multe plăci cu microcontroler ( plăci engleze ) și plăci de expansiune (așa-numitele scuturi [13] - transliterație din scuturi engleze ) . Majoritatea plăcilor cu microcontroler sunt echipate cu setul de legare minim necesar pentru funcționarea normală a microcontrolerului (stabilizator de putere, rezonator cu cuarț, lanțuri de resetare etc.).
Conceptul Arduino nu include o carcasă sau o structură de montare. Dezvoltatorul alege metoda de instalare și protecție mecanică a plăcilor pe cont propriu sau cu ajutorul unor companii terțe. Producătorii terți produc, de asemenea, kituri de electromecanică robotică, concentrate pe lucrul în combinație cu plăci Arduino [14] . Producătorii independenți produc, de asemenea, o gamă largă de diferiți senzori și actuatoare care sunt mai mult sau mai puțin compatibile cu Arduino.
Plăcile clasice Arduino și compatibile cu Arduino sunt proiectate pentru a fi stivuite prin intermediul anteturilor de pin. Astfel, placa de bază cu microprocesor este completată cu perifericele și conexiunile externe necesare.
Există plăci Uno [15] , Pro, Leonardo [16] , Mega 2560 [17] , Due [18] și plăci precum Zero [19] cu un set extins de anteturi de pin pentru ele. Plăcile de expansiune de lungime standard pot fi instalate și în plăcile de procesor extinse.
Sunt disponibile plăci mai mici separate - Nano [20] , Nano Every [21] și Micro [22] - în dimensiunile pachetelor DIP de microcircuite. Sunt proiectate pentru a fi instalate pe panouri. Nu există carduri de expansiune pentru ei.
Mai târziu, linia Arduino MKR [23] a fost lansată într-un design similar. Au un set mic de carduri de expansiune periferice.
Proiecte secundareÎn plus față de construcțiile standard Arduino, dezvoltatorii terți au creat multe clone miniaturale, păstrând doar compatibilitatea arhitecturală și software. Dintre aceste clone se remarcă linia de produse Microduino [24] [25] . Linia conține un set complet de module de procesor compatibile constructiv, module de comunicație, senzori și actuatoare, practic nu inferioare gamei de module clasice Arduino. Ca și Arduino, plăcile sunt asamblate în stive. Linia este concepută în două modele originale:
Cea mai mică clonă a fost lansată sub marca comercială Femtoduino [26] . Dimensiunile sale sunt de numai 15*20 mm, inclusiv conector micro USB , regulator de tensiune și kit complet Arduino Uno I/O. Aceeași companie a lansat cea mai „umplută” clonă în miniatură sub marca înregistrată IMUduino. Aceasta este o clonă Arduino Leonardo cu suport USB Host (tastatură și mouse), Bluetooth 4 Low Energy, giroscop / accelerometru cu șase axe, magnetometru cu trei axe ( busolă ), barometru . Dimensiunea dispozitivului este de 16*40 mm. În prezent, proiectul nu oferă plăci de extensie compatibile cu pinout.
Posibilitatea utilizării produselor Arduino în automatizările industriale critice este subiectul unei dezbateri aprinse. Cu toate acestea, nimic nu vă împiedică să echipați produsele bazate pe Arduino cu obiecte mici de automatizare sau de colectare a datelor. Pentru a facilita astfel de sarcini, o serie de companii terțe produc module structural complete, echipate cu blocuri de borne tradiționale pentru automatizare, carcase pentru șină DIN , instalații I/O protejate electric sau izolate galvanic .
Arduino în sine nu fabrică astfel de produse, ci vinde produse de la Industrial Shields în magazinul său . De asemenea, produse cunoscute ale companiei Archiduino . Soluțiile ambelor companii se bazează pe procesoare AVR. Companiile oferă un set de carcase pentru șină DIN în care un proiectant poate instala o gamă de module periferice. Industruino oferă produse atât cu AVR, cât și cu SAMD21. Sub marca comercială CONTROLLINO , o linie de clone Arduino MEGA 2560 este produsă într-un design industrial cu Ethernet prin cablu. NORVI oferă modele industriale atât pentru procesoare AVR, cât și pentru procesoare ESP32.
Pe lângă producătorii de echipamente pentru hobby, marile companii specializate în automatizări industriale se alătură și mișcării open source Arduino. De exemplu, AutomationDirect a lansat o linie de controlere industriale și module I/O care sunt compatibile cu linia Arduino MKR, atât la nivel programatic, cât și la nivelul plăcilor de expansiune. [27] Compania a lansat, de asemenea, un plus la Arduino IDE cu un limbaj de programare grafică și un set de biblioteci de automatizare. [12]
Microcontrolerele pentru Arduino se disting prin prezența unui bootloader pre-flash în ele ( în engleză bootloader ) . Cu acest bootloader, utilizatorul își încarcă programul pe microcontroler fără a utiliza programatori hardware tradiționali separati , deși unele modele Arduino nu o fac. Bootloader-ul este conectat la computer prin interfața USB (dacă este disponibil pe placă) sau folosind un adaptor separat UART -USB. Suportul pentru bootloader este încorporat în Arduino IDE și se poate face cu un singur clic.
În cazul suprascrierii bootloader-ului sau cumpărării unui microcontroler fără bootloader, dezvoltatorii oferă posibilitatea de a flash-uploader-ul în microcontroler pe cont propriu. Pentru a face acest lucru, Arduino IDE are suport încorporat pentru mai mulți programatori populari ieftini, iar majoritatea plăcilor Arduino au un antet pin pentru programarea în circuit ( ICSP pentru AVR , JTAG sau SWD [en] pentru ARM ).
Arduino IDE are capacitatea încorporată de a vă crea propriile platforme hardware și software. Această oportunitate este folosită de companiile terțe care își adaugă seturile de plăci și încărcătoare de compilator la IDE-ul Arduino.
AVRÎn linia clasică de dispozitive Arduino, microcontrolerele Atmel AVR sunt utilizate în principal . Următoarele MK-uri pot fi găsite pe aceste plăci comune:
Unele plăci pot avea diferite porturi disponibile și viteze de ceas.
ARMTreptat, procesoarele ARM au început să apară în linia de plăci. Inițial, era AT91SAM3X8E pe o placă de design clasic (Due). Mai târziu, a apărut o linie de plăci Arduino MKR în design DIP , echipate cu un controler SAMD21 ( Cortex-M0 , 48 MHz, 256 Kb Flash, 32 Kb RAM).
Din 2020, modulele Portenta cu ARM Cortex-M7 (STM32H747 @ 480 MHz) au apărut în aceeași construcție MKR. [28]
Tensiunea de alimentare pentru procesoarele ARM de pe plăcile Arduino este de 3,3 volți. Senzorii acestor plăci trebuie să fie evaluați pentru aceeași tensiune.
ESP8266Dezvoltatorii terți au portat suport pentru popularul microcontroler Wi-Fi ESP8266 și clona sa ESP12 la Arduino. Acum puteți compila și încărca firmware pentru ESP8266 cu schițele și suportul Wi-Fi direct din Arduino IDE , obținând un circuit cu o singură placă cu suport Wi-Fi.
Plăcile cu un ESP8266 legat sunt vândute sub marca Wemos, au 2 factori de formă (unul este ca Uno, al doilea este unul mai mic) și două generații în fiecare factor de formă (R1 și R2).
O descriere detaliată în limba rusă a procesului de instalare și a API-ului disponibil este aici , un exemplu despre cum funcționează este aici .
Intel x86Ca parte a unei colaborări cu terțe părți, a fost inclus suport pentru unele hardware Intel x86 în Arduino IDE. Intel Galileo(Procesor Intel Quark X1000 400 MHz), Intel Edisonși Arduino 101 [29] - plăci compatibile cu Arduino bazate pe arhitectura Intel x86. Plăcile sunt compatibile mecanic și electric cu plăcile periferice Arduino. Plăcile rulează propriul sistem de operare Linux , deasupra căruia rulează o aplicație care vă permite să descărcați și să executați schițe Arduino. [treizeci]
Unele modele de plăci de microcontrolere Vezi și Lista plăcilor compatibile cu Arduino.Unele modele de plăci de microcontrolere: [31]
Lista plăcilor de microcontrolere populare ale proiectului ArduinoArduino | MK | Tensiunea de alimentare | Memorie flash , KB |
EEPROM , KB |
SRAM , KB |
Intrări/ieșiri binare |
…c PWM |
Intrări analogice |
interfață USB | Alte interfețe |
Dimensiuni, mm |
---|---|---|---|---|---|---|---|---|---|---|---|
Datorită | Atmel SAM3X8E ARM Cortex-M3 | 3,3 V | 512 | Nu | 256 | 54 | 12 | 12+2 DAC-uri | ATmega16U2 | CAN , JTAG , I2C | 101,6 × 53,3 |
ADK | ATmega2560 | 5 V | 256 | patru | opt | 54 | paisprezece | 16 | ATmega8U2 | MAX3421E USB gazdă |
101,6 × 53,3 |
BT (Bluetooth) | ATmega328 | 5 V | 32 | unu | 2 | paisprezece | patru | 6 | Nu | Bluegiga WT11 Bluetooth | |
Diecimila | ATmega168 | 5 V | 16 | 0,5 | unu | paisprezece | 6 | 6 | FTDI | 68,6 × 53,3 | |
duemilanove | ATmega168/328P | 5 V | 16/32 | 0,5/1 | 1/2 | paisprezece | 6 | 6 | FTDI | 68,6 × 53,3 | |
ethernet | ATmega328 | 5 V | 32 | unu | 2 | paisprezece | patru | 6 | Nu | Wiznet Ethernet MicroSD |
|
Fio | ATmega328P | 3,3 V | 32 | unu | 2 | paisprezece | 6 | opt | Nu | 40,6×27,9 | |
Leonardo | Atmega32u4 | 5 V | 32 | unu | 2 | paisprezece | 6 | 12 | Atmega32u4 | 68,6 × 53,3 | |
LilyPad | ATmega168V sau ATmega328V | 2,7-5,5V | 16 | 0,5 | unu | paisprezece | 6 | 6 | Nu | 50 ⌀ | |
Mega | ATmega1280 | 5 V | 128 | patru | opt | 54 | paisprezece | 16 | FTDI | 101,6 × 53,3 | |
Mega2560 | ATmega2560 | 5 V | 256 | patru | opt | 54 | paisprezece | 16 | ATmega8U2 ATmega16U2 | 101,6 × 53,3 | |
Nano | ATmega168 sau ATmega328 | 5 V | 16/32 | 0,5/1 | 1/2 | paisprezece | 6 | opt | FTDI | 43×18 | |
O.N.U | ATmega328P | 5 V | 32 | unu | 2 | paisprezece | 6 | 6 | ATmega8U2 ATmega16U2 | 68,6 × 53,3 |
Porturile de intrare-ieșire ale microcontrolerelor sunt proiectate sub formă de bare de pini. De regulă, nu există tamponare , protecție, conversie de nivel. Microcontrolerele sunt alimentate la 5V sau 3.3V, în funcție de modelul plăcii. În consecință, porturile au aceeași gamă de tensiuni de intrare și ieșire permise. Programatorul are acces la unele caracteristici speciale ale porturilor I/O ale microcontrolerului, cum ar fi modularea lățimii impulsului ( PWM ), convertor analog-digital ( ADC ), UART , SPI , interfețe I2C . Numărul și capacitățile porturilor I/O sunt determinate de versiunea specifică a plăcii cu microprocesor.
Pe lângă porturi, perifericele sunt uneori instalate pe plăcile de microcontroler sub formă de interfețe USB sau Ethernet. Setul opțional de periferice externe pe modulele de expansiune include [32] :
Producătorii terți produc o gamă largă de senzori și actuatoare care se conectează la Arduino. De exemplu, giroscoape , busole , manometre , higrometre , termometre , module relee, indicatoare, tastaturi etc.
FPGAExistă plăci de procesor compatibile cu Arduino care au un cip logic programabil (FPGA) ca periferic . De exemplu, compania Arduino produce însăși placa Arduino MKR Vidor 4000, pe care, pe lângă procesor, este instalat și Intel Cyclone FPGA. Un programator din mediul Arduino poate încărca funcții presetate în FPGA, cum ar fi lucrul cu imagini, sunet, porturi suplimentare UART , SPI , PWM, etc. Cu toate acestea, programarea gratuită a FPGA din mediul Arduino nu este oferită, pentru aceasta. trebuie să utilizați mediul de dezvoltare al producătorului FPGA — Intel Quartus.
Există și proiectul Papilio [36] , care dezvoltă o linie de plăci compatibile cu Arduino cu logica programabilă Xilinx ca periferice. Pe lângă soluțiile gata făcute pentru utilizarea FPGA ca periferic, proiectul oferă integrarea mediului de programare Arduino și a mediului de programare FPGA a editorului de schemă Xilinx ISE. Utilizatorul poate edita FPGA într-un mod similar cu desenarea circuitelor electrice.
Denumirea companiei și a platformei provine de la denumirea cramei Ivrea cu același nume , frecventată de fondatorii proiectului, care, la rândul său, a fost numită după regele Italiei, Arduin de Ivrea [37] .
Istoria proiectului începe cu cursuri de interfață om-mașină sub marca Interaction Design Institute Ivreacare exista la începutul anilor 2000 în orașul Ivrea din Italia . Pentru instruire au fost folosite module sub marca BASIC Stamp, care a costat aproximativ 50 USD. În 2003, Hernando Barragán creează versiunea inițială a noii platforme hardware și software Wiring , ca parte a studiilor sale.. Scopul proiectului a fost de a crea un mediu ieftin și ușor pentru învățarea inițială a programării. În același an, Massimo Banzi (șeful Hernando Barragana), David Mellis și David Cuartillier au forked Wiring , numind-o Arduino.
Echipa originală Arduino a fost formată din Massimo Banzi, David Cuartillier, Tom Igo, Gianluca Martino și David Mellis. La începutul lui 2008, cei cinci co-fondatori ai proiectului Arduino au creat Arduino LLC, care deține drepturile de autor și mărcile comerciale ale companiei din SUA. [38] Alte companii au fost implicate în producție, plătind plăți Arduino LLC pentru utilizarea drepturilor de autor. În același an, Gianluca Martino, în secret de la partenerii săi, înregistrează pentru compania sa Smart Projects (redenumită ulterior Arduino SRL) o parte din mărcile Arduino din unele țări. În 2015, Arduino LLC a început un litigiu împotriva Arduino SRL. În 2016, conflictul este rezolvat prin fuziunea ambelor companii pentru a forma Arduino AG.
Nucleul echipei de dezvoltare Arduino sunt: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis, Nicholas Zambetti și Valery Shumyatsky (Valeriy Shymatskiy).
Din 2008, a început o divizare în companie. Gianluca Martino a înregistrat o altă companie, pe care a reușit să-i dea drepturi de autor asupra mărcii Arduino în unele țări. Noua companie a creat o ramură alternativă de vânzări pentru produsele originale Arduino la arduino.org . Compania originală controlează vânzările prin intermediul site- ului web arduino.cc [39] [40] [41] . Setul de produse noi de pe site-uri a variat. Au existat, de asemenea, două ramuri ale IDE-ului Arduino care suportau un set diferit de plăci și biblioteci. Aceleași nume și numere de versiune IDE suprapuse au fost confuze. Pe 1 octombrie 2016, la World Maker Faire din New York , liderii Arduino LLC și Arduino SRL au anunțat fuziunea companiilor [42] .
Documentația, firmware-ul și desenele Arduino sunt licențiate sub o licență Creative Commons Attribution ShareAlike 3.0 și sunt disponibile pe site-ul oficial Arduino. Este disponibil și un desen PCB pentru unele versiuni Arduino. [31] Codul sursă pentru IDE a fost publicat și este disponibil sub licența GPLv2 . [43] Bibliotecile folosesc licența LGPL.
Deși documentația și codul hardware sunt publicate sub o licență „ copyleft ”, dezvoltatorii și-au exprimat dorința ca numele „Arduino” (și derivatele acestuia) să fie marca comercială pentru produsul oficial și să nu fie utilizate pentru lucrări derivate fără permisiune. Cartea albă despre utilizarea numelui Arduino subliniază faptul că proiectul este deschis oricui dorește să lucreze la un produs oficial. [44]
Reprezentantul oficial al Arduino în Rusia este compania Linuxcenter .
Proiectul Arduino a primit o mențiune de onoare la premiile Prix Ars Electronica 2006 la categoria Comunități digitale. [45] [46]
![]() | ||||
---|---|---|---|---|
Foto, video și audio | ||||
Site-uri tematice | ||||
Dicționare și enciclopedii | ||||
|
Calculatoare cu o singură placă | |
---|---|
Inteligența ambientală | |
---|---|
Concepte |
|
Tehnologie |
|
Platforme | |
Aplicație |
|
Primii exploratori |
|
Vezi si |
|