Sisällysluettelo:
- Vaihe 1: Liitä NunChuck
- Vaihe 2: Tutustu Mozziin
- Vaihe 3: Yhdistä kaikki
- Vaihe 4: Viimeiset kosketukset
Video: Wii Nunchuck -syntetisaattori: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Wii -musiikin maailma:
Päätin lopulta yhdistää rakkauteni musiikkiin pieneen ohjelmointikokemukseen, jonka olen saanut viime vuosina. Olen ollut kiinnostunut oman soittimen luomisesta siitä lähtien, kun näin koulussani Tod Machoverin puheen. Jos et tunne hänen työtään, anna hänelle Google, koska hän on rikkonut musiikin, tekniikan ja niiden leikkausrajoja jo useiden vuosien ajan (MIT -medialaboratoriot, Rock Band, Guitar Hero jne.).).
Olen liittänyt Nunchuckini Arduino Unoon, joka toimii Mozzin äänisynteesikirjastossa, koska molempien online-käyttö on hyvin dokumentoitua. Käytän helpottamiseksi WiiChuck -leipälauta -sovitinta, joka kytketään suoraan Arduinoon. Tämä suhteellisen yksinkertainen projekti pelaa useita kenttiä riippuen Nunchuckin kiihtyvyysmittarista mitatusta noususta (YZ-Plane). Ohjaussauvan Y -arvo kartoitetaan vahvistukseen, jotta äänenvoimakkuus olisi kovempi tai pehmeämpi. Se muuttaa myös sointuja Z-painikkeesta riippuen ja kytkee vaihemodulaatiokuoren päälle, kun C-painiketta painetaan. Kirjekuoren taajuutta muutetaan sitten rullalla mitattuna Nunchuckista (kuva kääntämällä nuppia).
Resurssit:
- 1 x Arduino Uno
- 1 x Wii Nunchuck
- 1 x WiiChuck -sovitin
- 1 x leipälautayhteensopiva 3,5 mm: n stereoliitin
- 1 x 3,5 mm: n äänikaapeli
- 1 x jonkinlainen kaiutin (Voit liittää summerin aluksi testataksesi sen
- 4-5 eri värin johtoa
Valinnainen, mutta suositeltava:
- 1 x 330 ohmin vastus
- 1 x.1 uF kondensaattori
Vaihe 1: Liitä NunChuck
Kopioi/liitä WiiChuck -luokka Arduinon leikkikentästä. Tarvitsemme version, jossa on PWR- ja GND -nastojen ilmoitus. Tallenna se nimellä WiiChuck.h ja säilytä se samassa hakemistossa kuin projektisi.
Kopioi/liitä seuraava seuraava Arduino IDE: hen ja lataa se.
#Sisällytä "Wire.h" //#sisältää "WiiChuckClass.h" // todennäköisesti sen WiiChuck.h meille muille. #include "WiiChuck.h" WiiChuck -istukka = WiiChuck ();
void setup () {
// nunchuck_init (); Sarja.alku (115200); istukka.begin (); chuck.update (); //chuck.calibrateJoy (); }
void loop () {
viive (20); chuck.update ();
Sarjanjälki (chuck.readPitch ());
Serial.print (","); Sarjanjälki (chuck.readRoll ()); Serial.print (",");
Sarjajälki (chuck.readJoyX ());
Serial.print (","); Sarjanjälki (chuck.readJoyY ()); Serial.print (",");
if (chuck.buttonZ) {
Serial.print ("Z"); } else {Serial.print ("-"); }
Serial.print (",");
// ei funktio // if (chuck.buttonC ()) {
if (istukka.buttonC) {Sarjajälki ("C"); } else {Serial.print ("-"); }
Sarja.println ();
}
Irrota Arduino virtalähteestä ja liitä WiiChuck-sovitin Arduinon analogisiin nastoihin 2-5.
Kytke virta uudelleen ja varmista, että Nunchuckin arvot lähetetään Arduinoosi ja tulostetaan sarjamonitoriin. Jos et näe muutoksia numeroissa, varmista, että yhteydet ovat hyvät ja että Nunchuck toimii. Yritin muutaman päivän yrittää korjata ohjelmistoja ennen kuin huomasin, että Nunchuckin lanka oli sisäisesti rikki!
Seuraavaksi kiinnitämme kaiken Mozziin…
Vaihe 2: Tutustu Mozziin
Ensin sinun on ladattava Mozzin uusin versio. Niitä ruokkii lahjoitukset, joten lahjoita, jos sinusta tuntuu siltä, ja lataa kirjasto. Voit lisätä sen kirjastoihisi helposti valitsemalla Luonnos> Kirjastot> Lisää. ZIP -kirjasto… Arduino IDE: stä.
Nyt liitämme 3,5 mm: n kuulokeliitännän leipälevyyn ja Arduinoon, jotta voimme muodostaa sen helposti myöhemmin (voit irrottaa Nunchuckin ja sovittimen pistorasiasta).
- Kytke jakkisi levyn oikeaan alakulmaan, jotta saat tilaa muille. Tunkin tulee olla 5 nastaa leveä.
- Kytke keskirivi maahan maadoitusjohdolla.
- Liitä pistokkeen ylin rivi yllä olevaan tyhjään riviin (kuvan rivi 10). Tämä on äänisignaalia johtava johto.
- Kytke myös digitaalinen nasta ~ 9 riville 10.
- Yhdistä Arduino -laitteesi Ground leipälevyn maadoituskiskoon.
- Sinun ei välttämättä tarvitse käyttää vastusta ja kondensaattoria vielä, mutta saatat huomata voimakkaan äänen, jos et tee sitä. Se toimii alipäästösuodattimena, joka poistaa yli 15 kHz: n taajuudet.
Avaa Mozzin Sinewave -luonnos Arduino IDE: ssä valitsemalla Tiedosto> Esimerkit> Mozzi> Perusteet> Sinewave. Tämä on lähinnä Mozzin vastine "Hello World".
Lataa luonnos ja liitä kaiutin leipälevylle. Voit myös käyttää summeria, jos et ole johdotanut leipälevyä ääniliitäntään.
Jos et kuule jatkuvasti A4 (440 Hz) kaiuttimesta, varmista, että kaikki liitännät ovat kunnossa ja yritä uudelleen.
Seuraavaksi yhdistämme Nunchuckin Arduinoon!
Vaihe 3: Yhdistä kaikki
Nyt aiomme käyttää Nunchuckin rullan arvoa muuttaaksesi Sinewaven taajuutta.
Valitse Arduino IDE: stä Tiedosto> Esimerkit> Mozzi> Anturit> Pietsotaajuus
Meidän on lisättävä tähän koodiin muutama rivi, jotta se toimisi Nunchuckin kanssa. Lisää sisälly WiiChuck -kirjastoon ja luo WiiChuck -objekti, jonka nimi on istukka. Voit myös kommentoida PIEZO_PIN -ilmoitusta tai poistaa sen, koska emme käytä sitä.
#Sisällytä "WiiChuck. H"
WiiChuck -istukka = WiiChuck (); // const int PIEZO_PIN = 3; // aseta pietson analoginen tulotappi
Nyt asennuksessa meidän on lisättävä seuraava:
chuck.begin (); chuck.update ();
ja lopuksi meidän on muutettava muutamia asioita updateControlissa ():
void updateControl () {
chuck.update (); // hanki uusimmat nunchuck -tiedot // lue piezo // int piezo_value = mozziAnalogRead (PIEZO_PIN); // arvo on 0-1023 int piezo_value = map (Kommentoi piezo_value -riviä ja lisää seuraava alla:
void updateControl () {chuck.update (); // hanki uusimmat nunchuck -tiedot // lue piezo // int piezo_value = mozziAnalogRead (PIEZO_PIN); // arvo on 0-1023 // Emme tarvitse yllä olevaa riviä, mutta miksi et yhdistä rullaa samaan alueeseen? int piezo_value = kartta (chuck.readRoll (), -180, 180, 0 1023);
Lähetä koodi ja taajuus vastaavat Nunchuck's Rollia. Yritä yhdistää se eri taajuusalueille. Jos et ole huomannut tarkemmin alla olevassa luonnoksessa, anturin arvo kerrotaan 3: lla, joten toistamme tällä hetkellä ääniä välillä 0 Hz - noin 3000 Hz.
Vaihe 4: Viimeiset kosketukset
Nyt olet valmis lataamaan koodin lopullisen version, jonka olen koonnut edellisestä vaiheesta, ja muutamia muita Mozzin esimerkkejä (Phase_Mod_Envelope ja tarkasti Control_Gain). Elämäni helpottamiseksi sisällytin myös tiedoston nimeltä pitches.h, joka yksinkertaisesti määrittelee taajuusarvot tutuilla nuotin nimillä (esim. NOTE_A4).
Ehdotan Mozzin dokumentaation lukemista, koska suurin osa koodista on peräisin esimerkeistä lukuun ottamatta Nunchuckin koodia.
Tässä on linkki Git -arkistooni. Kaikki tärkeät tiedostot ovat mukana, paitsi Mozzi -kirjasto, jonka sinun pitäisi saada heidän verkkosivustoltasi, jotta se on ajan tasalla. Lataa WiiMusic.ino ja lataa se laitteellesi kuullaksesi miltä se kuulostaa. Ehdotan, että pelaat muuttuvien parametrien kanssa (muuta kartta -alueita, jaa/kerro numerot jne.), Sillä näin löysin etsimäni äänen.
Heijastus
En koe olevani aivan valmis. Tämä ei tarkoita sitä, ettenkö olisi tyytyväinen projektiin tai sen tuottamaan ääneen, mutta minusta tuntuu, että upotin varpaani uuteen maailmaan, jota haluan tutkia jatkuvasti, joten lisään uuden haaran tästä projektista jatkaessani työskennellä.
Silti tämä oli ensimmäinen todellinen matkani mikrokontrollerien maailmaan, joten olen erittäin kiitollinen oppimiskokemuksesta. Noin kaksikymmentä tuntia, jotka vietin sen parissa, antoivat minulle jouluideoita itselleni ja käytännössä jokaiselle perheelleni. Olen hieman pahoillani siitä, että en työskennellyt tämän projektin kanssa jonkun muun kanssa, koska olisin voinut käyttää paljon neuvoja ja opastusta matkan varrella. Kuitenkin olen henkilökohtaisesti oppinut paljon kokeistani, mukaan lukien kolme päivää hiukseni vetämisestä ulos yrittämällä korjata ohjelmisto -ongelmaa, jota ei koskaan ollut (Nunchuckin sisäinen johto oli rikki).
Edessä on vielä useita mahdollisuuksia. Haluaisin esimerkiksi käyttää Arduinoa MIDI -rajapintana MIDI -ohjaimen ja kuulokeliitännän välillä MIDI -muistiinpanon parametrien muuttamiseksi, koska valittavana on niin paljon (äänenvoimakkuus, raja, kirjekuorien taajuus, sävelkorkeus, modulaatio, vibrato, voit nimetä sen). Tämä antaisi paljon enemmän joustavuutta, mukaan lukien parametrien vaihtaminen painikkeilla ja yksinkertaisesti soitto soittimella, jota ei ole koodattu C ++ -taulukkoon.
Suositeltava:
Kuinka tehdä eeppinen Wii -ase (alle 10 dollaria): 4 vaihetta
Kuinka tehdä eeppinen Wii -ase (alle 10 dollaria): Tervetuloa, kiitos kokeiltavastani !!! :) Tänään teemme Wii -aseen asepeleille Wii -konsolilla. Joten … Aloitetaan
Como Usar Un WII Pro Controller Con Una Switch -kytkin: 4 vaihetta
Como Usar Un WII Pro Controller Con Una -kytkin -hackeada .: Como usar un WII Pro Controller -kytkin -hackeada.Contexto: estoy en cuarentena, no tengo 8bitdo y no puedo hacer el gasto en este momento y queríamos jugar Mario kart con más jugadores.Antecedentes: sabía que había una opción para jugar con
Keytar Hero (Wii -kitaraohjaimen käyttö syntetisaattorina): 7 vaihetta (kuvien kanssa)
Keytar Hero (Wii -kitaraohjaimen käyttäminen syntetisaattorina): Guitar Hero -pelit olivat raivoa tusinaa vuotta sitten, joten siellä on varmasti paljon vanhoja kitaraohjaimia, jotka makaavat pölyn keräämisessä. Niissä on paljon painikkeita, nuppeja ja vipuja, joten miksi et käytä niitä uudelleen? Kitaran ohjain
Nunchuck -ohjattu kaukoputken tarkennin: 6 vaihetta (kuvilla)
Nunchuck -ohjattu kaukoputken tarkennin: Jos olet koskaan yrittänyt käyttää kaukoputkea suhteellisen suurilla suurennoksilla (> 150x), olet todennäköisesti huomannut, kuinka kaukoputken tarkennuksen manuaalinen säätäminen voi aiheuttaa todellista kipua niskassa
Langaton Wii Nunchuck -ohjattu Arduino: 7 vaihetta
Langaton Wii Nunchuck -ohjattu Arduino: Käytä täysin muuttamatonta langatonta Wii Nunchuck -ohjausjärjestelmää mihin tahansa Arduino -pohjaiseen projektiin. Ei lisättyjä radiolähettimen/vastaanottimen pareja jne. Tämä ohje sisältää oletuksia Arduinon mikro -ohjaimesta. Radio