Wyniki (prawie)końcowe - Elektroniczne warcaby Zbigniew Duszeńczuk 14 czerwca 2008 Spis treści 1 Stan realizacji projektu na dzień 14 czerwca 2008 2 2 Najważniejsze cechy projektu 2 2.1 Użyte elementy.............................. 5 2.2 Pomiar................................... 5 2.3 Układ programatora - uwaga....................... 5 2.4 Dodatkowe funkcje (niezaimplementowane)............... 6 3 Zdjęcia 9 1
1 Stan realizacji projektu na dzień 14 czerwca 2008 Do tego dnia udało się wykonać następujące zadania: Przegląd literatury i zasobów Internetu związanych z tematem projektu wykonano. Wykonanie planszy, pionków i układu elektronicznego wykonano. Realizacja tej części trwała najdłużej. Dużo czasu zajęło wykonanie układu elektronicznego, co było do przewidzenia. Jednak niespodziewanie najbardziej czasochłonne okazało się wykonanie pionków do gry - trwało ono całe 2 dni. Również zaadaptowanie do projektu planszy zajęło dużo czasu. Zaprogramowanie układu, aby wykrywał pionki i przesyłał dane do komputera wykonano. To zadanie zrealizowano szybko. Pisanie aplikacji wizualizującej jeszcze w trakcie pisania. Implementowanie dodatkowych funkcji dodatkowe funkcje nie będą implementowane. 2 Najważniejsze cechy projektu Zestaw służy do gry w warcaby - sytuacja na planszy jest wizualizowana na ekranie komputera, do którego są przesyłane informacje o położeniu pionków. Wykrywanie pionków odbywa się poprzez badanie poziomu napięcia w pionkach znajdują się rezystory (w białych o wartości 2,2 kω, w czarnych 8,2kΩ). Do pomiaru napięcia służy przetwornik AC znajdujący się w mikrokontrolerze. Napięcie mierzymy w układzie dzielnika napięcia, jaki tworzy pionek, ze wzoru: R - rezystor w pionku; R 1 - rezystor wzorcowy, ok. 22k; U wy = U we R1 R+R 1, U we - napięcie na wejściu, równe Vcc=+5V; U wy - zmierzony spadek napięcia; 2
Rysunek 1: Układ dzielnika napięcia dla pionka. 3
Znając napięcie na wyjściu, możemy po przekształceniu wzoru uzyskać wartość rezystancji R, możemy także obliczyć, jaki spadek napięcia odpowiada danej rezystancji. W przypadku damki, do rezystora nieznanego podłączony jest równolegle drugi taki rezystor (mierzone rezystancje wynoszą wtedy: 1,1 kω dla damki białej i 4, 1kΩ dla czarnej), wzór przyjmuje postać: U wy = U we R1 0,5 R+R 1 Rysunek 2: Układ dzielnika napięcia dla damki. 4
2.1 Użyte elementy Najważniejsze użyte elementy: mikrokontroler ATMega8 (wbudowany 10-bitowy przetwornik AC); 9 układów 74HC4051 (HEF4051) - analogowe multipleksery 8-kanałowe; stabilizator L7805 - do układu zasilania; układ MAX232 - do komunikacji z komputerem; układ 74HC244 - do programatora ISP; układ 74HCT08 - bramka AND do dawania napięcia na planszę; 2.2 Pomiar Po włączeniu i zainicjalizowaniu niezbędnych rzeczy, w układzie jest uruchamiane przerwanie, w którym to przerwaniu podajemy napięcie na kolumny planszy i mierzymy napięcie. Czytamy położenie pionków liniami - stan każdego wiersza jest analizowany pole po polu poprzez przełączanie kanału multipleksera dla danego wiersza - jest 8 multiplekserów wierszowych. Po siedmiu przełączeniach (tyle potrzeba, aby odczytać każde pole w linii) przełącza się kanał dziewiątego multipleksera (który służy do zmiany wiersza) na kolejny wiersz. Dla każdego pola jest odczytywane napięcie, a wartość z przetwornika jest zapamiętywana w 64 elementowej tablicy. Tablica ta jest wysyłana do komputera. 2.3 Układ programatora - uwaga Aby zestaw działał po odłączeniu od portu LPT komputera, należy układ HC244 wyjąć z płytki. Przedstawiony na schemacie układ programatora nie jest jedynym możliwym do użycia - na płytce jest gniazdo na programator zgodny z AEC ISP. Należy jednak pamiętać, aby obydwa układy nie były podłączone razem w tym samym czasie, bo niemożliwe będzie zaprogramowanie i normalne działanie całości. 5
2.4 Dodatkowe funkcje (niezaimplementowane) W całości występują także przyciski tworzone z myślą o konkretnym ich wykorzystaniu: Przycisk START rozpoczyna grę (wykorzystam funkcję zewnętrznego przerwanie w pinie 4 portu D - INT0); Przełącznik SAVE ON/OFF włącza zapisywanie rozgrywki na komputerze lub zewnętrznej pamięci (wykorzystam funkcję zewnętrznego przerwanie w pinie 5 portu D - INT1); Przycisk Koniec ruchu chwila zakończenia ruchu, czas mierzony od rozpoczęcia rozgrywki (wykorzystam funkcje InPut Capture 1 w pinie 0 portu B - ICP1); Programowanie tych funkcji w chwili obecnej, gdy nie dodano jeszcze do układu dodatkowych urządzeń (jak LCD czy karta pomięci), zwiększających jego niezależność od komputera, jest nieuzasadnione. Do układu wlutowano też kwarc o częstotliwości 11,0592MHz, jednak na razie nie zmieniono standardowego zegara ATmega8 (1MHz). Układ elektroniczny składa się z dwóch części - prawie wszystkie układy (m.in. mikrokontoler i multipleksery) znajdują się na dużej płytce uniwersalnej, są tam również wyjścia na planszę oraz przycisk reset. Na drugiej płytce, projektowanej już przeze mnie, mamy programator i gniazda LPT oraz COM. Poza tym, są tam prawie wszystkie przyciski (oprócz resetu) i włącznik. Konstrukcja całości umożliwia łatwą rozbudowę. Sprawdzono działanie całego układu - pionki są bez problemu wykrywane. Z uwag negatywnych można zauważyć, że koncepcja podłączenia diody zielonej jest prawdopodobnie zła - aby korzystać z funkcji ICP1, należałoby podłączyć ją nie do zasilania, ale do masy. Na szczęście, jest to łatwe do zrobienia - ścieżki od V CC i GND na zaprojektowanej płytce są blisko siebie i ewentualne nawiercenie otworu nie stanowiłoby problemu. Obecnie trwają jeszcze prace nad aplikacją wizualizującą sytuację na planszy na ekranie komputera. Z uwagi na obecną sytuacje, będzie ona służyć tylko do pokazywania sytuacji na planszy nie przewiduję dodatkowych funkcji. 6
Rysunek 3: Schemat całości, bez wyodrębnionych dwóch części. 7
Rysunek 4: Schemat części z gniazdami wejść i wyjść oraz przyciskami. 8
3 Zdjęcia Ten rozdział zawiera zdjęcia wykonanego projektu: Rysunek 5: Zdjęcie całości. 9
Rysunek 6: Plansza do gry z pionkami. Rysunek 7: Widok planszy z dolu. 10
Rysunek 8: Pionek. Rysunek 9: Damka. 11
Rysunek 10: Większa płytka układu elektronicznego. Rysunek 11: Mniejsza płytka układu elektronicznego. 12