Mikrokontrollerek Alkalmazástechnikája Házi Feladat
Schmelczer András (CVTNXD)	Név	
Szimulációs játék	Feladat címe 	
dr. Benesóczky Zoltán	Feladat konzulense	
Specifikáció
ATTINY85-ös mikrokontrollerrel szeretnék megvalósítani egy infrás távirányítóval irányítható játékot. A játék futásához nem kell emberi beavatkozás, magától is történnek benne események, viszont, ha fogunk egy távirányítót, akkor az egyik karaktert irányíthatjuk vele.
Infrán keresztüli kommunikációnál legalább hét különböző kérést lehet küldeni. A kijelző fényereje állítható növekvő és csökkenő irányban, a képernyőn látható egyik karakter mozgatható négy irányban, illetve a képernyőn látható karakter késztethető cselekvésre.
A rendszerrel továbbá UART-on keresztül is lehet kommunikálni. Küldeni a távirányító által küldhető parancsok karakteres megfelelőjét lehet. Visszafele pedig az egy képkocka kirajzolásának ideje érkezik.
Maga a játék az űrben játszódik. Ezen belül egy űrhajóban található a játékos által irányított karakter és pár másik, a gép által irányított karakter is. A karakterek az űrhajót irányíthatják (ehhez az irányítópulthoz kell menni, és megnyomni az akció gombot). Az űrhajóval lőni is lehet, ehhez egy másik irányító pulthoz kell menni. 
Az űrhajó ütközhet az aszteroidákkal, ilyenkor az energiája csökken. Az energia lövés hatására is csökken. Erről visszajelzést egy az űrhajó spritejába integrált csík szolgáltat. Ha a csík hosszúsága nulla, a játéknak vége, és egy effekt lejátszása után elölről kezdődik. Ezt elkerülendő a fedélzet megfelelő pontján kell az akció gombot megnyomni, ilyenkor újra feltöltődik a csík. Néha megjelennek aszteroidák, melyek szétlőhetők. 
A spriteok animálhatók és bizonyos objektumok esetén pixel-pontos ütközésérzékelés is történik. A háttérben csillagok mozognak véletlenszerű konfigurációkban. 
A technikai részletek a következők; egy 128x64 pixel felbontású SPI-on kommunikáló kijelző szolgál kimenetként, egy TSOP szériás infra érzékelő pedig bemenetként. Utóbbi illesztője a NEC protokollt támogatja. Fejlesztés alatt a mikrokontroller debugWIRE interface-én kerül sor a debugolásra. A tárgykövetelmények miatt UART-os kommunikációra is szükség lesz, viszont a lábak elfogytak, így a kimeneti lábakat egy shift regiszterrel kell bővíteni, amivel kvázi SPI-on keresztül lehet kommunikálni. Követelmény még, hogy legalább 50-60 képkockát kirajzoljon másodpercenként. Ezt szerencsére a kijelző támogatja.
A mikrokontroller beépített USI-ja az SPI kezelésre lesz konfigurálva, lévén ez az időkritikusabb a relatíve nagy sávszélességet igénylő képkockák átküldése miatt. Az UART és az infra kezelésére pedig maradnak a pin change és timer interruptok.
Blokkvázlat (ISP és UART adapter nélkül)

Alkalmazás felelősségei
•	
•	Perifériák kezelése
o	Shiftregiszter
o	Kijelző
o	UART
o	Infra
•	Low-level funkciók megvalósítása
o	Rajzolás, spriteok, téglalapok
o	Bejövő üzenetek feldolgozása (UART, infra)
o	Véletlenszám generátor
o	(Egyszerűbb) vektor műveletek

•	Játékmenet kezelése
o	Objektumok létrehozása, frissítése
o	Ütközésérzékelés
o	Intelligens karakterek
o	Játék végének kezelése