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.