1. aprila, 2020

Kateri Arduino izbrati?

Moj uvod v Arduino se je zgodil, ko sta bili na voljo dve verziji: Duemilanove in Mega. Edina pomembna odločitev je število vhodno / izhodnih priključkov. Skoraj deset let je na voljo Arduino plošča za (praktično) vsako aplikacijo ali projekt. Izbira je lahko pretirana. Tu je nekaj pomislekov na glavne vrste.

Kaj je Arduino?
Arduino je odprtokodna strojna platforma. Ime vsebuje dva elementa: razvojno ploščo in programsko opremo. Samo Arduino.cc lahko uradno imenujemo “Arduino.” (Ime je zaščiteno z blagovno znamko.) Z Na strani programske opreme sta “jedro” in “IDE”. Jedro je C ++ knjižnica, imenovana „Arduino jedro“, ki je edinstvena za vsako vrsto procesorja. Ta (obsežna) knjižnica omogoča, da skupne funkcije, kot sta digitalRead () ali digitalWrite (), delujejo na toliko različnih arhitekturah. IDE je aplikacija na več platformah, ki zagotavlja jasno izhodišče za vse stvari Arduino. Z odprtokodne perspektive, ko je Arduino vse bolj postajal priljubljen, se je programska oprema ali celostno razvojno okolje (IDE) razširilo na podporo številnih drugih plošč. Te naprave se pravilneje imenujejo “združljive z Arduino”.

int digitalRead(uint8_t pin) {
uint8_t timer = digitalPinToTimer(pin);
uint8_t bit = digitalPinToBitMask(pin);
uint8_t port = digitalPinToPort(pin);
if (port == NOT_A_PIN)
return LOW;
if (timer != NOT_ON_TIMER)
turnOffPWM(timer);
if (*portInputRegister(port) & bit)
return HIGH;
return LOW;
}

Na strani programske opreme sta “jedro” in “IDE”. Jedro je C ++ knjižnica, imenovana „Arduino jedro“, ki je edinstvena za vsako vrsto procesorja. Ta (obsežna) knjižnica omogoča, da skupne funkcije, kot sta digitalRead () ali digitalWrite (), delujejo na toliko različnih arhitekturah. IDE je aplikacija na več platformah, ki zagotavlja jasno izhodišče za vse stvari Arduino.

Na strani strojne opreme je težko na kratko povzeti VSE možne različice. Tako je tukaj poudarek na teh priljubljenih stilih: Uno, Mega, ESP8266, Zero in MKR. Tudi znotraj teh obstajajo različice, od katerih nekatere omenim spodaj. Najprej poglejmo odločitev, ki temelji na specifikacijah.

Vojna med 8-bit in 32-bitnimi mikrokontrolerji se nadaljuje
Za razliko od zgodnjih konzol za video igre izbira procesorja ni tako preprosta kot bitna številka. Na splošno 8-bitni procesorji ponujajo osnovne zmogljivosti ob porabi manjše energije. Preprostejše arhitekture pomenijo, da so programi za neposredno programiranje ponavadi razmeroma enostavni. 32-bitni procesorji ponujajo večje hitrosti takta skupaj z več RAM-a, ROM-a in serijskimi perifernimi napravami. Njihove arhitekture bi lahko programiranje zakompliciralo. Na srečo okvira, kot sta knjižnica Arduino in CircuitPython, skrivata velik del te zapletenosti.

Izbira mikrokontrolerja samo zato, ker je 8-bitni ali 32-bitni, je lahko torej kratkovidna. Zato je nujno, da razmislite, kako ga nameravate uporabljati.

8-bitni: Uno, Nano, in Mega

Arduino Uno R3

Uno je izhodišče za Arduino projekte. Ima izrazito obliko s psevdo-standardnim razporedom priključkov. Njegov CPU je Microchip ATmega328P. Najbolj spregledana specifikacija tega procesorja je 2.048 bajtov RAM-a. Uno je slaba izbira, če razmišljate o pošiljanju, prejemanju ali obdelavi stringov. Če ne boste obdelovali stringov bi vas presenetilo, kaj lahko naredite s tako malo, še posebej glede na število GPIO, ki so na voljo.

Nano
V kolikor je Uno prevelik, vzemite Nano. Gre za najbolj kopirano ali klonirano različico Arduino. Gre za enak procesor kot pri Uno, vendar je plošča zmanjšana. Neposredna sposobnost programske opreme pomeni, da lahko razvoj delate z Uno in svoj končni projekt namestite v Nano.
Mega
Če Uno (ali Nano) ne ponuja dovolj I / O ali RAM-a, so na voljo plošče, ki temeljijo na ATmega2560. Mega plošče so izjemno priljubljene v aplikacijah za upravljanje motorja, kot so 3D-tiskalniki. Medtem ko so njihova jedra pogosta, v primerjavi z ATmega328p ima ATmega2560 več časovnikov, dodatni ADC, dodatni hardverski UART in tono več I / O priključkov. Vendar je to še vedno 8-bitni procesor, kot se nahaja v Uno.

USB z 32U4
Še ena različica Uno je Leonardo ali Micro. Te plošče uporabljajo čip ATmega32U4. Za razliko od drugih omenjenih 8-bitnih plošč ima procesor vgrajen USB vmesnik. S to funkcijo lahko zelo enostavno ustvarite tipkovnice, miške in USB igralne palice. Priljubljena združljiva plošča je Teensy LC iz PRJC. To je enak 32U4, vendar v drugačni obliki.

32-Bit
Opomba: mislim na 32-bitne mikrokontrolerje, ki nimajo operacijskega sistema. Zato Arduino ne primerjam z Raspberry Pi ali podobnimi ploščami, kot je BeagleBone in podobne.

Arduino Zero

Arduino Zero vsebuje 32-bitni Microchip SAM D21, ki je vgrajen okoli ARM Cortex-M0 +. Plošča ima enako obliko kot Uno, vendar je procesor povsem drugačen.
Na splošno 8-bitne plošče temeljijo na 5-voltnem napajanju, 32-bitne plošče pa na 3,3-voltnem napajanju. Pomembno je vedeti, da večina 3,3-voltnih procesorjev ne more prenašati 5-voltnih signalov. Pri povezovanju med dvema napetostnima nivojema boste morda morali uporabiti prilagodilnike logičnih nivojev.

Najbolj presenetljiva značilnost M0 + plošč so neverjetno prilagodljivi serijski vmesniki. Medtem ko plošče definirajo I²C in SPI priključki, je sam čip zelo prilagodljiv. Podpira več vrst serijskih vmesnikov na več vhodnih / izhodnih priključkih. Tako kot njegov 8-bitni bratranec, je tudi Zero na voljo v manjših oblikah.

MKR Serija
Serija Arduino MKR vključuje plošče, kot so MKR ZERO, MKR GSM 1400, MKR FOX 1200 in MKR WiFi 1010. Oblika plošč v seriji MKR je podobna. Njihovi V / I priključki potekajo po straneh, plošča je zmanjšana in vsebuje LiPo-akumulatorski priključek s polnilnim vezjem.

MKR Zero vključuje enak procesor kot Zero. MKR Zero poleg tanjše oblike in LiPo polnilnika vsebuje režo za MicroSD kartico.

Še ena plošča, ki jo je treba omeniti, je MKR WiFi 1010. Ta plošča je relativno nova in vsebuje čip, namenjen kripto komunikaciji. Druga zanimiva značilnost MKR1010 je izbira procesorjev. Na plošči se nahaja isti SAMD21, ki ga najdemo na Zero. Vendar WiFi modul iz u-bloxa vključuje ESP32. Gre za dva procesorja v enem.

Nazadnje obstajajo plošče, oblikovane za MKR obliko. Med drugim dodajajo serijske vodila, kot sta RS-485 in CAN.

ESP8266 in ESP32
Ko je ESP8266 prišel na trg, je to spremenilo način, kako projekti vključujejo WiFi. Ta sistem na čipu je 32-bitni mikrokontroler, ki deluje na 80 MHz s čipom, namenjenim WiFi delovanju. Kar pomeni, da izvaja celoten niz TCP / IP ločeno od mikrokontrolerja, ki poganja vašo kodo.

ESP moduli vsebujejo poln mikrokontroler v svojem SoC ohišju. Osrednja Arduino knjižnica je bila prenesena na ESP12 in ESP32, kar pomeni, da v nekaterih primerih koda za Uno napisana za ESP12 prevede brez sprememb!
Slika prikazuje 4 različne ESP možnosti. Zgolj ESP8266, Adafruit’s Huzzah ESP8266, Adafruit Feather ESP32 in ESP8266 NodeMCU. Zgolj ESP8266 plošča je bila popularna zaradi cene. Huzzah ESP8266 doda nekaj teh delov in doda več I / O priključkov. Kljub temu pa še vedno potrebuje serijski USB-adapter. Feather plošča podjetja Adafruit dodaja serijski USB in LiPo polnilnik v ESP8266 ali ESP32. Delo z ESP je zelo enostavno. Morda boste opazili, da Feather plošča izgleda kot MKR. Čeprav sta vizualno podobni, sta žal različne velikosti in nimata skupnega razporeda priključkov.

Zadnja je NodeMCU, ki ima popolnoma drugačno obliko! NodeMCU vsebuje ugnezdeno programsko opremo, ki na ESP8266 izvaja skriptni interpreter Lua. Nadomestimo ga lahko z zagonskim Arduino bootloaderjem. Ko je zamenjan, lahko ploščo programirate z Arduino IDE.

Ko morate projektu dodati WiFi, so plošče, ki temeljijo na ESP, odlično izhodišče.

Kateri Arduino je najboljši?
Morda se še vedno sprašujete: katera od teh plošč je najboljša Arduino plošča? Kot lahko vidite, ima vsaka od teh različnih plošč nekaj prednosti za različne situacije. Vprašanje, »katera Arduino plošča je najboljša« ni popolno vprašanje. Vprašanje morate dopolniti z “… za mojo aplikacijo ali projekt.” Medtem ko ni mogoče zajeti vsake vrste in različice plošč, bi vam morali ti podatki dati dovolj konteksta za razmislek o plošči za vaš projekt.

Povzeto po: https://medium.com/hacksters-blog/picking-the-right-arduino-341a0a9550c7

2020_284_48
Hackster Inc.
www.hackster.io
Tags: