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

Mini Theremin wykorzystujący czujnik odległości na podczerwień

jacu007 30 Wrz 2013 10:25 8412 1
  • Mini Theremin wykorzystujący czujnik odległości na podczerwień Pojęcie Theremin po raz pierwszy pojawiło się około 1920 roku, kiedy rosyjski wynalazca Lew Termen skonstruował swój instrument, którego dźwięki przypominają jęki, wycie, kobiecy głos czy nawet flet i skrzypce. Standardowy Theremin posiada dwie anteny jedną do regulacji tonów a drugą do wzmacniania głośności. Autor zapragnął zbudować podobne urządzenie w warunkach domowych. Zrezygnowano w nim z regulacji głośności i zamiast anteny wykorzystano odległościowy czujnik podczerwieni do zmiany tonów.

    Ponieważ czujniki IR wykrywający dystans pomiędzy Tereminem a najbliższym obiektem jest tani i dokładny, wydaje się być perfekcyjnym do tego rodzaju projektu.

    Głównym założeniem budowy było stworzenie prostego instrumentu potrafiącego wygrać podstawowe nuty z jednej oktawy np. od C4 do C5. Czujnik IR będzie wykrywał jak daleko znajduje się ręka od instrumentu i na tej podstawie w zależności od dystansu wygrywał odpowiednią nutę.

    Wewnętrzny przetwornik analogowo-cyfrowy mikrokontrolera PIC, który steruje Thereminem, będzie wykorzystany do przetwarzania danych wyjściowych z czujnika IR, które następnie będą przeliczane na konkretną odległość. Szybki timer mikrokontrolera, będzie wytwarzał falę prostokątną o określonej częstotliwości – określony dźwięk, nieprzerwanie tak długo jak jakiś obiekt będzie się znajdował w polu widzenia czujnika. Jeżeli czujnik nie wykryje żadnego obiektu, Theremin nie będzie wydawał dźwięku.

    Lista części

    Mikrokontroler PIC 18F452
    Czujnik Sharp 2Y0A21 albo GP2D12 IR
    Kondensator 100uF
    Rezystory 3x 300Ω
    Rezystor 10kΩ
    2x jasne diody LED
    Zielone LED
    Kwarc 20 MHz
    SPST Switch
    Złącze 9v baterii
    płytka prototypowa
    Przewody
    Klej epoksydowy
    Pickit 2

    Wszystkie powyższe części wystarczają do budowy Theremina.

    Mikrokontroler PIC 18F452

    Procesor w projekcie służy do przetwarza danych. Dane z czujnika mierzącego odległość są przetwarzane poprzez przetwornik analogowo-cyfrowy. Na ich podstawie obliczana jest odległość od instrumentu. Na tej podstawie na głośnik wysyłana jest fala prostokątna o określonej częstotliwości nuty.

    Czujnik Sharp 2Y0A21 lub GP2D120

    Popularny tani czujnik zbliżeniowy. Zasilany napięciem 5V, wystawia na wyjściu sygnał analogowy z przedziału od 3,5V do 0V, proporcjonalnie do odległości najbliższego obiektu.

    Kwarc 20MHz

    Szybszy zegar dałby prawdopodobnie bardziej wygładzone dźwięki, ale prawdopodobnie byłyby one bardziej nieznośne dla naszych uszu, ponieważ nie lubią one słuchać długotrwałych dźwięków o jednostajnym tonie.





    Jasne niebieskie i zielone diody LED

    Zielona dioda jest podłączona bezpośrednio do zasilania przez rezystor, więc służy jedynie temu, aby wskazywać czy włączone jest zasilanie. Dwie niebieskie diody umieszczone równolegle po obu stronach czujnika IR, wskazują przestrzeń, która jest wykorzystywana do gry.

    Pudełko z pleksiglasu

    Zastosowanie pleksiglasu, który jest tani i solidny do tego typu projektów, wynikło z mody, aby urządzenia elektroniczne były przeźroczyste i można było zobaczyć, co jest w środku.

    Głośnik

    Głośnik użyty w projekcie jest standardowym głośnikiem z pary słuchawek

    Druty i płytka prototypowa

    Projekt został stworzony na płytce prototypowej i tak już zostało, ale autor nie wyklucza, że później układ zostanie przeniesiony na płytkę drukowaną.

    Schemat elektryczny

    Schemat instrumentu jest cudownie prosty, gdyż urządzenia wejściowe i wyjściowe nie wymagają tu zbyt wielu połączeń. Jest to zazwyczaj podwójne błogosławieństwo, ponieważ mniej sprzętu oznacza mniej programowania. Główne elementy używane w projekcie to 18F452, 2Y0A21/GP2D120, czujnik odległości na podczerwień i głośnik słuchawkowy.
    Mini Theremin wykorzystujący czujnik odległości na podczerwień
    Obwód zasilania:

    Obwód zasilania to tylko baterie. W projekcie nie został zastosowany żaden stabilizator, ponieważ po połączeniu 4 baterii o napięciu 1,2 dostajemy 4 x 1,2 = 4,8 co jest zgodne ze specyfikacją zasilania czujnika podczerwieni jak i pozostałych elementów.

    Obwód czujnika odległości na podczerwień

    Czujnik odległości IR ma tylko trzy złącza: zasilanie, masę oraz wyjście podawane na pin nr 2 (RA0) mikrokontrolera PIC. Pin ten jest skonfigurowany jako wejście przetwornika analogowo-cyfrowego.

    Podłączenie głośnika

    Jeden z konektorów głośnika jest podłączony bezpośrednio do masy a drugi do pinu numer 19 mikrokontrolera PIC (RD0). Program wsadowy mikrokontrolera wysyła na ten pin falę prostokątną o określonej częstotliwości, aby wytworzyć odpowiednią nutę.

    Teoria

    Opis teorii został podzielony na dwie części. Pierwsza opisuje jak czujnik zbliżenia zbiera dane a następnie wysyła je do mikrokontrolera, który zamienia je w użyteczne dane.

    Jak już wspomniano wcześniej, czujnik IR posiada trzy złącza. Na jego wyjściu pojawia się konkretna wartość napięcia skorelowana z odległością czujnika od obiektu. Krzywa korelacji odległości do konkretnego napięcia znajduje się poniżej.
    Mini Theremin wykorzystujący czujnik odległości na podczerwień
    Aby umożliwić przyporządkowanie określonej nuty do określonej odległości konieczne jest stworzenie równia, opisującego krzywą czujnika. Autor podaje gotową formułę, która została stworzona poprzez aproksymację charakterystycznych punktów.
    Mini Theremin wykorzystujący czujnik odległości na podczerwień
    Formuła powyżej została określona dla 10-bitowego przetwornika analogowo-cyfrowego, w której wartość zawsze mieści się pomiędzy 600 a 50 co odpowiada wartości napięcia z przedziału od 3V do 0,4V.

    Zastosowanie powyższej formuły powinno z dość dobrym przybliżeniem opisywać wartości, które dochodzą z przetwornika.

    Przyjrzyjmy się teraz jak generować dźwięki muzyki. Poniżej przedstawiono określone częstotliwości, które odpowiadają poszczególnym nutom.

    Kolejno: Nuta; Częstotliwość (Hz); Długość fali (cm)
    C4; 261.63; 132
    D4; 293.66; 117
    E4; 329.63; 105
    F4; 349.23; 98.8
    G4; 392.00; 88.0
    A4; 440.00; 78.4
    B4; 493.88; 69.9
    C5; 523.25; 65.9

    Każda z powyższych częstotliwości będzie na stałe zapisana w pamięci i zostanie zagrana, gdy tylko odpowiedni dystans zostanie wykryty poprzez czujnik odległości. Pozostaje pytanie jak ustawić timer, aby można było grać takie tony? Sekwencja poniższego wzoru wskazuje jak obliczyć liczbę instrukcji w cyklu PIC, aby osiągnąć określoną częstotliwość.
    Mini Theremin wykorzystujący czujnik odległości na podczerwień
    Należy tu zacząć od częstotliwości taktowania mikrokontrolera, 20MHz, co tak naprawdę daje nam 5MHz, bo każda instrukcja maszynowa trwa w mikrokontrolerze PIC 4 cykle zegarowe. Spójrzmy teraz na częstotliwość tonu, który chcemy generować. W tym przypadku będzie to nuta C4, która posiada częstotliwość 261 63 Hz. Kiedy podzielimy 261 63 Hz przez 5MHz dostajemy liczbę instrukcji mikrokontrolera, które musza być wykonane w cyklu, aby wygenerować tę częstotliwość.

    Pamiętać należy, że przez połowę cyklu sygnał powinien mieć wartość równą 5V a przez drugą połowę 0V. Autor użył w timerze preskalera 1 do 2 co oznacza, że każdą instrukcję liczymy jako dwie. Tak więc wartość po poprzednim dzieleniu - 19 110 znów dzielimy na połowę. W taki sposób otrzymaliśmy wartość rejestru timera dla wygrania nuty C4. Problemem jest jednak to, że musimy stale zmieniać wartość sygnału pomiędzy 0V a +5V. Podzielimy więc wartość timera raz jeszcze, aby otrzymać finalną wartość 4777.

    Kiedy timer PIC wywoła przerwanie po odliczeniu do 4777, sygnał na wyjściu do głośnika powinien zmienić swoją polaryzację. Rozwiązanie to spowoduje powstanie czystego dźwięku bez zniekształceń.

    Projektowanie sprzętu

    Ze schematu wynika jak proste są połączenie pomiędzy poszczególnymi elementami, szczególnie na płytce prototypowej. Autor stwierdza, że warto się troszkę zabawić i stworzyć ładne funkcjonalne pudełko dla diod LED, czujnika odległości i głośnika.
    Ze standardowego arkusza pleksi wycinane są kwadraty, do złożenia pudełka. Powinno być ono otwierane, aby ułatwić późniejszy serwis. Z racji tego do drzwiczek i ścianki montujemy specjalny zawias. Wszystkie wycięte części jak i diody i czujnik klejone są klejem epoksydowym. Wszystkie części elektroniczne łączone są na płytce prototypowej, którą również wklejono do obudowy pleksiglasowej i połączono przewodami z resztą elementów.
    Mini Theremin wykorzystujący czujnik odległości na podczerwień
    Oprogramowanie mikrokontrolera PIC składa się z 3 części funkcjonalnych:

    • Przerwania od przetwornika A/C
    • Przerwania od timera
    • Głównej funkcji przełączającej

    Przerwanie od przetwornika A/C ma tutaj niższy priorytet od przerwania timera, ponieważ autorowi najbardziej zależało na czystości dźwięku.

    Priorytety przerwań
    Mini Theremin wykorzystujący czujnik odległości na podczerwień
    Kod powyżej powinien być bardzo prosty, aby nie obciążać zbytnio procesora.
    Mini Theremin wykorzystujący czujnik odległości na podczerwień
    Głowna funkcja inicjuje pracę przetwornika A/C a następnie oblicza aktualną odległość odległości i przekazuje ją do instrukcji switch. W zależności od tego, jaka wartość znajduje się w timer0_val, zależy jaka częstotliwość będzie wystawiona na wyjście. Proces ten, odbywa się ciągle aż wyczerpie się bateria.

    Oprogramowanie gotowe, urządzenie skręcone, można, więc przystąpić do testów. Zamieszczony filmik pokazuje jak zbudowane jest urządzenie oraz kilka przykładów, czego można się spodziewać po urządzeniu.


    Link


    Nie jest to światowy poziom dźwięku, ale samo urządzenie z pewnością pracuje poprawnie wygrywając właściwe nuty dla określonych odległości. Jedna oktawa to bardzo ograniczony zakres, ale to dopiero początek.

    Autor ma wiele pomysłów jak rozbudować urządzenie. Można zbudować całą fortepianową klawiaturę i grać na Thereminie jak na fortepianie. Innym pomysłem są dwa czujniki zbliżeniowe, jeden kontrolujący sopran a drugi bas jak w akordeonie. Autor ma również kilka pomysłów jak polepszyć jakość dźwięku i kontrolować głośność i z pewnością powróci do tego projektu.

    Źródło:
    http://www.pyroelectro.com/projects/mini_ir_theremin/index.html


    Fajne!