Image
15.4.2015 0 Comments

ARDUINO - programujeme mikrokontroléry /3.časť

Späť na úvod >> Späť na programovanie >> Späť na seriál

V predchádzajúcej časti sme ukázali, ako nainštalovať vývojové prostredie (IDE) Arduina. Zároveň sme si nainštalovali správny ovládač pre príslušný kit Arduina (v našom prípade Arduino Uno) a nakonfigurovali prostredie IDE na spoluprácu s ním. Len na zopakovanie – IDE si pamätá posledné použité nastavenie, ak teda budeme chcieť pracovať s iným kitom, musíme zmeniť príslušné nastavenia. Nastal čas na naozajstnú prácu s Arduinom. Tentoraz opíšeme kit Arduina Uno a vytvoríme si náš prvý program, naučíme sa ho skompilovať a nahrať do kitu Arduina.

Opis Arduina Uno


Na obrázku č. 1 je kit Arduina Uno. Jeho najdôležitejšie časti sú označené číslami. Tu je vysvetlenie jednotlivých častí:

  1. Resetovacie tlačidlo – použijeme ho, ak  z určitého dôvodu chceme nahraný program spustiť znova od začiatku (pri niektorých klonoch Una môže byť resetovacie tlačidlo umiestnené inde na doske kitu)
  2. Konektor USB typu B – používame na spojenie Arduina Uno s počítačom na nahrávanie programu do kitu, na sledovanie výsledkov alebo na komunikáciu kitu s počítačom
  3. Napájací konektor – používa sa na napájanie kitu, ak ten nie je napájaný cez konektor USB; dovolené napätie je od 7 do 12 voltov
  4. Prevodník USB – serial – zabezpečuje komunikáciu mikrokontroléra s počítačom cez konektor USB
  5. Konektor ICSP na programovanie prevodníka USB – serial; tento konektor nebudeme bežne používať
  6. Indikačná LED dióda označená L je pripojená na výstup č. 13, takže nepotrebujeme ku kitu pripájať  externú LED diódu; na nej si ukážeme naše prvé programy
  7. Indikačné diódy TX a RX – slúžia na indikáciu sériového prenosu medzi kitom a počítačom
  8. Indikačná dióda ON – signalizuje pripojené napájacie napätie kitu (niekde označovaná aj PWR)
  9. Mikrokontrolér Atmel – srdce kitu Arduino
  10. Konektor ICSP na programovanie mikrokontroléra Atmel; využívajú ho niektoré shieldy
  11. Lišta s výstupmi napätí kitu
  12. Analógové vstupy – tu budeme pripájať analógové súčiastky. Dajú sa využiť aj ako digitálne vstupy a výstupy
  13. Digitálne vstupy a výstupy – tu budeme pripájať  rôzne obvody; piny označené vlnovkou  možno použiť ako moduláciu PWM, čo si ukážeme neskôr

Sketch

Arduino sa dá programovať v jazyku C alebo C++. Vývojové prostredie Adruina obsahuje kompilátory pre oba tieto jazyky. No na ľahšie osvojenie programovania a efektívnejšiu prácu pre amatéra (domáceho majstra) je vhodnejšie používať knižnicu Wiring, priamo šitú pre Arduino, ktorá je v poslednom čase veľmi rozšírená a ktorá sa označuje ako samostatný programovací jazyk, podobný jazykom C a C++. Touto cestou pôjdeme aj my a až po zvládnutí Wiringu si ukážeme, ako programovať v  C.

Otvorme si teda prostredie IDE (obr. č. 2). Všimnime si, že titulok okna aj záložka nového listu majú v názve slovo sketch a aktuálny dátum. Slovo sketch (čítaj skeč) znamená skica alebo náčrt (skeč) a takto sa v Arduine, presnejšie vo Wiringu, označuje zdrojový text programu.  

Náš prvý program

Vývojové prostredie IDE obsahuje množstvo vzorových príkladov a knižníc (čo sú knižnice a ako sa s nimi narába, to si vysvetlíme neskôr). Prejdime teraz do položky menu File – Examples – 01.Basics (obr. č. 3). 

A otvorme príklad s názvom Blink (obr. č. 4).

 Zdrojový text tohto programu je na výpise č. 1.

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
 
  This example code is in the public domain.
 */
 
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
 
// the setup routine runs once when you press reset:
void setup() {               
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);    
}
 
// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}
Všimnime si, že na uvedenom výpise sa nachádza niekoľko častí.

Medzi znakmi /* a */ sa nachádzajú viacriadkové komentáre. Tie slúžia na opis programu a pri kompilácii sa neakceptujú ( teoreticky by sme ich mohli vymazať a nič by sa nestalo; komentáre v programovaní však majú svoj význam – sami zistíme, že si nebudeme pamätať, ako sme určitý problém vyriešili pred pol rokom, ale komentár nám to znova objasní).  Podobne aj  jednoriadkové komentáre, ktoré sa začínajú znakmi  // na začiatku riadka.  Jednoriadkové komentáre sa používajú na opis funkcie alebo príkazu.

Všetko ostatné mimo komentárov je zdrojový text programu (skeče). Ten má svoju štruktúru a delí sa na niekoľko dôležitých častí:

  • Definičná časť
  • Blok setup
  • Blok loop

V definičnej časti sa definujú konštanty a premenné, ktoré chceme v programe používať. V tomto prípade text

int led = 13;

znamená, že sme definovali premennú s názvom led, ktorá je typu integer (odtiaľ skratka int), čo sú celé čísla v rozsahu -32768 až 32767, a hneď sme premennej led priradili hodnotu 13.  Zapamätáme si, že za každým príkazom nasleduje znak bodkočiarky ;.

Nasleduje blok s názvom void setup(). Ten je uzavretý do zložených zátvoriek { a }. V týchto zložených zátvorkách sa nachádzajú príkazy, ktorými v programe nastavujeme rôzne hodnoty, jednotlivé vývody kitu a podobne. Tento blok sa po spustení programu vykoná iba raz, a to na jeho začiatku. V našom prípade máme v tomto bloku príkaz

pinMode(led, OUTPUT);

Tento príkaz nastaví pin s názvom led ako výstupný (OUTPUT). A keďže my už vieme, že slovo led má hodnotu 13, môžeme povedať, že tento príkaz nastaví pin č. 13 na kite Arduino Uno ako výstup. A z prvého obrázka a opisu šiestej položky vieme, že na pin č. 13 je pripojená LED dióda, ktorá je integrálnou súčasťou kitu (označená ako L).

Nasleduje blok void loop(). Aj tento blok je uzavretý v zložených zátvorkách { a }, medzi ktoré sa píšu príkazy jazyka Wiring. Ako názov bloku loop predznačuje, ide o slučku (angl. loop =  slučka). Príkazy v tejto slučke sa vykonávajú stále dookola až do vypnutia napájania kitu.

Ako prvý príkaz v tejto slučke je

digitalWrite(led, HIGH);

ktorý znamená, že na digitálny výstup led (teda pin č. 13) sa zapíše logická jednotka (HIGH). Keďže logická jednotka značí napätie okolo 5 voltov, pripojená LED dióda sa rozsvieti.

Druhý príkaz

  •  

značí, že mikrokontrolér si dá prestávku (delay) 1000 milisekúnd, čo je presne jedna sekunda.

Tretí príkaz

digitalWrite(led, LOW);

je veľmi podobný tomu prvému, ibaže na digitálny výstup led (pin č. 13) sa zapíše logická nula (LOW). A keďže logická nula je skoro nulové napätie, pripojená LED dióda zhasne.

Štvrtý príkaz

  •  

je identický s druhým, takže mikrokontrolér čaká jednu sekundu.
 

Nasleduje koniec slučky loop, takže táto slučka začne znovu od začiatku prvým príkazom. Uvedený opis môžeme stručne interpretovať takto:

Na pine č. 13 rozsvieť LED-ku, čakaj sekundu, zhasni LED-ku, čakaj sekundu a opakuj dookola.

Preklad a nahratie do kitu

Teraz pripojme kit Arduino Uno pomocou kábla USB k počítaču. Kliknime na druhú ikonku zľava v podobe šípky. Spustí sa kompilácia (preklad) programu, čo môžeme sledovať v spodnom čiernom okne. Keď sa objaví takýto (alebo podobný) text: „Binary sketch size: 1 082 bytes (of a 32 256 byte maximum)“,  značí, že preklad sa uskutočnil v poriadku a po hlásení „Uploading“ počítač nahrá preložený kód do kitu Arduina. To spozorujeme tak, že na kite budú blikať diódy TX a RX (položka č. 7 na obrázku č. 1) a úspešné nahranie je ukončené hlásením „Done uploading“.

Ak všetko prebehlo bez chýb, môžeme prostredie IDE Arduina vypnúť. Odteraz vždy, keď pripojíme napájanie k Arduinu, či už cez konektor USB, alebo napájací konektor, začne LED dióda na kite blikať v sekundových intervaloch.

Ako domácu úlohu si vyskúšajte pomeniť hodnoty v príkaze delay a sledujte, ako sa mení blikanie LED diódy.

 

                                                                                                      

 

 

 

 

 

 

 

 

Zobrazit Galériu

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

Ako na to

Čo robiť keď firme chýba IT expert?

08.12.2016 10:36

IT projekty majú z hľadiska nárokov na kapacity špecialistov premenlivý charakter a v určitých fázach často treba posilniť kapacity IT oddelení externými odborníkmi. Riešením je IT ousourcing, ako fo ...

Ako na to

Ako funguje sandbox?

08.12.2016 15:36

Každá aplikácia môže pre operačný systém počítača či mobilného zariadenia predstavovať potenciálnu hrozbu, a to aj v prípade, ak neobsahuje žiadne bloky škodlivého kódu. Murphyho zákony neúprosne defi ...

Ako na to

Tipy a triky: Ako na snímku obrazovky na akomkoľvek počítači s Windows?

02.12.2016 00:13

Ak snímky obrazovky robíte často apotrebujete napríklad funkcie na posun stránok alebo snímanie zobrazenia pri vyššom rozlíšení displeja, zrejme používate nejakú špecializovanú aplikáciu. Väčšina použ ...

Žiadne komentáre

Vyhľadávanie

Kyocera - prve-zariadenia-formatu-a4-s-vykonom-a3

Najnovšie videá