Arduino® » Praktičen mikrokrmilnik za individualna preklopna in krmilna opravila
Objavljeno: 17. julij 2024 | Čas branja: 12 minut
Od avgusta 2021 je Conrad Electronic uradni distribucijski partner Arduino®. Zahvaljujoč temu imamo sedaj najboljše pogoje za optimalno in stalno razpoložljivost blaga:
To pomeni, da aktualno ponudbo, najnovejše izdelke in zanimive informacije prejmemo neposredno od dobavitelja. To koristi tako ljudem, ki Arduino že uspešno uporabljajo, kot tistim, ki bi ga radi uporabljali v prihodnosti.
Arduino je bil prvotno ustanovljen kot lahko dostopna platforma za začetnike, ljubitelje elektronike, umetnike, oblikovalce in druge nestrokovnjake. Zahvaljujoč odločitvi, da bo strojna in programska oprema na voljo v odprtokodnem formatu, so se ti izdelki zelo hitro razširili in pridobili priznanje tako med domačimi uporabniki kot strokovnjaki.
Zlasti uporabniku prijazno razvojno okolje (IDE) in zmožnosti hitre izdelave prototipov so privlačne za strokovnjake na različnih področjih, ki morajo hitro izdelati prototip in preizkusiti ideje. Platforma je tudi izjemno funkcionalna in razširljiva zahvaljujoč velikemu številu senzorjev in aktuatorjev, ki so na voljo.
Zato ne bi smelo biti presenetljivo, da so mnogi že slišali za Arduino, čeprav morda vsi ne vedo, kaj ta izraz točno pomeni. Koncepti, kot so mikrokrmilnik, dizajn, platforma, skice, plošče in senzorji, se morda zdijo zapleteni. Zato želimo na preprost in razumljiv način pojasniti, kaj je mikrokrmilnik Arduino in predstaviti njegovo široko paleto uporabe. In najboljše pri tem je, da je vse veliko manj zapleteno, kot se morda zdi na prvi pogled.
Preprosto povedano, Arduino je sistem, ki lahko povezuje in krmili različne elektronske komponente, kot so senzorji, aktuatorji in moduli. Programiranje plošče Arduino določa, kako se odziva na specifične vhodne signale (vhode) in katera dejanja (izhode) izvaja v skladu s tem.
Takšni vhodi so lahko lučka na senzorju, pritisk na gumb ali sporočilo na Twitterju - odziv na to (izhod) bo, odvisno od programiranja, na primer aktiviranje motorja, vklop LED ali objava nečesa na spletu. Ta pristop omogoča izvedbo najrazličnejših projektov in avtomatizacije – od preprostega LED vezja do kompleksnega sistema krmiljenja strojev.
Primer takšne funkcionalnosti bi lahko bil aparat za kavo, kjer so nekateri procesi odvisni od vrednosti senzorjev: Preden se prikaže izbirni meni, se mora skener kartic ali senzor v napravi za sprejem kovancev strinjati. Izbira prave kave z mlekom pa je mogoča šele, ko senzor v kavnih zrnih in senzor v posodi za mleko potrdita, da nista prazni.
V bistvu se sliši precej preprosto. Vse kar potrebujete je mikrokrmilnik Arduino in nekaj tehničnega znanja za programiranje želenih funkcij. Paleta tehničnih zahtev je izjemno široka – od uporabniku prijazne platforme za začetnike do zmogljivega nabora orodij za izkušene popravljalce in inženirje, ki želijo izvajati kompleksne elektronske projekte.
Zanimivost:
Ime "Arduino" izhaja iz imena italijanskega kralja in kasnejšega narodnega heroja Amedea Avogadra. Po njem so poimenovali tudi bar v mestu Ivrea v severni Italiji, kjer sta se ustvarjalca projekta Arduino (Massimo Banzi in David Cuartielles) redno srečevala: »Bar di Re Arduino« (Bar kralja Arduina). Pravijo, da so si to ime izbrali na srečanju v tem lokalu – tudi zato, ker je enostavno izgovorljivo po vsem svetu in je edinstveno.
Arduino je v bistvu sestavljen iz dveh komponent: strojne in programske opreme (Arduino IDE), ki sta "open source", tako da ju lahko uporabniki prilagodijo svojim individualnim potrebam.
Hardware
Strojno opremo sestavljajo tako imenovane Arduino plošče, ki vsebujejo mikrokontrolerje. Mikrokrmilnik je v bistvu majhen računalnik na čipu, ki se uporablja za krmiljenje različnih elektronskih komponent. Najbolj znana plošča Arduino je Arduino Uno, vendar obstaja veliko drugih modelov z različnimi funkcijami.
Software
Programska oprema vključuje integrirano razvojno okolje Arduino (IDE), programsko okolje, ki uporabnikom omogoča pisanje kode za svoje projekte - tj. posamezna vezja ali krmilne programe (skice) - in njihovo nalaganje na ploščo Arduino. Programiranje poteka v poenostavljeni različici programskega jezika C++.
Vendar pa ne obstaja le ena posebna plošča ali en določen krmilnik. Namesto tega se Arduino nanaša na celotno družino izdelkov ali blagovno znamko. Na primeru Arduino Uno, verjetno najbolj znane plošče Arduino, bi radi nekoliko podrobneje razložili strukturo:
Najpomembnejši elementi plošče Arduino:
1. USB vtičnica
V to vtičnico je priključen USB kabel, ki se uporablja za prenos posameznih krmilnih programov na Arduino.
2. Gumb RESET
S tem gumbom lahko ročno ponastavite Arduino, če ne more nadaljevati samodejnega delovanja zaradi okvare.
3.ICSP vmesnik (USB vmesnik)
Zahvaljujoč vmesniku ICSP (In Circuit Serial Programming) je logično vezje mogoče programirati neposredno v aplikacijskem sistemu.
4. I²C vodilo
V primeru vodila I²C se podatki prenašajo iz glavne naprave v povezane podrejene naprave prek linij SCL (Serial Clock) in SDA (Serial Data).
5. Integrirana LED
Dioda "L" je interno povezana s pinom 13 za namene testiranja.
6. Digitalni vhodi/izhodi
Te I/O zatiče lahko konfigurirate kot digitalne vhode ali izhode. Po potrebi jih šest deluje kot impulzno širinsko modulirane PWM izhode.
7. LED signalizacija
LED "RX" in "TX" vizualno označujeta prenos podatkov iz računalnika v Arduino UNO.
8. Dioda za delovno napetost
Dioda "ON" označuje napajanje plošče mikrokrmilnika. Zasveti, ko je plošča priključena na napajanje.
9. Kristalni oscilator (gonilnik)
Kristal zagotavlja, da oscilator v krmilniku ostane stabilen in niha s konstantno frekvenco.
10. ICSP vmesnik (gonilnik)
Po potrebi lahko krmilnik programiramo preko tega vmesnika. Ker pa je to narejeno že v tovarni, to običajno ni potrebno.
11. Mikrokrmilnik
Mikrokrmilnik je polprevodniški sistem, sestavljen iz procesorja, perifernih naprav in pomnilnika. Včasih se imenuje tudi SoC (System-on-a-Chip).
12. Analogni vhodi
Če so kot vhodne vrednosti na voljo analogne napetosti, je treba uporabiti teh šest vhodov.
13. Napajalni kontakti
Ti zatiči lahko napajajo mikrokrmilniško ploščo ali zaznavajo 3,3 V ali 5 V.
14. Usmerniška dioda
Na voljo je usmerniška dioda, zahvaljujoč kateri sta lahko v napajalni vtičnici prisotna enosmerni tok in izmenična napetost.
15. Polnilni kondenzatorji
Polnilni kondenzatorji zgladijo napajalno napetost. En kondenzator je priključen pred stabilizatorjem napetosti 5 V, drugi pa za njim.
16. Napajalni priključek
Da mikrokrmilniška plošča po programiranju deluje brez USB povezave, mora biti napajana iz zunanjega napajalnika.
17. Stabilizator napetosti
Stabilizator napetosti ustvarja stabilno napetost 5 V iz napajalne napetosti, ki naj bo med 7 in 12 V (AC ali DC).
18. Kristalni oscilator (krmilnik USB)
Quartz poskrbi, da oscilator v USB krmilniku niha stabilno in s konstantno frekvenco.
19. USB vmesnik
Vmesnik USB pretvori signale, ki prihajajo skozi vrata USB, v obliko, ki je primerna za krmilnik.
V bistvu ima vsaka plošča Arduino krmilnik z različnimi vhodi in izhodi. Odvisno od uporabljenega krmilnika je več ali manj vhodov in izhodov oziroma možnosti povezovanja. Poleg tega so plošče Arduino zasnovane tako, da je mogoče dodatne plošče (shielde) povezati s konektorji. Posledica tega je sistem, ki ga je mogoče zložiti enega na drugega, ne da bi bilo potrebno veliko dela s kabli.
Informacija: Vhodi in izhodi na Arduino plošči
Senzorji ali drugi viri informacij (vhodi) zagotavljajo podatke plošči Arduino, na podlagi katerih lahko nato krmili aktuatorje ali druge komponente (izhode) za izvajanje določenih dejanj.
Razlikujemo med digitalnimi in analognimi vezji, pri čemer je glavna razlika vrsta posredovanih ali obdelanih informacij:
- Digitalni vhodi in izhodi sprejemajo oziroma generirajo le dve stanji: VISOKO (1) ali NIZKO (0) – poenostavljeno povedano: ali-ali, vklopljeno-izklopljeno. >> Digitalni vhod je na primer infrardeči senzor, ki pošilja digitalne signale na ploščo Arduino, ko ta zazna ovire. Primeren izhod je lahko LED, ki se vklopi ali izklopi, da vizualno pokaže, kdaj infrardeči senzor zazna oviro. Lahko pa uporabite tudi brenčalo, da sprožite zvočni alarm.
- Po drugi strani analogni vhodi in izhodi sprejemajo ali ustvarjajo neprekinjen obseg vrednosti. >> Digitalni vhod je na primer svetlobni senzor, ki zagotavlja analogne vrednosti plošči Arduino na podlagi svetlosti okolja. Primeren izhod je lahko LED, ki sveti močneje ali temneje, odvisno od svetlosti okolja.
Plošča Arduino Uno je verjetno najbolj priljubljena med platformami Arduino tako za začetnike kot za izkušene uporabnike. Z jasnimi dodelitvami žebljičkov in dostopno strukturo je enostaven za uporabo in popoln za začetniške projekte. Hkrati je zaradi zadostnega števila digitalnih in analognih pinov izjemno vsestranski za širok spekter projektov – od enostavnih LED vezij do kompleksnejših projektov s senzorji, motorji in brezžično komunikacijo.
Vendar pa poleg Arduino Uno obstaja veliko drugih mikrokrmilniških plošč Arduino. Raznolikost mikrokrmilniških plošč Arduino je tako raznolika kot različni scenariji uporabe. Za lažji pregled smo v tabeli povzeli nekaj trenutnih in priljubljenih ploščic:
Tabela s pregledom najbolj priljubljenih plošč Arduino
Mikrokrmilnik | CPU | Analogni vhodi | Digitalni vhodi/izhodi | Pomnilnik flash | Delovna napetost | Dimenzije (D x Š) | |
---|---|---|---|---|---|---|---|
Arduino Zero | ATSAMD21G18 | 32-bit | 6 | 20 (vključno z 10 PWM) | 256 kB | 3,3 V | 68,6 x 53,4 mm |
Arduino Uno R3 | ATmega328P | 8-bit | 6 | 14 (vključno z 6 PWM) | 32 kB | 5 V | 68,6 x 53,4 mm |
Arduino Due | ATmelSAM3X8E | 32-bit | 12 | 54 (vključno z 12 PWM) | 512 kB | 3,3 V | 101,5 x 53,3 mm |
Arduino Mega 2560 | ATmega2560 | 8-bit | 16 | 54 (vključno z 15 PWM) | 256 kB | 5 V | 101,5 x 53,3 mm |
Arduino Leonardo | ATmega32u4 | 8-bit | 12 | 20 (vključno z 7 PWM) | 32 kB | 5 V | 68,6 x 53,4 mm |
Arduino Micro | ATmega32u4 | 8-bit | 12 | 20 (vključno z 7 PWM) | 32 kB | 5 V | 48,3 x 17,8 mm |
Arduino Nano | ATmega328 | 8-bit | 8 | 22 (vključno z 6 PWM) | 32 kB | 5 V | 45 x 18 mm |
Obstajajo tudi različne različice vsake vrste, ki se razlikujejo po zasnovi in funkcijah. Na primer, Arduino Uno je na voljo v različici SMD ali z modulom WiFi. Poleg tega obstajajo različne različice Micro in Nano z različnimi tehničnimi podatki.
Naša priporočila
Arduino MKR
Na podlagi plošče Arduino MKR je Arduino razvil lastno serijo, posebej zasnovano za proizvajalce: je kompaktna, energetsko učinkovita, ima posebne funkcije ter je prilagodljiva in vsestranska v širokem spektru aplikacij.
Poleg širokega nabora preklopnih in nadzornih nalog se Arduino MKR osredotoča na komunikacijske zmogljivosti plošč in zaslonov.
Te vključujejo rešitve od SigFox za aplikacije IoT in WiFi do integracije brezžičnega omrežja do uporabe omrežij GSM.
Arduino PRO
Arduino Pro je zmogljiv sistem, zasnovan za kompleksne industrijske aplikacije, robotiko in inteligentno krmiljenje strojev
Srce serije je linija Portenta za napredne IoT projekte, kot so algoritmi AI ali strojno učenje. Plošče, kot sta večopravilna Portenta X8 (aplikacije v realnem času + hkratni visokozmogljivi procesi na jedrih Linux) ali Portenta H7 z dvojedrnim procesorjem, ki lahko sproti obdeluje zapletene naloge, so primerno kompleksne in zmogljive.
S povezavo na Arduino IoT Cloud je mogoč enostaven centraliziran nadzor.
Arduino Education
Arduino je v obliki modela Arduino® Education razvil koncept poučevanja, ki je posebej prilagojen potrebam šol in izobraževalnih ustanov. Vključuje posebne komplete opreme za učitelje in učence, učna gradiva, navodila za oblikovanje in učne načrte ter programe certificiranja in izobraževanja učiteljev.
Arduino Education želi podpreti učitelje pri zagotavljanju znanja o programiranju, elektroniki, elektrotehniki in mehatroniki. Različni projekti omogočajo hiter in enostaven uvod v programiranje plošč Arduino, kar olajša začetnikom predvsem ustvarjanje elektronskih prototipov in uresničevanje kreativnih idej.
Za programiranje plošč Arduino je potrebna programska oprema Arduino IDE. Ima več prednosti. Prvič, zaradi preprostega uporabniškega vmesnika je primeren za programerje začetnike. Poleg tega je neodvisen od platforme, ponuja ogromno virov (knjižnice, vzorčne kode, forumi) in je posebej prilagodljiv zaradi dejstva, da podpira veliko število plošč Arduino – zaradi česar je privlačen tudi za izkušene programerje, ki želijo izvajajo zahtevnejše projekte. Programiranje je na voljo za prenos na uradni spletni strani Arduino za Windows, iOS ali Linux. Na voljo je tudi obsežna strokovna literatura.
Primer skice: Dnevne luči z 10 LED
Da pokažemo, kako enostavno je izvesti projekt in podrobneje razpravljamo o funkcijah Arduino Desktop IDE, želimo spodaj ustvariti majhen in preprost program Arduino (skico). Cilj je zgraditi samodejno vklopno svetilko z 10 LED diodami. Zaradi samodejnega zagona ni potrebno priključiti nobenega od vhodov.
1. Konfiguracija preskusnega vezja
Pred začetkom programiranja morate konfigurirati strojno opremo. Naš testni primer uporablja Arduino Mega 2560, vendar bo delovala tudi katera koli druga plošča. Digitalni vhodi/izhodi 2 - 11 se uporabljajo za krmiljenje 10 LED.
Izkazalo se je, da je majhno vezje popolno za fizično gradnjo vezja. Ker LED diode niso zasnovane za delovno napetost 5 V, je treba z vsako LED zaporedno povezati upor 220 Ω, da omejite tok in s tem napetost na LED. Ni pomembno, ali je upor nameščen pred ali za LED.
Prepričajte se le, da je anoda LED diod povezana z digitalnim V/I na plošči. Skupna ozemljitev mora biti povezana s konektorjem GND na plošči. S tem je končana konstrukcija preskusnega vezja.
Napajanje se napaja prek vrat USB, zato ni potrebe po priključitvi zunanjega napajanja na naše testno vezje.
2. Izdelava nadzornega programa
Programske nastavitve
Po namestitvi programske opreme nastavite trenutno ploščo in uporabljeni vmesnik v meniju Orodja.
V meniju Datoteka je v imeniku Primeri več skic, ki jih lahko prikličete in po potrebi takoj prenesete na ploščo Arduino.
Naš primer pa bo pokazal, kako lahko sami ustvarimo kratek program.
Ukaze, potrebne za to, in njihove ustrezne razlage najdete na spletni strani Arduino.
Opredelitev izhodov
Prva vrstica določa, koliko LED diod je treba nadzorovati in katere fizične povezave (zatiči) se uporabljajo za krmiljenje LED diod.
V našem primeru so povezani priključki 2 - 11.
Spodnji razdelek je sestavljen iz dveh ključnih funkcij, imenovanih setup in loop.
Nastavitveno območje se prebere in izvede samo enkrat, ko se program zažene.
Vendar pa se naslednje območje zanke izvaja v nenehno ponavljajočem se zaporedju.
Setup
V nastavitvenem območju skice morate določiti, da zatiči 2 do 11 delujejo kot izhodni zatiči in zato mora biti napetost izhodna za 10 LED (oštevilčenih od 0 do 9).
To lahko storite z ukazi
pinMode (LEDPins[0],Output); za prvo LED
pinMode (LEDPins[1],Output); za drugo LED
·
·
pinMode (LEDPins[9],Output); za 10. LED
Ker je ta postopek preveč okoren, je bila ustvarjena spremenljivka za, v kateri je bila spremenljivka "i" definirana za indeks z začetnim številom "zero", prekinitveni pogoj pa je bil manjši od 10. Vrednost "i++" zagotavlja, da v vsakem zanko povečajte vrednost "i" za eno. Potem potrebujete samo eno vrstico za dodelitev desetih zatičev v kodi:
pinMode (LEDPins[i],Output);
Loop
Funkcija loop "for" se uporablja tudi v območju loop na začetku, tako da ni treba vnašati za vsako LED posebej.
Uporaba ukazov:
digital Write (LEDPins[i],HIGH);
delay(100)
10 LED diod se prižge ena za drugo za 100 ms v skladu z vnaprej določeno krivuljo. S spreminjanjem vrednosti zakasnitve lahko določite čas osvetlitve LED in s tem hitrost svetlobe.
LED diode se izklopijo z ukazi:
digital Write (LEDPins[i],LOW);
delay(0)
Vrednost zakasnitve 0 vklopi naslednjo LED takoj po izklopu prejšnje. Lahko pa vnesete poljubno vrednost za prelom svetlobe.
Ker pa vozna luč ne sme delovati le v eno smer, je treba zaporedje luči v naslednjem koraku obrniti. Zunanje LED se ne sme dvakrat vklopiti po spremembi smeri, tako da zanka, ki je potrebna za vrnitev, vključuje le nožice LED 8 (i=8) do 1 (i>0) in preklopi LED v obratnem vrstnem redu (i--).
LED diode se krmilijo z zamikom na enak način kot za gibanje na prostem.
3. Prenos krmilnega programa na Arduino
Končno lahko skico prenesete na ploščo Arduino z uporabo krožnega gumba in puščice, ki kaže desno. Med prenosom utripata lučki RX in TX na plošči, nato pa se prižge osvetlitev ozadja.
Če vaša skica vsebuje napako, bo prikazana takoj po poskusu nalaganja. Ker se zanka nenehno ponavlja, se program izvaja, dokler se plošča Arduino ne izklopi.
Z našim preprostim primerom programiranja smo skušali prikazati neverjeten potencial programabilnih mikrokontrolerjev. Za izpolnjevanje na videz neskončne raznolikosti aplikacij so plošče Arduino na voljo v široki paleti dizajnov s številnimi možnostmi povezovanja. Dodatni vtični moduli (ščiti) s senzorji ali za krmiljenje motorja ali ethernetni zaslon hitro in enostavno razširijo funkcije. Rezultat je razvojna plošča, ki jo je mogoče zložiti, ali kompakten krmilnik brez potrebe po zapletenih kablih. Strojna oprema tako izpolnjuje vse zahteve za osredotočeno, a prilagodljivo razvojno okolje.
Projekti za začetnike
Plošče Arduino so popolne za začetek vaše avanture z elektroniko in programiranjem. Posebni začetni kompleti olajšajo ustvarjanje vezij in programske kode. Programska oprema je tako preprosta in funkcionalna, da predznanje ni potrebno.
Na internetu lahko najdete nešteto predlogov projektov z uporabo plošč Arduino. Poleg tega skupnost Arduino z več kot 28 milijoni članov z veseljem odgovori na specifična vprašanja o programski opremi, ploščah in senzorjih Arduino.
Izobraževalna platforma
Zaradi enostavne uporabe in velike skupnosti razvijalcev Arduino pogosto služi kot platforma za izobraževalne projekte, ki olajšajo učenje elektronike in programiranja. Zato številne šole že ponujajo tečaje programiranja.
Lastni koncept poučevanja Arduino Education je namenjen posebej šolam, univerzam in izobraževalnim organizacijam ter poleg učnega gradiva ponuja različne projektne ideje.
Robotika
Tudi menedžerji podjetij so prepoznali ta potencial in pogosto uporabljajo plošče Arduino za implementacijo krmilnih sistemov za robote na osnovi mikrokrmilnikov.
Zahvaljujoč prilagodljivemu programiranju je mogoče senzorje in aktuatorje preprosto integrirati za nadzor gibanja, zaznavanje okolja in druge funkcije. Hkrati se projekti robotike gibljejo od preprostih do zelo kompleksnih avtonomnih sistemov.
Glasba in umetnost
Plošče Arduino se lahko uporabljajo za ustvarjanje preprostih glasbil ali integracijo elektronskih komponent v obstoječe instrumente, pa tudi za ustvarjanje zvočnih učinkov ali zvočnih instalacij za nove glasbene izkušnje.
Umetniki uporabljajo ploščice tudi za ustvarjanje kinetičnih skulptur in drugih kreativnih projektov ter interaktivnih umetniških instalacij, ki se odzivajo na okoljske dražljaje s senzorji in aktuatorji.
Internet stvari (IoT)
Plošče Arduino je mogoče povezati z različnimi senzorji (kot so senzorji temperature, vlažnosti, svetlobe in gibanja) in komunikacijskimi moduli za ustvarjanje IoT projektov. Omogočajo zbiranje podatkov iz fizičnega sveta in prenos preko interneta.
Nosljive naprave
Zaradi svoje kompaktne velikosti so plošče Arduino popolne za projekte nosljive elektronike. Integriramo jih lahko z oblačili, nakitom ali drugimi prenosnimi napravami, da ustvarimo prilagojene nosljive izdelke, ki se odzivajo na gibanje, pritisk ali temperaturo.