Čomu rozumie Arduino ? (jazyk)

Programovanie na Arduine rozhodne nie je to isté ako programovanie na štandardnom počítači. Takže, čo presne je jazyk Arduino?

Jazyk Arduino je podmnožinou C/C++, kde môžete tiež použiť assembler pre kód na ultra nízkej úrovni. Keď hovoríte „programovanie na Arduine“, v skutočnosti neprogramujete samotnú dosku Arduino, ale mikrokontrolér vo vnútri dosky.

Napríklad Arduino Uno má mikrokontrolér AtMega328-P. A zvyčajne pri písaní kódu pre mikrokontroléry veľmi záleží na výkone. Preto musíte mať silné a rýchle programovacie jazyky. C a C++ patria medzi najvýkonnejšie jazyky, aké môžete nájsť. Sú pomerne rýchle a stabilné, a preto sú dobrou voľbou pre mikrokontroléry. Kompilátor používaný na transformáciu kódu na objektové súbory je ( avr-g++ ). Potom sa program s názvom avrdude použije na nahranie programu do mikrokontroléra Arduino.

Takže, ak je jazyk Arduino podmnožinou C++, znamená to, že môžete použiť všetky funkcie C++?

Bohužiaľ, odpoveď je nie – aspoň s jadrom Arduino.

Tu sú niektoré z hlavných funkcií C++, ktoré nemôžete použiť s Arduino:

  • Knižnica STL. Zabudnite na používanie std::vector pre zoznamy, std::string alebo std::map (dobre, v skutočnosti môžete použiť externú knižnicu na získanie niektorých funkcií z vektorov, reťazcov atď.). Budete musieť definovať svoje polia sami a spravovať ich priestor. V každom prípade je pamäť Arduina oveľa menšia ako pamäť vášho počítača, takže správa pamäte je tu skutočne dvôležitá záležitosť. Budete chcieť, aby boli vaše polia čo najmenšie. Pre strings typ však môžete použiť vstavaný typ Arduino String.
  • Výnimky. Budete sa musieť vysporiadať s chybovými kódmi.

Ak už ste adeptom na OOP, potom nebudete musieť zabudnúť na všetko, čo viete.

Pred odoslaním kódu do kompilátora prostredie Arduino automaticky pridá knižnicu „Arduino.h“ na začiatok kódu, ak ste to neurobili sami.

Program v C/C++ zvyčajne spúšťa svoje vykonávanie z funkcie main().

Ako môžete vidieť na programe Arduino, neexistuje nič také ako funkcia main(). V skutočnosti máte 2 povinné funkcie, ktoré musíte implementovať:

Funkcia setup() sa zavolá iba raz, akonáhle program spustí svoju činnosť. Potom sa funkcia loop() bude volať na neurčito. Hneď ako sa cyklus loop() skončí, bude sa volať znova a znova.

Ak v C/C++ deklarujete premennú bez jej inicializácie, potom neviete, aká je jej prvá hodnota. Môže to byť čokoľvek. S jazykom Arduino, akonáhle deklarujete premennú, Arduino ju za vás inicializuje na nulu. Samozrejme to bude závisieť od typu premennej, ktorú máte. Pre celé čísla bude hodnota 0. Pre pohyblivé číslo 0,0. A pre ukazovatele získate iba ukazovateľ NULL.

V C/C++ sa prototypy vo všeobecnosti vytvárajú v súbore .h, ktorý zahrniete do svojich programov, zatiaľ čo vaša implementácia kódu bude napísaná v súboroch .c alebo .cpp. Pre Arduino môžete urobiť to isté. Ale v prípade, že nedeklarujete prototyp funkcie, Arduino to automaticky urobí za vás pred odovzdaním kódu kompilátoru.

Pre začiatočníkov, ak za funkciu A napíšete funkciu A a ďalšiu funkciu B, potom funkcia A nemôže dosiahnuť funkciu B. Ak vo funkcii A zavoláte funkciu B, dostanete chybu pri kompilácii. Pokiaľ nevytvoríte prototyp funkcie pre obe funkcie, ktorý zahrniete na začiatok svojho súboru (alebo do samostatného súboru .h). To je to, čo by ste normálne mali robiť pri písaní kódu C/C++.

Arduino túto chybu opraví za vás. Ale buďte opatrní, generovanie prototypu nie je 100% spoľahlivé v závislosti od toho, ako píšete svoj kód, takže… Aj tak by ste sa mali začať učiť o funkčných prototypoch.

Pri programovaní v jazyku Arduino môžete použiť dátové typy ako „boolean“ alebo „byte“.

Tieto typy absolútne nie sú zahrnuté v štandarde C++. „boolean“ je jednoduchý alias pre „bool“ v C++ a dokonca aj dokumentácia Arduino odporúča, aby ste namiesto boolean používali bool. „Byte“ je 8-bitové číslo bez znamienka. Môžete uložiť ľubovoľné číslo od 0 do 255. Dátový typ „String“ je tiež špecifický pre Arduino a má svoje vlastné pravidlá.

Možno by ste chceli vedieť: existujú iné IDE ako Arduino IDE na vývoj programov pomocou jazyka Arduino? Pretože, aby som bol úprimný, Arduino IDE má ďaleko od dokonalosti. A ak musíte stráviť všetky svoje dni vývojom na Arduino IDE, rýchlo sa z vás zblázni. Čo musíte pochopiť, je, že prostredie Arduino sa líši od kompilátora Arduino (avr-g++), ktorý sa líši od nahrávacieho programu Arduino (avrdude), ktorý… sa líši od Arduino IDE.

IDE je tu hlavne na to, aby vám umožnilo písať kód. Potom použije prostredie a ďalšie softvérové ​​nástroje na kompiláciu a nahranie kódu na vašu nástenku. Takže dobrá správa: môžete použiť mnoho iných IDE, samozrejme za predpokladu, že majú určitú podporu pre Arduino.

Rozdiel medzi vývojom programu Arduino alebo desktopového programu nekončí pri jazyku Arduino.

Pri programovaní na mikrokontroléri máte bližšie k hardvéru a spôsob myslenia je úplne iný. Preto často neuvidíte popis práce zahŕňajúci vývoj webu A vývoj videohier A skúsenosti s programovaním mikrokontrolérov, pretože tieto oblasti sú úplne odlišné. S Arduino máte obmedzené zdroje, ktoré musíte vziať do úvahy. Menej RAM, nižšia výpočtová frekvencia, žiadne multi-threading atď. Máte tiež prístup k mnohým hardvérovým veciam, napríklad PWM a hardvérovým časovačom.

Zvládnutie týchto konceptov si bude vyžadovať oveľa viac ako len vedieť programovať. Budete si musieť prečítať niekoľko údajových listov a rozšíriť svoje znalosti v niekoľkých oblastiach.


Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Nemôžete kopírovať obsah tejto stránky