Exemple de programare Arduino. Limbajul de programare Arduino

Arduino este gata consiliu de dezvoltareși un limbaj de programare foarte simplu, care facilitează începerea cu microcontrolere cu prețul dimensiunii și vitezei programului. Recent, Atmel a adăugat suport pentru bootloader-ul Arduino în AVR Studio, adică puteți scrie și încărca programe scrise în C, C++ sau Assembler fără un programator. Mai mult, puteți scrie cod în limbajul de procesare/cablare în AVR Studio.
Recomand să începeți citirea articolului cu actualizarea la sfârșit!
În acest articol vă propunem instrucțiuni pas cu pas la instalarea software-ului de programare Arduino folosind AVR Studio. Am luat drept bază recenzia extensiilor AVR Studio de pe site-ul easyelectronics.ru. Vom rula toate exemplele pe placa noastră.

Instalarea Arduino IDE

Folosim Arduino versiunea 1.5.2. Îl puteți descărca de pe site-ul oficial. Ultima versiune(1.6.2-r2 la momentul scrierii) din anumite motive nu funcționează cu microcontrolerul Atmega8.
Veți descărca o arhivă zip cu mediul deja implementat. Tot ce rămâne este să-l despachetezi în directorul programului.

Instalarea Atmel Studio

UPD

Văd că subiectul este popular și vreau să clarific câteva puncte.
Există trei moduri în care am încercat să programez o placă compatibilă cu Arduino în C:

  1. Scrieți direct în Arduino IDE în C. Trebuie să înțelegeți că Procesarea/Cablarea nu este un limbaj, ci pur și simplu un set de macrocomenzi și biblioteci. Când scrieți în el, se uită în anteturile sale, vă convertește codul care poate fi citit de om în C și apoi se compilează cu compilatorul standard AVR GCC. Dacă scrieți cod în C, atunci acesta nu va accesa bibliotecile sale și va compila imediat totul așa cum ar trebui, DAR!... în același timp, linkerul va adăuga la proiectul dvs. orice dorește. Avantajul este că nu aveți nevoie de altceva decât de IDE-ul Arduino. Dezavantajul este magia, care este ascunsă de dezvoltator. Această metodă este adesea folosită în cazurile în care este necesară implementarea unei funcții pe care prietenii noștri italieni nu au prevăzut-o în limba lor.
  2. Metoda propusă în acest articol (de fapt, cea mai ciudată, deoarece îmbină toate neajunsurile). Din punct de vedere ideologic, această extensie este necesară pentru a programa în Procesare/Wiring și pentru a utiliza Atmel Studio ca interfață. Există și o funcționalitate plătită care vă permite să depanați codul, dar nu am încercat-o. Deci, în esență, la programare, totul se întâmplă la fel ca în prima opțiune, dar lucrezi într-un IDE diferit. În același timp, din punct de vedere al rezultatului, obțineți același lucru. Dacă ați programat Arduino și ați decis să o faceți în C, nu ezitați să scrieți direct în IDE-ul Arduino. Dacă nu vă place interfața, puteți utiliza un editor normal (recomand Sublime Text). Dacă lucrați în Atnel Studio și doriți să flashați placa direct de pe interfața sa sau să scrieți Procesare/Cablare în ea (brusc!), atunci acest addon este pentru dvs. Apropo, studioul funcționează doar sub Windows, adică metoda nu este pentru toată lumea. Am scris acest articol doar pentru că am găsit o metodă nouă pentru mine, dar nu-mi place.
  3. A treia metodă, mi se pare, este cea mai bună pentru un utilizator avansat. La început, totul se întâmplă ca de obicei - scrieți cod, compilați și obțineți un fișier hex. Apoi, amintindu-ți că aveți o placă obișnuită de depanare cu un bootloader în mâini, descărcați un utilitar care poate accesa acest bootloader și vă poate transfera codul în memorie. Am postat deja instrucțiuni pas cu pas. În acest caz, dezvoltatorul primește control maxim mai presus de toate funcțiile, dar pot apărea probleme și din cauza utilizării unui bootloader terță parte.

Aș dori să dezvălui încă un lucru care se întâmplă în Arduino. Orice ai face, Arduino IDE va ​​porni cu siguranță perifericele în sine. De exemplu, va porni temporizatoarele. Și dacă încercați să lucrați cu ele în C, este posibil să descoperiți că nu funcționează așa cum vă așteptați. Și asta poate deveni o problemă reală. Și există multe astfel de exemple, adică există multe potențiale greble, cârje și bug-uri.
Dacă pur și simplu încărcați un fișier hex, atunci problemele pot apărea numai din cauza bootloader-ului. Până acum am găsit doar unul - după ce bootloader-ul este finalizat, UART rămâne activat. Dacă scrieți prin Arduino IDE, atunci acesta se va insera în codul dvs. pentru a-l dezactiva și cine știe ce altceva. Dacă vrei doar să-ți alergi hex, atunci nu vei obține controlul asupra picioarelor UART. Va trebui să adăugați manual o dezactivare UART la proiectul dvs. Acest artefact și exemplele de cod sunt descrise în detaliu în .
Ei bine, în concluzie. Majoritatea plăcilor compatibile cu Arduino au un conector pentru un programator ISP. Dacă cumpărați acest programator de la chinezi cu 3-4 dolari, veți uita rapid de toate aceste probleme.

Vom fi foarte bucuroși dacă ne susțineți resursa și ne vizitați magazinul de produse.

Studierea microcontrolerelor pare complicată și de neînțeles? Înainte să apară Arudino, nu a fost chiar ușor și necesar set specific programatori și alte echipamente.

Este un fel designer electronic. Scopul inițial al proiectului este de a permite oamenilor să învețe cu ușurință cum să programeze dispozitive electronice, în timp ce plătesc timp minim partea electronica.

Asamblare cele mai complexe scheme iar plăcile pot fi conectate fără fier de lipit, dar folosind jumperi cu conexiuni detașabile"tată și mamă". În acest fel, pot fi conectate atât elementele montate, cât și plăcile de expansiune, care în lexiconul Arduino sunt numite pur și simplu „Shields”.

Care este prima placă Arduino pe care o cumpără pentru un începător?

Este considerată placa de bază și cea mai populară. Această placă este dimensionată ca Card de credit. Destul de mare. Cele mai multe scuturi care sunt la vânzare se potrivesc perfect cu el. Pe placa de conectare dispozitive externe sunt amplasate cuiburi.

În magazinele autohtone în 2017, prețul său este de aproximativ 4-5 dolari. Pe modele moderne inima sa este Atmega328.

Imaginea plăcii Arduino și explicația funcțiilor fiecărui pin, Arduino UNO pinout

Microcontrolerul de pe această placă este un cip lung într-un pachet DIP28, ceea ce înseamnă că are 28 de picioare.

Următoarea placă cea mai populară costă aproape de două ori mai mult decât cea anterioară - 2-3 dolari. Aceasta este o taxă. Plăcile actuale sunt construite pe același Atmega328, sunt similare funcțional cu UNO, diferențele sunt în dimensiune și soluție pentru coordonarea cu USB, mai multe despre asta mai târziu. O altă diferență este că mufele în formă de pin sunt prevăzute pentru conectarea dispozitivelor la placă.

Numărul de pini (picioare) acestei plăci este același, dar puteți vedea că microcontrolerul este realizat în mai multe corp compact TQFP32, ADC6 și ADC7 sunt adăugate la carcasă, celelalte două picioare „extra” dublează magistrala de alimentare. Dimensiunea sa este destul de compactă - cam de dimensiunea degetului mare.

A treia placă cea mai populară este aceasta, nu are port USB iar pentru conectarea la un computer, vă voi spune cum se face conexiunea puțin mai târziu.

Aceasta este cea mai mică placă dintre toate revizuite, altfel este similară cu cele două precedente, iar inima sa este încă Atmega328. Nu vom lua în considerare alte plăci, deoarece acesta este un articol pentru începători, iar compararea plăcilor este subiectul unui articol separat.

În partea de sus este o diagramă Conexiuni USB-UART, pinul „GRN” - direcționat către circuitul de resetare al microcontrolerului, poate fi numit diferit, veți afla de ce este necesar mai târziu.

Dacă UNO este convenabil pentru prototipare, atunci Nano și Pro Mini convenabil pentru versiuni finale proiectul tău pentru că ocupă puțin spațiu.

Cum se conectează Arduino la computer?

Arduino Uno și Nano se conectează la computer prin USB. Cu toate acestea, nu există suport hardware pentru portul USB; proiectarea circuitelor conversie de nivel, numită de obicei USB-to-Serial sau USB-UART (rs-232). În același timp, un bootloader special Arduino este introdus în microcontroler, ceea ce permite intermiterea prin aceste magistrale.

Arduino Uno implementează această conexiune pe un microcontroler cu Suport USB- ATmega16U2 (AT16U2). Se pare că este necesar un microcontroler suplimentar pe placă pentru a flash-ul firmware-ului microcontrolerului principal.

În Arduino Nano, acest lucru este implementat de cipul FT232R sau de analogul său CH340. Acesta nu este un microcontroler - este un convertor de nivel, acest fapt facilitează asamblarea Arduino Nano de la zero cu propriile mâini.

De obicei, driverele sunt instalate automat atunci când conectați placa Arduino. Totuși, când am cumpărat copie chineză Arduino Nano, dispozitivul a fost identificat, dar nu a funcționat, pe convertor a fost lipit un autocolant rotund cu informații despre data lansării, nu știu dacă asta a fost făcut intenționat, dar când l-am dezlipit, am văzut marcajul CH340.

Nu am mai întâlnit asta până acum și am crezut că toate convertoarele USB-UART au fost asamblate pe FT232, a trebuit să descarc driverele, sunt foarte ușor de găsit căutând „drivere Arduino ch340”. După o instalare simplă, totul a funcționat!

Microcontrolerul poate fi alimentat și prin același port USB, de exemplu. daca il conectezi la un adaptor de la telefon mobil- sistemul dumneavoastră va funcționa.

Ce ar trebui să fac dacă placa mea nu are USB?

A plati Arduino Pro Mini are dimensiuni mai mici. Acest lucru a fost realizat prin eliminare conector USB pentru firmware și același convertor USB-UART. Prin urmare, trebuie achiziționat separat. Cel mai simplu convertor pentru CH340 (cel mai ieftin), CPL2102 și FT232R, se vinde de la 1 USD.

Când cumpărați, acordați atenție la ce tensiune este proiectat acest adaptor. Pro mini vine în versiuni de 3,3 și 5 V, convertoarele au adesea un jumper pentru comutarea tensiunii de alimentare.

La firmware Pro Mini, chiar înainte de a începe, trebuie să apăsați RESET, cu toate acestea, în convertoarele cu DTR acest lucru nu este necesar, diagrama de conectare este în figura de mai jos.

Acestea sunt conectate cu terminale speciale „Mama-Mama” (femeie-femeie).

De fapt, toate conexiunile se pot face folosind astfel de terminale (Dupont), acestea vin fie cu prize pe ambele părți, fie cu mufe, fie cu priză pe o parte și mufă pe cealaltă.

Cum se scriu programe pentru Arduino?

Pentru a lucra cu schițe (numele firmware-ului în limba Arduino), există un mediu integrat special pentru Dezvoltare Arduino IDE, îl puteți descărca gratuit de pe site-ul oficial sau din orice resursă tematică, de obicei, nu există probleme cu instalarea.

Așa arată interfața programului. Puteți scrie programe într-un limbaj simplificat C AVR special conceput pentru Arduino, în esență un set de biblioteci numite Wiring, precum și în C AVR pur. A cărui utilizare simplifică codul și accelerează funcționarea acestuia.

În partea de sus a ferestrei există un meniu familiar unde puteți deschide un fișier, setări, selectați placa cu care lucrați (Uno, Nano și multe, multe altele) și, de asemenea, puteți deschide proiecte cu exemple gata făcute cod. Mai jos este un set de butoane pentru lucrul cu firmware-ul, veți vedea alocarea tastelor în figura de mai jos.

În partea de jos a ferestrei există o zonă pentru afișarea informațiilor despre proiect, starea codului, firmware-ul și prezența erorilor.

Bazele programării Arduino IDE

La începutul codului trebuie să declarați variabile și să includeți biblioteci suplimentare, dacă există, acest lucru se face după cum urmează:

#include biblioteka.h; // conectați biblioteca numită „Biblioteka.h”

#define changenaya 1234; // Declarați o variabilă cu valoarea 1234

Comanda Define permite compilatorului să aleagă tipul de variabilă în sine, dar o puteți seta manual, de exemplu, un întreg int sau un floating-point float.

int led = 13; // a creat variabila „led” și i-a atribuit valoarea „13”

Programul poate determina starea pinului ca 1 sau 0. 1 este o unitate logică, dacă pinul 13 este egal cu 1, atunci tensiunea de pe piciorul său fizic va fi egală cu tensiunea de alimentare a microcontrolerului (pentru Arduino UNO și Nano - 5 V)

Record semnal digital efectuat de comanda digitalWrite (pin, valoare), de exemplu:

digitalWrite(led, high); //scrieți unul la pinul 13 (am declarat-o mai sus) jurnal. Unități.

După cum puteți înțelege, porturile sunt accesate în funcție de numerotarea de pe placă, corespunzătoare numărului. Iată un exemplu similar cu codul anterior:

digitalWrite(13, mare); // setați pinul 13 la unu

O funcție de întârziere utilizată frecvent este apelată de comanda delay(), a cărei valoare este specificată în milisecunde, microsecundele sunt obținute folosind

delayMicroseconds() Delay(1000); //microcontrolerul va aștepta 1000 ms (1 secundă)

Setările portului de intrare și de ieșire sunt specificate în funcții de gol setup(), cu comanda:

pinMode(NOMERPORTA, OUTPUT/INPUT); // argumente - numele variabilei sau numărul portului, intrare sau ieșire din care să alegeți

Înțelegerea primului program Blink

Ca un fel de „Bună, lume” pentru microcontrolere, există un program pentru a clipi un LED, să ne uităm la codul său:

La început, cu comanda pinMode, am spus microcontrolerului să atribuie portul cu LED-ul la ieșire. Ați observat deja că în cod nu există nicio declarație a variabilei „LED_BUILTIN”, adevărul este că în Uno, Nano și alte plăci, un LED încorporat este conectat la pinul 13 din fabrică și este lipit pe bord. Poate fi folosit de dvs. pentru afișare în proiectele dvs. sau pentru cea mai simpla verificare programele dvs. intermitente.

Apoi, setăm pinul la care LED-ul este lipit la o unitate (5 V), rândul următor face ca MK să aștepte 1 secundă și apoi setează pinul LED_BUILTIN la zero, așteaptă o secundă și programul se repetă într-un cerc, așa că atunci când LED_BUILTIN este egal cu 1, LED-ul (și orice altă sarcină conectată la port) este aprins , când la 0, este oprit.

Citim valoarea de la portul analogic și folosim datele citite

Microcontrolerul AVR Atmega328 are un analog de 10 biți încorporat convertor digital. ADC-ul de 10 biți vă permite să citiți valorile tensiunii de la 0 la 5 volți, în pași de 1/1024 din întreaga variație a amplitudinii semnalului (5 V).

Pentru a fi mai clar, să luăm în considerare situația, să presupunem că valoarea tensiunii la intrarea analogică este de 2,5 V, ceea ce înseamnă că microcontrolerul va citi valoarea de la pinul „512”, dacă tensiunea este 0 - „0” și dacă 5 V - (1023). 1023 - deoarece numărarea începe de la 0, adică. 0, 1, 2, 3 etc. până la 1023 - 1024 de valori în total.

Așa arată în cod, folosind schița standard „analogInput” ca exemplu

int sensorPin = A0;

int ledPin = 13;

int sensorValue = 0;

pinMode(ledPin, OUTPUT);

sensorValue = analogRead(sensorPin);

digitalWrite(ledPin, HIGH);

întârziere (sensorValue);

digitalWrite(ledPin, LOW);

întârziere (sensorValue);

Declarăm variabile:

    Ledpin - atribuim independent un pin cu un LED încorporat la ieșire și îi dăm un nume individual;

    sensorPin - intrare analogică, setată în funcție de marcajele de pe placă: A0, A1, A2 etc.;

    sensorValue - o variabilă pentru a stoca valoarea întreagă citită și munca in continuare cu el.

Codul funcționează astfel: sensorValue salvează valoarea analogică citită de sensorPin (comanda analogRead). - aici lucrează cu semnal analog se termină, atunci totul este ca în exemplul anterior.

Scriem unul pe ledPin, LED-ul se aprinde și așteptăm un timp egal cu valoarea sensorValue, adică. de la 0 la 1023 milisecunde. Oprim LED-ul și așteptăm din nou această perioadă de timp, după care codul se repetă.

Astfel, prin poziționarea potențiometrului setăm frecvența de clipire a LED-ului.

Funcția de hartă pentru Arudino

Nu toate funcțiile pentru actuatoare (nu știu de niciuna) acceptă „1023” ca argument, de exemplu, servo-ul este limitat de unghiul de rotație, adică pe jumătate de tură (180 de grade) (jumătate de tură) a servomotorului argumentul maxim al funcției este „180”

Acum despre sintaxă: hartă (valoarea pe care o traducem, valoarea minimă de intrare, valoarea maximă de intrare, valoarea minimă de ieșire, valoarea maximă de ieșire).

În cod arată așa:

(hartă(analogRead(pot), 0, 1023, 0, 180));

Citim valoarea de la potențiometru (analogRead(pot)) de la 0 la 1023, iar la ieșire obținem numere de la 0 la 180

Valori hărți valori:

În practică, aplicăm acest lucru la funcționarea codului aceluiași servo drive, aruncați o privire la codul din Arduino IDE, dacă citiți cu atenție secțiunile anterioare, atunci nu necesită nicio explicație.

Și schema de conectare.

Concluziile Arduino - foarte instrument convenabil pentru instruire în lucrul cu microcontrolere. Și dacă utilizați pur C AVR, sau așa cum se numește uneori „Pure C”, veți reduce semnificativ greutatea codului și mai mult se va încadra în memoria microcontrolerului, ca urmare veți obține o fabrică excelentă - a făcut o placă de depanare cu capacitatea de a flash firmware prin USB.

Îmi place Arduino. Este păcat că mulți programatori experimentați de microcontrolere îl critică fără temei pentru că este prea simplificat. În principiu, doar limbajul este simplificat, dar nimeni nu te obligă să îl folosești, plus că poți să flashi microcontrolerul prin conectorul ICSP și să încarci acolo codul dorit, fără bootloadere inutile.

Pentru cei care vor să se joace cu electronica, ca un designer avansat, aceasta este perfectă, iar pentru programatorii experimentați, ca o placă care nu necesită asamblare, va fi și utilă!

Mai mult mai multe informatii despre Arduino și caracteristicile utilizării acestuia în diverse scheme uită-te în e-carte - .

Vei avea nevoie

  • - Placa Arduino UNO,
  • - cablu USB(USB A - USB B),
  • - Calculator personal,
  • - Dioda electro luminiscenta,
  • - rezistenta 220 Ohm,
  • - o pereche de fire de 5-10 cm,
  • - în prezența - tabla de paine(placa de preparare).

Instrucțiuni

Descărcați mediul de dezvoltare Arduino pentru sistemul dvs. de operare (sunt acceptate Windows, Mac OS X, Linux) de pe pagina http://arduino.cc/en/Main/Software, îl puteți instala, puteți. Fișierul descărcat conține și drivere pentru plăcile Arduino.

Instalați driverul. Luați în considerare opțiunea pentru sistemul de operare Windows. Pentru a face acest lucru, așteptați până când sistem de operare vă va solicita să instalați driverul. Declin. Apăsați Win + Pauză, lansați Device Manager. Găsiți secțiunea „Porturi (COM și LPT)”. Veți vedea acolo un port numit „Arduino UNO (COMxx)”. Clic Click dreapta mouse-ul pe el și selectați „Actualizare driver”. Apoi, selectați locația driverului pe care tocmai l-ați descărcat.

Mediul de dezvoltare conține deja multe exemple pentru studierea funcționării plăcii. Deschideți exemplul „Blink”: File > Examples > 01.Basics > Blink.

Îndreptați mediul de dezvoltare către placa dvs. Pentru a face acest lucru, în meniul Instrumente > Placă, selectați „Arduino UNO”.

Selectați portul căruia este alocată placa Arduino. Pentru a afla la ce port este conectată placa, lansați Device Manager și căutați secțiunea Porturi (COM și LPT). Portul va fi indicat în paranteze după numele tablei. Dacă placa nu este în listă, încercați-o de pe computer și așteptați câteva secunde, încercați din nou.

Deconectați placa de la computer. Asamblați circuitul așa cum se arată în figură. Vă rugăm să rețineți că piciorul scurt al LED-ului trebuie să fie conectat la pinul GND, piciorul lung printr-un rezistor la pinul digital 13 al plăcii Arduino. Este mai convenabil să utilizați o placă, dar dacă nu este disponibilă, puteți conecta firele prin răsucire.
Notă importantă! Pinul digital 13 are deja propriul rezistor pe placă. Prin urmare, atunci când conectați un LED la placă, nu este necesar să utilizați un rezistor extern. Când conectați un LED la orice alți pini Arduino, utilizarea este obligatorie!

Acum puteți încărca programul în memoria plăcii. Conectați placa la computer, așteptați câteva secunde până când placa se inițializează. Faceți clic pe butonul „Încărcare” și al dumneavoastră va fi scris în memoria plăcii Arduino. Programarea cu Arduino este foarte intuitivă și deloc dificilă. Uită-te la imagine - există mici explicații în comentariile programului. Acest lucru este suficient pentru a vă face să începeți primul experiment.

Video pe tema

Notă

Fii atent când lucrezi cu Placa Arduino- Acest produs electronic care necesită atitudine atentă. Există conductori expuși pe partea de jos a plăcii, iar dacă așezați placa pe o suprafață conductoare, există șansa de a arde placa. De asemenea, nu atingeți placa cu mâinile umede sau ude și evitați zonele umede atunci când lucrați.

Sfaturi utile

Există multe site-uri pe Internet dedicate Arduino. Citește, stăpâne, nu-ți fie frică să experimentezi și să înveți lucruri noi!

Surse:

  • LED intermitent

Programarea atrage și îi interesează pe mulți oameni moderni, în special profesioniști tineri și începători care abia încep să aleagă viitoare profesie. Ei se confruntă adesea cu întrebarea - de unde să înceapă în învățarea programarii? Dacă decideți să învățați cum să programați, nu ar trebui să faceți o greșeală comună - nu începeți imediat. sisteme complexeși limbi (de exemplu, C). A începe cu un limbaj prea complex vă poate oferi o impresie greșită despre programare în general. Începătorilor li se recomandă să lucreze cel mai mult sisteme simple- de exemplu, invatarea scrierii de programe in BASIC. Învățarea acestei limbi îți va permite timp scurt obține rezultate bune. PureBasic este ușor de învățat - este un limbaj universal compilat oportunități ample, vă va ajuta să înțelegeți elementele de bază ale programării și să vă îmbunătățiți abilitățile în viitor.

Instrucțiuni

Vă poate dura aproximativ un an pentru a învăța elementele de bază ale programării. Veți învăța caracteristicile programării procedurale și orientate pe obiecte, principiile de lucru cu arbori binari, matrice, liste etc. Abia după ce a învățat elementele de bază, treceți la sarcini mai complexe.

Vizitați site-urile web ale dezvoltatorilor de limbaje de programare și studiați documentația. Asigurați-vă că comunicați pe forumurile pentru programatori, de obicei, acestea răspund la majoritatea întrebărilor începătorilor.

Matematică

Dacă vrei să înveți să programezi, trebuie doar să știi matematică. În timpul muncii tale te vei întâlni o cantitate mare probleme care nu pot fi rezolvate fără cunoașterea fundamentelor acestei științe. Există un numar mare de sisteme și teorii matematice (seria Fourier, numere Fibonacci etc.), care simplifică foarte mult procesul de programare.

Învățarea nu se termină niciodată

Evoluția limbajelor de programare nu stă pe loc; Încercați să citiți cât mai multă literatură legată de domeniul de programare în care intenționați să lucrați. Căutați întotdeauna modalități alternative de a rezolva problemele care apar, acest lucru vă va ajuta să îmbunătățiți constant eficiența muncii pe care o creați codul programului. Discutați cu programatori profesioniști, aceștia vor putea întotdeauna să vă sfătuiască cum să faceți față unei anumite probleme. Citirea codurilor lor vă va ajuta foarte mult.
Este imposibil să păstrezi totul în minte tot timpul. Simțiți-vă liber să utilizați cărțile de referință în limbajul de programare.

Problemele de programare, oricât de simple ar fi, nu sunt niciodată rezolvate deodată. Ele necesită întotdeauna dezvoltare algoritm corect acțiuni care sunt eficiente într-o anumită situație specifică. Găsirea algoritmilor optimi necesită practică și antrenament constant. Încercați să rezolvați mai des micile probleme de programare (le puteți găsi pe site-uri specializate), acest lucru vă va ajuta să vă perfecționați treptat abilitățile în acest domeniu.

Arduino este foarte popular printre toți pasionații de design. Cei care nu au auzit niciodată de ea ar trebui să fie prezentați și ei.

Ce este Arduino?

Cum poți descrie pe scurt Arduino? Cu cuvinte optime va fi: Arduino este un instrument cu care puteți crea diverse dispozitive electronice. În esență, aceasta este o adevărată platformă de calcul hardware de uz general. Poate fi folosit pentru a construi circuite simple, și pentru implementarea unor proiecte destul de complexe.

Designerul se bazează pe hardware-ul său, care este o placă de intrare-ieșire. Pentru a programa placa, sunt folosite limbaje care se bazează pe C/C++. Se numesc, respectiv, Procesare/Cablare. Din grupa C au moștenit simplitatea extremă, datorită căreia pot fi stăpâniți foarte repede de orice persoană, iar aplicarea cunoștințelor în practică nu este ușoară. problema semnificativa. Pentru a înțelege ușurința în lucru, se spune adesea că Arduino este pentru vrăjitorii-designeri începători. Chiar și copiii pot înțelege plăcile Arduino.

Ce poți colecta pe el?

Aplicațiile Arduino sunt destul de diverse poate fi folosit atât pentru cele mai simple exemple, care vor fi recomandate la sfârșitul articolului, cât și pentru mecanisme destul de complexe, inclusiv manipulatoare, roboți sau mașini de producție. Unii meșteri reușesc să folosească astfel de sisteme pentru a realiza tablete, telefoane, sisteme de supraveghere și securitate a locuinței”, casă inteligentă„sau doar computere. Proiectele Arduino pentru începători, cu care pot începe chiar și cei fără experiență, sunt la sfârșitul articolului. Ele pot fi chiar folosite pentru a crea sisteme primitive realitate virtuala. Toate datorită hardware-ului și capabilităților destul de universale pe care le oferă Programare Arduino.

De unde pot cumpara componentele?

Componentele fabricate în Italia sunt considerate originale. Dar prețul unor astfel de truse nu este scăzut. De aceea întreaga linie Companiile sau chiar persoanele fizice realizează metode artizanale de dispozitive și componente compatibile cu Arduino, care sunt numite în glumă clone de producție. La achiziționarea unor astfel de clone, nu se poate spune cu certitudine că vor funcționa, dar dorința de a economisi bani își face taxă.

Componentele pot fi achiziționate fie ca parte a kit-urilor, fie separat. Există chiar și kituri pre-preparate pentru asamblarea mașinilor, elicopterelor cu care tipuri variate controale sau nave. Un set ca cel din fotografia de mai sus, fabricat în China, va costa 49 de dolari.

Mai multe despre echipament

Placa Arduino este microcontroler simplu AVR, care a fost flashat cu un bootloader și are minim minim necesar Port USB-UART. Există și alte componente importante, dar în sfera articolului ar fi mai bine să ne concentrăm doar pe aceste două componente.

În primul rând, despre microcontroler, un mecanism construit pe un singur circuit în care se află programul dezvoltat. Programul poate fi influențat prin apăsarea butoanelor, primirea semnalelor de la componentele creației (rezistoare, tranzistoare, senzori etc.), etc. Mai mult, senzorii pot fi foarte diferiți în scopul lor: iluminare, accelerație, temperatură, distanță, presiune, obstacole etc. Piesele simple pot fi folosite ca dispozitive de afișare, de la LED-uri și tweetere până la dispozitive complexe, cum ar fi afisajele grafice. Calitatea luată în considerare sunt motoarele, supapele, releele, servomotoarele, electromagneții și multe altele, care ar dura foarte, foarte mult să fie enumerate. MK lucrează direct cu unele dintre aceste liste, folosind fire de conectare. Unele mecanisme necesită adaptoare. Dar odată ce începi să proiectezi, îți va fi dificil să te desprinzi. Acum să vorbim despre programarea Arduino.

Aflați mai multe despre procesul de programare a plăcii

Un program care este deja gata de rulare pe un microcontroler se numește firmware. Poate exista fie un proiect, fie Proiecte Arduino, deci ar fi recomandabil să stocați fiecare firmware în folder separat pentru a accelera procesul de găsire fisierele necesare. Este fulgerat pe cristalul MK folosind dispozitive specializate: programatori. Și aici Arduino are un avantaj - nu are nevoie de un programator. Totul este făcut pentru ca programarea Arduino pentru începători să nu fie dificilă. Codul scris poate fi încărcat în MK printr-un cablu USB. Acest avantaj este obținut nu de un programator pre-construit, ci de un firmware special - un bootloader. Bootloader-ul este un program special care pornește imediat după conectare și ascultă dacă există comenzi, dacă să flashe cristalul, dacă există proiecte Arduino sau nu. Există câteva avantaje foarte atractive în utilizarea unui bootloader:

  1. Folosind un singur canal de comunicare, care nu necesită costuri suplimentare de timp. Deci, proiectele Arduino nu necesită să conectați multe fire diferite și va exista confuzie atunci când le utilizați. Un cablu USB este suficient pentru o funcționare cu succes.
  2. Protecție împotriva mâinilor strâmbe. Este destul de ușor să aduceți microcontrolerul într-o stare de cărămidă folosind firmware direct, nu trebuie să lucrați din greu. Când lucrați cu un bootloader, nu veți putea accesa setări potențial periculoase (cu ajutorul unui program de dezvoltare, desigur, altfel totul poate fi stricat). Prin urmare, Arduino pentru începători este destinat nu numai din punctul de vedere că este ușor de înțeles și convenabil, ci vă va permite și să evitați cheltuielile financiare nedorite asociate cu lipsa de experiență a persoanei care lucrează cu ei.

Proiecte de început

Când ați achiziționat un kit, un fier de lipit, colofoniu și lipit, nu ar trebui să sculptați imediat structuri foarte complexe. Desigur, le puteți face, dar șansa de succes în Arduino pentru începători este destul de scăzută în cazul proiectelor complexe. Pentru a vă antrena și a vă îmbunătăți abilitățile, puteți încerca să implementați câteva idei mai simple care vă vor ajuta să înțelegeți interacțiunea și funcționarea Arduino. Ca primii pași în lucrul cu Arduino pentru începători, vă putem sfătui să luați în considerare:

  1. Creați unul care să funcționeze datorită Arduino.
  2. Conexiune buton separat la Arduino. În acest caz, puteți face astfel încât butonul să poată regla strălucirea LED-ului din punctul nr. 1.
  3. Conexiune potențiometru.
  4. Comandă servomotor.
  5. Conectarea și lucrul cu un LED tricolor.
  6. Conectarea elementului piezoelectric.
  7. Conectarea unui fotorezistor.
  8. Conectarea unui senzor de mișcare și semnale despre funcționarea acestuia.
  9. Conectarea unui senzor de umiditate sau temperatură.

Proiecte pentru viitor

Este puțin probabil să fiți interesat de Arduino pentru a conecta LED-uri individuale. Cel mai probabil, ești atras de oportunitatea de a-ți crea propria mașină sau placa turnantă zburătoare. Aceste proiecte sunt greu de implementat și vor necesita mult timp și perseverență, dar odată finalizate, vei obține ceea ce îți dorești: experiență valoroasă de proiectare Arduino pentru începători.

În viața unui dezvoltator Arduino, mai devreme sau mai târziu vine un moment în care mediul de dezvoltare standard devine aglomerat. Dacă schițele nu mai au suficientă memorie, aveți nevoie de timp real și lucrați cu întreruperi, sau doriți doar să fiți mai aproape de hardware, atunci este timpul să treceți la C. Inginerii electronici cu experiență se vor încruntă disprețuitor la mențiunea Arduino și vor trimite începătorul la un magazin de radio pentru un fier de lipit. Poate că acesta nu este cel mai rău sfat, dar nu îl vom urma încă. Dacă aruncăm Arduino IDE și limbajul de cablare/procesare, rămânem cu o placă de depanare excelentă, dotată deja cu tot ce este necesar pentru funcționarea microcontrolerului. Și, important, un bootloader este deja conectat în memoria controlerului, permițându-vă să încărcați firmware-ul fără a utiliza un programator.

Pentru a programa în C, avem nevoie de AVR GCC Toolchain.

Vom avea nevoie și de Arduino IDE instalat, deoarece... conține utilitarul avrdude, care este necesar pentru a descărca firmware-ul pe controler. CrossPack conține și avrdude, dar versiunea care vine cu el nu funcționează cu Arduino.

După ce totul este instalat, să creăm primul nostru proiect. Pentru început, să scriem Makefile. Ne va permite să evităm introducerea manuală a comenzilor lungi de fiecare dată când compilam și încărcăm firmware-ul.

#Controller instalat pe placă. Poate fi diferit, de exemplu atmega328 DEVICE = atmega168 #Clock frequency 16 MHz CLOCK = 16000000 #Avrdude launch command. Trebuie copiat din IDE-ul Arduino. AVRDUDE = /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf -carduino -P/dev/tty.usbserial-A600dAAQ -b19200 -D -p atmega168 OBIECTE = main.o COMPILE = avr-gcc -Wall -Os -DF_CPU=$(CLOCK) -mmcu=$(DEVICE) all: main .hex .c.o: $(COMPILE) -c $< -o $@ .S.o: $(COMPILE) -x assembler-with-cpp -c $< -o $@ .c.s: $(COMPILE) -S $< -o $@ flash: all $(AVRDUDE) -U flash:w:main.hex:i clean: rm -f main.hex main.elf $(OBJECTS) main.elf: $(OBJECTS) $(COMPILE) -o main.elf $(OBJECTS) main.hex: main.elf rm -f main.hex avr-objcopy -j .text -j .data -O ihex main.elf main.hex avr-size --format=avr --mcu=$(DEVICE) main.elf

În acest fișier trebuie să introducem comanda noastră pentru a lansa avrdude. Pe sisteme diferite va arata diferit. Pentru a afla opțiunea dvs., lansați IDE-ul Arduino și bifați caseta „Afișați ieșirea detaliate în timpul încărcării” din setări.

Acum încărcăm orice schiță în Arduino și ne uităm la mesajele afișate în partea de jos a ferestrei. Găsim apelul avrdude acolo, copiem totul, cu excepția parametrului -Uflash și îl lipim în Makefile după „AVRDUDE = “.


O notă rapidă: toată indentarea din Makefile se face cu caractere de tabulatură ( Tasta Tab). Dacă ale tale editor de textînlocuiește aceste caractere cu spații, comanda make va refuza construirea proiectului.

Acum să creăm un fișier principal.c- textul propriu-zis al programului nostru, în care în mod tradițional clipim LED-ul.

#include #include #define LED_PIN 5 int main() ( DDRB |= 1<< LED_PIN; while(1) { PORTB |= 1 << LED_PIN; _delay_ms(1000); PORTB &= ~(1 << LED_PIN); _delay_ms(1000); } return 0; }

Proiectul nostru este gata. Să deschidem consola în directorul nostru de proiect și să introducem comanda „make”:


După cum puteți vedea, dimensiunea firmware-ului rezultat este de numai 180 de octeți. O schiță similară Arduino ocupă 1116 octeți în memoria controlerului.

Acum să ne întoarcem la consolă și să introducem „make flash” pentru a încărca fișierul compilat în controler:


Dacă descărcarea a fost finalizată fără erori, LED-ul conectat la pinul 13 al plăcii va clipi fericit. Uneori, avrdude nu poate găsi placa sau cade din cauza unui timeout - în acest caz, răsucirea cablului USB poate ajuta. De asemenea, pentru a evita conflictele de acces la placă, nu uitați să închideți Arduino IDE înainte de comanda „make flash”.

Poate că multe dintre lucrurile descrise în acest articol vor părea evidente pentru dezvoltatorii experimentați. Am încercat să descriu procesul într-un limbaj cât mai ușor de înțeles pentru un utilizator Arduino începător și să adun într-un singur loc informațiile pe care le-am putut obține din diverse surse și le-am verificat empiric. Poate că acest articol va economisi cuiva câteva ore de timp.

Succes în stăpânirea microcontrolerelor!