» Mga instrumentong pangmusika »Kravox spatial synthesizer sa Arduino

Kravox spatial synthesizer sa Arduino



Inimbento ng panginoon ang Kravox sa panahon ng isang proyekto ng pananaliksik sa Lund University (Sweden), na ang layunin ay upang bigyan ang mga digital na instrumento na kumokontrol sa pakiramdam ng tradisyunal na mga instrumento sa makina. Ngayon nais ng master na ma-access ang Kravox sa lahat bilang isang platform ng musika para sa eksperimento. Ito ay para sa kanyang nilikha ang detalyadong pagtatagubilin na ito, na magpapahintulot sa maraming tao hangga't maaari upang magamit ang bagong kawili-wiling instrumento ng musika.

Ang paglalaro ng Kravox ay medyo simple. Isipin na naglalaro ka gamit ang isang regular na bagay, tulad ng isang walis, at ang paraan na hawakan mo ito at ilipat ito sa puwang na kumokontrol kung paano nabuo ang tunog. Maaari mong panoorin at marinig kung paano i-play ang Kravox, pati na rin ang proseso ng paggawa ng instrumento, sa dulo ng artikulo sa mga video.

Mga tool at materyales:
- breadboard 50 * 24 butas -1 mga PC;
-40-pin male konektor -5 mga PC;
-40-pin plug - 5 mga PC;
- Potentiometer 10 kOhm at hawakan para sa kanila - 5 mga PC;
-Blue 5 mm standard LEDs - 3 mga PC;
- Mga Resistor 150 Ohms - 3 mga PC;
- Capacitor 10 uF - 2 mga PC;
- Capacitor 100 nF - 2 mga PC;
-Radio module NRF24L01 - 2 mga PC;
-Arduino nano -2 mga PC;
-Resistor 220 Ohm -3 mga PC;
- Mga board ng sensor ng sensor MPR121 - 2 mga PC;
- Digital gyro GY-521 MPU 6050 - 1 pc;
- USB-A sa mga cable na USB-C;
-4 metro (minimum) ng tanso tape 1 cm ang lapad;
-Powerbank;
-7 metro (minimum) na mga wire ng iba't ibang kulay;
-0.2 metro, init na pag-urong ng tubo ø = 3 mm;
-Mga accessory;
-Multimeter;
-Rule;
-Knife;
-Nozhovka;
- Mga Pliers;
-Carton;
-Glue gun;
-Tape;
-Glue;
-Office gum;
-Clip;




Hakbang Una: Teorya
Ang Kravox ay isang bukas na mapagkukunan ng cross-platform digital na musikal na instrumento na binubuo ng tatlong bahagi - isang magsusupil / magsusupil, isang tatanggap, at software.

Maaari kang kumonekta hanggang sa tatlong mga wireless na controller. Ang bawat magsusupil ay nagpoproseso ng oryentasyon at data ng pagpabilis mula sa MPU-6050 digital dyayroskop at hawakan ang data mula sa dalawang MPR121 sensor sensor board na konektado sa Arduino Nano. Ang magsusupil ay nagpapadala ng data sa tatanggap gamit ang nRF24L01 radio transmiter. Kung kinakailangan na gumamit ng higit sa isang magsusupil, ang pangalawa at pangatlong magsusupil ay dapat italaga sa mga indibidwal na address.

Ang tatanggap ay naghahatid ng data na natanggap mula sa (mga) controller sa konektadong computer kasama ang data na nakolekta mula sa ilang mga potenometriko.Ang ibinigay na code ng tatanggap ay nagbibigay-daan sa iyo upang maitaguyod ang komunikasyon sa tatlong mga magsusupil, ngunit gagana rin ito sa isa o dalawa na walang mga setting.

Ang data mula sa tatanggap ay naproseso sa isang programa na nakasulat sa output na tunog.
Ang kagandahan ng Kravox ay ang form nito, kung paano ito tunog at kung paano i-play ito, maaaring ayusin. Nagbigay ito ng pagkakataon ng wizard upang makabuo ng isang madaling kopyahin ang bersyon ng Kravox para sa tutorial na ito.


Hakbang dalawa: lumikha ng isang board ng controller
Susunod, ipinaliwanag ng wizard kung paano gawin elektronika hakbang-hakbang ng controller mula sa mga detalye sa itaas.
Kung hindi ka sigurado kung saan ibebenta ang cable, maaari kang palaging bumalik sa diagram ng circuit at suriin kung tama ang koneksyon na konektado.


Ang unang hakbang ay upang i-cut ang breadboard at konektor at tipunin ang mga ito kasama ang isang maliit at isang malaking kapasitor, na makakatulong na madagdagan ang pagiging maaasahan ng radio transmitter.

Gupitin ang board na may kutsilyo ng utility
Gupitin ang mga konektor na may isang hacksaw (inilagay ito ng master sa aklat upang ihanay ang mga ito mula sa talahanayan)
I-install ang mga konektor sa breadboard at panghinang. Maaari mo nang ikonekta ang bawat pares ng mga contact ng dalawa
mahabang konektor na katabi ng bawat isa. Para sa natitira, sapat na lamang na ilakip ang mga ito ng isang maliit na panghinang - mas mabuti ang mga contact na, alinsunod sa diagram ng circuit, ay hindi makakonekta sa paglaon. Kapag ang mga capacitor ng paghihinang, bigyang-pansin ang polarity ng electrolytic capacitor ng 10 microfarads (ang mas malaki sa dalawa). Ang isang panig ay magkakaroon ng isang guhit at, bilang panuntunan, isang mas maiikling binti. Ang panig na ito ay dapat na konektado sa lupa. Ang mas maliit na 100 nanofarad kapasitor ay hindi polarized at maaaring soldered sa anumang paraan.





Bukod dito, ang mga resistor ng LED ay ibinebenta. Bigyang-pansin ang polarity ng LED: ang isang panig ay karaniwang may isang mas maiikling binti. Ang panig na ito ay dapat na konektado sa lupa sa susunod na hakbang. Ang isang asul na kawad ay soldered sa iba pang mga binti. Ang iba pang mga dulo ng kawad ay ibinebenta sa konektor kung saan ang Arduino pin D3 ay konektado.


Susunod, ang lahat ng pula at asul na mga kable ng kuryente ay naka-mount. Pula para sa 3.3 Volts at asul para sa lupa (GND).


Tatlong sensor board makipag-usap sa pamamagitan ng I2C protocol (integrated circuit). Nangangahulugan ito na maaari silang lahat ay konektado sa parehong dalawang mga pin ng Arduino, kaya ibenta namin ang dilaw at berde na mga wire sa mga sensor at Arduino A4 at A5 na mga pin. Kailangan mo ring mag-mount ng isang puting cable upang ikonekta ang mga nakakaabala na contact ng gyro.


Nakikipag-usap ang radio transmiter sa pamamagitan ng SPI protocol (serial
peripheral interface), na nangangailangan ng higit pang mga koneksyon kaysa sa I2C, ang wizard ay nagdaragdag ng itim, kulay abo, kayumanggi, lila at orange na mga wire.


Ngayon ay oras na upang ihanda ang mga sangkap. Bilang karagdagan sa paghihinang sa mga konektor ng pin, kung hindi
soldered, kailangan mong magbayad ng espesyal na pansin sa sensor board! Para sa mga murang modelo mula sa Tsina, ang address pin ay mahigpit na pinagbabatayan nang walang intermediate na resistor, kaya kailangan mong pisikal na i-cut ang koneksyon na ito sa ilalim ng board na may isang kutsilyo. Gupitin sa pagitan ng dalawang pad na malapit sa lugar kung saan nakasulat ang ADD. Inirerekomenda ng wizard na mag-ring sa isang multimeter upang matiyak na hindi nakakonekta ang mga contact.


Kapag ang lahat ng mga bahagi ay naghihinang na mga konektor at ang mga sensor ng board ay handa, maaari mong ikonekta ang Arduino Nano, isang dyayroskop, dalawang sensor board, at isang module ng radyo sa board ng controller.


Hakbang Tatlong: I-download ang Code
Matapos ang isang double check, kung ang lahat ay konektado nang tama, ang susunod na hakbang ay i-download ang ibinigay na Arduino nano, ngunit bago mo magawa ito, kakailanganin mong mag-install ng mga aklatan para sa dyayroskop, sensor sensor boards, at radio transmitter. Kung bago ka sa mga aklatan ng Arduino, alamin kung paano i-install ang mga ito.
Kinakailangan ng MPU6050 gyro ang I2Cdev.h at MPU6050_6Axis_MotionApps20.h, na maaaring ma-download.
Para sa mga MPR121 touch boards, kinakailangan ang library ng Bare Conductive MPR121.h, na maaaring matagpuan Mayroong hindi bababa sa dalawang bersyon ng aklatan. Siguraduhing i-install ang bersyon na binuo ng Bare Conductive, hindi ang bersyon na binuo ng Adafruit.
Ang NRF24L01 radio transmitter board ay nangangailangan ng nRF24L01.h at RF24.h TMRh20 aklatan, na ma-download. Mangyaring tandaan: mayroon ding hindi bababa sa dalawang bersyon ng mga aklatang ito na may parehong pangalan. Siguraduhing i-install ang binuo TMRh20, hindi ang maniacbug.
Kapag na-install ang mga aklatan, maaari mong i-download ang code ng Kravox-Controller.

Upang masuri kung gumagana ang Controller, maaari mo itong paganahin sa data ng output mula sa mga sensor ng touch at isang dyayroskop sa pamamagitan ng isang serial monitor. Upang gawin ito, dapat mong i-edit ang huling seksyon ng code ng tatanggap bago mag-download: sa pamamagitan ng pag-alis ng marka ng komento sa simula (/ *) at sa dulo (* /) nito (tingnan ang Larawan)

Matapos i-download ang code na may pagpipiliang ito, kailangan mong buksan ang Serial Monitor at itakda ang bilis ng paghahatid (rate ng data) para dito sa 115200. Ngayon ay makikita mo ang data mula sa mga sensor, na nagbabago kapag ang Controller board ay inilipat at ang mga contact ay nahipo, mula sa mga MPR121 board na minarkahan mula 0 hanggang 11.

Kung walang gumagana o mga zero lamang ang nakuha, kailangan mong maingat na suriin ang mga kable at ihambing ito sa diagram sa itaas. Kung natanggap mo ang maling signal mula sa Serial Monitor, kailangan mong suriin kung ang mga rate ng paglilipat ng data ay itinakda nang tama.


Hakbang Pang-apat: Lupon ng Lupon

Para sa lakas, kailangan mong kumonekta sa board ng controller sa bangko.
Kung ang bangko ay hindi awtomatikong patayin pagkatapos, ang control board ay tapos na, at maaari kang pumunta sa receiver board. Kung hindi, sundin ang susunod na hakbang.

Hakbang Limang: Malutas ang Problema sa Power
Sa prinsipyo, ang board ng controller ay handa na, ngunit ang ilang mga bangko ay awtomatikong i-off pagkatapos ng ilang segundo kapag nakakonekta sa board ng controller, dahil kumokonsumo ng kaunting kapangyarihan. Bilang isang solusyon, maaari mo lamang magdagdag ng tatlong 220 na resistor ng Ohm na kahanay sa pagitan ng 5V at GND na mga pin ng Arduino.


Matapos ang muling pagkonekta sa mga sangkap, (siguradong) ganito ang natapos na board ng control.


Hakbang Ika-anim: Lumikha ng isang Board ng Tagatanggap
Sa hakbang na ito, ipapakita sa iyo ng wizard kung paano makagawa ng receiver board. Ang proseso ay halos kapareho sa paggawa ng isang controller board.


Una kailangan mong i-trim ang breadboard at konektor. Pagkatapos ay i-install ang mga capacitor. Maaari mong ihambing ang hakbang na ito sa unang hakbang ng paglikha ng isang board ng controller para sa karagdagang impormasyon.


Susunod kailangan mong magdagdag ng lahat ng pula at asul na mga wire. Pula para sa 3.3 Volts at asul para sa lupa (GND).


Mga kable para sa komunikasyon SPI.


Ang board ng tatanggap ay handa na, ngunit bago mo i-upload ang Kravox-Receiver code sa Arduino Nano, kailangan mo munang lumikha ng isang interface para sa tagatanggap.


Pagkatapos ay ipinapakita ng wizard kung paano gumawa ng isang interface na may 4 na potensyomer at isang LED para sa tatanggap. Ang interface ay konektado, tulad ng sa unang pigura, at konektado sa receiver board, tulad ng nakikita sa pangalawang pigura.


Ang pamamaraan ay ang mga sumusunod, una kailangan mong kumuha ng isang bundle ng 8 mga cable at panghinang 5 sa mga ito sa mga gitnang contact ng potentiometer. Maipapayo na gumamit ng parehong mga kulay tulad ng sa diagram upang hindi malito.

Pagkatapos, kailangan mong i-cut ang breadboard 2 hilera ng 17 butas at isang 17-pin male connector. Ikabit ang mga cable at konektor sa board. Bigyang-pansin ang diagram sa itaas upang matiyak na ikinonekta mo ang mga cable sa mga tamang lugar.


Ngayon kailangan mong maghinang asul na mga wire (ground) sa isa sa mga contact ng lahat ng potentiometer. Maglagay ng isang asul na LED na may kasalukuyang paglilimita sa risistor ng 150 Ohms.

Maglagay ng berdeng mga wire.

Ang tapos na interface ay dapat magmukhang katulad nito (larawan 1) at maaaring konektado sa receiver board na tulad nito (larawan 2).

Ikapitong hakbang: code
Magagamit na para sa pag-download sa tatanggap ng Arduino Nano.
Upang suriin, kailangan mong gumawa ng isang maliit na pagsasaayos sa code bago mag-download. Bilang default, ipinapakita ng tatanggap ang data nito sa isang format na maaaring ma-kahulugan bilang dalisay na data, ngunit hindi nagpapakita ng kapaki-pakinabang na impormasyon sa isang serial monitor. Gayunpaman, maaari mong baguhin ang pag-uugali na ito sa iyong code sa pamamagitan ng pag-edit (pagdaragdag ng // bago) ang linya na #define WRITE_AS_BYTES at (pag-alis ng // bago) ang linya // #define PRINT_VIA_SERIAL_MONITOR.


Hakbang Walong: Kaso
Karagdagang labas ng tanso strip, ang master ay gumagawa ng isang sensor.


Upang gawin ang kaso, ang master ay gumagamit ng mga walang laman na kahon.

Ang master ay gumuhit ng karton. Mga kutsarang 24 na tanso na tanso at ini-fasten sa isang karton.



Karagdagan, pinutol ng master ang karton na 2 * 24 butas ang lapad at ang 24-pin na lalaki na konektor sa laki at mga nagbebenta ng 24 na mga wire dito. Ang mga wires sa gitna ay dapat na hindi bababa sa 10 cm ang haba.Sa paglayo mo sa gitna, tumataas ang haba ng mga wire. Halimbawa, kung gumagamit ka ng isang tanso na tape na 1 cm ang lapad at ang distansya sa pagitan ng mga electrodes 3 mm, ang haba ng kawad ay dapat tumaas ng 1.3 cm, tulad ng ipinakita sa ibaba: 10 / 11.3 / 12.6 / 13.9 / 15.2 ...

Ngayon ay maaari mong ibenta ang pangalawang dulo ng mga wire sa mga tanso na tanso at i-seal ang mga goma gamit ang tape.



Kinukuha ang sensor sa katawan, at pagkatapos ay nakadikit ang isa pang katawan dito (para sa pagpapatunay).


Sinasaklaw ang likod ng board ng controller na may karton.

Mga Pag-install ng mga LED at power bank. Kailangan mong ayusin ang power bank upang maaari mong kumonekta at idiskonekta ang USB cable, dahil ito ay kung paano naka-on at naka-off ang controller. Ikonekta din ang touch interface sa board ng controller at ilagay ito sa kahon.

Gumagawa ng isang cutout para sa USB-A-USB-C cable sa kantong ng dalawang kahon, hinawakan ito at ikonekta ito sa Arduino Nano.

Ngayon handa na ang controller.

Inaayos ng master ang kaso sa tulong ng stationery gum. Kung magkakasunod na lumitaw ang mga problema sa mga sensor na nakakakita ng touch kapag hindi sila naroroon, kailangan mong maglagay ng insulating material, tulad ng pelikula, o tulad ng pagitan ng touch-sensitive na pabahay, circuit board, at mga wire. Ikonekta ang kapangyarihan nang hindi hawakan ang mga sensor.


Hakbang Siyam: Paglikha ng Kaso ng Tagatanggap
Ngayon kailangan mong gumawa ng isang pabahay para sa tatanggap. Pinuputol ng wizard ang ilang mga bilog na butas para sa potentiometer at LEDs.


Ito glues ang receiver board, LED, tornilyo potentiometer. Itinatakda ang mga hawakan.




Hakbang Sampung: Kumpletuhin
Ngayon na ang lahat ng mga kagamitan ay naka-mount, oras na upang maglaro ng musika! Upang gawin ito, kailangan mo ng software na maaari mong ikonekta ang kagamitan sa. Para sa Kravox, ito ay Pure Data vanilla software, na maaari mong i-download nang libre.

Pagkatapos i-install ang Pure Data sa computer, kailangan mong patakbuhin ito at buksan ang Kravox.pd file. Mangyaring tandaan na dapat itong mai-save sa iyong computer sa parehong folder tulad ng drumsamples folder na kung saan ito ay ibinibigay - kung hindi man ang Pure Data ay hindi mahahanap ang mga file.
Sa sandaling magbukas ang interface ng programa ng Kravox.pd, kailangan mong buksan ang window tulad ng sa larawan at i-install ang apat na tinatawag na mga panlabas na aparato na nakalista sa window na ito. Ang pag-install ng mga ito ay simple, i-click lamang ang "tulong" sa menu na "Malinis na Data", piliin ang "Maghanap ng mga karagdagang mga bagay sa internet" (maaaring bahagyang naiiba ito), hanapin ang "comport", "zexy", "freeverb" at "arraysize". "Isa-isa at i-install ang pinakabagong bersyon. Ngayon ang apat na mga bagay na minarkahan bilang comport, repack, freeverb at arraysize ay dapat magkaroon ng isang solidong balangkas, tulad ng sa figure sa ibaba. Maaaring kailanganin mong i-restart ang Pure Data para dito.

Pagkatapos i-install ang mga panlabas na aparato, maaari mong ikonekta ang tatanggap sa pamamagitan ng USB. Kung binago mo ang code sa Bahagi 4 upang magamit ang Tatanggap sa Arduino Serial Monitor, dapat mo munang i-undo ang pagbabagong ito at i-load ang source code sa tatanggap ng Arduino Nano bago kumonekta at isara ang Arduino Serial Monitor.

Ngayon tingnan ang window ng Pure Data. Kung nakakita ka ng isang mabilis na na-update na stream ng data, ito ay mahusay, ngunit malamang na magpapakita ito sa iyo ng isang pulang mensahe sa halip, tulad ng isa sa unang imahe, na na-update sa bawat dalawang segundo.

Ang pulang teksto ay maaaring maliit na magkakaiba, ngunit nangangahulugang nangangahulugang, ang Pure Pure ay hindi pa nakakonekta sa iyong tatanggap. Ito ay dahil ang programa ay kailangang tukuyin kung aling USB port ang dapat kumonekta. Ang mga port ng USB ay maaaring mai-label ang naiiba sa iba't ibang mga aparato; sa 2014 MacBook Pro, kinikilala ng Purong Data ang parehong mga USB port bilang serial port 3, anuman ang tatanggap na kumokonekta ka sa. Pagkatapos ay ginamit ng wizard ang Kravox kasama ang Lenovo Yoga Pad na may isang gumaganang USB port, na itinalaga bilang serial port 6. Sa Windows, ang mga port ay itinalaga bilang 8 at 9. Nagpapayo ang wizard upang subukang malaman kung aling numero ang gumagana sa USB port sa iyong aparato . Lumikha siya ng isang dayalogo bilang bahagi ng interface ng Kravox.pd (pangalawang larawan), kung saan maaari mo lamang mag-click sa mga numero hanggang sa gumana ang aparato. Maaari mo ring subukan ang "Ipakita ang magagamit na mga port" at ang "Ipakita ang mga konektadong USB device" na pindutan.
Kravox spatial synthesizer sa Arduino


Pagkatapos ay kailangan mong i-click ang "I-save" upang ang Purong Data ay susubukan na kumonekta sa port na ito sa susunod na awtomatikong.
Kung na-edit ang code ng controller, kailangan mong i-reload ang code.

Ito ay nananatiling kumonekta sa control board sa power supply. Kapag ginawa mo ito, ang enclosure ng touch interface sa paligid ng board ay dapat na sarado, at ang hawakan ng bahagi ng enclosure ay hindi dapat hawakan ang iyong mga kamay o kung ano pa man.

Ang lahat ay handa na, ang karagdagang impormasyon ay maaaring matingnan sa video.


5.5
5.5
5.5

Magdagdag ng isang puna

    • ngitinakangitixaxaok langhindi alamyahoonea
      bosskumamottangaoooo-ooagresibolihim
      sorrysayawsayaw2sayaw3kapatawarantumulonginumin
      humintomga kaibiganmabutigoodgoodsipolswoondila
      usokpumapalakpakkrayolaipahayagnakakainisdon-t_mentionpag-download
      initnakakainistumawa1mdapagpupulongnakikipag-usapnegatibo
      hindi_ipopcornparusahanbasahintakottakotpaghahanap
      panunuyasalamat_youitoto_clueumniktalamaksumang-ayon
      masamabeeeblack_eyeblum3namulamagyabanginip
      censoredkaaya-ayalihim2nagbabantatagumpayyusun_bespectacled
      shokrespektlolnagustuhanmaligayang pagdatingkrutoyya_za
      ya_dobryikatulongne_huliganne_othodimapusokpagbabawalmalapit

Pinapayuhan ka naming basahin:

Ipasa ito para sa smartphone ...