Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 25 cze 2025, o 06:12


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 24 maja 2025, o 21:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1978
Lokalizacja: Lipsko
Pomógł: 125

Dawno nic tu nie wstawiałem, więc może od razu do rzeczy :) Jest to już mój kolejny metronom i chyba wreszcie ostatni DIY. Poprzednie były raczej pchełkami z jedyną opcją taptempo bez możliwości dokładnego ustawienia BPM - pierwszy z latającą linijką, drugi dość mały, przeciętne migadełko. Praktyka jednak i potrzeba (z racji powrotu do grania w zespole) spowodowała, że potrzeba było czegoś co wskazuje, ale też tapuje i przede wszystkim zapamiętuje programy co podczas koncertowania jest po prostu niezbędne - wcześniej ustawiona lista i po każdym kawałku +1 - mega wygodne! Zawsze też chciałem mieć opcję gadającą co bardzo ułatwia odnalezienie się w połamanych rytmach, a poza tym bardzo mi przypadła do gustu podczas treningu kiedy pierwszy raz się z takim czymś spotkałem. Niestety cena tego gadającego i oczywiście też z pamięcią oscylowała w okolicach 1000zł. Mój kosztował mnie kilka wieczorów i jakąś drobnicę elementów. No właśnie elementy...

Urządzenie jest na Atmega328P co zresztą widać na załączonym schemacie. Próbkowanie dźwięku obecnie 8bit 10kHz. Wcześniej 4-bit, ale prace tuningowe zakończone i zostało sporo miejsca to zatankowałem pod korek 99.2% pamięci procka. Na 4 bitach też w sumie dawało radę, jednak teraz wyraźnie mniej szumi no i czyściej gada.

Płytki PCB i klawiatury (zostało mi tego od groma) pochodzi z innego starego projektu, który wykorzystywał ten sam wyświetlacz i procesor. Adaptacja może nie jest do końca estetyczna, (kilka nalutowanych elementów i przyłącza w dziwnych miejscach), jednak docelowo spełnia doskonale zadanie - wszystko trzyma się kupy, a na handel to przecież nie idzie :)
Wzmacniacz m.cz. jest na TDA7050 - mały zgrabny układ wprost do takich zastosowań (minimalna liczba elementów, niskie napięcie zasilania). Ma lekkie szumy, ale w praktyce nie przeszkadzają.

Tapadełko to zwykłe piezo przyklejone od spodu obudowy i zadziwiająco selektywnie zbiera stuki dokładnie z miejsca gdzie się znajduje. Na stukanie obok nie reaguje.
Do płynnego zadawania tempa BPM wykorzystałem świetny enkoder optyczny Copal RMS20-250-201-1T. Posiada 250 pełnych impulsów/obrót z czego można zrobić 1000 czytając tylko pojedyncze zmiany. Tu zostałem przy 250 i podzieliłem w programie przez 3 aby mieć wygodną zmianę BPM w najczęściej wykorzystywanym zakresie. Sam algorytm uśredniania uderzeń bazuje na tzw. średniej ciągnionej (czy jakoś tak) i póki co jest to najfajniejsze tapadełko jakie zrobiłem i bije na głowę rozwiązania z tanich metronomów pod względem zadawania i rozpoznawania tempa (porównywałem).

Zasilanie jest z dwóch 18650 spiętych równolegle i ładowanych z USB-C. Ładowarka to moduł zintegrowany z regulowaną przetwornicą ustawioną na 5V. W module przeciąłem ścieżkę zasilania przetwornicy, bo prąd spoczynkowy był zbyt duży i w to miejsce wstawiłem włącznik.
Stan akumulatorów pokazany jest procentowo podczas uruchomienia metronomu w prawym dolnym rogu. Napięcie >=4.1 to 100%, <=2.9 to0%, a gdy podczas użytkowania spadnie poniżej 3.1V na ekranie głównym w miejscu podziału rytmicznego wyświetla się cyklicznie migając Batt!
(Przy rezystorze 2.2k na schemacie zabrakło równolegle kondka 0.1u)

Wyjście słuchawkowe odłącza głośnik w momencie wpięcia czegoś w gniazdko. Pin masy od gniazda jest połączony z masą przez rezystor 100om, bo było po prostu strasznie głośno w słuchawkach (zaczynały charczeć) i obawiałem się, że mogły by się spalić.
Obudowa to standard z uniwersalnych, (też akurat miałem w domu). Naklejki na razie nie robię i nie wiem czy w ogóle zrobię, bo to co mam mi wystarczy (też fragment z innego projektu :) ), a może jeszcze coś będę zmieniał - czas pokaże.

Postanowiłem udostępnić projekt dla zainteresowanych i oprócz schematu jest też wsad do Atmega328. Fuse 7f, d9, fd.
Na filmie jest wersja V4 - to pomyłka, którą zauważyłem nagrywając film. Udostępniony plik ma prawidłową najnowszą wersję czyli V3.1 :)

NIE ZEZWALAM NA KOMERCYJNE WYKORZYSTANIE PROJEKTU

Jak każdy mój udostępniony program wbudowane jest zabezpieczenie, które wskazuje autora (oczywiście oprócz tego co się wyświetla na ekranie) i nawet po podmianie danych w hex można sprawdzić kto jest prawdziwym autorem programu.

I teraz na końcu odpowiedź na pytanie, które na pewno wielu chciałoby zadać już na samym początku :)
"Po co robić metronom jak jest dziesiątki apek na telefon ?"
Odpowiedź:
"Jeśli nie grasz na perkusji i nie koncertujesz to nawet nie próbuję Cię przekonywać do solidnego hardware stojącego obok. Grający wie, że to niezbędne :)"

ObrazekObrazekObrazekObrazek
Obrazek
ObrazekObrazek

Na filmie jeszcze wersja 4bitowa i bez dodatkowego brzmienia klikadełka.


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 maja 2025, o 17:29 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3229
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

No, no, kawał solidnej roboty :)

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 maja 2025, o 20:56 
Offline
Użytkownik

Dołączył(a): 09 lip 2019
Posty: 121
Pomógł: 12

Świetna robota! Widać, że rozwiązanie jest naprawdę praktyczne i zostało dopracowane w oparciu o rzeczywiste potrzeby. Szczególnie podoba mi się połączenie wielu funkcji — zapamiętywanie programów, tap tempo, a nawet wersja gadająca! Wygląda przemyślanie i profesjonalnie.

Zaciekawiło mnie też użycie piezoelektryka jako tapadełka. Chyba nie spotkałem się z takim rozwiązaniem - czy mógłbyś powiedzieć coś więcej na ten temat?
Dobrze rozumiem, że używasz ADC w MCU do złapania sygnału o tapnięciu?
Jesteś w stanie podrzucić jakiś obrazek jak wygląda przebieg napięcia z piezo na oscyloskopie w tym układzie?

Pozdrowienia,
Krzysiek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 maja 2025, o 03:17 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27412
Lokalizacja: Szczecin
Pomógł: 1043

Ja pierdziu! SZACUN! - jak ja uwielbiam patrzeć na twoje projekty DIY - zawsze są MEGA MEGA INSPIRACJĄ - gratulacje!

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 maja 2025, o 05:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1978
Lokalizacja: Lipsko
Pomógł: 125

Dzięki panowie za dobre słowo :)

@moscow, po pracy postaram się coś w wolnej chwili więcej napisać o piezo.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 maja 2025, o 17:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1978
Lokalizacja: Lipsko
Pomógł: 125

Ogólnie przebieg z piezo to szpilka i jej późniejsze odbicie (czyli powrót odkształconego piezo do pozycji neutralnej. W zależności od podłączenia szpilka jest ujemna lub dodania. Należy pamiętać,m że z takiego krążka można i 50V uzyskać co w najlepszym przypadku resetuje procka, w gorszym ubija port. Na szczęście miałem tylko resety jak mi się nie chciało podczas prototypowania diody zenera wstawić, bo "bede przecież lekko stukał", jednak po drugim resecie już nie ryzykowałem :) Istotne jest jak czytamy port i w zależności od tego w odpowiednim kierunku podłączamy piezo. W moim projekcie czytam wzrost napięcia stąd rezystor ściągający (obowiązkowo) i jednocześnie regulujący czułość do masy jest podłączony równolegle z zenerką. Po odczycie port jest blokowany na około 50ms aby tylko pierwszy stan złapać i nie zbierać powrotów odkształcenia (czasem jest to kilka las szpilek - foto2).
Uzyskanie stanu wysokiego z piezo nie stanowi problemu (wspomniane okolice 50V) dlatego z adc zrezygnowałem i tylko stan baterii jest kontrolowany analogowo.
Poniżej przykładowy przebieg po stukaniu paluchem bezpośrednio w piezo.

Obrazek

Obrazek

Gdyby w ten sposób podłączyć piezo to najkorzystniej czytać go będzie podobnie jak przyciski z podciągniętego pinu tylko bez oczekiwania na stabilizację (z oczywistych względów). Zererka zaporowo między masą a pinem obowiązkowa zawsze!!! U mnie w metronomie jest akurat odwrotnie podłączony piezo czyli oczekuję stanu wysokiego :) Jeśli czas kliku nie jest jakiś krytyczny to jakby nie był podłączony czujnik i tak będzie odczytany, tyle, że 20-40ms później (odczyt nastąpi z powrotu odkształcenia w zależności od typu przetwornika i powierzchni do której jest przyklejony).

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 maja 2025, o 20:51 
Offline
Użytkownik

Dołączył(a): 09 lip 2019
Posty: 121
Pomógł: 12

Dzięki @SylwekK za obszerne wyjaśnienia. Tak myślałem, że nie musi to być oczywiste w implementacji. Bardzo fajne rozwiązania zastosowałeś. Jeśli dobrze rozumiem to oprócz "ścięcia" potencjału powyżej 4.7V, zener też ładnie wycina odbicia w kierunku potencjału poniżej zera (w tym przypadku działając w kierunku przewodzenia).
I jeśli dobrze rozumiem, wykorzystałeś przerwanie PCINT8? Bo w "poolingu" to niektóre tapnięcia przy tak krótkim impulsie mogłyby być chyba nierozpoznane (jeśli procek akurat w tym czasie byłby zajęty czymś innym)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 maja 2025, o 21:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1978
Lokalizacja: Lipsko
Pomógł: 125

Ależ nie, żadnych przerwań zewnętrznych :)
Jest tylko CTC na 10kHz co daje próbkowanie co 100us więc co najmniej kilka razy impuls byłby wykryty dlatego jest flaga blokująca, o której wspomniałem wcześniej.
W przerwaniach tych odgrywają się też próbki dźwiękowe i czytany enkoder. W sumie to wszystko zajmuje coś około 7% czasu w pojedynczym przerwaniu i prawdę mówiąc to żadne obciążenie dla procka. Wszelkie obliczenia 16 i 32 bitowe liczone są w pętli głównej, która też zapierdziela mimo użycia typowego wyświetlacza, bo jego obsługa jest buforowa i cykliczna - w skrócie żeby wyświetlić obraz 16x2 pętla musi się przeturlać około 40 razy. Przez co blokowana jest jednorazowo na około 40us, a nie jak w typowej obsłudze 1.5-2ms (o ile dobrze pamiętam). Warunkiem takiego użycia LCD jest w pełni nieblokująca struktura programu.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO