2010.07_Rowerowy wyświetlacz widmowy.pdf

(320 KB) Pobierz
451452378 UNPDF
Rowerowy
wyświetlacz
widmowy
2945
rozświetlić roweru kolorowym, wyjątkowym
napisem lub obrazem?
Oto proste urządzenie, wzorowane na
układzie z EdW 9/2008, zawierające znacznie
większą liczbę diod i oparte na mikrokontro-
lerze ATmega8L. Stworzyliśmy też interfejs
na komputer PC, który umożliwia przetwa-
rzanie obrazka na formę zrozumiałą przez
mikrokontroler. Nasz układ charakteryzuje
się: prostotą wykonania, małym kosztem eks-
ploatacji, prostotą programowania, energoo-
szczędnością, prostotą montażu.
Jak to działa?
Cały układ składa się z czterech części:
modułu sterownika, modułu listwy z dioda-
mi, programu napisanego w języku C oraz
interfejsu użytkownika na komputer PC. Na
rysunku 1 zaprezentowany jest schemat ideo-
wy sterownika, a na rysun-
ku 2 schemat ideowy listwy z
diodami. Sercem układu jest
mikrokontroler ATmega8L.
Zdecydowaliśmy się użyć wer-
sji przewlekanej zamiast SMD,
gdyż jest ona dużo prostsza w
lutowaniu. Ponadto jest zde-
cydowanie wygodniejsza przy
testowaniu układu na uni-
wersalnej płytce stykowej w
początkowych fazach projektu.
Duża liczba programowalnych
wyjść (23) dała nam możli-
wość sterowania szesnastoma
diodami RGB, a stosunkowo
duża pamięć programu FLASH
(8KB) oraz danych EEPROM
(512B) pozwoliła zrealizować
projekt bez problemu. Jako
zasilanie wykorzystaliśmy
trzy popularne baterie LR6
AA, które zapewniły zasila-
nie 4,5V. Wybraliśmy zatem
wersję z literką L, gdyż pra-
cuje ona w niższym zakresie
napięć (2,75– 5V) niż zwykła ATmega8
(4,55–5V).
Postanowiliśmy ograniczyć się do sied-
miu odcieni uzyskiwanych za pomocą łącze-
nia barw diod RGB: czerwonego, zielonego,
niebieskiego, żółtego, różowego, seledyno-
wego, białego. Aby to osiągnąć, posłużyliśmy
się trzeba tranzystorami średniej mocy NPN
BC337 (0,8A). Przestrzegam przed zastoso-
waniem BC548 i odpowiedników, gdyż przy
tak dużej liczbie diod nieuchronnie dojdzie do
spalenia tranzystora i w efekcie nie będą świe-
cić diody koloru, za który odpowiadał spalony
tranzystor. Taki efekt możecie zobaczyć na
fotografii 1 , na której widać, że brakuje kolo-
ru zielonego.
Istotny jest właściwy dobór diod. Przy
szesnastu diodach każdego z kolorów podsta-
wowych (czerwony, zielony, niebieski) jest
możliwe wykorzystanie zwykłych diod, jed-
nak my pokusiliśmy się o zastosowanie diod
RGB SMD w obudowie PLCC6. Obudowa
jest na tyle duża, że można ją lutować w
warunkach domowych, a jednocześnie nie
zajmuje wiele miejsca na płytce. Strzałem w
dziesiątkę okazały się diody firmy Itswell,
dostępne na www.maritex.com.pl. W praktyce
świecą bardzo jasno i dają wspaniały efekt
na kole. Jako ciekawostkę dodam, że diody
mają tak dużą sprawność, że zaczynają lekko
świecić po podłączeniu do nich omomierza, a
nawet podczas lutowania (co zresztą pokazuje
stan uziemienia lutownicy).
Najbardziej newralgicznym momentem
doboru elementów okazał się wybór kontak-
tronu. Nasz magnes umieściliśmy na ramie
roweru jak na fotografii 2 . Kontaktron musiał
być zatem wystarczająco czuły, by wykryć
przejście obok magnesu, a jednocześnie na
tyle wytrzymały, by się nie zewrzeć na stałe
pod wpływem dużego prądu. Na szczęście
nie okazało się to trudnym zadaniem i trafnie
postawiliśmy na dość duży kontaktron o dłu-
gości 3,5cm.
Ponieważ płytka sterownika w obudowie
jest oddzielona od listwy z diodami, należa-
Do czego to służy?
Kto nie chciałby urozmaicić wyglądu swo-
jego roweru o efektywny wyświetlacz na
kole? Chyba każdy. Taki efektowny gadżet
przyciąga oko, bawi i sprawia, że nasz bicykl
jest wyjątkowy.
Zainspirowani artykułem Wyświetlacz dio-
dowy na kole rowerowym z EdW 9/2008 i
zachęceni do pracy nad podobnym projektem
w ramach zajęć na uczelni postanowiliśmy
zbudować podobny wyświetlacz. Naszym
celem było zachęcenie dzieci i młodzieży
do licznych wypraw rowerowych. Jak to
osiągnąć? Czyniąc z bicykla niepowtarzalny
pojazd, przykuwający uwagę przechodniów.
W dzisiejszych czasach młodzież przywiązuje
dużą wagę do efektownych, przyciąga-
jących oko gadżetów. Czemu zatem nie
1
PC6(/RESET)
PC0(ADC0)
23
24
PC1(ADC1)
22
25
AGND
PC2(ADC2)
21
26
1
3
5
2
4
6
AREF
PC3(ADC3)
20
27
AVCC
PC4(ADC4/SDA)
28
PC5(ADC5/SCL)
7
9
8
10
9
PB6(XTAL1/TOSC1)
11
13
15
12
14
16
10
PB7(XTAL2/TOSC2)
PD0(RXD)
2
3
PD1(TXD)
4
17
19
18
20
PD2(INT0)
8
5
GND
PD3(INT1)
VCC
6
PD4(XCK/T0)
7
11
SV1
VCC
PD5(T1)
12
PD6(AIN0)
13
PD7(AIN1)
PB0(ICP)
14
15
PB1(OC1A)
16
PB2(SS/OC1B)
17
PB3(MOSI/OC2)
18
PB4(MISO)
19
PB5(SCK)
IC1
VCC
MEGA8-P
Q1
BC337
Q2
BC337
Q3
BC337
56
Lipiec 2010
Elektronika dla Wszystkich
Rowerowy
wyświetlacz
widmowy
Rys. 1
56
451452378.053.png 451452378.064.png 451452378.075.png 451452378.086.png 451452378.001.png 451452378.004.png 451452378.005.png 451452378.006.png 451452378.007.png 451452378.008.png 451452378.009.png 451452378.010.png 451452378.011.png 451452378.012.png 451452378.013.png 451452378.014.png 451452378.015.png 451452378.016.png 451452378.017.png 451452378.018.png 451452378.019.png 451452378.020.png 451452378.021.png 451452378.022.png
Top www
www.sigma.krakow.pl
Wi¹zki kablowe
Transformatory
Cewki i d³awiki
Zaciskanie z³¹czy na przewodach od 0,0123mm !!!
2
Cewki i d³awiki
ło je połączyć. Do tego
celu wykorzystaliśmy
popularną taśmę do
dyskietek przeciętą na
pół oraz dwa zestawy
20-pinowych złączy w
rastrze 2,54mm. Dla
uzupełnienia dodali-
śmy prosty przełącznik
dwustanowy, odłącza-
jący zasilanie od ukła-
du w czasie dłuższego
postoju.
Z uwagi na zasto-
sowane zasilanie, które
wymogło użycie obudo-
wy o głębokości co naj-
mniej 3cm, zdecydowa-
liśmy się wykorzystać
powszechnie dostępną
obudowę Z-79. W celu
stabilnego i bezpiecz-
nego przymocowania
płytki drukowanej ukła-
du sterującego do obu-
dowy, powiększyliśmy
płytkę, aby umieścić na
niej otwory mocujące.
Dzięki temu możliwe
jest solidne przymoco-
wanie płytki do obu-
dowy, co zabezpieczy
część sterującą przed
groźnymi wstrząsami.
Płytkę można zabez-
pieczyć roztworem
kalafonii w spirytusie
albo dedykowanym
środkiem chemicznym
ze sklepu dla elektro-
ników. Należy jednak
wykonać to po uprzed-
nim upewnieniu się, że
układ na pewno działa,
a zastosowany materiał
izolacyjny nie spowodu-
je niebezpiecznych zwarć. Należy
jednocześnie pamiętać, by ominąć
mikrokontroler, aby w przyszłości
można było zmienić wyświetlany
obrazek. Obudowę listwy z dioda-
mi wykonaliśmy z przezroczystego
pudełka po pędzlu.
PAD1
1
K1
A1 PAD4
4
nujemy następujących
operacji:
Jeśli układ spał, to
go budzimy, zerujemy
timer1 i ustawiamy pre-
scaler timera1.
LED1
PAD2
2
K2
A2 PAD5
5
PAD3
3
K3
A3 PAD6
6
PAD1
1
K1
A1 PAD4
4
LED2
Jeśli układ był przed
chwilą obudzony, to
budzimy go na dłużej
i stopujemy timery. Na
podstawie stanu nasze-
go licznika dokonujemy
obliczenia prędkości
obrotu koła i dzielimy
je na fragmenty, a więc
określamy czas świece-
nia diod. Jednocześnie,
bez względu na poprzed-
nią pozycję obrazu,
każemy mikroproceso-
rowi rysować go zawsze
od początku.
Na końcu włączamy
obsługę przerwań.
Gdyby doszło do przepełnienia timera (co
nie powinno się zdarzyć), urządzenie ma się
zresetować. Podobnie ma się zachować w
przypadku, kiedy staniemy i koło przestanie
się obracać (nie będzie docierał sygnał z
kontaktronu).
Ostatnia funkcja określa sposób przecho-
dzenia pomiędzy kolejnymi pikselami obra-
zu. Operacja przejścia ma miejsce tylko
wówczas, gdy układ jest obudzony i polega
na sczytywaniu wartości z bitów z pamięci
programu (czyli naszego pliku „czacha.h”).
PAD2
2
K2
A2 PAD5
5
PAD3
3
K3
A3 PAD6
6
PA D1
1
K1
A1
4
PAD 4
LED3
PAD2
2
K2
A2 PAD5
5
Fot. 1
PAD3
3
A3 PAD6
6
K3
Fot. 2
PAD1
1
K1
A1 PAD4
4
LED4
PAD2
2
K2
A2 PAD5
5
PAD3
3
K3
A3
6
PAD6
PAD1
1
K1
A1 PAD4
4
LED5
PAD2
2
K2
A2 PAD5
5
PAD3
3
K3
A3 PAD6
6
PA D1
1
K1
A1
4
PA D 4
LED6
PAD2
2
K2
A2 PAD5
5
PAD3
3
K3
A3 PAD6
6
Następnie określamy, jaki
port będzie sterował dioda-
mi. Program zaświeca naj-
pierw zewnętrznych osiem
diod, następnie wewnętrz-
nych sześć, a na końcu
dwie pozostałe w środku.
Następnie odblokowuje-
my przerwania, ustalamy
opóźnienie ok. 0,5 sekun-
dy, które ma wyelimino-
wać drgania kontaktronu.
Odblokowujemy przerwa-
nie zewnętrzne – sygnał z
kontaktronu – i ustalamy
je na narastające zbocze.
Zmienna blok ma nam
pomóc w określaniu,
czy łapiemy przerwania
z zewnątrz, czy też nie.
Pierwszy przypadek to
sytuacja, kiedy nie łapie-
my przerwań, a układ śpi.
Jeśli coś go obudziło, ma
to zapisać w rejestrze.
Drugi przypadek to obu-
dzenie układu przed chwi-
lą – nic się nie dzieje.
Ostatnia sytuacja – układ
został trwale obudzony i
zaczyna dokonywać ope-
racji logicznych na por-
tach, by wyświetlić kolory
– najpierw zielony, potem
niebieski, a na końcu czer-
wony.
Druga funkcja obsłu-
guje przerwanie z kontak-
tronu. Na czas tej operacji
blokujemy przerwania i w
zależności od stanu doko-
PAD1
1
K1
A1 PAD4
4
LED7
PAD2
2
K2
A2
5
PAD5
PAD3
3
K3
A3 PAD6
6
PAD1
1
K1
A1 PAD4
4
LED8
PAD2
2
K2
A2 PAD5
5
PAD3
3
K3
A3 PAD6
6
PA D1
1
K1
A1
4
PAD 4
LED9
PAD2
2
K2
A2 PAD5
5
PAD3
3
K3
A3 PAD6
6
PAD1
1
K1
A1 PAD4
4
Interfejs użytkownika
Za pomocą środowiska NetBeans napisaliśmy
prosty program w języku Java ( rysunek 3 ).
NetBeans jest narzędziem darmowym, bardzo
dopracowanym i przyjaznym w użyciu. Ma
bogatą funkcjonalność, pozwalającą tworzyć
kod efektywnie i bezbłędnie. Środowisko to
można rozszerzać wtyczkami, dzięki temu
można je dobrze przystosować do własnych
potrzeb. Jedyną wadą Javy są niekiedy prob-
lemy z jej uruchomieniem, związane ze ścież-
ką i wersją programu.
Najpierw należy mieć oczywiście zain-
stalowaną wirtualną maszynę Javy – JRE
(niezależny od platformy system uruchomie-
niowy) dostępną na oficjalnej stronie Java SE
Downloads. Po zainstalowaniu JRE możemy
uruchamiać program, ale nie damy rady go
skompilować, w tym celu należy ściągnąć
całe JDK dostępne na wspomnianej stronie.
1
3
5
2
4
6
LED10
PAD2
2
K2
A2 PAD5
5
7
9
8
10
PAD3
3
K3
A3
6
PAD6
11
13
15
12
14
16
PAD1
1
K1
A1 PAD4
4
17
19
18
20
LED11
PAD2
2
A2 PAD5
5
K2
SV1
PAD3
3
K3
A3 PAD6
6
Rys. 2
1
4
PA D1
PAD 4
K1
A1
LED12
PAD2
2
K2
A2 PAD5
5
PAD3
3
K3
A3 PAD6
6
PAD1
1
K1
A1 PAD4
4
LED13
PAD2
2
K2
A2
5
PAD5
PAD3
3
K3
A3 PAD6
6
PAD1
1
K1
A1 PAD4
4
Program
Program sterownika został napisany
w języku C przy użyciu popularne-
go kompilatora WinAVR i PonyProg
i można go ściągnąć z Elportalu.
Najpierw oczywiście deklarujemy
potrzebne nam biblioteki oraz załą-
czamy nasz przetworzony obrazek.
W głównej pętli zaczynamy pracę,
zerując wszystkie użyte w progra-
mie zmienne oraz usypiamy układ.
LED14
PAD2
2
K2
A2 PAD5
5
PAD3
3
K3
A3 PAD6
6
PA D1
1
K1
A1
4
PAD 4
LED15
Rys. 3
PAD2
2
K2
A2 PAD5
5
PAD3
3
K3
A3 PAD6
6
PAD1
1
K1
A1 PAD4
4
LED16
PAD2
2
K2
A2
5
PAD5
PAD3
3
K3
A3 PAD6
6
Elektronika dla Wszystkich
Lipiec 2010
57
Wi¹zki kablowe
Zaciskanie z³¹czy na przewodach od 0,0123mm !!!
2
57
451452378.023.png 451452378.024.png 451452378.025.png 451452378.026.png 451452378.027.png 451452378.028.png 451452378.029.png 451452378.030.png 451452378.031.png 451452378.032.png 451452378.033.png 451452378.034.png 451452378.035.png 451452378.036.png 451452378.037.png 451452378.038.png 451452378.039.png 451452378.040.png 451452378.041.png 451452378.042.png 451452378.043.png
Rys. 6
Aby skompilować program, trzeba mu
określić ścieżkę położenia pliku javac.exe
– w pliku kompiluj.bat domyślnie jest usta-
wiona ścieżka:
cd engine
„C:\Program Files\Java\jdk1.6.0_14\bin”\
javac Main.java
cd ..
Należy ją ustawić na właściwą dla swo-
jego umiejscowienia pliku javac.exe.
Program uruchamiamy plikiem
ProjGrupowy.bat.
W celu stworzenia pliku nagłówkowego
dołączanego do programu mikrokontrolera
należy:
• stworzyć obrazek o wymiarach 80x16
pikseli (do tego może posłużyć nawet
Paint) i zapisać go w formacie bezstrat-
nym (polecany bmp, ale może być każdy
obsługiwany przez standardowe bibliote-
ki Javy), przykładem może być rysunek
6 (należy pamiętać o czarnym tle i
ograniczonej palecie kolorów),
• wczytać go w aplikacji w Javie,
• przetworzone wartości zapisać w
pliku nagłówkowym (domyślnie
obrazek.h),
• wczytać projekt z programem mikro-
kontrolera i załączyć plik z przetwo-
rzonym obrazkiem.
Montaż i uruchomienie
Na rysunkach 4 i 5 zamieszczone są
schematy montażowe płytek drukowa-
nych. Montaż płytek jest klasyczny.
Doświadczenie pokazało, że obu-
dowa Z-79 wchodzi między szprychy
koła o promieniu 14’’ ( fotografie 3 i 4 )
i klinuje się tam na tyle mocno, że nie
były potrzebne dodatkowe mocowa-
nia. Czytelników chcielibyśmy jednak
uprzedzić, iż montaż tej obudowy nie
jest łatwy i bez odrobiny wprawy może
sprawiać trudności. Warto zatem poszu-
kać jakiegoś innego rozwiązania, nawet
korzystając z przedmiotów codzien-
nego użytku, tak jak to zrobiliśmy z
obudową na listwę z diodami.
W obu obudowach zrobiliśmy
podłużne szczeliny, umożliwiające uży-
S V 1
2 0
1
Fot. 3
IC1
Rys. 4
Rys. 5
cie taśmy. Ponadto w obudo-
wie listewki zrobiliśmy cztery
malutkie otwory, które posłuży-
ły do przymocowania obudowy
do szprych ( fotografie 5 i 6 ).
W naszym rozwiązaniu płyt-
ka z listwami jest przyklejona
do jednej wewnętrznej strony
obudowy zwykłą taśmą, ale aby
ją zabezpieczyć przed ewen-
tualnymi wstrząsami i ociera-
niem się o obudowę, włoży-
liśmy w miejsce styku cienką
gąbkę służącą powszechnie do
zabezpieczania przewożonych
pakunków. Efekt naszych prac
możecie podziwiać na fotografii
tytułowej.
LED1
Fot. 4
LE D 2
Fot. 5
LED3
LED4
LED5
LED6
LE D 7
LED8
LE D 9
Możliwe
modyfikacje
Najprostszą modyfikacją jest
dodanie zewnętrznej pamię-
ci Flash. Dzięki temu można,
wykorzystując wyprowadzenia
Rx i Tx, pokusić się o pro-
gramowanie mikrokontrolera
przez złącze służące łączeniu
modułów, a nawet za pomocą
interfejsu USB i bootloadera. Ta
druga modyfikacja, choć dużo
bardziej skomplikowana, umoż-
liwiłaby zmianę wyświetlane-
go obrazka poprzez włożenie
zwykłego pendrive’a do złącza
umieszczonego na płytce. Takie
rozwiązanie wyeliminowało-
by konieczność wyjmowania
mikrokontrolera z układu i uży-
cia programatora.
Liczymy, że już niedługo na
łamach EdW znajdziemy takie
rozwiązania. Do dzieła!
Fot. 6
LE D 10
LED11
LED12
LED13
Wykaz elementów
K1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . kontaktron
LED1-LED16 . . . . . . . . . . . . . . dioda RGB PLCC6
Q1-Q3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .BC337
IC1 . . . . . . . . . . . . . . . . . . . . . . . . . . . ATmega8L
SW1* . . . . . . . . . . . . . . . . . . . . . . . . .przełącznik
Obudowa Z-79
2×złącze 20-pinowe w rastrze 2,54mm
Podstawka precyzyjna DIL28
*elementy opcjonalne
LED14
LE D 15
LED16
Warto dodać jeszcze, że kontaktron był
połączony ze sterownikiem dwoma przewo-
dami. Można by zamiast takiego rozwiązania
połączyć wszystko za pomocą złącza, ale
wówczas trzeba by zwiększyć złącze lub
zmniejszyć liczbę diod.
Komplet podzespołów z płytką jest dostęp ny
w sieci handlowej AVT jako kit szkolny AVT-2945.
Sylwia Babicz
58
Lipiec 2010
Elektronika dla Wszystkich
451452378.044.png 451452378.045.png 451452378.046.png 451452378.047.png 451452378.048.png 451452378.049.png 451452378.050.png 451452378.051.png 451452378.052.png 451452378.054.png 451452378.055.png 451452378.056.png 451452378.057.png 451452378.058.png 451452378.059.png 451452378.060.png 451452378.061.png 451452378.062.png 451452378.063.png 451452378.065.png 451452378.066.png 451452378.067.png 451452378.068.png 451452378.069.png 451452378.070.png 451452378.071.png 451452378.072.png 451452378.073.png 451452378.074.png 451452378.076.png 451452378.077.png 451452378.078.png 451452378.079.png 451452378.080.png 451452378.081.png 451452378.082.png 451452378.083.png 451452378.084.png 451452378.085.png 451452378.087.png 451452378.088.png 451452378.089.png 451452378.090.png 451452378.091.png 451452378.092.png 451452378.093.png 451452378.094.png 451452378.095.png 451452378.096.png 451452378.002.png 451452378.003.png
Zgłoś jeśli naruszono regulamin