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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 10 lip 2025, o 17:13


    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: 27415
    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 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

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