Image
28.6.2016 1 Comments

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

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

Naučme sa programovať mikrokontroléry Atmel ľahko a jednoducho

Tento seriál vznikol na základe skúseností a informácií o rýchlo rastúcej potrebe znalostí programovania jednočipových mikropočítačov (mikrokontrolérov), či už v profesijnej oblasti (hlavne v priemysle), alebo v rôznych oblastiach amatérskych záujmových činností (robotika, elektronika, záhradkárstvo, chalupárstvo, relax, modelárstvo a iné). Túto potrebu podmieňuje jednak masívna elektronizácia výrobkov, prístrojov a nástrojov vo všetkých oblastiach ľudskej činnosti, jednak cenová dostupnosť príslušných komponentov, a to i na domáce využitie. Seriál je zameraný hlavne na skupinu začiatočníkov v tejto oblasti (študentov, rôznych domácich majstrov a záujemcov amatérov) a je postavený tak, aby pri jeho štúdiu neboli potrebné žiadne špeciálne znalosti a zručnosti a ani vysoké finančné náklady (na začiatok nám bude stačiť asi 10 €). Dokonca ani obávané spájkovanie a výroba dosiek plošných spojov nebude potrebná – aspoň spočiatku.

Čo je to mikrokontrolér

Mikrokontrolér (po anglicky microcontroller - v skratke µC, uC alebo MCU) je v podstate miniatúrny počítač, ktorého všetky potrebné súčasti sú integrované do jediného puzdra – čipu. Preto sa niekedy nazýva aj jednočipový mikropočítač a má podobu integrovaného obvodu (obr. 1).  Tak ako klasický osobný počítač aj mikrokontrolér obsahuje procesor, pamäť, vstupno-výstupné obvody a komunikačné obvody. Mikrokontrolér je vhodný na použitie v riadení rôznych zariadení, kde plní špecifickú funkciu (na rozdiel od osobného počítača, ktorý je určený na univerzálne použitie). Mikrokontrolér spravidla obsahuje aj mnohé rôzne periférne obvody, ako AD prevodník, USB, PWM a iné. Mikrokontroléry možno napájať z rôznych prenosných zdrojov, ako sú batérie a akumulátory, dokonca aj slnečné fotočlánky.

Mikrokontroléry dnes nájdeme všade okolo nás, v podstate v každom modernom „trochu inteligentnom“ zariadení – od hračiek, modelov lietadiel, lodí, vlakov a áut cez „empétrojky“, kľúče USB, rôzne prehrávače, lekárske prístroje, automatické práčky, mikrovlnné rúry a chladničky až po riadiace systémy automobilov, kotolní alebo obrábacích strojov. Mikrokontroléry môžu riadiť napríklad ohrev vody v bazéne, jeho zakrývanie v prípade nepriaznivého počasia, polievanie kvetín či záhrady a dokonca môžu tvoriť náš vlastný internetový server (to všetko si ukážeme). Mikrokontroléry dokážu komunikovať s rôznymi klávesnicami, LED diódami a displejmi na pohodlné ovládanie zariadenia. A keďže stále ide v podstate o počítač, možno naše zariadenie neustále zdokonaľovať a zlepšovať jednoduchou zámenou programu bez nutnosti zmeny zapojenia zariadenia.

Typy mikrokontrolérov

Existuje niekoľko typov mikrokontrolérov. Asi najznámejší a najstarší je mikrokontrolér 8051 od firmy Intel. Ten bol uvedený na trh v roku 1980, teda už pred 35 rokmi. Okrem Intelu ho v licencii vyrábalo niekoľko iných známych firiem, napr. Dallas Semiconductors, Philips, Atmel, Winbond a iné.

Druhú známu skupinu tvoria mikrokontroléry PIC od firmy Microchip. Jej najznámejší mikrokontrolér PIC16F84 si vybojoval slávu hlavne medzi študentmi technických škôl.

Tretia známa skupina sú mikrokontroléry od firmy Atmel. Jej rad AVR, vytvorený koncom deväťdesiatych rokov, sa radí medzi najmodernejšie. Boli vyvíjané s ohľadom na ľahkú programovateľnosť v jazyku C. Vďaka pomerne vysokému výkonu, veľkému počtu variantov s množstvom zabudovaných periférií a prijateľnej cene nadobudli veľkú popularitu – či už medzi konštruktérmi spotrebnej elektroniky, priemyselných systémov, ale hlavne medzi amatérskymi technikmi (domácimi majstrami).

Pre úplnosť treba spomenúť, že existujú ešte ďalšie typy mikrokontrolérov od rôznych firiem, ako sú Freescale (predtým Motorola), Acorn, Zilog a iné.

Programovanie mikrokontrolérov

Tak ako napredoval vývoj mikrokontrolérov, vyvíjali sa aj rôzne nástroje na ich programovanie. Prvé mikrokontroléry sa programovali (a ešte sa občas aj dnes programujú) v jazyku assembler. Na výpise č. 1 je príklad programu na blikanie LED diódy pripojenej  k mikrokontroléru v jazyku assembler (nie, neľakajte sa, touto cestou nepôjdeme).

Existujú aj efektívnejšie nástroje na programovanie mikrokontrolérov. Napríklad pre mikrokontroléry PIC existuje nástroj PIC Basic Compiler, čo je kompilátor jazyka Basic. Na výpise č. 2 je príklad v jazyku PIC Basic, ktorého úlohou je takisto rozblikať LED diódu pripojenú k mikrokontroléru. Nevýhoda tohto programovacieho nástroja je v tom, že je komerčný, a tak ho treba riadne zakúpiť, pričom cena pre slovenského študenta alebo amatéra nie je zanedbateľná.

V poslednom čase sa najviac rozmáha programovanie v jazyku C a C++, a to nielen v prostredí mikrokontrolérov, ale aj osobných počítačov. Ide totiž o naozaj mocný programovací jazyk, ktorý je dostupný aj zadarmo, a tak netreba vynakladať financie na jeho obstaranie. Ako podobný príklad blikania LED diódy vyzerá v prostredí jazyka Wiring (voľne dostupná obdoba jazyka C a C++ pre mikrokontroléry Atmel), to vidíte vo výpise č. 3.

Existujú aj iné vyššie jazyky, ako je Pascal, ale tie nemajú takú masívnu podporu medzi používateľmi.

Mikrokontroléry a ich okolie

Už sme uviedli, čo je mikrokontrolér, z čoho sa skladá a čím sa programuje. Ale ako sa taký čip s mnohými nožičkami pozapája tak, aby sme s ním mohli začať seriózne pracovať? Teraz azda začneme kresliť plošný spoj, vŕtať, rezať a letovať?

Ale nie! Už v úvode sme spomenuli, že toto je seriál aj pre menej znalých. Nebudeme nič vyrábať.  Aj keď funkčné minimálne zapojenie mikrokontroléra vyžaduje naozaj  iba pár súčiastok (obr. 2), my si zabezpečíme už hotový kit, kde je všetko pripravené na našu prácu. Tomu kitu sa hovorí Arduino. K dispozícii je niekoľko variantov kitu Arduino a na naše ciele sa najviac hodí kit Arduino Uno.

Arduino UNO

Arduino Uno (čítaj „ardvíno uno“) je už hotový kit (obr. 3), ktorý stačí pripojiť k osobnému počítaču pomocou kábla USB a programovať. Arduino je open source platforma, založená na mikrokontroléri ATMega od firmy Atmel. Používa sa na vytváranie rôznych samostatných aplikácií. Na spojenie s osobným počítačom používa pripojenie USB, ktoré slúži nielen na programovanie Arduina, ale aj na komunikáciu Arduina a PC, takže môžeme pomocou USB zasielať do osobného počítača výsledky rôznych meraní (napr. teploty, tlaku...) alebo výpočty. Centrom Arduina Uno je mikrokontrolér ATMega 328P, na ktorého vývody môžeme pomocou vyvedených konektorov pripájať rôzne externé obvody, LED diódy, tlačidlá, displeje, spínače, motory, senzory tlaku, tepla, rýchlosti a iné. Kit Arduina má na doske aj stabilizátor napätia, takže kit môžeme napájať buď z osobného počítača cez USB, alebo cez malý konektor z nejakej batérie či akumulátora.

Doska Arduino Uno obsahuje 14 digitálnych vstupov/výstupov, z ktorých 6 môže byť použitých ako impulzová šírková modulácia. Okrem toho obsahuje 6 analógovo-digitálnych prevodníkov, pomocou ktorých môžeme (a aj budeme) merať analógové veličiny, ako je napätie, prúd, teplota, tlak, ale aj náklon a podobne. Arduino Uno obsahuje tri druhy pamätí. Prvá je 32-kilobajtová pamäť flash, do ktorej sa nahráva program. Program v tejto pamäti zostáva aj po odpojení napájacieho napätia. Druhá pamäť je 2 kB SRAM, ktorá slúži na ukladanie rôznych premenných a medzivýpočtov počas behu programu. Táto pamäť svoj obsah stráca po vypnutí napájania kitu. Keby sme z určitého dôvodu potrebovali predsa len uložiť vypočítané alebo namerané hodnoty aj po odpojení kitu od napájania, môžeme použiť tretiu pamäť EEPROM s veľkosťou 1 kB.

Okrem spomenutých vecí doska Arduina Uno obsahuje rôzne čítače (využijeme pri tvorbe hodín),  sériový port RS-232, dobre známy z osobných počítačov (aj ten využijeme) a zbernice SPI a I2C na spojenie s ďalšími modernými obvodmi a zariadeniami.

Arduino Uno má na doske už pripojenú jednu LED diódu – to preto, aby sme mohli hneď odskúšať naše prvé programy bez nutnosti používať externú diódu na kontaktnom poli.

Typy Arduina

Okrem Arduina Uno existujú aj rôzne iné typy, zamerané na špeciálnejšie aplikácie. Uno je typický predstaviteľ tzv. vývojového kitu, teda kitu, na ktorom vyvíjame, odlaďujeme a skúšame softvér pre konkrétnu aplikáciu. No ak už budeme chcieť našu aplikáciu trochu minimalizovať, môžeme použiť napríklad malý a šikovný kit Arduino Nano, ktorý je trošku väčší ako poštová známka (obr.  4).

Arduino Uno a shieldy

Možno si niekto položí otázku, že prečo je Arduino Uno také veľké, ak sa dá urobiť vo veľkosti poštovej známky ako Arduino Nano. Je to jednoduché – Arduino Uno je vďaka postranným konektorom pripravené na používanie takzvaných šildov (z angl. shield – štít). Tie svojimi kontaktmi presne zapadnú do dosky Una, takže nie je potrebné nijaké prepojovanie pomocou vodičov a podobne. Tie štíty možno dokonca stohovať, teda zasúvať jeden do druhého, tak ako je to na obrázku č.  5.

Štítov existuje neskutočné množstvo (nedávno som napočítal 123 rôznych druhov) – od  rôznych displejov cez spínače, bzučiaky až po eternetové a Wi-Fi moduly schopné komunikovať po počítačovej sieti. (V blízkej budúcnosti budeme používať dvojriadkový LCD displej a niekoľko tlačidiel a ten, kto chce, môže si zabezpečiť už hotový štít, kde je spomínaný displej aj s podsvietením a 6 tlačidiel – obr. 6).

Klony Arduina

Ako sme už spomenuli, Arduino je open source platforma. To znamená, že ho síce vyrába talianska firma, ale v zmysle otvoreného formátu (open source) rôzni výrobcovia vyrábajú jeho klony (len nesmú mať názov Arduino). Spravidla majú v názve koncovku -duino, -uino alebo -ino, v každom prípade treba zistiť, či ide o kompatibilný kit (Arduino compatible). Klony bývajú podstatne lacnejšie (aj okolo 5 eur) a sú dostupné na internete hlavne z ázijských krajín. Môžem potvrdiť, že mám niekoľko klonov a všetky fungujú spoľahlivo. Tak ako samotné Arduino aj štíty vyrábajú rozliční výrobcovia v rôznych klonoch.

Programovanie Arduina

Programovanie rôznych typov Arduina, teda nielen Arduina Uno, ale aj Nano, Micro a asi 20 ďalších sa uskutočňuje v integrovanom prostredí pod jazykom Wiring, čo je akýsi kompilát jazykov C a C++. Preto ten, kto zvládne jazyk Wiring, nebude mať problémy s prechodom na jazyk C alebo C++. Wiring má aj akúsi grafickú nadstavbu Processing, v ktorom dokážeme vytvárať napríklad efektné displeje, zobrazujúce na monitore osobného počítača údaje zaslané, zmerané alebo vypočítané Arduinom. Na obrázku č. 7 je vzhľad programovacieho prostredia pre Arduino.

Na obrázku č. 8 je príklad vzhľadu meteostanice vytvorenej z Arduina Uno a zobrazujúcej na monitore PC, napísaného v grafickej nadstavbe Processing. Ako sme už uviedli, programovacie prostredie Arduina je integrované, to znamená, že okrem editora programových zdrojových kódov obsahuje aj prekladač jazyka Wiring do strojového kódu pre mikrokontrolér, ale aj nástroj na nahrávanie preloženého kódu do mikrokontroléra. Nesmieme zabudnúť na veľké množstvo vzorových príkladov. Toto vývojové prostredie je dostupné pre viaceré operačné systémy, teda nielen pre MS Windows, ale aj pre Linux a počítače Apple. A to všetko zadarmo vrátane zdrojových  kódov. Arduino je naozaj veľmi rozšírené, a tak na internete možno nájsť kopu už hotových aplikácií a príkladov.

Čo budeme potrebovať

V prvom rade Arduino Uno verzie R3 alebo jeho klon (obr. 3). Môžeme ho zakúpiť v príslušných obchodoch s elektronikou alebo priamo na internete (eBay a podobne), kde cena je veľmi prijateľná, ide len o niekoľko eur.  Neskôr budeme potrebovať nespájkovacie kontaktné pole, podobné tomu na obrázku č. 9. A ešte pár káblikov s hrotmi na oboch stranách (obr. 10). Pripravíme si ich sami alebo zakúpime. V núdzi môžeme použiť aj vodiče používané v počítačových sieťach. Ostatné komponenty spomenieme neskôr, aby sme si ich zabezpečili do ďalšej časti seriálu.

 

 

 

Zobrazit Galériu

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

Mohlo by Vás zaujímať

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ž ...

Ako na to 1

Tipy a triky: Ako aplikácii prednastaviť spúšťanie s administrátorskými právami?

30.11.2016 00:10

Väčšina aspoň trochu skúsenejších používateľov vie, že aj keď máte na operačnom systéme Windows vytvorený administrátorský účet, aplikácie pre bezpečnosť nefungujú vždy splnými administrátorskými práv ...

Ako na to 2

Tipy a triky: Ako vypnúť uzamykaciu obrazovku vo Windows 10?

29.11.2016 00:10

Rozčuľuje vás, že pred každým prihlásením doúčtu vášho počítača musíte prejsť uzamykacou obrazovkou? Windows 10 na tejto obrazovke ukazuje čas,dátum anejakú zaujímavú fotografiu zrôznych kútov sveta. ...

1 Comments

  1. Pochvala reakcia na: ARDUINO - programujeme mikrokontroléry/1.časť
    19.11.2016 23:11
    Super a jednoducho vysvetlené, prečítal som prvú časť a teším sa na ďalšie.
    Reagovať

Vyhľadávanie

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

Najnovšie videá