Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2014:led-bludiste

Toto je starší verze dokumentu!


Individuální projekt MPOA - zimní semestr 2014/2015.


Zadání projektu

Bludiště s kuličkou — Využijte RGB LED matici. Jedna barva LED reprezentuje kuličku, druhá cíl, třetí stěny. Nakláněním desky se bude kulička pohybovat k okraji a zastavovat se o stěny. Na závěr se na LED matici zobrazí počet sekund, jak dlouho trvalo hráči dostat kuličku do cíle.

RGB LED matice není v našem konkrétním případě tak docela RGB, neboť modrá složka chybí. Dostupné barvy jsou tedy červená, zelená a oranžová. Více barev naštěstí není potřeba, takže kulička bude mít zelenou barvu, cíl bude červený a stěny bludiště budou, kromě okrajů LED matice, reprezentovat oranžově svítící LED. Stěn využijeme proto, že matice formátu 8×8 LED je pro účel bludiště i tak malá, přičemž rozsvícením okrajů v oranžové bychom získali pouhých 6×6, což už je na nějakou zajímavější trasu zoufale málo.

Po dosažení cíle vypíše matice zelenou barvou čas, za který hráč prošel bludištěm (ve formátu 123s).


Hardware

Základem celé aplikace je vývojová deska KL25Z, samozřejmě osazená pro propojení s LED maticí. Obrázky níže zachycují osazenou desku

a použitou LED matici 8×8.

Pro propojení obou hardwarových částí slouží převodník. Ten byl původně navržen pro jinou vývojovou desku, takže bylo třeba použít ještě jednu DPS pro přepolohování pinů k propojení s KL25Z. Stránka o převodníku z původního převodníku na vývojovou desku je ZDE. Deska je navržena jako oboustranná s prokovy v místě pinů, takže pájení vyžaduje promyšlení postupu a trochu trpělivosti. Já doporučuji (samozřejmě po navrtání) tento postup.

  1. Zapájet tři prokovy uprostřed. Čtvrtý je nadbytečný.
  2. Nasadit všechny piny do vývojové desky, nasunout desku redukce a zapájet ze strany TOP.
  3. Vysunout z vývojové desky, vysunout plasty pinů, zapájet potřebné piny ze strany BOTTOM a plasty zatlačit zpět.
  4. Na původní desce převodníku vycvaknout plasty na 18. dvojici pinů v levém sloupci a 10. a 18. dvojici pinů na pravém sloupci.
  5. Nasunout původní desku převodníku do nového převodníku a zapájet ze strany BOTTOM.
  6. Zmíněné tři dvojice pinů zapájet ze strany TOP.
  7. Zapájet UART ze strany BOTTOM, na straně TOP pak ještě VCC.
  8. Volitelně přidat rezistory a tlačítka (lze i kdykoliv dodatečně, přístup je bezproblémový).

Výsledek ukazují obrázky níže.


Software

Pro řízení LED matice slouží podle ROZPISU následující piny.

RED řádek - PTC 8, 9, 10, 11, 12, 13, 16, 17,

GREEN řádek - PTC 0, 1(RTC_CLKIN), 2, 3, 4, 5, 6, 7,

Řízení sloupců - PTB 0, 1, 2.

Prvním krokem po startu je uzemnit v obou barvách piny pro LED reprezentující stěny. Současně zobrazíme kuličku a cíl. LED reprezentující stěnu bude zapsána v „Seznamu stěn“. Jakmile akcelerometr vrátí údaj o náklonu některým směrem, začne se počítat čas. Náklon mění souřadnice kuličky a současně vyhodnocuje, jestli změna nekoliduje se zablokovanou pozicí patřící stěně. Pokud dojde ke kolizi, „pohyb“ se neuskuteční. Po splynutí souřadnic kuličky se souřadnicemi cíle se časomíra zastaví a údaj se vypíše na matici.

S konkrétním hardwarem nastává v zobrazování drobný nedostatek. Pokud budeme sestavu držet rukama jinak, než za hranu desky redukce, může se snadno stát, že dotykem uzemníme některý pin obsluhující LED. Na to je třeba při hře dávat pozor. Jako cheat toho ovšem využít nelze, neboť hra nekončí po dosažení červeně svítící LED, ale po dosažení konkrétní pozice:)

2014/led-bludiste.1421254076.txt.gz · Poslední úprava: 2015/01/14 17:47 autor: Ivan Ryba