Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Velkommen alle sammen, Jeg vil gjerne vise deg mitt eget musikalske digitale grensesnitt. Jeg klarte det under min tekniske lydgrad, dette er mine forskningsartikler. Til å begynne med spurte jeg meg hvordan jeg kan komponere musikk uten DAW, med resirkulerte rekvisita og mulighet til å spille fritt.
I denne instruksen vil jeg lære deg hvordan du bruker seriell kommunikasjon til å sende/motta sensorer (analog og digital) informasjon fra Arduino til Raspberry pi mot programvarepuredata for å utløse en lyd.
Materialer som kreves er:
x1 Raspberry PI3
x1 Boîter de protection PI3
x1 Micro SD (32G)
x1 Arduino UNO
x1 Sensor IR Sharp GP2Y0E02B
x1 Brødbord
x1 Plate testmåler (0,2)
x28 Motstand 10MΩ
x2 Motstand 1.8kΩ
x1 Motstand 10kΩ
x20 Terminalsko Han/Kvinne
x1 Loddebærer
x1 tinnspole (1 meter)
x1 Loddejern
x25 Fleksibel stropper Mann/hann
Trinn 1: Sensorer
Jeg brukte 4 piezoelektriske kommer fra "Guitar Hero" Harmonix XBOX 360 fjernkontroll. Jeg brukte en knapp på/av fordi sivbryteren magnetisk av jam foot pedal guitar hero remote var ute.
Jeg brukte en IR-sensor Sharp GP2Y0E02B. For alle disse sensorene gjorde jeg pull-up-montering for effektiv drift …
Så at jeg empirisk fant motstandsverdi for knappesensor og IR -sensor. Imidlertid testet jeg piezoelektrisk for å vite hele skalaen til denne, og fast motstandsverdi er nødvendig og anvendt for de 4 analoge sensorene.
Trinn 2: Trekk opp montasje
Etter å ha testet piezoelektrisk med spenningsgenerator, fikset jeg motstandsverdien til 7MΩ.
Knappmotstandsoppsettet var 10 kΩ.
For IR -sensor brukte jeg to 1, 8kΩ motstand mellom henholdsvis forsyningsspenning og SDA (data) og SCL (klokke).
Vær forsiktig fordi motstandens verdier er for RTX Arduino UNO; noe å vite om Arduino impedansinngang: 10MΩ.
Du kan se pull-up-montasjen på det siste bildet av dette trinnet; Jeg fikset stropper piezoelektriske i 0 1 2 3 pinner på UNO, knappestropp i 2 digitale pinner, men kommuniserer verdien på 6 pinner på UNO og IR sensorrem i 4 5 pinner på UNO, alle analoge innganger på Arduino Uno.
Trinn 3: Kode Arduino
For å sikre at operasjonen var effektiv testet jeg sende/motta informasjon om sensorer til Arduino.
Jeg legger filer i beskrivelsen, men du kan finne dem i eksempler på Arduino Genuino -programmering, bortsett fra IR -sensor fordi den ikke er fullstendig, jeg har endret få opplysninger i delen "definere" som "skift" og jeg endret måleberegning til å være vanlig i avstandsvariasjoner. Du har sannsynligvis sett "Wire" i IR -sensorkode. Jeg brukte faktisk I2C-protokollen for å kommunisere. Jeg inviterer deg til å se I2C-protokollen, veldig interessant, du kan bruke denne til å overføre alle digitalsensorer du ønsker i sanntid.
Trinn 4: Både Arduino Raspberry Serial Communication
Ja: D
Som du kan se på det første bildet, er lenken Arduino-Raspberry USB-plugg.
Jeg fant en måte å motta sensors informasjon direkte av PureData Extented som er installert i Raspberry PI. Hvorfor PureData Extended? Fordi Vanilla -versjonen ikke bruker det samme biblioteket enn et program i Raspbian -miljø.
Så start StandardFirmata i Arduino Genuino for å fikse I/O og verdivariasjoner på riktig måte!
For å få tilbake verdis informasjon i Raspberry PI, finnes det 2 protokoller: Firmata og Msg.
Jeg velger Firmata av en grunn, det var enklere å få informasjon i PureData via patch Pduino, ett miljø.
Jeg inviterer deg til å oppdage Msg hvis du bruker OSC -protokollen.
Trinn 5: PureData Patch mottatt
Faktisk, etter flere ukers koding på Genuino, lyktes jeg med å motta all sensorinformasjon på en side, dette tillot å se variasjoner i sanntid takket være Pduino, en oppdatering i Puredata, seksjon librairies ekstra.
Fra dette trinnet berører vi ikke lenger Arduino -koden. Value informasjon er lesbar.
Som jeg la merke til i trinn 3, mottok jeg informasjon fra digital knapp i 6 -pinners analog, det var enkelt å se effektiv kommunikasjon. Alt på en linje.
Trinn 6: Utvikling av PureData
PureData er et bestemt språk, og du må bruke fritiden din for å lykkes med å gjøre fine lappetepper.
Noen av PureData -oppdateringen vil være tilgjengelig i GitHub.
Jeg håper at det jeg skrev her hjalp deg med å starte ditt eget prosjekt nær mitt.