Sisukord:
- Samm: ühendage oma NunChuck vooluvõrku
- 2. samm: Mozzi tundmaõppimine
- 3. samm: pange see kõik kokku
- 4. samm: viimased puudutused
Video: Wii Nunchucki süntesaator: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Wii muusika maailm:
Otsustasin lõpuks ühendada oma muusikaarmastuse vähese programmeerimiskogemusega, mille olen viimaste aastate jooksul omandanud. Olen olnud huvitatud oma instrumendi loomisest alates sellest ajast, kui nägin oma koolis Tod Machoveri juttu. Kui te pole tema tööga tuttav, andke talle Google, kuna ta on juba mitu aastat nihutanud nii muusika, tehnoloogia kui ka nende piiri (MIT meedialaborid, Rock Band, Guitar Hero jne).).
Olen ühendanud oma Nunchucki Arduino Unoga, mis töötab Mozzi helisünteesiteegis, kuna mõlemad on hästi dokumenteeritud. Lihtsuse huvides kasutan WiiChucki leivaplaadi adapterit, mis ühendatakse otse Arduinoga. See suhteliselt lihtne projekt mängib Nunchucki kiirendusmõõturilt mõõdetud helikõrguse (YZ-tasapind) põhjal mitmeid helikõrgusi. Juhtkangi Y väärtus kaardistatakse võimendusega, et muuta helikõrgus valjemaks või pehmemaks. Samuti muudab see akorde sõltuvalt Z-nupust ja lülitab C-nupu vajutamisel sisse faasimodulatsiooni ümbriku. Seejärel muudetakse ümbriku sagedust Nunchuckist mõõdetud rulliga (pilt keerab nuppu).
Ressursid:
- 1 x Arduino Uno
- 1 x Wii Nunchuck
- 1 x WiiChucki adapter
- 1 x leivalauaga ühilduv 3,5 mm stereopistik
- 1 x 3,5 mm helikaabel
- 1 x mingisugune kõlar (selle testimiseks võite kõigepealt ühendada summeri
- 4-5 erinevat värvi traati
Valikuline, kuid soovitatav:
- 1 x 330 oomi takisti
- 1 x.1 uF kondensaator
Samm: ühendage oma NunChuck vooluvõrku
Kopeerige/kleepige WiiChuck klass Arduino mänguväljakult. Vajame PWR- ja GND -tihvtide deklaratsiooniga versiooni. Salvestage see nimega WiiChuck.h ja hoidke seda oma projektiga samas kataloogis.
Nüüd kopeerige/kleepige järgmine teave Arduino IDE -sse ja laadige see üles.
#include "Wire.h" //#include "WiiChuckClass.h" // tõenäoliselt meie teiste jaoks selle WiiChuck.h. #include "WiiChuck.h" WiiChuck padrun = WiiChuck ();
tühine seadistus () {
// nunchuck_init (); Seriaalne algus (115200); chuck.begin (); chuck.update (); //chuck.calibrateJoy (); }
void loop () {
viivitus (20); chuck.update ();
Serial.print (chuck.readPitch ());
Serial.print (","); Serial.print (chuck.readRoll ()); Serial.print (",");
Serial.print (chuck.readJoyX ());
Serial.print (","); Serial.print (chuck.readJoyY ()); Serial.print (",");
if (chuck.buttonZ) {
Serial.print ("Z"); } else {Serial.print ("-"); }
Serial.print (",");
// mitte funktsioon // if (chuck.buttonC ()) {
if (chuck.buttonC) {Serial.print ("C"); } else {Serial.print ("-"); }
Serial.println ();
}
Ühendage Arduino toiteallikast lahti ja ühendage WiiChucki adapter Arduino analoogpistikutega 2-5.
Ühendage uuesti vooluvõrku ja veenduge, et Nunchucki väärtused saadetakse teie Arduinole ja trükitakse jadamonitorile. Kui te ei näe numbrites mingeid muutusi, veenduge, et ühendused on head ja Nunchuck töötab. Püüdsin paar päeva tarkvara parandada, enne kui mõistsin, et mu Nunchucki juhe on sisemiselt katki!
Järgmisena ühendame kõik Mozzi külge…
2. samm: Mozzi tundmaõppimine
Esiteks peate alla laadima Mozzi uusima versiooni. Neid toidavad annetused, nii et annetage, kui tunnete end nii kaldu, ja laadige raamatukogu alla. Saate selle oma raamatukogudesse hõlpsalt lisada, valides Arduino IDE -st visandid> Raamatukogud> Lisa. ZIP -raamatukogu….
Nüüd ühendame 3,5 mm kõrvaklappide pesa leivalaua ja Arduinoga, et saaksime sellega hiljem hõlpsalt ühenduse luua (saate Nunchucki ja adapteri praegu lahti ühendada).
- Ühendage pistikupesa tahvli paremasse alumisse nurka, et teha ruumi ülejäänud jaoks. Tungraud peaks olema 5 tihvti lai.
- Ühendage keskmine rida maaga hüppajajuhtmega.
- Ühendage tungraua ülemine rida ülaltoodud tühja reaga (pildil olev rida 10). See juhe kannab helisignaali.
- Ühendage ka digitaalne tihvt ~ 9 reaga 10.
- Ühendage Arduino Ground leivaplaadil oleva rööpaga.
- Te ei pea tingimata veel takistit ja kondensaatorit kasutama, kuid kui te seda ei tee, võite märgata tugevat kriuksumist. See toimib madalpääsfiltrina, et kõrvaldada sagedused üle ~ 15 kHz.
Avage Mozzi Sinewave'i visand Arduino IDE -s, valides Fail> Näited> Mozzi> Põhitõed> Sinewave. See on sisuliselt Mozzi vaste "Tere maailm".
Laadige eskiis üles ja ühendage kõlar leivaplaadile. Võite kasutada ka helisignaali, kui te pole veel leivaplaati helipistikuga ühendanud.
Kui te ei kuule kõlarist pidevat A4 (440 Hz), veenduge, et kõik ühendused on korras ja proovige uuesti.
Järgmisena ühendame Nunchucki Arduinoga!
3. samm: pange see kõik kokku
Nüüd kasutame Nunchucki rullväärtust Sinewave'i sageduse muutmiseks.
Valige Arduino IDE -st Fail> Näited> Mozzi> Andurid> Pieso -sagedus
Peame sellele koodile lisama paar rida, et see saaks Nunchuckiga töötada. Lisage kaasamine WiiChucki teeki ja initsieerige WiiChucki objekt nimega chuck. Samuti saate kommenteerida PIEZO_PIN deklaratsiooni või lihtsalt selle kustutada, kuna me ei kasuta seda.
#include "WiiChuck. H"
WiiChucki padrun = WiiChuck (); // const int PIEZO_PIN = 3; // seada pieso analoogsisendi pin
Nüüd peame seadistamisel lisama järgmise:
chuck.begin (); chuck.update ();
ja lõpuks peame värskendusjuhtimises () muutma mõnda asja:
void updateControl () {
chuck.update (); // hankida viimased nunchucki andmed // lugeda pieso // int piezo_value = mozziAnalogRead (PIEZO_PIN); // väärtus on 0-1023 int piezo_value = map (Kommenteerige rida, mis seab piezo_value, ja lisage selle alla järgmine:
void updateControl () {chuck.update (); // hankida viimased nunchucki andmed // lugeda pieso // int piezo_value = mozziAnalogRead (PIEZO_PIN); // väärtus on 0-1023 // Me ei vaja ülaltoodud joont, aga miks mitte kaardistada rull samasse vahemikku? int piezo_value = kaart (chuck.readRoll (), -180, 180, 0 1023);
Laadige kood üles ja sagedus peaks vastama teie Nunchucki rullile. Proovige kaardistada see erinevatele sagedusvahemikele. Kui te pole visandis allpool märganud, korrutatakse anduri väärtus 3 -ga, nii et praegu mängime toone vahemikus 0 Hz kuni umbes 3000 Hz.
4. samm: viimased puudutused
Nüüd olete valmis üles laadima koodi lõpliku versiooni, mille olen eelmisest sammust kokku pannud, ja veel mõned Mozzi näited (täpsemalt Phase_Mod_Envelope ja Control_Gain). Oma elu lihtsustamiseks lisasin ka faili nimega pitches.h, mis lihtsalt määratleb sagedusväärtused tuttavate noodinimedega (nt NOTE_A4).
Soovitan lugeda Mozzi dokumentatsiooni, kuna suurem osa koodist on otse näidetest, välja arvatud Nunchucki kood.
Siin on link minu Giti hoidlale. Kõik olulised failid on lisatud, välja arvatud Mozzi raamatukogu, mille peaksite hankima nende veebisaidilt, et see oleks ajakohane. Laadige alla WiiMusic.ino ja laadige see oma seadmesse, et kuulda, kuidas see kõlab. Soovitan teil mängida parameetritega, mida ma muudan (kaardivahemike muutmine, numbrite jagamine/korrutamine jne.), Sest nii leidsin ma otsitava heli.
Peegeldus
Ma ei tunne, et olen päris lõpetanud. See ei tähenda, et ma ei oleks rahul projekti ega selle heliga, kuid mul on tunne, et ma just kastsin oma varbad uude maailma, mida tahan jätkata uurimist, nii et lisan jätkates sellest projektist uue haru töötama.
Sellegipoolest oli see minu esimene tõeline teekond mikrokontrollerite maailma, nii et olen õppimiskogemuse eest väga tänulik. Paarkümmend tundi, mis ma selle kallal töötasin, andsid mulle jõuluideid endale ja praktiliselt igale pereliikmele. Mul on kahju, et ma ei töötanud selle projektiga koos kellegi teisega, kuna oleksin võinud oma teel palju nõu ja juhiseid kasutada. Siiski õppisin isiklikult oma katsete kaudu palju, sealhulgas kolm päeva juukseid tõmmates, proovides siluda tarkvaraprobleemi, mida kunagi polnud (Nunchucki sisemine juhe oli katki).
Edasiliikumiseks on veel mitmeid võimalusi. Näiteks sooviksin kasutada Arduinot MIDI -liidese tüübina MIDI -kontrolleri ja kõrvaklappide vahel, et muuta MIDI -märkme parameetreid, kuna valida on nii palju (helitugevus, piirjoon, ümbriku sagedus, helikõrgus, modulatsioon, vibrato, nimetage seda). See võimaldaks palju rohkem paindlikkust, sealhulgas parameetrite vahetamist nuppudega ja lihtsalt akordi mängimist, mis pole C ++ massiivi kõvakodeeritud.
Soovitan:
Vähendav süntesaator (sääsk I): 6 sammu
Arpeggiating Synthesizer (Mosquito I): Mosquito I on väike arpeggiating synthesizer, mis kasutab Arduino Nano ja Mozzi helisünteesi raamatukogu. See võib mängida üle kahekümne 8-astmelise jada, kuid saate lisada nii palju kohandatud järjestusi kui soovite. Seadistamine on suhteliselt lihtne ja seda pole
Arduino MIDI Chiptune süntesaator: 7 sammu (piltidega)
Arduino MIDI Chiptune süntesaator: taaselustage algse arvutimängumuusika lõbu autentse 8-bitise chiptune süntesaatoriga, mida saate MIDI üle juhtida mis tahes kaasaegse DAW tarkvara mugavalt. See lihtne vooluring kasutab AY-3- juhtimiseks Arduinot 8910 programmeeritavat heliperekonda
SENSONIZER, DIY süntesaator: 5 sammu
SENSONIZER, DIY süntesaator: see on sensonisaator, anduritel põhinev süntesaator. Lühidalt. See on põhimõtteliselt süntesaatori klaviatuur, kuid klaveriklahvide ja nuppude asemel liugurid ja nupud selle juhtimiseks. Kasutasin klaveriklahvide asendamiseks rõhu- ja asendiandureid ning
Nunchucki juhitav teleskoobi fookus: 6 sammu (piltidega)
Nunchucki juhitav teleskoobi fookus: kui olete kunagi proovinud oma teleskoopi kasutada suhteliselt suure suurendusega (> 150x), olete ilmselt märganud, kuidas teleskoobi fokuseerija käsitsi reguleerimine võib põhjustada kaelas tõelist valu. Seda seetõttu, et isegi väiksemat reguleerimist
Juhtmevaba Wii Nunchucki juhitav Arduino: 7 sammu
Traadita Wii Nunchucki juhitav Arduino: kasutage mis tahes Arduino -põhiste projektide juhtimissüsteemina täiesti modifitseerimata traadita Wii & Nbsucki. Ei ole lisatud raadiosaatja/vastuvõtjapaare jne. See juhend sisaldab eeldusi Arduino mikrokontrolleriga. Raadio