Mikrokontroller

A mikrokontroller (mikrovezérlő) egy olyan IC, amiben egy teljes számítógép van.

Benne van a:

Mikrokontroller gyártók

Több cég készít mikrokontrollereket, jelenleg (2017) a Microchip PIC nevű mikrovezérlő-családja, és az Atmel Atmel AVR mikrovezérlő-családja a legelterjedtebbek az olcsó, könnyen használható kategóriában.

A Freescale mikrovezérlői nagyon szuperek, viszont összetett feladatokra készültek. Rengeteg komoly autóipari embedded rendszer használ Freescale mikrovezérlőt.

Ezeken kívül is vannak további gyártók, akiknek a termékei egy-egy speciális szempont szerint tűnnek ki, mint például nagyon kevés energiát fogyasztó mikrovezérlők, vagy éppen rengeteg további beépített funkció (mint például vezetékes internet közvetlen kezelése) miatt érdekesek.

Program készítése mikrokontrollerre

Ha egy mikrokontrollerbe programot szeretnél készíteni, sajnos ez picit érdekes, mivel nincs neki sem gombozata, sem kijelzője.

Ezért a programot általában egy asztali számítógépen készítjük el. Ehhez általában kapunk valami szövegszerkesztőt és compilert összegyúrva egy IDE-be. Az IDE azt jelenti, hogy Integrated Development Environment, magyarul "egybegyúrt fejlesztőrendszer". Ez egy olyan program, amibe minden benne van, ami a munkánkhoz szükséges.

Az IDE fontos része a compiler, ami az általunk megírt szöveget átalakítja - lefordítja - a processzor által megérthető számok sorozatára, a gépi kódra.

MikroPascal IDE: Pascal nyelven programozunk Microchip PIC mikrovezérlőket

Arduino IDE: C nyelven programozunk Atmel AVR mikrovezérlőket

Milyen nyelven ért a mikrokontroller?

A mikrokontroller - mint bármely más processzor - kizárólag a saját gépi kódját érti meg. A gépi kód egy jó adag bináris szám, ami leírja, hogy mikor mit kell csinálni.

Természetesen ez nem való embernek, ezért az emberek mindenféle kényelmes programnyelvet találtak ki. A legtöbb IDE tartalmaz egy fordítóprogramot (compiler), ami egy-egy jól ismert nyelvet, például Basic, Pascal, C, C++ képes feldolgozni, és a végét átfordítani úgy, hogy a mikrokontroller megértse.

Ez általában egy automatikus folyamat, számunkra úgy tűnik, hogy C nyelven programozunk.

Hogyan megy a program bele a mikrokontrollerbe?

A lefordított program a PC-ről valahogy bele kell hogy menjen a mikrovezérlő memóriájába. Ez a folyamat a mikrovezérlő felprogramozása, és ehhez kell egy kis szappantartó méretű eszköz, aminek az egyik vége USB, a másik vége pedig a mikrovezérlő lábaihoz csatlakozik.

Minden mikrokontroller-gyártónak van egy-egy ilyen eszköze.

A piros szappantartó egy PicKit3 programozó, ez nyomja a programot a PICbe

A kék panel egy USBasp programozó, ez nyomja bele a programot a piros paneles kütyübe
Ugyanazokon a lábakon megy be a program, amikre gombokat, ledeket köthetünk. Ha a programozás elkészült, akkor ezeket a lábakat már a programunk kezeli.

Mi történik a programozás után?

A programozó eszköz vezérli a mikrokontroller reset lábát. A programozás végeztével reseteli a mikrokontrollert, ami elkezdi végrehajtani a benne lévő programot.

Ekkor már a mikrokontroller teljes viselkedését a mi programunk irányítja.

Mi van, ha nem jó?

Ha a programon változtatni akarunk, akkor azt bármikor megtehetjük, és a programozó eszközzel újra átírhatjuk a mikrokontrollerben lévő programot, pont úgy, mint ahogy más-más dolgokat másolunk egy pendrive-ra.

Régen ez nem volt ennyire egyszerű, volt idő amikor a program külön eprom chipben volt, és azt először 15 percig UV fény alá kellett tenni, hogy elfelejtse a tartalmát. Csak ezután lehetett újra programozni. De annak az időnek már vége, lassan 15 éve. :)

Mikrokontroller fejlesztő platformok

Hogy megkönnyítsék a mikrokontrollerekkel a munkát, ezért megannyi megoldást eszeltek ki a mérnökök.

A PICAXE esetében nem kell drága programozó készülék, elég egy olcsó programozó kábel. Ráadásul a hozzá kifejlesztett IDE-ben nem csak Basicben, hanem Blocky nyelven is lehet programozni.

Az Arduino kifejezetten azért készült, hogy minél könnyebb legyen mikrokontrollerrel kütyüket csinálni. Ez tartalmaz egy teljes C és C++ fordítót, és olyan paneleket, amikben benne van a mikrokontroller és a programozó készülék funkciója is.

Ha veszel egy Arduino panelt, azt elég rádugni a gépre, és máris indulhat a móka.

Hol vehetek Ardunio-t?

A google segít: arduino site:.hu a keresőkifejezés. Ezen kívül a TME www.tme.eu/hu is forgalmaz Arduino paneleket.