Sadržaj:
- Korak 1: Uključite svoj NunChuck
- Korak 2: Upoznajte Mozzija
- Korak 3: Sve spojite
- Korak 4: Završni dodiri
Video: Wii Nunchuck sintetizator: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Svijet Wii glazbe:
Odlučio sam napokon spojiti svoju ljubav prema glazbi s malo iskustva u programiranju koje sam stekao posljednjih nekoliko godina. Zainteresiran sam za stvaranje vlastitog instrumenta otkad sam u svojoj školi vidio govor Toda Machovera. Ako niste upoznati s njegovim radom, dajte mu Google jer on već nekoliko godina pomiče granice glazbe, tehnologije, kao i njihovo ukrštanje (medijski laboratoriji MIT -a, Rock Band, Guitar Hero itd.).
Povezao sam svoj Nunchuck s Arduino Uno koji radi u biblioteci za sintezu zvuka Mozzi zbog dobro dokumentirane uporabe oba na mreži. Radi lakšeg korištenja, WiiChuck adapter za matičnu ploču koji se priključuje izravno na Arduino. Ovaj relativno jednostavan projekt reproducira niz tonova ovisno o visini (YZ-ravnina) mjerenoj s Nunchuckovog akcelerometra. Vrijednost Y upravljačke palice preslikava se u pojačanje kako bi visina tona bila glasnija ili mekša. Također mijenja akorde ovisno o Z-gumbu i uključuje omotnicu fazne modulacije kada se pritisne C-gumb. Učestalost omotnice tada se mijenja s Roll -om izmjerenim iz Nunchucka (slika okreće gumb).
Resursi:
- 1 x Arduino Uno
- 1 x Wii Nuchuck
- 1 x WiiChuck adapter
- 1 x kompatibilna 3,5 mm ženska stereo utičnica za matičnu ploču
- 1 x 3,5 mm audio kabel
- 1x nekakav zvučnik (Prvo možete uključiti zujalicu da biste je isprobali
- 4-5 žica raznih boja
Izborno, ali preporučeno:
- 1 x 330 Ohm otpornik
- 1 x.1 uF kondenzator
Korak 1: Uključite svoj NunChuck
Kopirajte/zalijepite klasu WiiChuck s Arduino igrališta. Trebat će nam verzija s deklaracijom PWR i GND pinova. Spremite ga kao WiiChuck.h i držite ga u istom direktoriju kao i vaš projekt.
Sada kopirajte/zalijepite sljedeće u Arduino IDE i prenesite ga.
#include "Wire.h" //#include "WiiChuckClass.h" // najvjerojatnije njegov WiiChuck.h za nas ostale. #include "WiiChuck.h" WiiChuck chuck = WiiChuck ();
void setup () {
// nunchuck_init (); Serial.begin (115200); chuck.begin (); chuck.update (); //chuck.calibrateJoy (); }
void loop () {{100} {101}
kašnjenje (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 (",");
// nije funkcija // if (chuck.buttonC ()) {
if (chuck.buttonC) {Serial.print ("C"); } else {Serial.print ("-"); }
Serial.println ();
}
Isključite svoj Arduino iz napajanja i spojite svoj WiiChuck adapter na analogne pinove 2-5 na vašem Arduinu.
Ponovo se spojite na napajanje i provjerite da li se vrijednosti Nunchucka šalju na vaš Arduino i ispisuju na serijski monitor. Ako ne vidite nikakvu promjenu u brojevima, provjerite jesu li veze dobre i funkcionirate li Nunchuck. Nekoliko sam dana pokušavao popraviti softver prije nego što sam shvatio da je žica mog Nunchucka interno prekinuta!
Zatim ćemo sve spojiti na Mozzija…
Korak 2: Upoznajte Mozzija
Prvo ćete morati preuzeti najnoviju verziju Mozzija. Pokreću se donacijama pa donirajte ako se osjećate tako skloni i preuzmite knjižnicu. Možete ga jednostavno dodati u svoje knjižnice odabirom Sketch> Libraries> Add. ZIP Library … iz Arduino IDE -a.
Sada ćemo spojiti priključak za slušalice od 3,5 mm na matičnu ploču i Arduino kako bismo se kasnije mogli lako povezati s njim (zasad možete isključiti Nunchuck i adapter).
- Priključite Jack u donji desni kut ploče kako biste napravili mjesta za ostale. Utičnica bi trebala biti široka 5 igala.
- Spojite srednji red sa masom kratkospojnom žicom.
- Spojite gornji red utičnice s praznim redom iznad (10. red na slici). Ovo je žica koja prenosi audio signal.
- Spojite i digitalni pin ~ 9 na red 10.
- Spojite uzemljenje na svom Arduinu s uzemljenjem na ploči.
- Ne morate nužno koristiti otpornik i kondenzator, ali ako to ne učinite, možda ćete primijetiti snažan škripu. Djeluje kao niskopropusni filter za uklanjanje frekvencija iznad ~ 15 kHz.
Otvorite Mozzijevu Sinewave skicu u Arduino IDE -u odabirom Datoteka> Primjeri> Mozzi> Osnove> Sinewave. Ovo je u biti Mozzijev ekvivalent "Hello World".
Prenesite skicu i priključite zvučnik na ploču. Možete koristiti i zujalicu ako još niste spojili matičnu ploču na audio priključnicu.
Ako iz zvučnika ne čujete konstantan A4 (440Hz), provjerite jesu li sve veze dobre i pokušajte ponovno.
Zatim ćemo Nunchuck spojiti na Arduino!
Korak 3: Sve spojite
Sada ćemo koristiti vrijednost kotrljanja iz Nunchucka za promjenu frekvencije sinusnog vala.
Iz Arduino IDE -a odaberite Datoteka> Primjeri> Mozzi> Senzori> Piezo frekvencija
Morat ćemo dodati nekoliko redaka ovom kodu kako bi mogao raditi s Nunchuckom. Dodajte uključivanje u knjižnicu WiiChuck i instancirajte objekt WiiChuck koji se zove chuck. Također možete komentirati deklaraciju PIEZO_PIN ili je jednostavno izbrisati jer je nećemo koristiti.
#include "WiiChuck. H"
WiiChuck stezna glava = WiiChuck (); // const int PIEZO_PIN = 3; // postavlja pin za analogni ulaz za piezo
Sada u postavljanju trebat ćemo dodati sljedeće:
chuck.begin (); chuck.update ();
i na kraju ćemo morati promijeniti nekoliko stvari u updateControl ():
void updateControl () {
chuck.update (); // dobiti najnovije podatke o nunchucku // pročitati piezo // int piezo_value = mozziAnalogRead (PIEZO_PIN); // vrijednost je 0-1023 int piezo_value = map (Komentirajte redak koji postavlja piezo_value i ispod dodajte sljedeće:
void updateControl () {chuck.update (); // dobiti najnovije podatke o nunchucku // pročitati piezo // int piezo_value = mozziAnalogRead (PIEZO_PIN); // vrijednost je 0-1023 // Ne treba nam gornji redak, ali zašto ne bismo preslikali role na isti raspon? int piezo_value = karta (chuck.readRoll (), -180, 180, 0 1023);
Učitajte kôd i učestalost bi trebala odgovarati vašem Nunchuck's Roll -u. Pokušajte ga preslikati u različite frekvencijske raspone. Ako niste dolje u skici primijetili, vrijednost senzora pomnožena je s 3, pa trenutno sviramo tonove od 0 Hz do oko 3000 Hz.
Korak 4: Završni dodiri
Sada ste spremni za učitavanje konačne verzije koda koju sam sastavio iz prethodnog koraka i još nekoliko Mozzijevih primjera (Phase_Mod_Envelope i Control_Gain da budemo točni). Da bih si olakšao život uključio sam i datoteku pod nazivom pitches.h koja jednostavno definira vrijednosti frekvencije s poznatim imenima nota (npr. NOTE_A4).
Predlažem da pročitate Mozzijevu dokumentaciju jer je veći dio koda izravno iz primjera, osim koda za Nunchuck.
Evo veze do mog Git spremišta. Uključene su sve važne datoteke osim Mozzijeve knjižnice koju biste trebali nabaviti s njihove web stranice kako bi bila ažurirana. Preuzmite WiiMusic.ino i prenesite ga na svoj uređaj da biste čuli kako zvuči. Predlažem da se poigrate parametrima koje mijenjam (promijenite raspone karata, podijelite/pomnožite brojeve itd.) Jer sam tako pronašao zvuk koji sam tražio.
Odraz
Ne osjećam se kao da sam završio. To ne znači da nisam zadovoljan projektom ili zvukom koji proizvodi, ali osjećam se kao da sam samo umočio prste u novi svijet koji želim nastaviti istraživati pa ću dodati novu granu iz ovog projekta dok nastavljam raditi.
Ipak, s obzirom na to da je ovo moje prvo istinsko putovanje u svijet mikrokontrolera pa sam jako zahvalan na iskustvu učenja. Dvadesetak sati koje sam proveo radeći na tome dalo mi je božićne ideje za sebe i praktički svakog člana svoje obitelji. Pomalo mi je žao što na ovom projektu nisam radila s nekim drugim jer sam usput mogla koristiti dosta savjeta i smjernica. Međutim, osobno sam puno naučio kroz svoja ispitivanja, uključujući tri dana čupanja kose pokušavajući otkloniti softverski problem koji nikada nije postojao (unutrašnja žica u Nunchucku je pukla).
Još uvijek postoji niz mogućnosti za napredovanje. Na primjer, volio bih koristiti Arduino kao vrstu MIDI sučelja između MIDI kontrolera i izlaza za slušalice za promjenu parametara MIDI note jer postoji toliko mnogo njih za izabrati (glasnoća, granična vrijednost, frekvencija omotnice, nagib tona, modulation, vibrato, you name it). To bi omogućilo puno više fleksibilnosti, uključujući promjenu parametara pomoću gumba i jednostavno sviranje akorda koji nije teško kodiran u C ++ nizu.
Preporučeni:
Arpeggirajući sintetizator (komarac I): 6 koraka
Arpeggirajući sintetizator (Mosquito I): Mosquito I je mali arpeggirajući sintisajzer koji koristi Arduino Nano i Mozzijevu biblioteku za sintezu zvuka. Može reproducirati više od dvadeset sekvenci u 8 koraka, ali možete dodati koliko god želite prilagođenih sekvenci. Relativno je jednostavno postaviti i ne
Sintetizator vode s MakeyMakey -om i ogrebotinom: 6 koraka (sa slikama)
Sintetizator vode s MakeyMakey -om i grebanjem: Korištenje MakeyMakey -a za pretvaranje različitih materijala u prekidače ili gumbe i na taj način pokretanje pokreta ili zvukova na računalu fascinantna je stvar. Nauči se koji materijal provodi impuls slabe struje i može se izmisliti i eksperimentirati sa
Sjajan analogni sintetizator/organ koji koristi samo diskretne komponente: 10 koraka (sa slikama)
Sjajan analogni sintesajzer/organ koji koristi samo diskretne komponente: analogni sintetizatori su jako cool, ali ih je i prilično teško napraviti. Stoga sam želio učiniti jedan što jednostavnijim, tako da njegovo funkcioniranje može biti lako razumljivo. Da bi on funkcionirao, vi potrebno je nekoliko osnovnih podkrugova: jednostavan oscilator s otporom
Moj prvi sintetizator: 29 koraka (sa slikama)
Moj prvi sintetizator: dječji sintetizator nastao je dok sam sjedio pogrbljen nad zamršenim neredom žica sintisajzera. Došao je moj prijatelj Oliver, procijenio situaciju i rekao: "Znate da ste uspjeli napraviti najsloženiju dječju igračku na svijetu." Dok je moj početni r
Fono -kronoksil - sintetizator od 360 stupnjeva: 3 koraka (sa slikama)
Fono -kronoksil - Sintisajzer od 360 stupnjeva: Skulptor Julien Signolet iz Pariza i glazbenik Mathias Durand obratio mi se radi interaktivne zvučne instalacije u Parc Floral u Parizu za Nuit Blanche 2019. Instalacija bi bila vani i ne bih bio prisutan tijekom u