Inhaltsverzeichnis:

Musikalische digitale Schnittstelle - Gunook
Musikalische digitale Schnittstelle - Gunook

Video: Musikalische digitale Schnittstelle - Gunook

Video: Musikalische digitale Schnittstelle - Gunook
Video: Digitale Audio-Schnittstellen: von USB bis ADAT - Workshop/Tutorial (The Soundphile) 2024, November
Anonim
Musikalische digitale Schnittstelle
Musikalische digitale Schnittstelle

Willkommen alle, Ich möchte Ihnen mein eigenes Musical Digital Interface zeigen. Ich habe es während meines technischen Sound-Studiums geschafft, das sind meine Forschungsarbeiten. Zu Beginn fragte ich mich, wie ich Musik ohne DAW komponieren kann, mit recyceltem Material und der Möglichkeit, eigenständig zu spielen.

In diesem anweisbaren werde ich Ihnen beibringen, wie Sie die serielle Kommunikation verwenden, um Sensoren (analog und digital) Informationen von Arduino zu Raspberry Pi in Richtung Software Puredata zum Auslösen eines Tons zu senden / zu empfangen.

Benötigte Materialien sind:

x1 Himbeer PI3

x1 Boîter de Schutz PI3

x1 Micro-SD (32G)

x1 Arduino UNO

x1 Sensor IR Sharp GP2Y0E02B

x1 Brotbord

x1 Plattenprüflehre (0,2)

x28 Widerstand 10MΩ

x2 Widerstand 1,8kΩ

x1 Widerstand 10kΩ

x20 Anschlussfahnen männlich/weiblich

x1 Lotträger

x1 Zinnrolle (1 Meter)

x1 Lötkolben

x25 flexible Gurte männlich/männlich

Schritt 1: Sensoren

Sensoren
Sensoren
Sensoren
Sensoren
Sensoren
Sensoren

Ich habe 4 Piezoelektrikums aus der Harmonix XBOX 360-Fernbedienung von "Guitar Hero" verwendet.

Ich habe einen IR-Sensor Sharp GP2Y0E02B verwendet. Für alle diese Sensoren habe ich eine Pull-up-Montage für einen effektiven Betrieb durchgeführt…

Damit habe ich empirisch den Widerstandswert für den Knopfsensor und den IR-Sensor gefunden. Ich habe jedoch piezoelektrisch getestet, um den vollen Umfang dieses zu kennen, und den Wert des festen Widerstands, der für die 4 analogen Sensoren erforderlich und angewendet wird.

Schritt 2: Klimmzug-Montage

Klimmzug-Montage
Klimmzug-Montage
Klimmzug-Montage
Klimmzug-Montage
Klimmzug-Montage
Klimmzug-Montage
Klimmzug-Montage
Klimmzug-Montage

Nach dem Testen von Piezoelektrik mit Spannungsgenerator habe ich den Widerstandswert auf 7 MΩ festgelegt.

Der Pull-Up der Knopfwiderstandsbaugruppe betrug 10 kΩ.

Für den IR-Sensor habe ich zwei 1,8kΩ-Widerstände zwischen jeweils Versorgungsspannung und SDA (Daten) und SCL (Takt) verwendet.

Seien Sie vorsichtig, da die Werte dieses Widerstands für RTX Arduino UNO gelten; Wissenswertes über Arduino Impedanzeingang: 10MΩ.

Sie können die Klimmzug-Montage auf dem letzten Bild dieses Schrittes sehen; Ich habe die piezoelektrischen Bänder in 0 1 2 3 Pins an UNO befestigt, Tastenband in 2 digitalen Pins, aber den Wert an 6 Pins an UNO und IR-Sensorband in 4 5 Pins an UNO, alle analogen Eingänge des Arduino Uno.

Schritt 3: Arduino codieren

Um sicherzustellen, dass die Operation effektiv war, habe ich das Senden/Empfangen von Informationen von Sensoren an Arduino getestet.

Ich habe Dateien in die Beschreibung eingefügt, aber Sie können sie im Beispielbereich der Arduino Genuino-Programmierung finden, mit Ausnahme des IR-Sensors, da er nicht vollständig ist in Abstandsvariationen. Wahrscheinlich haben Sie "Wire" im IR-Sensorcode gesehen. Tatsächlich habe ich das I2C-Protokoll verwendet, um zu kommunizieren. Ich lade Sie ein, das I2C-Protokoll zu sehen, sehr interessant. Sie können dieses verwenden, um alle gewünschten digitalen Sensoren in Echtzeit zu übertragen.

Schritt 4: Beide Arduino Raspberry Serial Communication

Beide Arduino Raspberry Serial Communication
Beide Arduino Raspberry Serial Communication
Beide Arduino Raspberry Serial Communication
Beide Arduino Raspberry Serial Communication

Ja: D

Wie Sie im ersten Bild sehen können, ist der Link Arduino-Raspberry ein USB-Stecker.

Ich habe eine Möglichkeit gefunden, die Sensorinformationen direkt von PureData Extended zu erhalten, das in Raspberry PI installiert ist. Warum PureData Extended? Weil die Vanilla-Version nicht dieselbe Bibliothek verwendet wie eine Anwendung in der Raspbian-Umgebung.

Starten Sie also StandardFirmata in Arduino Genuino, um I/O- und Wertvariationen richtig zu beheben!

Um die Wertinformationen in Raspberry PI zurückzubekommen, gibt es 2 Protokolle: Firmata und Msg.

Ich habe mich aus einem Grund für Firmata entschieden, es war einfacher, Informationen in PureData über den Patch Pduino, eine Umgebung, zu erhalten.

Ich lade Sie ein, Msg zu entdecken, wenn Sie das OSC-Protokoll verwenden.

Schritt 5: PureData-Patch erhalten

PureData-Patch erhalten
PureData-Patch erhalten

Tatsächlich gelang es mir nach wochenlangem Programmieren auf Genuino, alle Informationen meines Sensors auf einer Seite zu erhalten, dies ermöglichte es, dank Pduino, einem Patch in Puredata, Abschnitt Bibliotheken extra, Variationen in Echtzeit zu sehen.

Ab diesem Schritt berühren wir den Arduino-Code nicht mehr. Die Informationen zum Wert sind lesbar.

Wie ich in Schritt 3 bemerkte, erhielt ich Informationen von der digitalen Taste in 6-Pin-Analog, es war einfach, den effektiven Betrieb der Kommunikation zu sehen. Alles in einer Zeile.

Schritt 6: Entwicklung von PureData

Entwicklung PureData
Entwicklung PureData
Entwicklung PureData
Entwicklung PureData
Entwicklung PureData
Entwicklung PureData
Entwicklung PureData
Entwicklung PureData

PureData ist eine spezielle Sprache und Sie müssen Ihre Freizeit damit verbringen, erfolgreich zu sein und schönes Patchwork zu machen.

Einige der PureData-Patches werden auf GitHub verfügbar sein.

Ich hoffe, dass das, was ich hier geschrieben habe, Ihnen geholfen hat, Ihr eigenes Projekt in der Nähe meines zu beginnen.

Empfohlen: