Spisu treści:

Synestezja Player Piano: 4 kroki
Synestezja Player Piano: 4 kroki

Wideo: Synestezja Player Piano: 4 kroki

Wideo: Synestezja Player Piano: 4 kroki
Wideo: "Синестезия" 4. Георгий Фёдоров - 'Слова' 2024, Lipiec
Anonim
Image
Image
Synestezja Pianino
Synestezja Pianino
Synestezja Pianino
Synestezja Pianino

Ten pianino odtwarza muzykę za pomocą koła kolorów i aparatu! Obrazy są rejestrowane przez aparat, przetwarzane i interpretowane jako nuty. W tej chwili jest zaprogramowany do odtwarzania rymowanek, które można zmienić, przesyłając nowy szkic arduino, który określa, które nuty mają być odtwarzane (jakie kolory powinny być wyświetlane w kamerze).

Wbudowany komputer z systemem Linux uruchamia podczas uruchamiania usługę, która robi zdjęcie za pomocą kamery, oblicza funkcję wartości RGB w obrazie i generuje dźwięk na podstawie wartości zwracanej przez funkcję. Przed odtworzeniem dźwięku wysyła sygnał nakazujący Arduino, aby obrócił serwo, prezentując kolor odpowiadający następnej nucie do zagrania. Następnie pętla zaczyna się od nowa, robione jest zdjęcie, obraca się koło kolorów i odtwarzany jest dźwięk w nieskończoność.

Ten projekt to fajny sposób na zintegrowanie muzyki, programowanie nowoczesnych systemów Linux, programowanie mikrokontrolerów, doodling inkscape, cięcie laserowe i zmianę przeznaczenia niektórych śmieciowych pudełek.

Cały kod i pliki SVG Inkscape są dostępne na github pod adresem:

github.com/melvyniandrag/pyMuzyka

Użyte materiały:

  1. Puste białe etykiety
  2. Pudełko kartonowe
  3. Kamerka internetowa
  4. Kredki
  5. Arduino
  6. Beagleboard-xM
  7. Przewody
  8. Kabel szeregowy
  9. Podstawowa wiedza z zakresu przetwarzania obrazu i muzyki

Krok 1: Rzeczy komputerowe

Komputerowe rzeczy
Komputerowe rzeczy
Komputerowe rzeczy
Komputerowe rzeczy
Komputerowe rzeczy
Komputerowe rzeczy

Na pokładzie będziesz potrzebować małego komputera z systemem Linux, takiego jak Raspberry Pi. Użyłem starego BeagleBoard-xM, ponieważ zdarzyło mi się go leżeć i miałem już system operacyjny na karcie SD. Możesz użyć wszystkiego, o ile obsługuje kamerę internetową, może uruchomić OpenCV (bibliotekę obrazów komputerowych używaną do robienia i przetwarzania obrazów koła kolorów) i ma gniazdo wyjścia audio.

Skonfigurowałem system operacyjny do uruchamiania kodu Pythona, który przechwytuje obrazy podczas uruchamiania, postępując zgodnie z samouczkiem systemd. Aby skrypt mógł się uruchomić, musisz wykonać sudo apt-get install python-pyaudio python-opencv, aby uzyskać wskazane biblioteki. Będziesz także musiał zainstalować pip install numpy pyserial, aby uzyskać te biblioteki. pyaudio służy do odtwarzania dźwięków, opencv służy do robienia i przetwarzania obrazu, numpy służy również do przetwarzania obrazu, a pyserial jest potrzebny do komunikacji z Arduino.

Arduino służy do obracania serwomotoru, na którym zamontowane jest koło kolorów. Gdybyś miał Raspberry Pi, mógłbyś użyć tam pinów GPIO i pominąć Arduino, ale musiałbyś zmodyfikować kod Pythona.

Na zdjęciach widać technologiczne wnętrzności operacji i kilka fragmentów kodu.

Krok 2: Fortepian

Pianino
Pianino
Pianino
Pianino
Pianino
Pianino

Zrobiłem fortepian z tektury ze starych pudełek, które miałem. Mam szczęście mieszkać w pobliżu pracowni, w której znajduje się wycinarka laserowa. Przez cały rok zastanawiałem się, do czego, u licha, potrzebna byłaby wycinarka laserowa i okazuje się, że w końcu znalazłem dla niej zastosowanie.

Zmierzyłem komputer, arduino i serwo, więc wiedziałem, ile miejsca potrzebuję, narysowałem części fortepianu w inkscape i wyciąłem je na wycinarce laserowej. (Edycja: zabrakło mi tektury, aby obudowa mieściła komputer i arduino, więc nie włożyłem ich. Są na zewnątrz obudowy. Nie ma znaczenia, mogłem skądś dostać kolejne pudełko, ale tak się stało w końcu nie ma znaczenia.)

Kawałki zostały połączone żywicą epoksydową.

Krok 3: Montaż

montaż
montaż
montaż
montaż
montaż
montaż

Oto kilka obrazów montowania i kolorowania fortepianu. W drukarce skończył się atrament, więc nie mogłem wydrukować kolorów na białych etykietach, tak jak planowałem. Więc użyłem kredek mojej córki. I nie mogłem znaleźć noża xacto do przycięcia etykiety do kształtu kartonu, więc po prostu użyłem noża do steków i położyłem coś ochronnego na blacie kuchennym. Wykorzystaj to, co masz!

Krok 4: Wyzwania techniczne i rozważania na przyszłość

Wyzwania techniczne i rozważania na przyszłość
Wyzwania techniczne i rozważania na przyszłość
Wyzwania techniczne i rozważania na przyszłość
Wyzwania techniczne i rozważania na przyszłość

Trudną częścią tego projektu było uzyskanie prawidłowych wartości RGB do odczytania przez kamerę. Kamerka, którą mam, ma niesamowicie jasne diody LED, których nie wiem, jak wyłączyć w Linuksie. Myślę, że istnieje sterownik Windows, który pozwala je włączać i wyłączać. Eksperymentowałem z oklejaniem diod LED taśmą elektryczną i pozostawieniem ich włączonych. Przetestowałem również oprogramowanie pod kątem odporności, nie tylko pokazując kolorowy papier, ale także pisząc małą stronę internetową, która pokazuje kolory.

Dźwięki wytwarzane przez komputer czasami mają trzaski i trzaski, a to wynika z faktu, że mam bardzo małe doświadczenie w programowaniu audio w Linuksie. Biblioteka pyaudio wyrzuca całą masę skarg na to, że JACK nie jest instalowany na komputerze, ale domyślnie JACK nie chce działać bez głowy (bez pulpitu gui i monitora). Jest to zadanie programistyczne, które uważałem za udoskonalenie, ale nie było konieczne, aby wyrazić istotę fortepianu, o którym myślałem.

Rozważałem użycie ręcznej korby do zmiany kolorów i być może umieszczenia ich na wałku do ciasta, ale to wprowadza własne komplikacje. Serwo jest trochę głośne, ale na razie działa dobrze.

Pianino gracza jest obecnie zaprogramowane tylko do grania 4 nut. Dzieje się tak dlatego, że serwo porusza się tylko o 180 stopni, większość rymowanek można odtwarzać tylko 3-4 nutami, a nie chciałem, aby koło kolorów było zaśmiecone regionami kolorów, co może dezorientować aparat. Tak więc dzięki połączeniu muzycznego szczęścia i ograniczeń technicznych, 4 nuty są w porządku.

Zalecana: