Dołączył(a): 12 lut 2017 Posty: 24 Lokalizacja: Warszawa
Pomógł: 0
Przedostatnim projektem, który chcę zaprezentować jest wskaźnik wysterowania z podziałem na 7 częstotliwości, projekt od dwóch lat ma status WIP, najpierw z powodu problemów z hardware, a potem zmian w koncepcji, w chwili obecnej jego ukończenie mogę szacować na 70% i czeka do zimy, na długie wieczory aby go skończyć.
Opis projektu Inspiracją były filmiki na YT prezentujące prace wykorzystujące nie koniecznie mikrokontrolery a czasami zamiast podejścia sprzętowego programowe (DTF) z takimi akrylowymi/pleksi płytkami dającymi niesamowite wrażenie wzrokowe
Układ na początku miał napędzać ATTiny25/45/85, ale tak mi się rozrosło, że obecnie jedynie ATTiny85 wchodzi w grę. elementem pośrednim jaki należało oprogramować jest układ tzw. graficznego equalizera MSEGQ7. I tu uwaga, projekt przez pierwszy rok utknął właśnie na tym układzie, 100% obecnie dostępnych układów w obudowie DIP to malowanki w dodatku nie działające i mimo zapewnień sprzedawcy można sobie darować ich kupowanie, przerobiłem ze trzech chińczyków, jedną z większych polskich hurtowni (nie TME ale też z Łodzi) i efekt ten sam, już zwątpiłem czy przypadkiem czegoś ja źle nie robię w oprogramowaniu, że to nie działa. Wątpliwością nie sprzyjał fakt, że nota katalogowa to jedna strona, a zarówno w necie jak i w samej nocie można znaleźć wykresy czasowe na liniach sterujących częściowo nieproporcjonalne, a częściowo niezgodne ze sobą, przykład dwóch wykresów poniżej.
Wreszcie trafiłem na wersję w obudowie SMD SO-8 i te istotnie działały, to właśnie od tego sprzedawcy dowiedziałem się, że DIPy to fejki. To był jakiś styczeń tego roku, mogłem wrócić do kodowania. Jako, że sterowanie okazało się dosyć proste a jednocześnie niektóre czasy tak krótkie, że nawet przy taktowaniu 16MHz więcej czasu wykonuje się kod niż potrzebny czas więc program praktycznie w tej części pozbawiony jest delayów na potrzeby dotrzymania czasów wymaganych notą - dokładnie jest tylko jeden _delay_us(30); Całą bibliotekę zatem do obsługi MSEGQ7 napisałem sam od podstaw.
Elementem wyświetlającym jest matryca 8x8 diod WS2812, do obsługi którego użyłem darmowej biblioteki przygotowanej przez Tima, do której przygotowałem własną bibliotekę efektów opartą różnego rodzaju inspiracje z YT i ogólnie internetów.
Schemat układu i wykonanie płytki W załączniku projekt_kicad.zip znajduje się schemat oraz pcb do projektu. Płytka jest tak przygotowana, że można ją łączyć maksymalnie w czwórki, dzięki temu możemy mieć dwa układy w wersji stereo, albo o podwojonej wysokości
Symulacja 3D z KiCad
Zdjęcia z natury oraz zdjęcie podczas działania układu
Oprogramowanie Jak napisałem projekt ma status w budowie, w kodzie programu zamieściłem już procedurę startową, różne efekty wizualne, zapis i odczyt ustawień EEPROM, w pliku .h można m.in. wybrać czy obsługujemy wyświetlacz o wysokości 8 czy 16 diod, a co zostało do zrobienia, napisanie dalszej obsługi klawisza, na krótkie i długie naciśnięcie, która da nam możliwość: zmiany efektu, regulację jasności, regulację nasycenia, w efekcie gradientu możliwość zdefiniowania koloru początkowego i końcowego w gradiencie oraz koloru kropki wartości szczytowej z wolniejszym opadaniem w stosunku do całego słupka wskaźnika. Całość opiera się o odczytywanie wartości mierzonej przez ADC dla kolejnych filtrów załączonych w MSEGQ7 i ich wizualizacji, funkcje głównie operują na tych danych i je w różny sposób interpretują aby je potem wyświetlić, zastosowany jest jeden timer programowy, który co prawda chodzi cały czas, ale gdy nie jest to potrzebne wyłączana jest obsługa przerwań od tego timera, ATTiny pracuje z wewnętrzną pętlą PLL 64MHz, co ze struktury skutkuje napędzaniem F_CPU 16MHz
Kod jaki obecnie jest napisany znajduje się w załączeniu
--------------
Film pokazujący działanie w zależności od częstotliwości sygnału audio, przy okazji widać jak telefon ściąga audio i w jakim zakresie częstotliwości
Film pokazuje działanie przy mowie i przy teście stereo "kanał lewy, kanał prawy" - mam nadzieje, że durne YT nie stwierdzi, że jest to objęte prawami autorskimi
Załączniki:
Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.
Projekt fajniutki. Dokładnie to samo właśnie przygotowuję. Miało być na 3 takich układach z wykorzystaniem generatora 3 sygnałów Si5351. A Ty tu, że to fejki - no ładnie 3 sztuki w wersji DIP kupiłem hah. Zostaje projekt pierwotny czyli ESP32, jeden rdzeń na obróbkę danych (FFT) a drugi na sterowanie ledami i efekty, chociaż może jeszcze zakupię działające MSEGQ7, bo to upraszcza sprawę obróbki sygnałów - tylko tanie nie są (SMD).
Dołączył(a): 12 lut 2017 Posty: 24 Lokalizacja: Warszawa
Pomógł: 0
aqq001 napisał(a):
... chociaż może jeszcze zakupię działające MSEGQ7, bo to upraszcza sprawę obróbki sygnałów - tylko tanie nie są (SMD).
Co do ceny to jest około dwukrotna przebitka, DIPy na allegro chodzą w kompletach po dwa tyle co pojedynczy SMD, ja kupowałem u tego gościa od razu z podstawką i kompletem elementów https://allegro.pl/oferta/msgeq7-soic8- ... 0516042002
... chociaż może jeszcze zakupię działające MSEGQ7, bo to upraszcza sprawę obróbki sygnałów - tylko tanie nie są (SMD).
Co do ceny to jest około dwukrotna przebitka, DIPy na allegro chodzą w kompletach po dwa tyle co pojedynczy SMD, ja kupowałem u tego gościa od razu z podstawką i kompletem elementów https://allegro.pl/oferta/msgeq7-soic8- ... 0516042002
Dzięki. Sprawdzę. Ale sprawdzę też swoje DIPy. Pewnie jest jak napisałeś ale muszę się przekonać
Dołączył(a): 12 lut 2017 Posty: 24 Lokalizacja: Warszawa
Pomógł: 0
aqq001 napisał(a):
Dzięki. Sprawdzę. Ale sprawdzę też swoje DIPy. Pewnie jest jak napisałeś ale muszę się przekonać
No ja się przekonałem, jak już mi ruszyło w SMD to na 10 sztuk DIPa, wszystkie 10 wylądowało w koszu. Zresztą gość na YT też o tym opowiada
Pisałeś wcześniej, że chciałeś to połączyć generatorem na SI - domyślam się, że po to aby działały równolegle i uzyskać większą liczbę słupków z częstotliwościami - jeśli tak to tu mam dla Ciebie dwie informacje, po pierwsze jedyna biblioteka w C dla AVR jaką znalazłem do tego SI, a inny projekt robiłem z jego wykorzystaniem, działa dopiero od 1MHz, niższych częstotliwości nie potrafi generować jak się w opisie autora doczytałem z powodu skomplikowanych obliczeń (a biblioteka dla arduino potrafi, ale trzeba by ją przeportować na C), a po drugie, takie niewielkie przesunięcia między kilkoma MSGEQ7 realizuje się zmieniając generator RC na jego 8 wyprowadzeniu, cytując z internetu
Cytuj:
Aby zwiększyć liczbę zakresów należy zwielokrotnić liczbę układów i przesunąć środkową częstotliwość za pomocą układu RC (8 pin). Najprościej jest podwoić liczbę kanałów do 14. Wtedy na drugim układzie dobieramy kondensator 66pF (najlepiej 2x33pF równolegle) wtedy częstotliwości drugiego układu wynoszą ok 40, 100, 250, 630, 1.6K, 4k, 6.3kHz.
Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości
Nie możesz rozpoczynać nowych wątków Nie możesz odpowiadać w wątkach Nie możesz edytować swoich postów Nie możesz usuwać swoich postów Nie możesz dodawać załączników