Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 lis 2024, o 13:04


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 
Autor Wiadomość
PostNapisane: 13 lut 2013, o 00:58 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Obrazek
Korzystając z dobrodziejstwa bibliotek na TFT przygotowanych przez Mirka przygotowałem port klasycznej gierki na zestaw ATB.
Opis hardware/połączeń:
- ATB-GLCD TFT konwerter podłączony jest do portu A (dane), portu C (linie sterujące) oraz PD.2/INT0 (reakcja na dotyk). Domyślnie jak w przykładzie z książki.
- Karta SD podłączona jest do portu B od 1 do 7 pinu. Nawet nie trzeba za bardzo kombinować - połączenie 1 do 1 7-żyłową taśmą (lub 8-żyłową, gdzie ostatnia linia jest niewykorzystana ). Wystarczy tylko zdjąć zworkę PwrON.
- Buzzer podłączony jest do PB.0.

Założenia gry:
- Gra polega na ułożeniu obrazka z 12 elementów, gdzie 1 jest pusty. Przykład na zdjęciu poniżej.

Obrazek

- Można przesunąć element tylko na pustą pozycję. Gra kończy się, gdy wszystkie elementy znajdą się na właściwym miejscu. Nie jest liczony czas, a liczba wykonanych ruchów. Wynik ten jest pokazywany na końcu raz oczywiście podczas gry na wolnym polu.

Założenia programu:
- Postanowiłem skorzystać z wolnej pamięci w sterowniku wyświetlacza o czym jest mowa w książce "Język C Pasja programowania mikrokontrolerów 8-bitowych" tak więc nie jest widoczne wczytywanie żadnych grafik z karty SD. Wykorzystałem wszystkie dostępne bufory, które na początku ładowane są 11 obrazkami, a w trakcie gry tylko zamieniane. Jako, że w tle modyfikowane są 4 ekrany, a wyświetlany jest 5 to przesuwanie bloków i zmiana 4 małych obrazków zajmuje około sekundy skorzystałem z buzzera, który sygnalizuje gotowość do reakcji na kolejny dotyk.
- Obrazek do gry to specjalnie przygotowane 12 plików w formacie rg8 (opis w książce, jest on podobny do bmp, ale bez niepotrzebnych danych oraz odpowiednio uszeregowaną kolejnością bajtów RGB). Troszkę czasu zajęłoby przygotowanie tych plików na piechotę. Dlatego też przygotowałem programik do konwersji dowolnych obrazków na 12 plików w formacie rg8, który najpierw skaluje obraz do rozdzielczości 320x240, a następnie zapisuje 12, 16, 20 lub 25 plików (do wyboru) w formacie rg8 lub bmp z kolejnymi numerami. W nazwie nie może być cyfr, ponieważ program na AVR przeszukuje kartę SD i ciąg liter to część wspólna wykorzystana do sklejania nazw plików wyświetlanych na TFT.

Obrazek

Nie zastosowałem, żadnego algorytmu losowania początkowego ułożenia "kafelków". Co oczywiście można zrobić jak ktoś uzna, że ma za łatwo. Tutaj również zawsze ostatni z elementów jest w prawym dolnym rogu co znacznie ułatwia ukończenie tego wyzwania.


Oprogramowanie na ATB:
- main.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

- main.h
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

- game01.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

- game01.h
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

- reszta to kody dołączone do drugiej książki Mirka.

Jak będzie potrzeba to oczywiście mogę wytłumaczyć działanie poszczególnych funkcji, ale do zabawy wystarczy plik hex, którym nalezy zaprogramować ATMEGĘ644PA i przestawić na zewnętrzne taktowanie 20MHz oraz program do generowania obrazków. Następnie obrazki należy wrzucić na kartę, ale wszystkie inne obrazki w formacie rg8 muszą zostać z niej usunięte.
Przy starcie program najpierw szuka plików i jak znajdzie to wyświetla nazwę serii i od razu ładuje 4 ekrany. Jak pojawi się napis READY należy dotknąć ekran i ładowany jest jeszcze jeden ekran. Po usłyszeniu sygnału dźwiękowego można zacząć główkować.


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2013, o 06:41 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3206
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

No, no, ładnie. ;-) To chyba pierwsza gra na ATB?

Teraz kto zrobi Tetrisa? :lol:

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2013, o 08:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lis 2011
Posty: 582
Lokalizacja: okolice Wrocławia :)
Pomógł: 24

No tak... ja się tu męczę że żeby coś tam wyświetlić na LCD 2x16 a tu takie rzeczy :P .

Nie ma to jak wyświetlić sobie fotkę ATB na samej ATB i to jeszcze w formie gierki :).

Gratuluję projektu i zazdroszczę umiejętności :oops: .

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2013, o 08:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lis 2011
Posty: 534
Lokalizacja: Mierzyn
Pomógł: 9

Super sprawa gratki :)

_________________
pozdrawiam
Jachu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2013, o 08:58 

Pomógł: 0

Sonix napisał(a):
No tak... ja się tu męczę że żeby coś tam wyświetlić na LCD 2x16 a tu takie rzeczy :P .

Nie ma to jak wyświetlić sobie fotkę ATB na samej ATB i to jeszcze w formie gierki :).

Gratuluję projektu i zazdroszczę umiejętności :oops: .


Dokładnie wyjąłeś mi to z ust. Od dłuższego czasu próbuję zmusić do działania 44780 na I2c (PCF8574) a tu takie kwiatki :D.

Świetna robota.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2013, o 10:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 lut 2012
Posty: 243
Lokalizacja: wlkp
Pomógł: 2

Chapeau bas Krauser!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2013, o 11:07 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27314
Lokalizacja: Szczecin
Pomógł: 1041

Krauser ---> matko jedyna ;) ależ ty masz pomysły ..... normalnie odjazd .... i już nie chodzi mi o to że to na ATB czy ze zdjęciem ATB - ale o fakt właśnie pokazania TAK FAJNEGO wykorzystania tego buforowania sprzętowego w wyświetlaczu !!!

no przy takiej grze tzn przy takich reakcjach ekranu kto by pomyślał że za jego plecami kryje się taki mały 8-bitowy biedny mały pikuś , który ponoć jest już na wymarciu ;)

Świetny pomysł, rewelacyjna realizacja, dodatkowo program na PC, normalnie prześliczny PROJEKT !!! z mojej strony pełen szacunek za pokazanie kolejny raz takich swoich możliwości. SZOK i uznanie.

Po twoich projektach mam normalnie chęć rzucić wszystko inne i zająć się tylko takimi rzeczami .... ale niestety rzeczywistość jeszcze mnie przytłacza wieloma innymi obowiązkami i muszę to wciąż zostawiać sobie na później i później .... kuuuuurka wodna ;)

------------------------ [ Dodano po: 15 minutach ]

Pozwolisz Krauser, że pokażę ten projekt szerzej i wpuszczę go jako przyklejony globalny na głównej stronie naszego forum ;) ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2013, o 12:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lut 2013
Posty: 126
Lokalizacja: Turbia
Pomógł: 0

Hehehe fajny projekt, oj zanim ja dotrę do takiej wprawy to już wnuki będe miał :P

_________________
Zestaw ATB 1.04
Niebieska książka
Zielona książka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2013, o 12:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 gru 2012
Posty: 530
Lokalizacja: Bydgoszcz
Pomógł: 8

Stwierdzam, że poziom moich umiejętności odpowiada zabawom w piaskownicy :|

_________________
sig off ;(



Ostatnio edytowano 13 lut 2013, o 13:10 przez kila, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2013, o 12:51 

Pomógł: 0

kila napisał(a):
Stwierdzam, że poziom moich umiejętności nie odpowiada zabawom w piaskownicy :|


Nie jesteś sam ;). Swoją drogą faktycznie teraz nic tylko czekać na Tetrisa :).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2013, o 15:21 
Offline
Użytkownik

Dołączył(a): 11 lut 2013
Posty: 140
Lokalizacja: Kraków
Pomógł: 10

dexter napisał(a):
Hehehe fajny projekt, oj zanim ja dotrę do takiej wprawy to już wnuki będe miał :P


Ja również. :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2013, o 15:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8587
Pomógł: 337

hmmm.... no dobra super gratka
Krauser rządzisz .....

:)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2013, o 10:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2012
Posty: 238
Pomógł: 5

Aż chce się rzucić wszystko i też fajną grę na te małe 8 bitowce stworzyć , i poczuć się jak był rok 1987, kiedy to pisząc grę liczyło się każdy cykl procesora aby tylko zdążyć przed kolejnym odświeżaniem pionowym ekranu:)

Krauser chyba nie jednego tu z Nas na forum podpaliłeś do napisania jakiejś gierki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2013, o 10:58 

Pomógł: 0

Jakieś wyścigówki :). W końcu na C64 było nawet wypaśne Test Drive ;).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2013, o 11:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2012
Posty: 238
Pomógł: 5

No ja wczoraj podczas podróży jako pasażer :) grywałem sobie w Stunt Car Racer na emulatorze C64 na Androidzie :) ... mam ostatnio takie chęci żeby w te staruchy sobie pograć.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2013, o 11:41 

Pomógł: 0

xbary napisał(a):
No ja wczoraj podczas podróży jako pasażer :) grywałem sobie w Stunt Car Racer na emulatorze C64 na Androidzie :) ... mam ostatnio takie chęci żeby w te staruchy sobie pograć.


Mógłbyś bardziej przybliżyć temat :).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2013, o 15:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 gru 2011
Posty: 97
Lokalizacja: Radomsko/Poznań
Pomógł: 0

Super sprawa, widać wielkie umiejętności i doświadczenie kolegi Krauser. Osobiście posiadam ten wyświetlacz oraz konwerter więc na pewno przetestuje!! Osobiście pełen szacun !! ;) Pzdr



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO