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

Podobne dokumenty