3D Audio LED Cube

advertisement
Projekty AVT
3D Audio
LED Cube
3161
Trójwymiarowy obraz sygnału audio
będący doskonałym dodatkiem dla
wielu urządzeń muzycznych. Muzyka
zadowoli ucho, LED Cube – oko.
W codziennym życiu często pragniemy
urozmaicić sobie doznania wizualne, słuchowe bądź smakowe. Dzięki LED Cube
możemy połączyć zarówno doznania słuchowe, jak i wizualne. Prezentowany
układ daje bardzo duże możliwości – ograniczeniem jest tylko nasza wyobraźnia.
Opisywane urządzenie służy do zobrazowania sygnału audio za pomocą diod
LED. Prezentowany układ jest sześcianem LED-owym o wymiarach 8x8x8,
czyli zawiera aż 512 punktów świetlnych.
Jest więc wyświetaczem przestrzennym,
wytwarzającym obraz 3D. Dzięki temu
można otrzymać na nim niezliczone mnóstwo interesujących efektów wizualnych.
W EdW były już przedstawiane liczne projekty wykorzystujące wyświetlacze LED-owe. Pojawiły się też projekty
wyświetlaczy 3D, lecz zwykle ograniczały się do pokazywania wgranych efektów
wizualnych. Zaprezentowane rozwiązanie
pozwala rozszerzyć możliwości takiego
wyświetlacza poprzez jego odpowiedź na
podawany na bieżąco sygnał zewnętrzny,
jakim jest muzyka.
Warto zwrócić uwagę na wykorzystanie mikrokontrolera z rdzeniem ARM,
dzięki któremu można było osiągnąć płynne wyświetlanie obrazu z jednoczesnym
pomiarem sygnału wejściowego.
Elektronika dla Wszystkich
Opis układu
Dla lepszego zrozumienia budowy i działania, warto przeanalizować schemat blokowy, z rysunku 1. Schemat ideowy
pokazany jest na rysunku 2. Układ zasilany jest napięciem 3,3V.
Sygnał wejściowy podawany jest
na złącze JP10. Powinien on zawierać
się w granicach od 0V do 3V. Większy sygnał wejściowy może spowodować
uszkodzenie mikrokontrolera. Po podłączeniu zasilania do złącza JP11 dioda
LED poinformuje nas o pracy układu.
Warto tę diodę umieścić na warstwie bottom płytki, ponieważ mogłaby pogarszać
efekty wizualne sześcianu. Należy zwrócić uwagę na brak zabezpieczenia przed
odwrotną polaryzacją zasilania.
Kluczowym blokiem na schemacie
jest mikrokontroler. Wybrano wersję
STM32F051R8T6 z powodu relatywnie
niskiej ceny w stosunku do parametrów,
które były pożądane w układzie. Układ
ten może szybko przetwarzać dane na
wejściu ADC, jednocześnie nie wstrzymując na długi czas wykonywania programu
głównego. Obsługa ADC została zrealizowana w przerwaniu mikrokontrolera.
Rolą mikrokontrolera jest pomiar sygnału
audio, a następnie zapisanie wyniku do
pamięci. Drugim zadaniem mikrokontroRys. 1
:(-ĝ&,(
$8',2
67(52:1,.
:$567:<
/('
&8%(
0,.52.21752/(5
%8)25<
Listopad 2016
lera jest wybór warstwy, na której zostanie
wyświetlony obraz. Realizowane jest to
w bloku sterownika warstwy. Odbywa się
to za pomocą krążącej jedynki. Bardzo
ważne jest, by nie podać więcej niż jednej
jedynki na sterownik warstwy. W przeciwnym razie popłynie zbyt duży prąd,
który może uszkodzić układ. Ostatnim
zadaniem mikrokontrolera jest wyświetlenie obrazu na podstawie zebranych próbek
sygnału audio. Układ podaje ciąg bitów na
blok buforów. Ważne jest, by odświeżać
obraz z częstotliwością większą niż 50Hz.
Jeżeli będziemy zbyt często zbierać próbki z ADC, to obraz stanie się niewyraźny
i męczący dla ludzkiego oka. Można to
w prosty sposób skalibrować w programie
wedle indywidualnych potrzeb.
Kolejnym blokiem jest sterownik warstwy, który tworzą tranzystory IRLZ44N.
W układzie celowo zastosowano takie
tranzystory z powodu niskiego napięcia otwarcia bramki (maksymalnie 3V)
i małej rezystancji kanału. Dzięki temu
mikrokontroler jest w stanie całkowicie
otworzyć tranzystor (ponieważ on też
pracuje z napięciem 3V). Rezystory znajdujące się na porcie „A” mają za zadanie
ograniczyć prąd płynący na tranzystor.
Rezystory między bramką a źródłem
tranzystora mają za zadanie wspomóc
poprawne działanie otwierania i zamykania kanału. Mała rezystancja kanału jest
bardzo istotna, ponieważ przez tranzystor płynie w szczycie prąd rzędu pojedynczych amperów. W przypadku dużej
15
Projekty AVT
JP9
Listopad 2016
CLK
OC
1
2
3
4
5
6
7
8
2 10uF/6,3V
VDD
1
C15
JP11
W1
68k/0603
19
18
17
16
15
14
13
12
1
2
3
4
5
6
7
8
Q6
1Q
2Q
3Q
4Q
5Q
6Q
7Q
8Q
Q1
CLK
OC
11
CLK6
1
OC
1
2
3
4
5
6
7
8
CLK
OC
Q2
19
18
17
16
15
14
13
12
Q3
1Q
2Q
3Q
4Q
5Q
6Q
7Q
8Q
W5
68k
1D
2D
3D
4D
5D
6D
7D
8D
W4
W6
68k
2
3
4
5
6
7
8
9
D1
D2
D3
D4
D5
D6
D7
D8
W3
68k
74HC574D
JP7
W2
68k
11
CLK7
OC 1
1D
2D
3D
4D
5D
6D
7D
8D
68k
JP8
2
3
4
5
6
7
8
9
74HC574D
19
18
17
16
15
14
13
12
CLK
OC
74HC574D
1
2
3
4
5
6
7
8
Q5
1Q
2Q
3Q
4Q
5Q
6Q
7Q
8Q
Q7
CLK5 11
OC 1
1D
2D
3D
4D
5D
6D
7D
8D
W7
68k
2
3
4
5
6
7
8
9
Q4
JP6
D1
D2
D3
D4
D5
D6
D7
D8
1
2
3
4
5
6
7
8
WARSTWY1-8
74HC574D
D1
D2
D3
D4
D5
D6
D7
D8
R2
LED1 330R
19
18
17
16
15
14
13
12
Q8
OC
1Q
2Q
3Q
4Q
5Q
6Q
7Q
8Q
68k
11
CLK8
1
1D
2D
3D
4D
5D
6D
7D
8D
68k
10
20
RST
R1 10k
S1
16
2
3
4
5
6
7
8
9
D1
D2
D3
D4
D5
D6
D7
D8
+
JP2
26
1
rezystancji kanału tranzystor Rys. 2
PB0
VBAT
D1
D1 2 1D 1Q 19 1
27
13
PB1
VDDA
D2
18 2
3
mógłby bardzo się zagrzać,
2D 2Q
D2
28
64
PB2
VDD_2
D3
17 3
4
3D 3Q
D3
62
a spadki napięcia na nim
32
PB9
VDD
VDD
16 4
5
4D 4Q
D4
61
PB8
spowodowałyby pogorszenie
OC
15 5
6
5D 5Q
D5
7
NRST
RST
14 6
7
jasności diod w sześcianie
6D 6Q
D6
60
BOOT0
13 7
8
7D 7Q
D7
29
LED-owym.
PB10
12 8
9
8D 8Q
D8
30
5
PF0-OSC_IN PB11
Blok buforów tworzy
33
6
PF1-OSC_OUTPB12
11
CLK
CLK4
34
swoistą pamięć dla danej
PB13
1
C1 18
OC
OC
35
PB14
PF4
100nF
warstwy. Został on zbu36
19
PB15
PF5
74HC574D
41
dowany z ośmiu rejestrów.
PA8
JP3
8
42
2
PC0
ADC
ADC 43 PA9
Mikrokontroler musi wyko9
19 1
1
PA10
PC1
CLK1
D1 2 1D 1Q
44
10
18
2
3
nać precyzyjnie sekwencję
PA11
PC2
2D 2Q
CLK2
D2
45
11
17 3
4
PA12 U1
PC3
3D 3Q
CLK3
D3
przedstawioną na rysunku 3. JP10
24
47
16 4
5
PC4
PF6
4D 4Q
CLK4
D4
8 x 1k 48 PF7
25
15 5
6
W momencie zablokowania
PC5
5D 5Q
CLK5
D5
R3
37
14
14 6
7
PC6
PA0
6D 6Q
CLK6
D6
rejestrów ich wyjścia prze- W1 R4
38
15
8
13 7
PC7
PA1
7D 7Q
CLK7
D7
R5
39
16
9
12 8
chodzą w stan wysokiej impe- W2
PC8
PA2
8D 8Q
CLK8
W3
D8
40
17
R6
PC9
PA3
dancji. Mikrokontroler musi W4 R7
51
20
11
PC10
PA4
CLK
CLK3
R8
osiem razy wykonać operację W5
52
21
PC11
PA5
OC
W6
OC 1
53
22
R9
PC12
PA6
ustawienia bitów na swoim W7
2
23
74HC574D
PC13
PA7
wyjściu, wyboru i zapisu do W8 R10
3
JP4
PC14-OSC32_IN
4
5
wybranego rejestru. Po wykoPC15-OSC32_OUT
VDD
19 1
2
1D 1Q
D1
4
18
3
2
naniu sekwencji następuje
2D 2Q
54
D2
46
3
PA13(SWDAT) PD2
17 3
4
3Q
3D
55
D3
49
2
odblokowanie wszystkich
PA14(SWCLK) PB3
D4
16 4
5
4D 4Q
56
D4
50
1
PB4
PA15
D5
15 5
6
rejestrów. W efekcie zostaną
5D 5Q
57
D5
63
PB5
VSS_2
D6
14 6
7
6D 6Q
58
D6
31
zaświecone wybrane diody JP1
PB6
VSS
D7
13 7
8
7D 7Q
59
D7
12
PB7
VSSA
D8
12 8
9
LED na warstwie. Wybo8D 8Q
D8
ru warstwy należy dokonać
STM32F051R8T6
11
CLK
CLK2
1
przed odblokowaniem rejeOC
OC
strów. Całą procedurę należy
1uF 4,7uF
74HC574D
VDD
powtórzyć kolejno dla każdej
JP5
C4
C5
C6
19 1
2
warstwy. Oko ludzkie widzi
1D 1Q
D1
18 2
3
2D 2Q
D2
obraz jako ciągły, jeżeli jest
IC1...
10n
4
17 3
3D 3Q
D3
...
on odświeżany dynamicznie
5
16 4
4D 4Q
D4
...IC8
15 5
6
z częstotliwością co najmniej
5D 5Q
D5
14 6
7
6D 6Q
D6
50Hz. Warto jednak zastoso8
13 7
7D 7Q
D7
C2,
C3,
C7-C14
9
12 8
wać większą częstotliwość, VDD
8D 8Q
D8
eliminując tym samym efekt
CLK1 11 CLK
migotania diod. Warto zwróOC
OC 1
10 x 100n
cić uwagę, że częstotliwość
74HC574D
minimalna to liczba warstw
pomnożona przez częstotliwość wrażli- obraz z częstotliwością znacznie większą
wości oka. W efekcie częstotliwość ta niż 400Hz. Jeżeli jednak próbkowanie
powinna być nie mniejsza niż 400Hz dla ADC będzie zbyt częste, uzyskamy efekt
całego sześcianu. Dzięki zastosowanemu stroboskopowy.
Przed przystąpieniem do budowy nalemikrokontrolerowi możemy odświeżać
ży zastanowić się nad wyborem diod.
Rys. 3
START
W przypadku zastosowania diod o małym
poborze prądu trzeba dodać odpowiednie
ZABLOKOWANIE
REJESTRÓW
oporniki na wyjściach rejestrów. W przeciwnym razie diody ulegną zniszczeniu.
Następnym aspektem wyboru diod jest ich
USTAWIENIE 8
kolor. Warto również zastanowić się, czy
BITÓW NA
t:_/,
chcemy wybrać diody z soczewką dyfuREJESTRÓW
zyjną. Mają one szerszy kąt świecenia,
dzięki czemu sześcian świeci wyraźnie
WYBÓR
od każdej strony. Jeżeli zostaną wybraREJESTRU
ne diody „kierunkowe”, z przezroczystą soczewką, sześcian będzie wyraźnie
ZAPISANIE DO
pokazywał obrazy w bardziej
WYBRANEGO
REJESTRU
ograniczonym kącie, lecz będzie
<KE/
NIE
świecić tam mocniej niż diody
t/%<^E/
dyfuzyjne.
Sześcian o podanych
z
TAK ODBLOKOWANIE
>/E/<
WYKONANO 8
wymiarach jest wystarczająco
tz<KEEz,
REJESTRÓW
ZAPISÓW
ZAPISÓW
duży, by móc zaprezentować na
W8
8x
IRLZ44N
nim ciekawe efekty wizualne (nie tylko
próbki z ADC). Wystarczy odpowiednio
zmodyfikować program.
Blok LED CUBE jest to sześcian
LED-owy zbudowany z 8x8x8 diod.
W każdej osi X, Y i Z mamy po 8 diod.
Budowa większego wyświetlacza jest
możliwa, lecz jest to znacznie trudniejsze
zarówno pod względem fizycznego wykonania, jak też oprogramowania.
Program dla mikrokontrolera, zarówno w postaci źródłowej z komentarzami,
jak i pliki wynikowe, jest umieszczony
w Elportalu wśród materiałów dodatkowych do tego numeru EdW. Został on
dokładnie skomentowany i stworzony
w postaci funkcji, łatwych do modyfikacji.
Montaż i uruchomienie
Układ można zmontować na płytce drukowanej, której projekt pokazany jest na
rysunku 4 i 5. Standardowo montujemy
układ, zaczynając od elementów najmniejszych, a kończąc na największych. Zale-
Elektronika dla Wszystkich
Projekty AVT
Rys. 4
JP7
IC7
JP8
JP6
C12
Q5
JP2
C8
IC3
JP3
Q7
JP5
C13
IC8
JP9
C10
JP4
IC4
Q2
Q3
WARSTWY1-8
Q4
Q1
Q6
4
3
2
1
S1
JP11
Mateusz Kuc
Sterownik 3D
JP1
JP10
Q8
Rys. 5
C15
R2
LED1
R5
R13
R12
R11
R3 C5
C4 C1
*
R4
R8
R7
R6
R9
R10
C2
R1
R16
U1
C6
C3
R15
R14
C7
IC2
IC6
C9
R17
R18
C14
IC1
C11
IC5
Elektronika dla Wszystkich
cane jest jednak
zamontowanie najpierw mikrokontrolera, który ma
wyprowadzenia
ulokowane bardzo
blisko względem
siebie. Fotografia
tytułowa oraz fotografia 1 pokazują
model.
Zalecane jest
rozpoczęcie montażu od budowy przestrzennego sześcianu
LED-owego. Jest
to niewątpliwie
najtrudniejszy
i najbardziej czasochłonny proFot. 1 ces w projekcie.
Poniższy opis jest
dobrym poradnikiem, jak zbudować
LED CUBE o dowolnych wymiarach.
Budowę zaczynamy od wyboru diod
LED. Napięcie przewodzenia diod nie
może być większe niż 3V. Należy zwrócić uwagę na długość wyprowadzeń
w diodzie. Następnie za pomocą narzędzi szkicujemy szablon jednej warstwy
sześcianu na płycie wiórowej. Należy
uwzględnić długość nóżek i zachować
przynajmniej 2mm zapasu w długości.
Przykład utworzonego szablonu przestawiono na fotografii 2.
Następnie należy odpowiednio zagiąć
wyprowadzenia diody LED. Przedstawia to fotografia 3. Katoda powinna
być zagięta pod kątem prostym, natomiast anoda ma tylko lekkie zagięcie na
końcu. Zagięcie anody można również
stworzyć po polutowaniu całej warstwy
sześcianu. Następnie tak zagięte diody
umieszczamy w przygotowanym szablonie i lutujemy. Przedstawia to fotografia 4. Dzięki takiemu zagięciu otrzymujemy aktywację wybranej warstwy
poprzez zwarcie jej do masy. Podczas
lutowania warstwy należy bardzo delikatnie i szybko wykonywać połączenia.
W przeciwnym razie dioda ulegnie przegrzaniu z powodu złego odprowadzania
ciepła przez płytę wiórową.
Po zlutowaniu całej jednej warstwy
należy bezwarunkowo sprawdzić każdą
diodę pod kątem działania i jakości świecenia. Diody można sprawdzić, podając
odpowiednie napięcie dla wybranego
rodzaju diod (przez rezystor ograniczający). Bardzo często dochodzi do przegrzania diody na początkowym etapie
lutowania. Kolejnym problemem jest
niejednorodność świecenia diod. Jeżeli
Listopad 2016
Fot. 2
Fot. 3
Fot. 4
jakaś dioda jest zepsuta bądź świeci źle,
należy ją wymienić na tym etapie prac.
Dobrym sposobem jest odcięcie diody
a następnie odlutowanie samych nóżek.
Po każdej wymianie wadliwych LEDów, trzeba ponownie sprawdzić całą
warstwę i w razie konieczności powtórzyć naprawę. Gdy wszystko zostanie
naprawione, można wzmocnić konstrukcję poprzez dodanie tzw. srebrzanki.
Jest to drut, który możemy przylutować
tak, jak widać na fotografiach. Zalecana
grubość srebrzanki to 0,6mm. Następnie
ponownie należy sprawdzić całą warstwę, ponieważ po połączeniu warstw
ze sobą nie będzie już możliwa naprawa diod nieleżących bezpośrednio na
brzegach sześcianu. W ten sam sposób
wykonuje się pozostałe warstwy.
Po utworzeniu wszystkich ośmiu
warstw należy je połączyć w jedną całość.
W tym celu należy umieścić jedną warstwę ponownie w szablonie, zagiąć na
końcu anodę, jeżeli wcześniej nie zostało
to wykonane, a następnie nałożyć na to
kolejną warstwę.
17
Projekty AVT
Fot. 5
W celu ułatwienia pracy i odpowiedniego ustawienia warstw względem siebie można włożyć coś w każdym rogu
obu warstw, tworząc w ten sposób odpowiednie odległości między warstwami.
W pierwszej kolejności należy polutować brzegi sześcianu, otrzymując w ten
sposób stosunkowo stabilne ułożenie.
Następnie lutujemy wszystkie pozostałe
anody w każdej kolumnie warstwy. Po
zlutowaniu należy warstwy podłączyć do
masy i sprawdzić każdą kolumnę pod
kątem odpowiedniej jakości świecenia
i poprawności pracy. Po przeprowadzeniu
testów zaginamy ponownie nóżki i dokładamy kolejną warstwę.
Ostatecznie powinien zostać osiągnięty efekt, jak na fotografii 5. Jeżeli sześcian jest przekrzywiony w jedną
stronę, można go delikatnie skorygować,
ostrożnie ściskając w odpowiednią stronę.
Należy przy tym zachować szczególną
ostrożność. Problem ten wynika z faktu,
że każda kolejna nóżka w kolumnie delikatnie przesuwa warstwę nad nią w bok.
Można temu zapobiec, wykrzywiając je
delikatnie na etapie łączenia warstw, jednak nie zapewnia to całkowitej likwidacji
kłopotu.
Jako podstawę sześcianu można wykorzystać szablon. Ponieważ diody były
w nim łączone, mają stosunkowo prawidłowo rozmieszczone kolumny względem
otworów. Przy tak dużej liczbie wyprowadzeń pojawia się problem z umieszczeniem wyprowadzeń w odpowiednich
miejscach. Wynika to z faktu, że nóżki
nigdy nie są idealnie proste w ostatniej
lutowanej warstwie. Po umieszczeniu
sześcianu w szablonie należy doprowa-
18
Fot. 6
dzić np. za pomocą srebrzanki przewody
do każdej warstwy z osobna. Będą one
doprowadzone na tranzystory w układzie. Dzięki temu osiągnięto możliwość
wyboru warstwy. Każdą warstwę
można podzielić na 8 rzędów po
8 diod. Wyprowadzenia kolumn,
które znajdują się po przeciwnej
stronie szablonu, należy wygiąć
pod katem prostym, uzyskując
w ten sposób wstępnie stabilną konstrukcję. Następnie po
podzieleniu na rzędy lutuje się
do każdej kolumny przewody.
Dobrym sposobem zminimalizowania problemu podczas podłączania sześcianu jest użycie tzw. taśmy
t ś
przewodów po 8 linii w taśmie i oznaczenie ich kolejności za pomocą np. kolorowych rurek termokurczliwych. Na drugim
końcu taśm można umieścić gniazda na
goldpiny, jednocześnie oznaczając w tamtym miejscu kolejność za pomocą rurek.
Następnie trzeba ponownie sprawdzić poprawność działania diod poprzez
kolejne ich zaświecanie. Po ukończonych
testach można zastosować klej na gorąco
przy otworach, z których wychodzą nóżki
diod od każdej warstwy. Dzięki temu
zabezpieczymy sześcian na ewentualność nieumyślnego wyrwania przewodu.
Każda osoba kończąca budowę sześcianu
niewątpliwie doceni dużą, wręcz nadmiarową liczbę testów, widząc, jak bardzo
utrudniona jest naprawa po zakończeniu
montażu. Ukończony sześcian jest gotowy do podłączenia z płytką PCB. Warstwy podłączamy do złącza z tranzystorami, natomiast rzędy łączymy z kolejnymi
rejestrami w bloku bufora.
Osoby niedoświadczone powinny
poprosić kogoś o pomoc w zaprogramowaniu procesora. Podczas montażu należy
zwrócić uwagę na właściwe podłączenie,
ponieważ błąd może
n
spowodować
uszkodzenie
s
diod
bądź układów. Należy
d
również
pamiętać, że prądy
r
płynące
przez tranzystory
p
sterujące
warstwami mogą
s
być
rzędu pojedynczych
b
amperów.
a
Listopad 2016
Elektronika dla Wszystkich
Mateusz Kuc
[email protected]
Wykaz elementów
R1 . . . . . . . . . . . . . . . . . . . . . . . 10k/0402
R2 . . . . . . . . . . . . . . . . . . . . . . . 330/0402
R3–R10 . . . . . . . . . . . . . . . . . . . . 1k/0402
R11–R18 . . . . . . . . . . . . . . . . . . 68k/0402
C1–C3, C7–C14 . . .100nF ceramiczny/0402
C4 . . . . . . . . . . . . . . .10nF ceramiczny/0402
C5 . . . . . . . . . . . . . . . .1uF ceramiczny/0603
C6 . . . . . . . . . . . . . . . . . . . 4,7uF/6,3V/0402
C15 . . . . . . . . . 10uF/6,3V tantalowy/CASE A
LED1 . . . . . . . . . . . . . . . . . .LTST C170KGKT
LED2–LED513 . . . . . . . . . . . . . . . diody THT
Q1-Q8 . . . . . . . . . . . . . . . . . . IRLZ44/TO220
U1 . . . . . . . . . . . . . . . . . . . STM32F051R8T6
IC1–IC8 . . . . . . . . . . . . . . . . . . . . . 74HC574
S1 . . . . . . . . . . . . . . . . . . . . . . . . . . przycisk
JP1 . . . . . . . . . . . . . . . goldpin 1x5/2,54mm
JP2–JP9, WARSTWY1-8 . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . goldpin 1x8/2,54mm
JP10, JP11 . . . . . . . . . goldpin 1x2/2,54mm
Plytka drukowana jest dostępna
w sieci handlowej AVT jako kit szkolny AVT-3161.
Download