Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT. Nagyteljesítményű mikrovezérlők tantárgy [vimim342]



Hasonló dokumentumok
GQ-3x és GQ-4x USB univerzális programozó Kézikönyv

ARM mikrovezérlők programozása

I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

EUROFLEX-33 ESEMÉNY NYOMTATÓ. -felhasználói és telepítői leírás-

Mérő- és vezérlőberendezés megvalósítása ARM alapú mikrovezérlővel és Linux-szal

NCT 101, 104, 115 szerszámgép vezérlések Telepítési leírása A.066 (M) (L) kiadási számú szoftver változattól

Procontrol. Kezelői és telepítői kézikönyv. Internetről kapcsolható dugaljzat _R9C revízió

kezelési útmutató PC1-s88 interfész digitools.hu

ÜZEMBE HELYEZÉSI ÉS KEZELÉSI LEÍRÁS SMS-COM SMS-COM BOX SMS-COM PS VOICE-COM VOICE-COM BOX VOICE-COM PS (V3.3, V3.4)

Mérési útmutató a Mobil Kommunikáció és Kvantumtechnológiák Laboratórium méréseihez

ARM Cortex magú mikrovezérlők. mbed

Programozási segédlet DS89C450 Fejlesztőpanelhez

A TANTÁRGY ADATLAPJA

ProxerBoard System. Termékismertető

Quantometer 2.0 Fogyasztásmérő program és illesztőkészülék

Számítógép Architektúrák

Q37A Vezérlés 1 vagy 2 szárnyú kapukhoz

SL7000. Intelligens kereskedelmi és ipari fogyasztásmérő

AlphaRex 3 digitális programkapcsoló

Mérési útmutató. A/D konverteres mérés. // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait.

ScopeImage 9.0. Kamera és képfeldolgozó szoftver. Felhasználói kézikönyv

ÜZEMBE HELYEZÉSI ÉS KEZELÉSI LEÍRÁS TERMO-COM 8 TERMO-COM 8 PS (P) (V3.4)

ACTROS VTC Segédlet a Közúti irányító és kommunikációs rendszerek II. c. tárgyhoz. Tettamanti Tamás 2010.

Bemutatás. Elrendezés. Leírás. Műszaki adatok. Funkciók

PR402EN.doc. PR402 v1.0 Egyajtós beléptetõ rendszer FIRMWARE VERZIÓ Telepítési útmutató

I 2 C, RS-232 és USB. Informatikai eszközök fizikai alapjai. Oláh Tamás István

ELŐADÁS SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

Hardver leírás Klasszikus kontroller v.3.2.2

MS-ADTKIJ Kezelési útmutató

OMRON PLC és IMO kijelzı egység összekötése

Scherer Balázs: Mikrovezérlők fejlődési trendjei

Whead 3.0. Szélsebesség és széliránymérő illesztő távadó. Előzetes

MARKATOR -TERMÉKSKÁLA JELÖLŐRENDSZEREK MV5 ZE 100 ÉS 101

0 0 1 Dekódolás. Az órajel hatására a beolvasott utasítás kód tárolódik az IC regiszterben, valamint a PC értéke növekszik.

LOGSYS LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 18. Verzió

MICROCHIP PIC DEMO PANEL

ISE makró (saját alkatrész) készítése

Arduino bevezető Szenzorhálózatok és alkalmazásaik

GM-900 GSM/GPRS modem. Alkalmazási útmutató

Mérési jegyzőkönyv. az ötödik méréshez

SEAGUARD. Integrált Biztonság-felügyeleti Rendszer

USB HID 1. Bevezetés. 2. A Hardver

BEN. BEN vezérlés 1. oldal

TMS370 EEPROM PROGRAMOZÓ Felhasználói kézikönyv

Enigma IP2. Távfelügyeleti Vevő

Nyomtatott áramkörök

Mérési útmutató a Mobil Kommunikáció és Kvantumtechnológiák Laboratórium méréseihez

Procontrol RSC-24B. Kezelői, telepítői kézikönyv. RS232 / RS485 adatkonverter. Verzió:

Számítógépek felépítése, alapfogalmak

GÁZ-KORLÁT Készülékcsalád

CPWET: MÉRLEGMŰSZER FEJLETT IPARI ALKALMAZÁSOKHOZ, IP68 ROZSDAMENTES ACÉL HÁZ

Silabs STK3700, Simplicity Studio laborgyakorlat

SATEL. CA-64 RIASZTÓKÖZPONT ( es szoftver verzió) Telepítési útmutató

OMNIALOG adatgyűjtők NI-48XX

CAN BUSZ ÁLTALÁNOS ISMERTETŐ

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

DUALCOM SIA IP TELEPÍTÉSI ÉS ALKALMAZÁSI ÚTMUTATÓ. V és újabb modulverziókhoz. Dokumentum verzió:

TI TMDSEVM6472 rövid bemutatása

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

ACE6000. Intelligens kereskedelmi és ipari fogyasztásmérő

PROGRAMOZÓI KÉZIKÖNYV

PROG-EXPRESS. Felhasználói kézikönyv

PDT Sync Pack v 1.3. PDT Sync Server és Sync Client

MARKATOR -TERMÉKSKÁLA JELÖLŐRENDSZEREK MV5 ZE 100 ÉS 101

A PC vagyis a személyi számítógép. XV. rész. 1. ábra. A billentyűzet és funkcionális csoportjai

PROGRAMOZÓI KÉZIKÖNYV

Kameleon Light Bootloader használati útmutató

DGSZV-EP DIGITÁLIS GALVANIKUS SZAKASZVÉDELEM. Alkalmazási terület

GuideReg demó program telepítési útmutató

LOGalyze Telepítési és Frissítési Dokumentáció Verzió 3.0

SA-GPCOM. Telepítési leírás. Ipari GPRS átjelző. Dokumentum verzió szám: v1.0 HUN. SA-GPCOM telepítési leírás

- 1 - FUB-26 Használait útmutató

FEDÉLZETI INERCIÁLIS ADATGYŰJTŐ RENDSZER ALKALMAZÁSA PILÓTA NÉLKÜLI REPÜLŐGÉPEKBEN BEVEZETÉS

GT64 GSM/GPRS modem. Alkalmazási útmutató

Antenna forgató elektronikus vezérlése visszajelzéssel

S7021 ADATGYŰJTŐ. 2-csatornás adatgyűjtő számláló és bináris bemenettel. Kezelési leírás

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

Mérési utasítás Mikrokontroller programozás 2.sz. mérés

AR-821EFB5-9000MT BIOMETRIKUS BELÉPTETŐ VEZÉRLŐ FELHASZNÁLÓI KÉZIKÖNYV P1 P2 P3 P4 P5 P6

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

riasztorendszerbolt.hu

Internet-hőmérő alapkészlet

Tartalomjegyzék 5 TARTALOMJEGYZÉK

PQRM Ux Ix xx xx (PS) Háromfázisú multifunkciós teljesítmény távadó. Kezelési útmutató

A táblaszámítógép bemutatása

Érzékelők és beavatkozók I.

TELLMon vevőegység FELHASZNÁLÓI ÚTMUTATÓ. V és újabb verziókhoz Rev

Telemetrikus (távmérő) meteorológiai állomás

3. Hőmérők elkészítése

OKI B430 telepítési útmutató

GPT 9800 sorozatú nagyfeszültségű szigetelésvizsgálók

komplex védelem Letöltő szoftver ismertető V1.61 Azonosító: EP Budapest, február

TC3XY Gyorskezdés Segéd Útmutató es verzió

SZOCIÁLIS ÉS MUNKAÜGYI MINISZTÉRIUM

Procontrol Workstar 35 PatrolGuard

Akkumulátor teszter és adatgyűjtő 24V/25A

Átírás:

Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT Nagyteljesítményű mikrovezérlők tantárgy [vimim342] 8x8x8 LED Cube Készítette: Szikra István URLJRN

Tartalomjegyzék 1 Összefoglalás...3 1.1 Hardver...3 1.2 Szoftver...3 1.2.1 Mikrokontroller...3 1.2.2 PC...3 2 Blokkvázlat...4 3 Szoftver működés...4 3.1 Library...4 3.2 Main...5 3.3 Animáció...5 3.4 Felhasználói eseménykezelő...6 3.5 Infra kezelő...6 3.6 Parancssor megjelenítő...6 3.7 Soros port terminál...6 3.8 Parancsértelmező...6 4 Prototyping, Standalone Compiler...7 2

1 Összefoglalás Animációk generálása 8*8*8-as LED kockára mbed modullal (NXP LPC1768 ARM Cortex-M3 mikrokontrollerrel) 1.1 Hardver 512 db LED, 8*8*8-as kockába rendezve Időosztásos 64*8-as led mátrix meghajtás, 100Hz frissítés *8 szint (szint választó FET váltás)*16 fényesség árnyalat (szint bitminta frissítés) * 64 bites szint meghajtó shift regiszter (820 kbit/s soros sebesség SPI busz). TSOP1736 infra vevő Tápellátás: stand-alone, és/vagy csak az mbed USB buszon (RTC) 1.2 Szoftver A kocka önállóan is használható, viszont egyes funkciók csak PC-ről érhetők el. 1.2.1 Mikrokontroller RTC, idő kijelzés, beállítás Soros terminál USB-n keresztül, parancsértelmezővel, időt megjelenítő parancssorral (command prompt) Kijelzés: 256 byte-os frame buffer, 4bit/pixel árnyalat Rajzolás funkciók Animáció választás File kezelés: 3D betöltés, lementés, file megtekintés, könyvtár listázás Infra távirányítóval futtatható scriptek 1.2.2 PC Egyszerű soros port terminál. Nincs szükség speciális szoftverre. 3

2 Blokkvázlat LED mátrix LED meghajtó 5V táp Infra távirányító mbed modul PC 3 Szoftver működés 3.1 Library Az mbed online fejlesztőkörnyezete kiterjedt objektum orientált könyvtárral rendelkezik. A programban felhasznált főbb komponenseket mutatom be itt röviden. Az mbed interfész IC-nek van egy soros portja ami az LPC1768-as ARM mikrokontrollerre van kötve, és amit a PC-n virtuális soros portként el lehet érni. Ehhez Windowson fel kell telepíteni a virtuális soros port drivert 1. A mikrokontrolleren az mbed Serial osztály baud metódusával lehet beállítani a baud ratet (115200). A printf, putc metódusokkal lehet formázott szöveget, karaktert küldeni a PC-nek. A readable(), getc() szolgál a bejövő adatok olvasására. Időzítőből több osztály is van az mbed könyvtárban: A Ticker ütemezésre való, az attach metódussal lehet megadni melyik függvény milyen időközönként hívódjon meg. A Timer idő mérését szolgálja, melyet a start()-tal indítunk és read_us() metódussal olvasunk ki. A Real Time Clock kezelésére használt függvények time, set_time, mktime, localtime, strftime. Az mbed lib 19. revizióban még inicializálni kellett egy set_time hívással, amit javítottak 20.-ban, így most már reset után használható a time függvény az idő lekérdezésére. 1 http://mbed.org/handbook/windowsserialconfiguration 4

A LocalFileSystem osztály az mbed interfész chipen tárolt file rendszerhez fér hozzá. Ez az a tárterület, amit USB-n keresztül elérünk, és amire a bináris állományt letöltjük. A C stdio standard librari-jában megtalálható fopen, fread, fwrite, fgets, fclose, opendir, readdir, closedir függvények használhatók file kezelésre. A mikrokontroller programból történő resetelésére egy nem dokumentált függvény használható, aminek hatására a tárolón található az legfrissebb bináris állomány betöltődik, ugyanúgy mintha az mbed modulon megnyomtuk volna a reset gombot. extern "C" void mbed_reset(); Az infra távirányító kezeléséhez digitális jelen kell impulzusok idejét mérni, amire az külső megszakítás használó InterruptIn osztály alkalmas. Ennek két metódusát (rise és fall) kell a megfelelő paraméterekkel meghívni, hogy függvényeket rendeljünk a fel és lefutó éleknél bekövetkező eseményekhez. Az idő mérésére a már említett Timer osztály való. A véletlen szám generátort az srand(time(null)) hívással inicializálom, és a rand() függvénnyel kérdezem le. 3.2 Main Induláskor a program inicializálja az általános célú ki-, bemeneteket (státusz és hibajelző ledek, infra vevő), kommunikációs csatornákat, időzítőket (timer, RTC) és lefuttatja az "autoexec.bat" nevű scriptet. A főprogram belső ciklusban frissíti a LED mátrixot, villogtat egy státusz ledet az mbed modulon, és lépteti az animációt ha az engedélyezve van. 3.3 Animáció A különböző animációk egy függvény pointer tömbben vannak tárolva. A főprogram ezt a tömböt indexelve hívja meg az animációkat (a tömb határait ellenőrizve). Az animációkat lehet futtatni, ebben az esetben a main loop minden ciklusában meghívja a beállított indexű animációt. Lehet léptetni, ekkor csak a beállított számú ciklusban hívódik meg. Jelenleg 17 animáció választható, ebből az egyik véletlenszerű váltogat animációk között egy részhalmazából választva. A lényegesebbek: pixel shiftelés a frame bufferben körbecsordulással; a kocka palástjának X/Y/Z tengely körüli eltolása egy pixel sorral; véletlen pixel generálás és síkok menti elmozdítása; X,Y,Z irányú feltöltés, ürítés; geometriai minta generálás; óra, perc 5

kijelzés és palás menti forgatás (saját 4x7-es fontkészlettel); gömb mozgatása szögfüggvényekkel számított koordináták mentén; sík mozgatása és forgatása 3 tengely körül (mátrix szorzással és szögfüggvényekkel). 3.4 Felhasználói eseménykezelő Az eseménykezelő futtatását egy Ticker ütemezi. Az kezelő hívja meg a parancssor frissítését a soros porti terminálra, a soros port bevitel kezelőjét. Szintén itt történik az infra távirányító kezelése. Az érvényes bináris kódot hexadecimális karaktersorozattá alakítja, és mint.rc kiterjesztésű filenevű scriptet futtatja. 3.5 Infra kezelő Az infra megszakítás kezelő dekódolja a távirányító által küldött mintát, és jelzi az eseménykezelőnek, ha érvényes kódot talált. 3.6 Parancssor megjelenítő Kijelzi az aktuális időt, egy progress indicatort és a begépelt, vagy visszahívott parancsot. 3.7 Soros port terminál A soros portról addig olvas karaktereket, amíg van a bufferben adat. Ezeket egyesével dolgozza fel. Echot nem küld mindenről vissza a PC-nek, erre a parancssor frissítésénél kerül sor. Új-sor karakter fogadásánál meghívja a parancsértelmezőt az aktuális parancssorral. Backspace hatására törli az utolsó karaktert a parancssorból, Tab hatására üres parancssor esetén visszatölti a parancssorba az utoljára végrehajtott parancsot. Minden egyéb karakter bekerül a parancssor végére, amíg az el nem éri a maximális 64 karakter hosszúságot. 3.8 Parancsértelmező Ez a parancs végrehajtó is egyben. A parancsok listája: dir kilistázza a filerendszeren található fileokat. more kiírja a paraméterben kapott file tartalmát és file méretét time kiírja az aktuális dátumot és időt, ill. ha van paramétere, akkor beállítja az időt 6

date kiírja az aktuális dátumot és időt, ill. ha van paramétere, akkor beállítja a dátumot help megegyezik a "more help.txt" paranccsal info kiír pár rendszer információt: rendszer órajel, Fordító verziója, fordítás ideje, fordított file neve script paraméterben megadott file-t beolvassa és soronként végrehajtja a parancsértelmező újbóli meghívásaival load paraméterben megadott file-t tölti be a 256 byte-os frame bufferbe save paraméterben megadott file-ra menti el a 256 byte-os frame buffert, ezzel lementhetők szerkesztett ábrák set pixel beállítás, paraméterek az XYZ koordináta és a fényesség line 3D vonal rajzolás, paraméterek a kezdő és vég koordináta és a fényesség plane sík rajzoláshoz használható többszörös vonalrajzoló, paraméterek a vonal kezdő, vég koordinátása, fényessége, vonal eltolási vektora, eltolások száma run animáció futtatása, paraméterben az animáció száma adható meg, ennek hiányában az aktuálisat indítja el step a paraméterben megadott számút fog lépni az animáció stop animáció leállítása, a run-hoz hasonlóan paraméterezhető reset a mikrokontroller újraindítása 4 Prototyping, Standalone Compiler Az online fordító az első lépésekben kényelmes, de több ezer soros programok írása egy böngészőablakban már nem az. Az egyik jó leírás mbed-re történő fordításról amit olvastam a Compiling your own CMSIS Code for the mbed 2 ami a Code Sourcery's ARM EABI toolchain 3 -t használja. Az online fordító által generált bináris állományt nem csak mbed modulokon lehet futtatni hanem saját fejlesztésű LPC1768-as mikrokontrollert használó paneleken is: Prototype to hardware 4. 2 http://dev.frozeneskimo.com/notes/compiling_your_own_cmsis_code_for_the_mbed 3 http://www.codesourcery.com/sgpp/lite/arm/download.html 4 http://mbed.org/users/chris/notebook/prototype-to-hardware/ 7