Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
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
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
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
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ë
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
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.