Mikrovezérlők alkalmazása házi feladatok Feladatválasztás a gyakorlaton személyesen történik! Leadási határidő: 13. -14. heti gyakorlat póthét (pótleadás pótdíj ellenében) Beadandó: Néhány oldalas dokumentáció, amelyben ismertetésre kerül a feladat és a felhasznált egységek (pl. perifériák, külső eszközök) leírása Az elkészült program forráskódja (az egyes funkciók legyenek kommentezve) A megtervezésre került nyákterv és Gerber fájlok (a nyákterv bármely nyáktervező szoftverben elkészíthető) Az elkészült feladatot működését a leadáskor be kell mutatni! A félévközi jegy megállapításában a házi feladat 50%-os arányban számít! A feladatok párban végezhetőek, a megszerzett pontszám minkét félnél azonos. Egyéni feladatok esetén a feladatokat úgy kell kitalálni, hogy a lenti egységek közül minimum 2 különböző modul alkalmazása szükséges! Általános periféria: Analóg periféria: Kommunikáció: Timer A/D modul SPI EEPROM Output Compare Comparator I2C Hőmérő Input Capture UART LCD modul RTCC Az egyéni feladatokhoz használhatók Arduino panelek, azonban a programozáshoz az Arduino IDE és a hozzá kapcsolódó függvénykönyvtárak nem. A paneleket a mikrokontroller adatlapja alapján és az Atmel Studioval a következő pdf segítségével lehet programozni: http://www.microdigitaled.com/avr/hardware/arduino/usingarduinoboardsinatmelst udio.pdf 1
µmogi Panelen megvalósítható feladatok: F1. Kapcsolja össze a panelt soros porton keresztül egy PC-vel. Készítsen egy Beléptető rendszer alkalmazást, amely segítségével kódokat adhatunk meg, amely az eszköz EEPROM-jában kerül eltárolásra. Soros porton keresztül adjunk meg a belépési kódunkat, ha az megtalálható az EEPROM-ban, akkor zöld, különban piros LED jelezze az ajtó kinyitását. F2. RTCC modul alkalmazása. Az LCD-n jelenjen meg az idő. Az idő beállítására az SW1, SW2, SW3 nyomógombok segítségével történjen. Legyen Alarm funkció is, amely felkapcsolja a vörös LED-et. F3. RTCC modul alkalmazása. Az LCD-n jelenjen meg az idő. Az idő beállítására az SW1 nyomógomb és a potméter segítségével történjen. Legyen Alarm funkció is, amely felkapcsolja a zöld LED-et. F4. RTCC modul alkalmazása. Az LCD-n jelenjen meg az idő. Az idő beállítására soros vonalon történjen. Legyen Alarm funkció is, amely felkapcsolja a vörös LED-et. F5. Az LCD modul jelenítse meg a hőmérsékletet szövegesen. A hőmérséklettel arányosan csipogjon egy buzzer. F6. Az LCD modul jelenítse meg a hőmérsékletet ferde sávokkal. A hőmérséklettel arányosan világítson az RGB LED. F7. Az LCD modul jelenítse meg a reflexiós optokapú jelét szövegesen. A távolsággal arányosan csipogjon egy buzzer. F8. Az LCD modul jelenítse meg a reflexiós optokapú ferde sávokkal. A feszültség függvényében világítson az RGB LED. 2
F9. Az LCD modul jelenítse meg a potméter jelét szövegesen. A feszülséggel arányosan csipogjon egy buzzer. F10. Az LCD modul jelenítse meg a potméter jelét sávosan. A feszültség függvényében világítson az RGB LED. F11. Az LCD modul jelenítse meg az EEPROM-ban eltárolt szöveget (magyar ékezetekkel minimum 200 karakter). A léptetés a nyomógombok segítségével történjen. F12. Az LCD modul jelenítse meg az EEPROM-ban eltárolt szöveget (magyar ékezetekkel minimum 200 karakter). A léptetés időzítve történjen. A sebességet a nyomógombokkal lehessen beállítani. F13. Az LCD modul jelenítse meg a soros vonalon átküldött karaktereket (magyar ékezetekkel). Az új karakterek tolják ki a régieket az LCD képernyőjén. F14. Soros vonalon vezérelje az RGB ledek kitöltését, ezáltal keverjen ki különböző színeket. Készítsen C/C++ vagy C# nyelven egy programot. F15. Soros vonalon vezérelje az RGB ledek kitöltését, ezáltal keverjen ki különböző színeket. Készítsen LabView környezetben egy programot. F16. Készítsen egy stopperórát és jelenítse meg az LCD modulon az aktuális időt. A start/stop funkción kívül legyen egy köridő mérés is nyomógombokkal. F17. Készítsen egy visszafelé számláló időmérőt és jelenítse meg az LCD modulon az aktuális időt. A kezdeti idő beállítása történjen a nyomógombokkal. F18. Készítsen egy visszafelé számláló időmérőt és jelenítse meg az LCD modulon az aktuális időt. A kezdeti idő beállítása történjen a potméterrel. 3
F19. Egy FSR erőmérő szenzor jelét olvassa be és írja ki a mért érétket az LCD modulra. F20. Tároljon az EEPROM-ban neveket és telefonszámokat (2x16 karakteren). Jelenítse meg az értékeket a LCD modulon. A gombok segítségével lehessen léptetni F21. Készítsen el egy kerékpár sebességmérőt, változtatható kerékátmérővel. Az aktuális sebesség értékét írja ki az LCD modulra. F22. Gombnyomásra az EEPROM-ba mentse el a potméteren mért értékeket századmásodpercenként, összesen 100 darabot. A soros vonalon keresztül olvassuk vissza a mért értékeket. F23. Gombnyomásra az EEPROM-ba mentse el a hőmérővel mért értékeket másodpercenként, összesen 60 darabot. A soros vonalon keresztül olvassuk vissza a mért értékeket. F24. Soros vonalon olvassa ki a hőmérsékletet 500ms-onként. Készítsen C/C++ vagy C# nyelven egy programot, amely grafikonon ábrázolja a hőmérséklet változását. F25. Soros vonalon olvassa ki a hőmérsékletet 200ms-onként. Készítsen LabView környezetben egy programot, amely grafikonon ábrázolja a hőmérséklet változását. F26. Memória tesztelő játék. Az LCD-n megjelenő S1, S2, S3 feliratok sorrendjében kell megnyomni a megfelelő gombokat. A szintek növekedésével gyorsuljon a játék menete. F27. Kapcsoljon össze két µmogi-t SPI interfészen keresztül. A nyomógombokkal lehessen a másik oldali eszköz ledeit kapcsolni. 4
µmogi Panelen megvalósítható feladatok külső eszközökkel: E1. Készítsen egy RFID kártyabeolvasót, amely soros porton keresztül elküldi a beolvasott kártya adatait és egy időbélyeggel ellátva rögzíti egy fájlban a belépéseket. E2. Egy DHT11-es hő- és páratartalom mérő adatait írassa ki az LCD kijelzőjére. E3. Írassa ki egy HC-SR04 ultrahangos szenzorral mért távolságot az LCD kijelzőre. E4. Egy MAX7219-es ledvezérlő IC-el ellátott 8 digites kijelzőre írassa ki a potméteren mért feszültség értékét 4 tizedes jegy pontossággal. E5. Egy MAX7219-es ledvezérlő IC-el ellátott 8x8-as dot kijelzőn jelenítse meg a potméteren mért feszültség értékét pontonként. E6. Egy MAX7219-es ledvezérlő IC-el ellátott 8x8-as dot kijelzőn jelenítsen meg egy pontokból álló tetszőleges animációt. E7. Csatlakoztasson egy joystick gombot a panelhez, és írassa ki az aktuális X és Y pozíciót az LCD kijelzőre. E8. Készítsen el egy elem tesztelő eszközt, amely megméri az elem aktuális állapotát terhelve és terheletlenül. A mért értéket jelentse meg az LCD kijelzőn. E9. Készítsen egy ellenállásmérőt. A mért értéket írja ki az LCD modulra. E10. Készítsen kapacitásmérőt (közelítéssel). A mért értéket írja ki az LCD modulra. E11. Csatlakoztasson egy csipogót és játsszon le egy dallamot. 5
E12. Készítsen egy 0-12V között mérő multimétert. A mért feszültséget jelenítse meg az LCD kijelzőn. E13. Készítsen egy dobókocka szimulátort egy 7 szegmenses kijelzővel. E14. Készítse el egy 4x4-es billentyűmátrix beolvasását, adjon meg vele egy kapukódot, ha helyes a kód, akkor a zöld LED világítson. Helytelen esetben a piros. E15. Bluetooth modul segítségével illessze az eszközt Androidos, Windows Phone vagy Iphone telefonhoz. Készítsen egy alkalmazást, amely az átküldőt szöveges tartalmat kiírja az LCD képernyőre. E16. Bluetooth modul segítségével illessze az eszközt Androidos, Windows Phone vagy Iphone telefonhoz. Készítsen egy alkalmazást, amely megjeleníti a panelon mérhető hőmérsékletet. E17. Bluetooth modul segítségével illessze az eszközt Androidos, Windows Phone vagy Iphone telefonhoz. Készítsen egy alkalmazást, amely beállítja a kijelölt színt az RGB LED-en. E18. Készítse el egy HX711-es mérlegcella mérésének kijelzését, kalibrációját és tárázását. E19. Készítse el egy SHARP IR szenzoros távolságmérő kijelzését és kalibrációját. E20. Készítsen egy taps kapcsolót. E21. I2C-s port bővítő felhasználásával hajtson meg két hétszegmenses kijelzőt, amely gombnyomásra előre/hátra számlál. 6