Spisu treści:

Muzyczny interfejs cyfrowy: 6 kroków (ze zdjęciami)
Muzyczny interfejs cyfrowy: 6 kroków (ze zdjęciami)

Wideo: Muzyczny interfejs cyfrowy: 6 kroków (ze zdjęciami)

Wideo: Muzyczny interfejs cyfrowy: 6 kroków (ze zdjęciami)
Wideo: 6 OPCJI które MUSISZ Zmienić w swoim Androidzie! Poradnik 2023 2024, Lipiec
Anonim
Muzyczny interfejs cyfrowy
Muzyczny interfejs cyfrowy

Witam wszystkich, Chciałbym pokazać wam mój własny muzyczny interfejs cyfrowy. Zrobiłem to podczas mojego dyplomu technicznego, to są moje prace badawcze. Na początek zapytałem mnie, jak mogę komponować muzykę bez DAW, z materiałami z recyklingu i możliwością samodzielnego grania.

W tej instrukcji nauczę Cię, jak używać komunikacji szeregowej do wysyłania/odbierania informacji z czujników (analogowych i cyfrowych) z Arduino do Raspberry pi w kierunku oprogramowania puredata do wyzwalania dźwięku.

Wymagane materiały to:

x1 malina PI3

x1 Zabezpieczenie PI3

1x karta microSD (32G)

x1 Arduino UNO

x1 czujnik podczerwieni Sharp GP2Y0E02B

x1 tabliczka chlebowa

x1 Płytowy miernik testowy (0,2)

x28 Rezystancja 10MΩ

x2 Rezystancja 1,8kΩ

x1 Rezystancja 10kΩ

x20 Końcówki zaciskowe męskie/żeńskie

x1 lutownica

x1 zwój cyny (1 metr)

x1 lutownica

x25 Elastyczne paski męskie/męskie

Krok 1: Czujniki

Czujniki
Czujniki
Czujniki
Czujniki
Czujniki
Czujniki

Użyłem 4 piezoelektrycznych pilota "Guitar Hero" Harmonix XBOX 360. Użyłem przycisku włącz/wyłącz, ponieważ kontaktron magnetyczny pedału gitarowego zaciął się.

Użyłem czujnika podczerwieni Sharp GP2Y0E02B. Do wszystkich tych czujników wykonałem montaż pull-up do efektywnego działania…

Tak więc empirycznie znalazłem wartość rezystancji czujnika przycisku i czujnika IR. Jednak przetestowałem piezoelektryk, aby poznać pełną skalę tego i ustaloną wartość rezystancji wymaganą i zastosowaną dla 4 czujników analogowych.

Krok 2: Montaż podciągany

Montaż podciągany
Montaż podciągany
Montaż podciągany
Montaż podciągany
Montaż podciągany
Montaż podciągany
Montaż podciągany
Montaż podciągany

Po przetestowaniu piezoelektryka z generatorem napięcia ustaliłem wartość rezystancji na 7MΩ.

Podciąganie zespołu rezystancji przycisku wynosiło 10 kΩ.

Do czujnika podczerwieni użyłem dwóch rezystancji 1,8kΩ pomiędzy odpowiednio napięciem zasilania a SDA (dane) i SCL (zegar).

Bądź ostrożny, ponieważ te wartości rezystancji dotyczą RTX Arduino UNO; co warto wiedzieć o wejściu impedancji Arduino: 10MΩ.

Możesz zobaczyć montaż podciągający na ostatnim zdjęciu tego kroku; Naprawiłem paski piezoelektryczne w 0 1 2 3 pinach na UNO, pasek przycisku na 2 pinach cyfrowych, ale przekazuję wartość na 6 pinach na UNO i pasku czujnika IR w 4 5 pinach na UNO, wszystkie wejścia analogowe Arduino Uno.

Krok 3: Kod Arduino

Aby upewnić się, że operacja była skuteczna, przetestowałem wysyłanie/odbieranie informacji z czujników do Arduino.

Umieściłem pliki w opisie, ale można je znaleźć w przykładowym dziale programowania Arduino Genuino, poza czujnikiem podczerwieni, ponieważ nie jest kompletny, zmieniłem kilka informacji w sekcji "definiuj" jak "przesunięcie" i zmieniłem obliczanie pomiaru na regularne w różnych odległościach. Prawdopodobnie widziałeś "Wire" w kodzie czujnika podczerwieni. Rzeczywiście, do komunikacji używałem protokołu I2C. Zapraszam do obejrzenia protokołu I2C, bardzo interesującego, możesz go użyć do przesyłania w czasie rzeczywistym wszystkich czujników cyfrowych, które chcesz.

Krok 4: Komunikacja szeregowa Arduino Raspberry

Komunikacja szeregowa Arduino Raspberry
Komunikacja szeregowa Arduino Raspberry
Komunikacja szeregowa Arduino Raspberry
Komunikacja szeregowa Arduino Raspberry

Tak: D

Jak widać na pierwszym zdjęciu, łącze Arduino-Raspberry to wtyczka USB.

Znalazłem sposób na otrzymywanie informacji z czujników bezpośrednio przez PureData Extented, który jest zainstalowany w Raspberry PI. Dlaczego PureData jest rozszerzony? Ponieważ wersja Vanilla nie używa tej samej biblioteki, co aplikacja w środowisku Raspbian.

Uruchom więc StandardFirmata w Arduino Genuino, aby naprawić we/wy i zmiany wartości we właściwy sposób!

Aby odzyskać informacje o wartościach w Raspberry PI, istnieją 2 protokoły: Firmata i Msg.

Wybrałem Firmatę z jednego powodu, łatwiej było uzyskać informacje w PureData poprzez patch Pduino, jedno środowisko.

Zapraszam do odkrycia Msg, jeśli używasz protokołu OSC.

Krok 5: Otrzymano poprawkę PureData

Otrzymano poprawkę PureData
Otrzymano poprawkę PureData

Rzeczywiście, po tygodniach kodowania na Genuino udało mi się otrzymać wszystkie informacje z mojego czujnika na jednej stronie, co pozwoliło zobaczyć zmiany w czasie rzeczywistym dzięki Pduino, łatce w Puredata, dodatkowym bibliotekom sekcji.

Od tego kroku nie dotykamy już kodu Arduino. Informacje o wartości są czytelne.

Jak zauważyłem w kroku 3, otrzymałem informacje z przycisku cyfrowego w 6 pin analogowy, łatwo było zobaczyć efektywną pracę komunikacji. Wszystko w jednej linii.

Krok 6: Rozwój PureData

Rozwój PureData
Rozwój PureData
Rozwój PureData
Rozwój PureData
Rozwój PureData
Rozwój PureData
Rozwój PureData
Rozwój PureData

PureData to specyficzny język i musisz poświęcić swój wolny czas, aby odnieść sukces, robiąc fajny patchwork.

Część poprawek PureData będzie dostępna w serwisie GitHub.

Mam nadzieję, że to, co tu napisałem, pomogło Ci rozpocząć własny projekt bliski mojemu.

Zalecana: