Përmbajtje:

Ndërfaqja dixhitale muzikore: 6 hapa (me fotografi)
Ndërfaqja dixhitale muzikore: 6 hapa (me fotografi)

Video: Ndërfaqja dixhitale muzikore: 6 hapa (me fotografi)

Video: Ndërfaqja dixhitale muzikore: 6 hapa (me fotografi)
Video: CS50 2014 – неделя 1, продолжение 2024, Nëntor
Anonim
Ndërfaqe dixhitale muzikore
Ndërfaqe dixhitale muzikore

Mirësevini të gjithëve, Unë do të doja t'ju tregoja ndërfaqen time dixhitale muzikore. Unë e bëra atë gjatë diplomës sime teknike të zërit, këto janë punimet e mia kërkimore. Për të filluar, më pyeta se si mund të kompozoj muzikë pa DAW, me furnizime të ricikluara dhe mundësi luajtjeje në mënyrë të pavarur.

Në këtë udhëzues, unë do t'ju mësoj se si të përdorni komunikimin serik për të dërguar/marrë informacione sensorë (analoge dhe dixhitale) nga Arduino në Raspberry pi drejt puredata të softuerit për të shkaktuar një tingull.

Materialet e kërkuara janë:

x1 Mjedër PI3

x1 Boiter de protection PI3

x1 Micro SD (32G)

x1 Arduino UNO

x1 Sensori IR Sharp GP2Y0E02B

x1 Breadbord

x1 Matës i provës së pllakës (0.2)

x28 Rezistenca 10MΩ

x2 Rezistenca 1.8kΩ

x1 Rezistenca 10kΩ

x20 Bishtat e terminalit Mashkull/Femër

x1 Mbartës saldimi

x1 spirale prej kallaji (1 metër)

x1 Hekuri për saldim

x25 Shirita fleksibël Mashkull/Mashkull

Hapi 1: Sensorët

Sensorë
Sensorë
Sensorë
Sensorë
Sensorë
Sensorë

Kam përdorur 4 piezoelektrike që vijnë nga "Guitar Hero" Harmonix XBOX 360 telekomandë. Kam përdorur një buton të ndezur/fikur sepse kallami i kallamit magnetik i timonit të pedalit të kitarës së timonit të telekomandës ishte jashtë.

Kam përdorur një sensor IR Sharp GP2Y0E02B. Për të gjithë këta sensorë, bëra montim tërheqës për funksionim efektiv …

Kështu që në mënyrë empirike gjeta vlerën e rezistencës ndaj sensorit të butonit dhe sensorit IR. Sidoqoftë, unë testova piezoelektrik në mënyrë që të njihja shkallën e plotë të këtij, dhe vlerën e rezistencës fikse të kërkuar dhe të aplikuar për 4 sensorë analogë.

Hapi 2: Montimi tërheqës

Montimi tërheqës
Montimi tërheqës
Montimi tërheqës
Montimi tërheqës
Montimi tërheqës
Montimi tërheqës
Montimi tërheqës
Montimi tërheqës

Pas testimit piezoelektrik me gjenerator tensioni, unë fiksova vlerën e rezistencës në 7MΩ.

Tërheqja e montimit të rezistencës së butonit ishte 10 kΩ.

Për sensorin IR, kam përdorur dy rezistenca 1, 8kΩ midis tensionit përkatësisht të furnizimit dhe SDA (të dhëna) dhe SCL (orë).

Kini kujdes sepse vlerat e atyre rezistencës janë për RTX Arduino UNO; diçka që duhet të dini për hyrjen e rezistencës së Arduino: 10MΩ.

Ju mund të shihni montazhin tërheqës në foton e fundit të këtij hapi; I fiksova shiritat piezoelektrikë në 0 1 2 3 kunja në UNO, rripin e butonave në 2 kunja dixhitale, por komunikoj vlerën në 6 kunja në UNO dhe rripin e sensorit IR në 4 5 kunja në UNO, të gjitha inputet analoge të Arduino Uno.

Hapi 3: Kodi Arduino

Për të siguruar që operacioni ishte efektiv, testova dërgimin/marrjen e informacionit të sensorëve në Arduino.

I vendos skedarët në përshkrim, por mund t'i gjeni në seksionin e shembujve të programimit Arduino Genuino, përveç sensorit IR sepse nuk është i plotë, kam ndryshuar disa informacione në seksionin "përcakto" si "ndryshim" dhe ndryshova llogaritjen e matjes si të rregullt në variacionet e distancës. Me siguri e keni parë "Wire" në kodin e sensorit IR. Në të vërtetë kam përdorur protokollin I2C për të komunikuar. Ju ftoj të shihni protokollin I2C, shumë interesant, mund ta përdorni këtë për të transmetuar në kohë reale të gjithë sensorët dixhitalë që dëshironi.

Hapi 4: Të dy komunikimet serike të Arduino Raspberry

Komunikimi Serial i Arduino Raspberry
Komunikimi Serial i Arduino Raspberry
Të dy Komunikimi Serial i mjedrës Arduino
Të dy Komunikimi Serial i mjedrës Arduino

Po: D

Siç mund ta shihni në foton e parë, lidhja Arduino-Raspberry është prizë USB.

Kam gjetur një mënyrë për të marrë informacionin e sensorëve direkt nga PureData Extented që është i instaluar në Raspberry PI. Pse PureData u zgjerua? Sepse versioni Vanilla nuk përdor të njëjtën bibliotekë sesa një aplikacion në mjedisin Raspbian.

Pra, nisni StandardFirmata në Arduino Genuino për të rregulluar ndryshimet I/O dhe vlerësimin në mënyrën e duhur!

Për të marrë informacionin e vlerës në Raspberry PI, ekzistojnë 2 protokolle: Firmata dhe Msg.

Unë zgjedh Firmata për një arsye, ishte më e thjeshtë të merrja informacione në PureData përmes arnës Pduino, një mjedis.

Ju ftoj të zbuloni Msg nëse përdorni protokollin OSC.

Hapi 5: PureData Patch e Marrë

PureData Patch u mor
PureData Patch u mor

Në të vërtetë, pas disa javësh të kodimit në Genuino, kam arritur të marr të gjitha informacionet e sensorit tim në një faqe, e cila lejoi të shihte ndryshime në kohë reale falë Pduino, një arnim në Puredata, seksione bibliotekash shtesë.

Nga ky hap, ne nuk prekim më kodin Arduino. Informacioni i vlerës është i lexueshëm.

Siç vura re në hapin 3, mora informacione nga butoni dixhital në analog 6 pin, ishte e thjeshtë të shihej funksionimi efektiv i komunikimit. Të gjitha në një rresht.

Hapi 6: Zhvillimi i të dhënave PureData

Zhvillimi i të dhënave të pastra
Zhvillimi i të dhënave të pastra
Zhvillimi i të dhënave të pastra
Zhvillimi i të dhënave të pastra
Zhvillimi i të dhënave të pastra
Zhvillimi i të dhënave të pastra
Zhvillimi i të dhënave të pastra
Zhvillimi i të dhënave të pastra

PureData është një gjuhë specifike dhe ju duhet të kaloni kohën tuaj të lirë për të pasur sukses duke bërë lara -lara të bukura.

Disa nga arna PureData do të jenë të disponueshme në GitHub.

Shpresoj se ajo që kam shkruar këtu ju ka ndihmuar që të filloni projektin tuaj afër timit.

Recommended: