Mikroprocesorowa kostka do gry
Transkrypt
Mikroprocesorowa kostka do gry
Mam 16 lat. Chodzę do “Zespołu Szkół Łączności im. prof. Stanisława Fry− zego “ w Gliwicach. Elektroniką interesu− ję się od 7 lat (tzn. zacząłem w wieku 8− 9 lat) − dokładnie nie pamiętam. Dziedzinę tę zrozumiałem dopiero od ok. 7/97 wyda− nia EdW. Początki były raczej marne (tran− zystorowe “mrugałki”, piszczyki, itp.), przez długi czas zajmowałem się odtwa− rzaniem projektów z różnych czasopism. Moim pierwszym układem wykona− nym na pytce był sygnalizator do lodówki (Szkoła, EdW 2/98). Ale pierwszy sukces zwiększył moje zaangażowanie i przez pewien czas pisałem do Was. Niestety później nadeszły egzaminy, nowa szkoła ... i to wystarczyło. Większość zadań ze Szkoły rozwiązałem, lecz brakowało mi czasu na model i napisanie listu (tylko go nie przedłużajcie!). Obecnie mam zamiar powrócić do dawnej aktywności, lecz czy mi się to uda? Pożyjemy, zobaczymy. Ak− tualnie moje największe zainteresowanie wzbudza technika mikroprocesorowa i jedno ze swoich dzieł Wam wysyłam. Teraz główny cel, jaki skłonił mnie do napisania tego listu: FORUM CZYTELNIKÓW Forum Czytelników ma służyć celom edukacyjnym, wymianie doświadczeń i pomysłów. Zasady są następujące: – publikujemy wyłącznie projekty opracowane samodzielnie i nigdzie dotychczas nie publikowane (należy dołączyć stosowne oświadczenie z własnoręcznym podpisem); – oprócz tekstu i rysunków, prosimy przysłać działający model lub jego fotografie (model odeśle− my); – publikacja projektu nie oznacza jego pozytywnej oceny przez redakcję EdW, lecz stanowi punkt wyjścia do publicznej dyskusji nad proponowanym rozwiązaniem. Etap dyskusji nazywany „Dogrywką”, trwa dwa miesiące. W tym czasie oczekujemy nie tylko listów z uwagami krytycz− nymi, ale przede wszystkim propozycji innych, lepszych rozwiązań (tym razem wystarczy sche− mat z opisem działania układu); Prosimy też o załączenie do projektu fotografii paszportowej i kilku zdań życiorysu. Prosimy nie przysyłać opisów urządzeń, które powstały tylko na papierze, a nie zostały zrealizowa− ne w praktyce. Znamy się trochę na elektronice i wiemy, że większość takich układów nie będzie działać. Stąd nasza prośba o model lub przynajmniej fotografię modelu. Mikroprocesorowa kostka do gry Po przeczytaniu wyników ankiety (i w trakcie też) złapałem się za głowę. Szczególnie zdziwiło mnie to, że “bez− komputerowcy” protestują przeciwko mikroprocesorom! Ja oświadczam wszem i wobec: jestem “bezkompute− rowcem”, ale nie ze względów wyzna− niowych, lecz trochę bardziej material− nych. Nie jestem jednak antykompute− rowcem a nawet, o ile mój głos ma jakie− kolwiek znaczenie, jestem za komputery− zacją, jestem za mikroprocesorami i za wszelką wiedzą z tym związaną. Udowo− dniłem, że i bez PC można stworzyć cie− kawy program /sterownik µC. W tej chwili mam za sobą drugi program o dłu− gości (dokładnie, dziesiętne) 701B. I dzia− 38 ła znakomicie. Stworzenie takiego pro− gramu zajmuje mi ok. 3 dni, razem z cza− sem na kontemplację sensu własnego istnienia (czyt. lenienie się). Teraz prośba do “bezkomputerowców”’: Jeśli czegoś nie spróbowaliście, to nie skreślajcie te− go od razu, nie protestujcie przed nowym rodzajem wiedzy. Wierzcie mi, ja nie zro− zumiałem, tego co było w “Kursie ...”, lecz po zdobyciu AVT 2250 i przeczytaniu dodatkowej książki (zapewniam − króciut− kiej) zacząłem pisać własne programy. Pierwsze były niezbyt ciekawe, nie dzia− łały, lecz nie zniechęcałem się. Po pew− nym czasie sam, bez jakiejkolwiek wie− dzy o 89C2051, zabrałem się za modyfi− kację programu programatora (EdW 9/98) tak, aby móc progra− mować bity zabezpie− czające. Eksperymen− towałem 2 dni, pra− wie non stop. Udało się. Musiało się udać. Człowiek jest i będzie mądrzejszy od jakie− goś scalaka. Spróbuj− cie sami, albo nie przeszkadzajcie in− nym. Nie chciałem, aby list ten wyglądał na przechwałki. Chcia− łam pokazać, że za po− mocą kartki i ołówka także wiele można ... Trzeba tylko chcieć. Prezentowany układ jest świetną re− klamą dla waszego zestawu AVT 2250, ponieważ cały program (zajmujący trochę powyżej 1kB) napisałem właśnie na tym komputerku (ręcznie!), a w mikrokontro− lerze umieściłem go za pomocą progra− matora opisanego w EdW 9/98. Pomysł Osobiście gram w gry, w których po− trzeba wiele różnych kości: od dwu− do stuściennych (jedna kostka dziesięcio− ścienna na dziesiątki, druga na jedno− ści). Największa kostka, z jaką się spo− tkałem to stuścienna, lecz czasami trze− ba nią rzucić kilka razy i zsumować wy− niki, czasem ktoś chce wylosować jakąś nietypową liczbę, jak dzień tygodnia, miesiąca czy roku, czasem ... itd., itp. Po namyśle doszedłem do wniosku, że uniwersalna kostka powinna mieć trzy wyświetlacze, możliwość ustalenia górnej i dolnej granicy wylosowanej licz− by. Chciałem, aby miała ona obwody oszczędzania energii. Długo szukałam odpowiedniego rozwiązania (kilka lat!), lecz moja wytrwałość się opłaciła. Roz− wiązanie znalazłem w jednym z odcin− ków kursu mikroprocesorowego − roz− wiązaniem był AT89C2051. Układ ten umożliwił mi zbudowanie prawdziwego “kombajnu” losującego, który mieści się w kieszeni i zużywa bardzo niewiele paliwa. Urządzenie może przydać się wszędzie tam, gdzie zachodzi koniecz− ność bądź potrzeba wygenerowania ja− kiejś liczby losowej. ELEKTRONIKA DLA WSZYSTKICH 11/99 Forum Czytelników W takiej sytuacji jego zastosowanie ograniczone jest wyłącznie wyobraźnią użytkownika i ... zdrowym rozsądkiem. Opis układu Schemat ideowy można zobaczyć na rys. 1. Tak prosty układ, o takich możli− wościach, można skonstruować chyba tylko za pomocą mikrokontrolera lub układu wyspecjalizowanego. Ja wybra− łem to pierwsze rozwiązanie. Schematu nie ma chyba co za bardzo opisywać. Wytłumaczę tylko kilka rze− czy, które mogą wydać się dziwne: Co bardziej dociekliwi Czytelnicy zau− ważyli zapewne, że środkowy wyświe− tlacz został połączony inaczej niż pozo− stałe. Jest to spowodowane chęcią uproszczenia płytki drukowanej, a tylko nieznacznie skomplikowało program sterujący. Błędem prawdopodobnie wyda się podłączenie przycisku włączającego (ON) do wejścia RST mikrokontrolera. Otóż układ został wyposażony w auto− matyczny wyłącznik zasilania. Wyświe− tlacze są wtedy wygaszone, mikropro− cesor wprowadza się w stan obniżone− go poboru mocy, ale dalej jest zasilany, dzięki czemu dane o nastawach są zapa− miętane. Jak zapewne pamiętają bywal− cy kursu mikroprocesorowego − z tego stanu układ może zostać wyprowadzony tylko przez reset. Minusem takiego roz− wiązania jest konieczność odczekania po puszczeniu przycisku aż do nałado− wania się C1. Zdziwienie może wzbudzić (ale pew− nie nie wzbudza) możliwość zasilania ze stabilizatorem lub bez. Wytłumaczyć to może część historii powstawania tego układu: pierwotnie zastosowałem do za− silania baterie 9V i stabilizator 7805. We− dług moich obliczeń układ powinien móc działać w stanie obniżonego poboru mo− cy przez ok. pół roku. Bateria zużyła się po pięciu dniach! Przyczynę znalazłem szybko: stabilizator. Przeprowadziłem drobne pomiary i okazało się, że w sta− nie wyłączonym sam układ pobiera tylko 1,4% energii, resztę zużywa stabilizator! Następnie zacząłem zastanawiać się, jak zasilić ten układ zapewniając katalogo− we 4V+−10%. Myślałem o trzech palu− szkach, ale to wiązałoby się ze zwięk− szeniem obudowy. Postanowiłem sprawdzić, przy jakim napięciu układ je− szcze “dycha” i zacząłem powoli przy− kręcać napięcie. Jakież było moje zdzi− wienie (i radość), gdy okazało się, że układ poprawnie działa z napięciem 2,7V (minimum mojego zasilacza), z niż− szym napięciem nie próbowałem z po− wodów technicznych. Po drobnych na− mysłach układ zasiliłem “telefonicz− nym” akumulatorkiem NiCd 3,6V i takie zasilanie gorąco polecam. Miejsce na stabilizator pozostawiłem dla tych, którzy chcą zasilać układ z transformato− ra lub zasilacza. Opis progra− mu i obsługa Układ po włącze− niu sprawdza reje− stry przechowujące wartości, od ilu układ ma liczyć do ilu, oraz ostatnio wylosowa− nej liczby. Jeśli cho− ciaż jeden z reje− strów zawiera liczbę bezsensowną, to ini− cjuje ona wszystkie rejestry wartościami początkowymi, które wynoszą: od −000, do −999, los −000. Za liczbę bezsen− sowną uważa się tu liczbę, która nie od− powiada kodowi BCD. W ten sposób Rys. 1. Schemat ideowy uzyskałem pamięta− nie ostatnich nastaw oraz zabezpiecze− towną “zasłonę” w postaci kreski obie− nie przed bzdurami na wyświetlaczu po gającej wyświetlacz. Po puszczeniu przycisku wynik nie zatrzymuje się od pierwszym włączeniu wkładu. Następnym krokiem jest uruchomie− razu, lecz stopniowo zwalnia aż do za− nie T0, którego przerwania odpowie− trzymania. W celu uniknięcia złośliwego dzialne są za obsługę wyświetlacza. Wy− przyciskania przycisku LOSUJ jeszcze świetlacz działa w sposób multiplekso− ok. 1 sek. po zatrzymaniu się wyniku je− wany i jest odświeżany z częstotliwo− go naciskanie nic nie daje. Z opcji loso− ścią 80Hz. Po wpisaniu odpowiednich wania można wyjść na pomocą przyci− wartości do wszystkich rejestrów pro− sku COFNIJ, który jest także zabezpie− gram przechodzi do trybu MENU na po− czony przed złośliwym naciśnięciem. Jak już napisałem poprzednio układ zycję “los”. Obsługa MENU jest bardzo prosta. jest wyposażony w funkcję automatycz− Między kolejnymi pozycjami przemie− nego wyłączenia zasilania (jest to także szczamy się za pomocą przycisków NIE jedyna możliwość wyłączenia). Działa i COFNIJ − oba powodują przemieszcza− ona w ten sposób, że po 1 min. od ostat− niego naciśnięcia i puszczenia dowolne− nie się w przeciwne strony. W menu znajdują się następujące po− go przycisku układ zostaje wyłączony. Moje próby wykazały, że jest to czas zycje: − napis “LOS.” − wejście do trybu lo− w sam raz, zwłaszcza, że wszystkie na− stawy są zapamiętywane. Uwaga: przy− sowania, − napis “od” − ustawianie dolnej grani− trzymany przycisk uniemożliwia wyłą− czenie zasilania. cy losowanej liczby, W sumie w mikrokontrolerze umie− − napis “do” − ustawiane górnej grani− ściłem trochę ponad 1 kB programu. cy losowanej liczby. Po dojściu do interesującej nas pozy− Radosław Koppel cji naciskamy przycisk TAK. Nastawianie wartości od i do wyko− nuje się następująco: przycisk NIE − Wykaz elementów zmiana aktualnie migającej cyfry (cyfra nam nie odpowiada); TAK − zatwierdze− Rezystory nie ustawionej cyfry i przejście do na− R1−3 . . . . . . . . . . . . . . . . . . . . . . . .1,6kΩ stępnej, lub wyjście z trybu nastawiania, R4 . . . . . . . . . . . . . . . . . . . . . .100 −180Ω jeśli migająca cyfra była cyfrą jedności: Kondensatory COFNIJ − cofnięcie o jedną cyfrę, lub C1 . . . . . . . . . . . . . . . . . . . . . . . . .3−10uF wyjście z trybu nastawiania jeśli migają− C2, C3 . . . 20−40pF − rezonator kwarcowy . . . . . . . .30−50pF − rezonator ceramiczny ca cyfra była cyfrą setek. C4, C5 . . . . . . . . . . . . . . . . . . . .50−150uF Po wejściu do trybu losowania na wy− Półprzewodniki świetlaczu widnieje ostatnio wylosowa− Disp 1−3 . . . . . .wyświetlacze LED 8−seg., na liczba. Losowanie rozpoczyna się po wsp. anoda. naciśnięciu przycisku LOSUJ. Ponieważ T1−T3 . . . . . . . . .BC558 lub odpowiedniki niektórzy twierdzą (i ja też) , że podświa− (BC558A,B,C, BC557...) domość dostrzega nawet bardzo szybko U1 . . . . . .AT89C2051 (zaprogramowany) zmieniające się liczby (losowanie odby− U2 . . . . . . . .7805 lub zwora (patrz tekst) wa się z częstotliwością 5,7kH) postano− Pozostałe wiłem po prostu je “zasłonić”. Na po− X1 . . . . . . . . . . . . . .oscylizator 4,43MHz czątku program wyświetlał same ósem− W1−W5 . . . . . . . . . . .microswith − 10mm ki, lecz potem wybrałem bardziej efek− ELEKTRONIKA DLA WSZYSTKICH 11/99 39