
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 428 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.
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
Plik niedostępny!
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 1715 razy.
Dziś uruchomiłem moją stronę domową.