Witam wszystkich
Chciałbym przedstawić Wam mój mały projekcik – gra SNAKE na matrycach LED sterowanego za pomocą telefonu z androidem.
Budowa
Do budowy wykorzystałem:
– 4 moduły matryc led ze sterownikiem ( MOD-39 firmy Modułowo)
– moduł Bluetooth MOD-02
– klon arduino z atmegą 328p – ale tylko jako platforma sprzętowa, program jest napisany w czystym C
– ramka do zdjęć RIBBA z IKEI
– folia czerwona dla lepszego efektu
– do sterowania wykorzystuje telefon Samsung trend
Aby z 4 matryc utworzyć wyświetlacz 16×16 trzeba je połączyć wg rysunku(widok z przodu):
Kolejność jest ważna, ponieważ dla innych konfiguracji trzeba będzie modyfikować funkcje wysyłające. Długo myślałem w czym umieścić mój wyświetlacz i przypadkiem wpadła mi w ręce ramka „RIBBA” okazało się, że wycięcie w jej środku idealnie pasuje na 4 matryce. Zamontowałem je w środku dość prymitywną metodą – przy użyciu taśmy klejącej. Stwierdziłem, że tył i tak będzie zamknięty, więc nikogo nie będzie to razić w oczy. Podobnie stwierdziłem odnośnie płytki PCB –gdybym miał ją wytrawiać byłaby tam tylko ATmega z wyprowadzeniami, a i tak wszystko byłoby połączone przewodami, więc wykorzystałem taniego klona arduino. Z przodu za szkłem umieszczamy odpowiednio wycięty kawałem czerwonej folii (może być np od przyciemniania szyb w samochodach). Po zamocowaniu wygląda to tak:
Pomijając oczywiste połączenia zasilania i masy do modułów resztę wyprowadzeń łączymy w taki sposób:
PIN MATRYCY | PIN ATMEGI | PIN ARDUINO |
IN | PB3 | D11 |
CLK | PB5 | D13 |
LOAD | PB2 | D10 |
PIN BT | ||
RX | PD0 | D0 |
Moduły matryc między sobą szeregowo.
Sterowanie
Do sterowania służy specjalna aplikacja przeznaczona na telefony z androidem napisana w App Inventorze 2. Za pomocą tej platformy można bardzo szybko robić proste i funkcjonalne aplikacje. „Programowanie” tam polega na układaniu bloczków/klocków z funkcjami, więc nikomu nie powinno sprawić jakiś większych trudności. Poniżej wygląd aplikacji:
Oraz bloki kodu:
Działanie
Po włączeniu zasilania na matrycach pokazuje się obrazek naszego węża. Gra oczekuje na połączenie BT i wciśnięcie przycisku „Nowa Gra”. Po startowej animacji za pomocą strzałek w aplikacji sterujemy głową naszego węża łapiąc migające kropki („owoce”), uważając, aby nie zderzyć się ze swoim ogonem. Możemy też przechodzić przez ściany. Wprowadziłem jedną zmianę względem oryginalnej wersji – nowy owoc nie pojawia się natychmiast po najechaniu na wcześniejszy, wąż ma chwilkę na “zjedzenie go”. Po śmierci ukazuje się krótka animacja i program znów oczekuje na przycisk „Nowa Gra”. W kodzie jest też prosta funkcja która odpowiada za automatyczne chodzenie węża, w mojej wersji jej nie używam, ale może komuś się przyda, aby zamiast obrazka startowego zrobić jakąś animację. To wszystko prezentuje poniższy filmik:
Możemy też połączyć się przez BT w komputerze PC i sterować za pomocą np programu Putty wysyłając odpowiednie znaki (widać je dokładnie w blokach programu).
Chciałbym zaznaczyć, że algorytm gry, który napisałem jest bardzo łatwy do przeniesienia na inne wyświetlacze itp. Domyślnie był uruchomiony na wyświetlaczu z Nokii 3310, potem na kolorowym lcd ze sterownikiem ILI9341 na mikrokontrolerze ARM.
Wyświetlacz matrycowy oferuje ogromne możliwości i w przyszłości zrobię też inne projekty z jego wykorzystaniem.
W załączniku kompletny kod programu na uC, plik .apk do zainstalowania na androidzie oraz plik projektu App Inventora, który można tam importować.
Pozdrawiam
Witam,
ocena na 5+. Już dawno przymierzam się do pisania w App inventer coś na antka i wciąż nasuwa mi się pytanie jakie są warunki licencji do używania oprogramowania??
Chyba CC, jednak sprawdź w licencji (pojawia się przed pierwszym użyciem).
Ładne! Oby tylko taśma się nie odkleiła. Daję 5+
Ciekawe, jednak gdzie zakupiłeś te moduły?
Te moduły to MOD-39 firmy Modułowo – można je znaleźć na ich stronie.
Drogie trochę, ale chyba wezmę jeden na próbę.
Fantastyczne!
Mam Pytanko odnośnie programu na Arduino, które jest umieszczone w załączniku do gry SNAKE, wrzucałem za pomocą programu Arduino 1.6.5 Hourly, ale niestety błąd wyskakuje, że nie ma takiej bilbioteki, czy mogę przez AVR studio skompilowac gotowca od Autora projektu i nastepnie wgrać Przez ISP Programmer, posiadam Arduino Uno 328p :) Z góry dziękuję za pomoc :)
W załączniku są pliki źródłowe – możesz je skompilować przez AVR Studio lub Eclipse.