Dzisiaj postanowiłem udostępnić 2 proste gierki oraz ich kody źródłowe, które kiedyś napisałem w Delphi. Są to aplikacje wykorzystujące silnik 3D. W sieci dostępnych jest dużo darmowych silników 3D dla różnych środowisk. Ja użyłem w swoich dwóch programach silnika GLScene. Jest to rozbudowany silnik na OpenGL’u oferujący dużo funkcji – więcej informacji tutaj: http://www.glscene.org/ .
Oto i one:

STetris
Tetris z dodatkowym utrudnieniem, którym jest ruchoma plansza.

.EXE
  Pobierz plik: delphi3d/stetris_b1.exe
  Rozmiar: 1017.5 KB, pobrany 750 razy.

KOD ŹRÓDŁOWY
  Pobierz plik: delphi3d/stetris_b1_src.zip
  Rozmiar: 460.89 KB, pobrany 358 razy.

Kostka Rubika
Kostka Rubika z widokiem 3D oraz siatki 2D.

.EXE
  Pobierz plik: delphi3d/rubik.exe
  Rozmiar: 713 KB, pobrany 934 razy.

KOD ŹRÓDŁOWY
  Pobierz plik: delphi3d/rubik_src.zip
  Rozmiar: 376.04 KB, pobrany 416 razy.

mouse_icon1

Ostatnio w wolnym czasie dla zabawy zbudowałem prosty sterownik myszki szeregowej.
Po podłączeniu do portu COM i wystartowaniu komputera jest wykrywany jako zwykła myszka 2-przyciskowa.
Układ powstał z moich płytek testowych. Jest to najzwyklejsze połączenie mikrokontrolera ATMega8 z COMem przez układ MAX232. Dodatkowo do lini RTS portu podłączyłem tranzystor poprzez diodę prostowniczą i opornik, który uruchamia przerwanie w chwili pojawienia się stanu wysokiego.

Protokół jest bardzo prosty. Po pojawieniu sie +12V na linii RTS układ wysyła bajt 0x4D („M”) w celu inicjacji. Dalsza komunikacja polega na wysłaniu 3-bajtowych pakietów z aktualnym stanem zgodnie z tą tabelką:

Parametry transmisji to 1200 bodów/s, 7\8 bitów danych oraz brak kontroli parzystości. W przypadku 8 bitów danych, najstarszy bit zawsze ma wartość 1. Bit 6 w każdym bajcie jest stały. L i R mają wartość 1 w przypadku wciśniętego przycisku, a X\Y 0-7 to liczba w kodzie U2 (-128 do 127) określająca zmianę położenia kursora.

Krótki program w języku Bascom razem z HEXem skompilowanym dla ATMegi8@12MHz dostępny poniżej. Co 2 sekundy „robi kwadrat” kursorem po ekranie. Można go rozbudować, np. o obsługę klawiatury matrycowej.

  Pobierz plik: mouse_bas.zip
  Rozmiar: 1.02 KB, pobrany 212 razy.

[13-05-2010]: Nowa werja rejestratora

Oto mój pierwszy opublikowany tutaj projekt – rejestrator temperatury z obsługą kart Secure Digital (SD).
(temat przeniesiony z portalu elektorda.pl)
Projekt powstał oczywiście w celach naukowych. Podstawą układu jest moja płytka testowa z mikrokontrolerem ATMega32. Dołączyłem do niej termometr cyfrowy DS18B20, zegar RTC DS1307 oraz adapter wpinany w gniazdo ISP (Kanda; zamiast LED jest podłączony PB4 – slave select), który wykonałem metodą termotransferu. Przystawka posiada stabilizator napięcia 3,3V (LF33CV), dzielniki napięcia z rezystorów oraz oczywiście gniazdo SD/MMC. Schemat wziąłem [stąd] , a projekt w eagle jest dostępny w paczce z programem.

Program napisałem w C (środowisko AVR Studio 4) z wykorzystaniem biblioteki FAT32 z bloga CC Dharmani, dzięki czemu mogę w prosty sposób kopiować dane z rejestratora na PC. Do przeglądania logów napisałem w Delphi (7) prostą aplikację generującą wykresy z plików tekstowych. Zarówno program dla mikrokontrolera jak i przeglądarka logów są napisane na szybko (tak, wiem, że mogłoby być bardziej optymalnie ), ale poprawkami zajmę się po sesji. Mikrokontroler komunikuje się z komputerem poprzez interfejs szeregowy RS232. Jak kuż wspomniałem kod nie jest jeszcze w pełni ukończony, przez co tryb ustawień włącza się porpzez dopisanie 1 linijki w kodzie zamiast zworką na płytce. W normalnym trybie pracy układ zapisuje temperaturę co 5 minut oraz dodatkowo wysyła wynik po RS232. Układ pracuje już 2 tygodnie bez zarzutów.

Przykładowy wykres:

Skompilowane programy oraz źródła dostępne poniżej. Domyślne ustawienia to UART na 19200 bodów (8;1;N) i 1Wire na PD6.

  Pobierz plik: temp_logger/temp_logger_0.1.zip
  Rozmiar: 996.11 KB, pobrany 978 razy.

Aktualne pomiary:
  Otwórz folder:
  TEMP_LOGGER/DANE/

W folderze z przeglądarką należy utworzyć katalog DANE i w nim umieścić pliki tekstowe z pomiarami.
  Pobierz plik: temp_logger/tlviewer.exe
  Rozmiar: 416.5 KB, pobrany 742 razy.

Dziś uruchomiłem moją stronę domową.

© 2010 Silent's Homepage Administracja Suffusion WordPress theme by Sayontan Sinha