Obsah:
- Krok 1: Pripojte svoj NunChuck
- Krok 2: Zoznámte sa s Mozzi
- Krok 3: Dajte to všetko dohromady
- Krok 4: Konečné dotyky
Video: Syntetizátor Wii Nunchuck: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
Svet hudby Wii:
Rozhodol som sa konečne spojiť svoju lásku k hudbe s trochou skúseností s programovaním, ktoré som získal za posledných niekoľko rokov. O vytvorenie vlastného nástroja som sa zaujímal odvtedy, čo som v škole videl prednášku Toda Machovera. Ak nie ste oboznámení s jeho prácou, dajte mu Google, pretože už niekoľko rokov posúva hranice hudby, technológie a ich priesečníky (mediálne laboratóriá MIT, rocková kapela, gitarový hrdina atď.)).
Pripojil som svoj Nunchuck k Arduino Uno, ktoré beží na knižnici syntézy zvuku Mozzi, kvôli dobre zdokumentovanému použitiu oboch online. Na uľahčenie používam adaptér na dosku WiiChuck, ktorý sa pripája priamo k Arduinu. Tento relatívne jednoduchý projekt hrá sériu výšok v závislosti od Pitch (YZ-Plane) meranej z Nunchuckovho akcelerometra. Hodnota Y joysticku je namapovaná na zosilnenie, aby bolo ihrisko hlasnejšie alebo mäkšie. Tiež mení akordy v závislosti od tlačidla Z a po stlačení tlačidla C zapína obálku fázovej modulácie. Frekvencia obálky sa potom upraví pomocou zvitku meraného z Nunchucku (obrázok otáčajúci sa gombíkom).
Zdroje:
- 1 x Arduino Uno
- 1 x Wii Nunchuck
- 1 x adaptér WiiChuck
- 1 x 3,5 mm stereo stereofónny konektor kompatibilný s doštičkou
- 1 x 3,5 mm zvukový kábel
- 1 x nejaký reproduktor (Na vyskúšanie môžete najskôr zapojiť bzučiak
- 4-5 Drôty rôznych farieb
Voliteľné, ale odporúčané:
- 1 x odpor 330 ohmov
- 1 x.1 uF kondenzátor
Krok 1: Pripojte svoj NunChuck
Skopírujte/prilepte triedu WiiChuck z Arduino Playground. Budeme potrebovať verziu s deklaráciou pinov PWR a GND. Uložte ho ako WiiChuck.h a uložte ho do rovnakého adresára ako váš projekt.
Teraz skopírujte/prilepte nasledujúce položky do IDE Arduino a nahrajte ich.
#include "Wire.h" //#include "WiiChuckClass.h" // s najväčšou pravdepodobnosťou je to WiiChuck.h pre nás ostatných. #include "WiiChuck.h" skľučovadlo WiiChuck = WiiChuck ();
neplatné nastavenie () {
// nunchuck_init (); Serial.begin (115200); chuck.begin (); chuck.update (); //chuck.calibrateJoy (); }
prázdna slučka () {
oneskorenie (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 (",");
// nie je funkcia // if (chuck.buttonC ()) {
if (chuck.buttonC) {Serial.print ("C"); } else {Serial.print ("-"); }
Serial.println ();
}
Odpojte zariadenie Arduino od napájania a pripojte adaptér WiiChuck k analógovým kolíkom 2-5 na zariadení Arduino.
Znova pripojte napájanie a zaistite, aby sa hodnoty Nunchucku odosielali do vášho Arduina a tlačili sa na sériový monitor. Ak na číslach nevidíte žiadnu zmenu, uistite sa, že máte dobré kontakty a že Nunchuck funguje. Strávil som niekoľko dní pokusom o opravu softvéru, kým som zistil, že môj Nunchuckov drôt bol vnútorne zlomený!
Ďalej všetko spojíme s Mozzim…
Krok 2: Zoznámte sa s Mozzi
Najprv si musíte stiahnuť najnovšiu verziu programu Mozzi. Živia sa darmi, takže ak máte pocit, že majú záujem, darujte ich a stiahnite si knižnicu. Môžete ho ľahko pridať do svojich knižníc výberom položky Skica> Knižnice> Pridať knižnicu. ZIP … z Arduino IDE.
Teraz pripojíme 3,5 mm konektor pre slúchadlá k breadboardu a Arduinu, aby sme sa k nemu neskôr mohli ľahko pripojiť (zatiaľ môžete odpojiť Nunchuck a adaptér).
- Pripojte konektor do pravého dolného rohu dosky a uvoľnite tak miesto pre ostatné. Zdvihák by mal mať šírku 5 pinov.
- Pripojte stredný rad k zemi prepojovacím káblom.
- Pripojte horný rad zdviháka k prázdnemu radu vyššie (riadok 10 na obrázku). Toto je drôt prenášajúci zvukový signál.
- Pripojte digitálny kolík ~ 9 aj k riadku 10.
- Pripojte Ground na vašom Arduino k uzemňovacej lište na doske.
- Zatiaľ nemusíte nutne používať odpor a kondenzátor, ale ak nie, môžete si všimnúť vysoký zvuk. Funguje ako dolnopriepustný filter na elimináciu frekvencií nad ~ 15 kHz.
Otvorte skicu Mozziho sinewave v Arduino IDE výberom položky Súbor> Príklady> Mozzi> Základy> Sinewave. Toto je v podstate Mozziho ekvivalent „Hello World“.
Nahrajte náčrt a zapojte reproduktor do vývesky. Bzučiak môžete použiť aj vtedy, ak ste prepojovaciu dosku zatiaľ nepripojili k zvukovému konektoru.
Ak z reproduktora nepočujete konštantný formát A4 (440 Hz), uistite sa, že sú všetky pripojenia v poriadku, a skúste to znova.
Ďalej pripojíme Nunchuck k Arduinu!
Krok 3: Dajte to všetko dohromady
Teraz použijeme hodnotu zvitku z Nunchucku na zmenu frekvencie sinusovky.
Z Arduino IDE vyberte Súbor> Príklady> Mozzi> Senzory> Piezo frekvencia
Aby tento kód fungoval s Nunchuckom, budeme musieť do tohto kódu pridať niekoľko riadkov. Pridajte zahrnutie do knižnice WiiChuck a vytvorte inštanciu objektu WiiChuck s názvom chuck. Môžete tiež komentovať vyhlásenie PIEZO_PIN alebo ho jednoducho odstrániť, pretože ho nebudeme používať.
#include "WiiChuck. H"
Skľučovadlo WiiChuck = WiiChuck (); // const int PIEZO_PIN = 3; // nastavenie analógového vstupného kolíka pre piezo
Teraz v nastavení budeme musieť pridať nasledujúce:
chuck.begin (); chuck.update ();
a nakoniec budeme musieť zmeniť niekoľko vecí v updateControl ():
void updateControl () {
chuck.update (); // získať najnovšie údaje o nunchucku // prečítať piezo // int piezo_value = mozziAnalogRead (PIEZO_PIN); // hodnota je 0-1023 int piezo_value = mapa (Okomentujte riadok, ktorý nastavuje hodnotu piezo_value, a nižšie pridajte nasledujúce:
void updateControl () {chuck.update (); // získať najnovšie údaje o nunchucku // prečítať piezo // int piezo_value = mozziAnalogRead (PIEZO_PIN); // hodnota je 0-1023 // riadok vyššie nepotrebujeme, ale prečo nemapovať rolku na rovnaký rozsah? int piezo_value = mapa (chuck.readRoll (), -180, 180, 0 1023);
Nahrajte kód a frekvencia by mala zodpovedať vášmu Nunchuck's Roll. Skúste to mapovať do rôznych frekvenčných rozsahov. Ak ste si nižšie v náčrte nevšimli, hodnota zo snímača sa vynásobí 3, takže v súčasnej dobe hráme tóny od 0 Hz do asi 3000 Hz.
Krok 4: Konečné dotyky
Teraz ste pripravení nahrať konečnú verziu kódu, ktorý som zostavil z predchádzajúceho kroku, a niekoľko ďalších príkladov Mozziho (presnejšie Phase_Mod_Envelope a Control_Gain). Aby som si uľahčil život, pridal som aj súbor s názvom pitches.h, ktorý jednoducho definuje hodnoty frekvencie známymi názvami poznámok (t.j. NOTE_A4).
Odporúčame prečítať si dokumentáciu Mozzi, pretože veľká časť kódu je priamo z príkladov, okrem kódu pre Nunchuck.
Tu je odkaz na moje úložisko Git. Zahrnuté sú všetky dôležité súbory okrem knižnice Mozzi, ktorú by ste mali získať z ich webových stránok, takže sú aktuálne. Stiahnite si WiiMusic.ino a nahrajte ho do svojho zariadenia, aby ste počuli, ako to znie. Navrhujem, aby ste sa pohrali s parametrami, ktoré mením (zmeňte rozsahy mapy, rozdeľte/vynásobte čísla atď.), Pretože takto som našiel konkrétny zvuk, ktorý som hľadal.
Odraz
Nemám pocit, že by som celkom skončil. To neznamená, že nie som spokojný s projektom alebo so zvukom, ktorý vydáva, ale mám pocit, že som si ponoril prsty na nohách do nového sveta, ktorý chcem stále skúmať, a tak budem v pokračovaní pridávať novú vetvu z tohto projektu. pracovať.
Napriek tomu to bola moja prvá skutočná cesta do sveta mikrokontrolérov, takže som veľmi vďačný za skúsenosti s učením. Asi dvadsať hodín, ktoré som na tom strávil, mi dalo vianočné nápady pre seba a prakticky pre každého člena mojej rodiny. Trochu ľutujem, že som na tomto projekte nespracoval s niekým iným, pretože som mohol počas cesty využiť množstvo rád a usmernení. Osobne som sa však počas svojich skúšok veľa naučil, vrátane troch dní vytrhávania vlasov pri pokuse o ladenie softvérového problému, ktorý nikdy neexistoval (vnútorný vodič v Nunchucku sa zlomil).
Vpred je stále množstvo možností. Napríklad by som rád používal Arduino ako typ MIDI rozhrania medzi MIDI ovládačom a výstupom pre slúchadlá na zmenu parametrov MIDI noty, pretože je z čoho vyberať (hlasitosť, prerušenie, frekvencia obálky, pitch bend), modulácia, vibrato, pomenujete to). To by umožnilo oveľa väčšiu flexibilitu vrátane prepínania parametrov pomocou tlačidiel a jednoduchého hrania akordu, ktorý nie je pevne zakódovaný do poľa C ++.
Odporúča:
Arpeggiačný syntetizátor (Mosquito I): 6 krokov
Arpeggiating Synthesizer (Mosquito I): Mosquito I je malý arpeggiačný syntetizátor, ktorý používa Arduino Nano a knižnicu syntézy zvuku Mozzi. Dokáže prehrať viac ako dvadsať 8-krokových sekvencií, ale môžete pridať ľubovoľný počet vlastných sekvencií. Je pomerne jednoduché nastaviť a
Phono -Chronoxyle - 360 stupňový syntetizátor: 3 kroky (s obrázkami)
Phono -Chronoxyle - 360 stupňový syntetizátor: Sochár Julien Signolet pochádzajúci z Paríža a hudobník Mathias Durand ma oslovili na interaktívnu zvukovú inštaláciu v Parc Floral v Paríži na Nuit Blanche 2019. Inštalácia by bola vonku a ja by som počas nej nebol prítomný v
Digitálny syntetizátor VRA8-Px pre Arduino Uno: 3 kroky
Digitálny syntetizátor VRA8-Px pre Arduino Uno: Vyrobila spoločnosť ISGK Instruments https://github.com/risgk/digital-synth-vra8-p/tree/vra8-px-v2 http://risgk.github.io/Concept 3 Hlasový parafonický syntetizátor pre Arduino Uno Variant digitálneho syntetizátora VRA8-P
Jednoduchý syntetizátor - ovládač Axoloti a úvod do softvéru: 3 kroky
Simple Synth - Axoloti Controller and Software Intro: Axoloti je všestranná zvuková doska, ktorú je možné naprogramovať podobne ako Arduino, iba v prostredí vývoja zvuku, ktoré nie je založené na uzle. Tam naprogramované záplaty sa nahrajú po dokončení a potom sa spustia autonómne na doske. Má viacero
Bezdrôtové Wii Nunchuck ovládané Arduino: 7 krokov
Bezdrôtové Wii Nunchuck ovládané Arduino: Použite úplne nemodifikovaný bezdrôtový Wii & Nbchuck Nunchuck ako riadiaci systém pre akýkoľvek projekt založený na Arduine. Žiadne pridané páry rádiových vysielačov a prijímačov atď. Tento návod predpokladá určité skúsenosti s mikrokontrolérom Arduino. Polomer