Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Niebanalny włącznik akustyczny

16 Sty 2014 01:44 3120 8
  • Poziom 21  
    Witam !

    Robię włącznik akustyczny, oto jego POGLĄDOWY schemat blokowy :

    Niebanalny włącznik akustyczny

    Główne funkcje włącznika :
     włączanie i wyłączanie podwójnym klaśnięciem ( mikrokontroler musi najpierw rozpoznać , że to napewno było klaśnięcie )
     włączanie, wyłączanie i ściemnianie światła dotknięciem. ( wykrywanie dotyku na tej zasadzie : http://tuomasnylund.fi/drupal6/content/capacitive-touch-sensing-avr-and-single-adc-pin )
     włączanie, wyłączanie i ściemnianie światła pilotem.

    Jak działają tradycyjne włączniki ?

    W większości znalezionych przezemnie układów na internecie zasada działania była prosta , wzmacniacz na jednym tranzystorze ewentualnie na OPAMP-ie do tego prosciutki filtr RC , wykrywanie klaśnięcia polegało na tym, że wzmacniacz wzmacniał sygnał z mikrofonu podczas klaśnięcia do poziomu napięcia logicznej 1-ki. Wadą takiego rozwiązania jest to , że każdy inny sygnał ( wystarczająco głośny ) potrafi włączyć nasz włącznik.

    Pewnym rozwiązaniem wydaje się być wykorzystanie podwójnego klaśnięcia do włączania np 2 klaśnięcia w odstępie 0.5 sekundy , niestety mikrokontroler nadal "nie wie" czy to napewno było klaśnięcie.

    Jak będzie działać mój włącznik ?
    Chciałbym użyć przetwornika ADC, próbkować sygnał z mikrofonu i wykorzystać jakieś algorytmy do rozpoznawania klaśnięcia. Niestety nie wiem jak się za to zabrać i od czego zacząć.

    Proszę o wskazówki.
  • Moderator Projektowanie
    ^Rachel napisał:
    próbkować sygnał z mikrofonu i wykorzystać jakieś algorytmy do rozpoznawania klaśnięcia


    ...to się nazywa DSP i w kontekście "Niestety nie wiem jak się za to zabrać i od czego zacząć. " nie będzie to takie proste ;-)
    Są procesory, które mają zaszyte mechanizmy analizy sygnału, myślę, że na początek poguglaj na hasło "DSP".
  • Pomocny post
    Poziom 43  
    Widziałem gdzieś taki projekt, chyba na elektrodzie w DIY, autorowi udało się zrobić jakąś prostą analizę sygnału, nawet na jakimś marnym procesorze.

    Jak to zrobić? najpierw trzeba by określić co jest charakterystyczne dla sygnału klaśnięcia, a nie występuje np gdy spadnie jakiś przedmiot ze stołu.

    DSP ma wiele metod analizy sygnałów na początek wspomnę o jednej, często się zdarza że sygnał trudny do rozpoznania w dziedzinie czasu, a jest rozpoznawalny w dziedzinie częstotliwości, wtedy używa się DFT (FFT). Możesz zacząć od oglądania przebiegów czasowych i ich widm na PC może zauważysz jakieś charakterystyczne cechy, porównaj też z przebiegami zakłócającymi.

    Niestety prawie wszystkie metody DSP mają jedna wspólną wadę, wymagają sporej mocy obliczeniowej szczególnie jeśli mają działać w czasie rzeczywistym, nawet prosty filtr cyfrowy IIR wymaga wielu mnożeń na każdą próbkę sygnału, a jeśli dobrze pamiętam procesory ATTINY nie maja sprzętowego układu mnożenia więc raczej nic sensownego się na nich nie zrobi.
  • Poziom 21  
    Wiem co to jest DSP i znam je od strony teoretycznej ( miałem ten kurs na studiach ), niestety nic nie mieliśmy o procesorach DSP !!!

    Zrezygnowałem z DSP w moim klaskaczu , przynajmniej w pierwszej wersji ( od czegoś trzeba zacząć ).

    Ale do rzeczy, tak mniej więcej wygląda schemat mojego klaskacza :
    Niebanalny włącznik akustyczny

    Zastanawia mnie najbardziej jedna rzecz.

    Dlaczego stosuje się dodatkowy element optoelektroniczny który będzie wykrywać 0 w fazie ? Tak jak tutaj :
    Niebanalny włącznik akustyczny

    Nie łatwiej i taniej jest po prostu wziąć to napięcie prosto z mostka tak jak u mnie i dać jakiś tranzystor do przełączania ?
  • Pomocny post
    Poziom 43  
    Cytat:
    Nie łatwiej i taniej jest po prostu wziąć to napięcie prosto z mostka tak jak u mnie i dać jakiś tranzystor do przełączania ?
    Transformator małej mocy może wprowadzać przesunięcie fazy, ale będzie ono stałe więc to nie problem skompensować.
    Do twojego układu z tranzystorem dodaj rezystor od drugiego wyprowadzenia transformatora do bazy, będziesz miał detektor zera, a nie całej dodatniej połówki, choć oczywiście można sobie poradzić programowo.
  • Poziom 21  
    Teraz utknąłem w pewnym punkcie , jak zrobić liniowe sterowanie jasnością oświetlenia.
    Czy liniowe sterowanie mocy żarówki (tzn przy podkrecaniu o 1 jasności przyrost mocy będzie taki sam będzie zmieniać się liniowo, nieliniowo zmieniać się będzie czas wyłącznia triaka ) będzie dawało efekt liniowego sterowania światłością żarówki ?


    Pozdrawiam
  • Pomocny post
    Poziom 43  
    Zależność napięcia skutecznego od kąta włączenia:
    Link
    A zależności światłości żarówki od napięcia sobie sam poszukaj, jest bardzo nieliniowa.
    Później zostanie tylko charakterystyka oka, złożyć do kupy i to wszystko.
  • Poziom 20  
    Podziel półokres na 10 odcinków i po wykryciu 0 najlepiej przez przerwanie odmierzaj kolejne odciniki, dla 10% mocy do 9 ms jest przerwa i w 9ms włączasz triak.
  • Poziom 21  
    jarek_lnx napisał:
    Transformator małej mocy może wprowadzać przesunięcie fazy, ale będzie ono stałe więc to nie problem skompensować.


    Dodatnie czy ujemne ?

    jarek_lnx napisał:

    Do twojego układu z tranzystorem dodaj rezystor od drugiego wyprowadzenia transformatora do bazy, będziesz miał detektor zera, a nie całej dodatniej połówki, choć oczywiście można sobie poradzić programowo.


    Zrobiłem tak, pomysł okazał się świetny, ale nadal nie potrafię ogarnąć jak mam to rozwiązać. Oto wykresy z oscyloskopu :
    CH1 - ZERO (sygnał który przychodzi na pin uC)
    CH2 - ZERO_AMP (sygnał z mostka , wyprostowany sinus jednopołówkowo)
    Niebanalny włącznik akustyczny

    Teraz zastanawiam się jak ustawić w uC przerwanie INT0 i Timer1, muszę wziąć także pod uwagę opóźnienie które wprowadza transformator oraz sam układ wykrywający 0.

    Wykrywając zbocze narastające i wtedy uruchamiając Timer1
    niejako gubię część sinusa ta opcja napewno więc odpada.

    Wykrywając zbocze opadające mogę wtedy przed właściwym (tj od zera sieci do żądanego czasu odcięcia triaka) odmierzaniem czasu skorygować właśnie te opóźnienie i odpalić Timer1 w 0 sieci , lecz wtedy przychodzi kolejne przerwanie (już do następnego pół okresu) niestety Timer1 będzie zajęty i nie będzie mógł odmierzyć czasu dla następnego półokresu.

    Timer0 jest zajęty, używany jest do obsługi dotyku.

    Nie potrafię ułożyć sobie tego w głowie, proszę o pomoc.