AVT3019

background image

56

Elektronika dla Wszystkich

Do czego to s³u¿y?

Opisany modu³ przeznaczony jest dla szero-
kiej rzeszy mi³oœników ró¿nego rodzaju za-
baw i gier, a w szczególnoœci maj¹cych ¿y³kê
hazardzisty. Jak sama nazwa wskazuje „2 w 1”
jest to po³¹czenie dwóch ró¿nych projektów
w jednym. Siêgaj¹c po wczeœniejsze numery
EdW, mo¿emy odnaleŸæ kilka projektów do-
tycz¹cych elektronicznej kostki i ruletki. S¹
tak¿e gotowe kity do samodzielnego monta-
¿u, ale nie by³o jeszcze projektu ³¹cz¹cego te
dwie ró¿ne „zabawki”. Patrz¹c na fotografiê
modelu, u³o¿enie diod na p³ytce nie odzwier-
ciedla oczek na kostce, ale jeœli zmontujecie
sobie taki w³aœnie uk³ad, zobaczycie, ¿e ³atwo
siê w tym po³apaæ. Mianowicie, liczba zapa-
lonych diod bêdzie oznaczaæ liczbê oczek na
kostce. Z ruletk¹ nie powinno byæ najmniej-
szych problemów, jest klasyczna. A co po-
wiecie, aby sterowaæ t¹ zabawk¹ pilotem na
podczerwieñ? Myœlê, ¿e wszystkim znudzi³y
siê przyciski umieszczone bezpoœrednio na
p³ytce, a sterowanie bezprzewodowe jest te-
raz na topie. Do wykonania uk³adu zachêcam
wszystkich, którzy lubi¹ siê bawiæ!

Jak to dzia³a?

Schemat ideowy uk³adu pokazany jest na ry-
sunku 1
. Po³¹czenie kostki i ruletki nie by³o-
by mo¿liwe, gdyby nie mikrokontroler z ro-
dziny AVR. Mowa oczywiœcie o AT90S2313,
który jest bardzo popularny ostatnimi czasy
w µProjektach 3000. Program znajduj¹cy siê
w jego wnêtrzu zosta³ napisany w Bascomie
AVR ver.1.11.6.4. Jak widaæ, uk³ad jest bar-
dzo proœciutki, zawiera dos³ownie kilka ele-
mentów, tak wiêc nie powinien sprawiæ Wam
¿adnych problemów. Zajmijmy siê teraz
oprogramowaniem. Opuœcimy deklaracjê
zmiennych i konfiguracjê portów, a przej-
dziemy od razu do pêtli g³ównej – listing 1.
Jak widaæ, jest ona bardzo króciutka, zawie-
ra cztery funkcje. Pierwsza funkcja Rnd

oznacza skrót z jêzyka angielskiego Random
Number Drawning, czyli generacja liczb lo-
sowych. Funkcja ta jest niew¹tpliwie rewela-
cj¹ w Bascomie, bo nie musimy wymyœlaæ
¿adnej procedury pozwalaj¹cej generowaæ
liczby losowe, tylko po prostu wpisujemy
Rnd i w nawiasie górn¹ wartoœæ
przedzia³u, z którego maj¹ byæ genero-
wane liczby. Druga funkcja Getrc5 od-
powiedzialna jest za dekodowanie ko-
dów pochodz¹cych z pilota, który pra-
cuje oczywiœcie w standardzie RC5.
Trzecia funkcja Debounce umo¿liwia
pod³¹czenie prze³¹cznika bezpoœrednio
do linii portu oraz eliminuje efekt drga-
nia jego styków. Zadaniem czwartej
funkcji Waitms jest spowolnienie pracy
trzech wczeœniejszych. Oprócz pêtli
g³ównej w programie znajduj¹ siê dwie
procedury: Kostka i Ruletka. W zale¿-

noœci od zmiennej Kod, która przyjmuje war-
toœci zdekodowanego kodu, program wyko-
nuje odpowiedni¹ procedurê. Naciœniêcie
klawisza o kodzie 1 lub Przycisku_1 (S1)
spowoduje wywo³anie procedury Kostka li-
sting 2
. Na pocz¹tku procedury umieœci³em

„„

„„

22

22

w

w

w

w

11

11

””

””

,,

,,

c

c

z

z

y

y

l

l

i

i

e

e

l

l

e

e

k

k

t

t

r

r

o

o

n

n

i

i

c

c

z

z

n

n

a

a

r

r

u

u

l

l

e

e

t

t

k

k

a

a

i

i

k

k

o

o

s

s

t

t

k

k

a

a

d

d

o

o

g

g

r

r

y

y

µ

µ

P

P

3

3

0

0

1

1

9

9

Rys. 1 Schemat ideowy

Listing 1

Do
Liczba_generowana = Rnd(6)
Waitms 100
Getrc5(address , Kod)

'dekodowanie kodów

If Address = 0 Or Address = 10 Then

Kod = Kod And &B10111111
End If

If Kod = 1 Then

Call Kostka
End If

If Kod = 2 Then

Call Ruletka
End If

Debounce Przycisk_1 , 0 , Kostka , Sub
Debounce Przycisk_2 , 0 , Ruletka , Sub

Loop

background image

w pêtli powtórzeñ „symulacjê” losowania,
polegaj¹c¹ na miganiu szeœciu diod z towa-
rzysz¹cym im dŸwiêkiem. Nastêpnie w za-
le¿noœci od wygenerowanej w pêtli g³ównej
liczby ustawiæ port w stan odzwierciedlaj¹cy
tê liczbê. Zastosowa³em do tej operacji funk-
cjê Select Case. Wynik w postaci zapalonych

diod widoczny jest przez 5 sekund, a po up³y-
wie tego czas diody gasn¹.
Zasadê dzia³ania elektronicznej Kostki mamy
ju¿ za sob¹, przejdziemy wiêc do wyjaœnie-
nia, na czym bêdzie polegaæ dzia³anie Rulet-
ki
listing 3. Wejœcie do tej procedury mo¿-
liwe jest po naciœniêciu klawisza o kodzie 2
lub Przycisku_2 (S2). Jak na pewno zauwa-
¿yliœcie, jest tu pe³no, chêtnie przeze mnie
stosowanych, pêtli powtórzeñ „wzbogaco-

nych” o funkcjê Rotate. Na pocz¹tku proce-
dury zak³adam pocz¹tkow¹ wartoœæ zmiennej

A, któr¹ bêdê obraca³
o jedno miejsce w lewo.
Rolowaniu bêdzie towa-
rzyszy³ dŸwiêk. Zastoso-
wanie jednej pêtli w dru-
giej pozwoli³o na stopnio-
we zmniejszanie prêdko-
œci obracania bitu. Aby
„kulka” nie zatrzymywa³a
siê w jednym miejscu, po-
wtórzy³em drugi raz tê
sam¹ pêtlê, tylko liczbê
powtórzeñ zale¿y od
zmiennej Liczba_gene-
rowana
, czyli wygenero-
wanej w pêtli g³ównej
liczby. Tak jak w przypad-
ku Kostki wynik widoczny
jest przez pewien czas.
Oprogramowanie mamy
za sob¹, w razie niejasno-
œci polecam analizê kodu
Ÿród³owego dostêpnego na
stronie internetowej EdW.

Monta¿

i uruchomienie

Ca³y uk³ad mo¿na zmontowaæ na p³ytce dru-
kowanej pokazanej na rysunku 2. Z w³asne-
go doœwiadczenia polecam rozpoczêcie mon-
ta¿u od zamontowania stabilizatora i spraw-
dzenia poprawnoœci jego dzia³ania. „Zaszy-
cie” ca³ej inteligencji uk³adu we wnêtrzu mi-
kroprocesora spowodowa³o, ¿e monta¿ p³ytki
jest banalny, wiêc przeprowadzamy go
w sposób typowy, od elementów najni¿szych
do najwy¿szych. Diody LED montujemy na
przemian raz koloru czerwonego, raz koloru
zielonego. Dwa kolory maj¹ odzwierciedlaæ
klasyczn¹ ruletkê. Niestety nie ma diod œwie-
c¹cych na czarno, dlatego u¿y³em koloru zie-
lonego. Po wlutowaniu podstawki i umie-
szczeniu w niej zaprogramowanego mikro-
procesora mo¿emy zaczynaæ zabawê.

Obs³uga uk³adu

Przy okazji omawiania programu wspomina-
³em ju¿ o obs³udze naszej „zabawki”, ale chcê
tê informacje zebraæ osobno. Obs³uga jest ba-
nalnie prosta: naciskaj¹c klawisz 1 lub przy-
cisk_1 (S1) „rzucamy kostk¹”, naciskaj¹c
klawisz 2 lub Przycisk_2 (S2) „puszczamy
kuleczkê”. ¯yczê wszystkim mi³ej zabawy!!!

£ukasz Hrapek

57

Elektronika dla Wszystkich

Wykaz elementów

Rezystory
R1-RR8 . . . . . . . . . . . . . . . . . . . . . . . . . .320

R9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220

Kondensatory
C1,C2 . . . . . . . . . . . . . . . . . . . . . . . . . . .22pF
C3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .100µF

Pó³przewodniki
D1-DD4 . . . . . . . . . . . . . . . . . . .LED5 czerwone
D5-DD8 . . . . . . . . . . . . . . . . . . . .LED5 zielone
IC1 . . . . . . . . . . . . . . . . . . . . . . . .AT90S2313
IC2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7805
OP1 . . . . . . . . . . . . . . . . . . . . . . . . . .SFH506

Inne
Q1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8MHz
SG1 . . . . . . . . . . . . . . . . . . . . . . .Buzzer piezo
ARK 2

Komplet podzespo³ów z p³ytk¹ jest dostêpny

w sieci handlowej AVT jako kit szkolny AVT-3019

Listing 2

Sub Kostka:

For L = 1 To 15
Diody = &B11000000
Sound Bzyczek , 500 , 50
Diody = &B11111111
Waitms 150
Set Bzyczek
Next L

Select Case Liczba_generowana
Case 0 : Diody = &B11111110
Case 1 : Diody = &B11111100
Case 2 : Diody = &B11111000
Case 3 : Diody = &B11110000
Case 4 : Diody = &B11100000
Case 5 : Diody = &B11000000
End Select
Wait 5
Diody = &B11111111
End Sub Kostka

Listing 3

Sub Ruletka:
Rolowana_liczba = &B11111110

For L = 1 To 25
Zwloka = Zwloka + 5
Rotate Rolowana_liczba , Left , 1
Diody = Rolowana_liczba
Sound Bzyczek , 800 , 10
Set Bzyczek

For I = 1 To Zwloka
Waitms 2
Next I

Next L

For L = 1 To Liczba_generowana

Zwloka = Zwloka + 5

Rotate Rolowana_liczba , Left

, 1

Diody = Rolowana_liczba
Sound Bzyczek , 800 , 10
Set Bzyczek

For I = 1 To Zwloka
Waitms 2
Next I

Next L

Zwloka = 0
Wait 5
Diody = &B11111111

Rys. 2 Schemat monta¿owy


Wyszukiwarka

Podobne podstrony:
AVT3017
AVT3013
AVT3012
AVT3015
AVT3017
AVT3018
AVT3016

więcej podobnych podstron