Obsah:
- Krok 1: Zapojte NunChuck
- Krok 2: Seznámení s Mozzi
- Krok 3: Dát to všechno dohromady
- Krok 4: Poslední dotyky
Video: Wii Nunchuck Synthesizer: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:19
Svět hudby Wii:
Rozhodl jsem se konečně spojit svou lásku k hudbě s trochou zkušeností s programováním, které jsem za posledních několik let získal. O vytvoření vlastního nástroje jsem se zajímal od té doby, co jsem ve své škole viděl proslov Toda Machovera. Pokud nejste obeznámeni s jeho prací, dejte mu Google, protože již několik let posouvá hranice hudby, technologie a jejich protnutí (mediální laboratoře MIT, rocková kapela, kytarový hrdina atd.)).
Díky dobře zdokumentovanému používání obou online jsem připojil svůj Nunchuck k Arduino Uno běžícím na knihovně zvukové syntézy Mozzi. Pro usnadnění používám adaptér WiiChuck, který se zapojuje přímo do Arduina. Tento relativně jednoduchý projekt hraje řadu výšek v závislosti na Pitch (YZ-Plane) měřeném z Nunchuckova akcelerometru. Hodnota Y joysticku je namapována na zesílení, aby bylo hřiště hlasitější nebo měkčí. Také mění akordy v závislosti na tlačítku Z a zapíná obálku fázové modulace po stisknutí tlačítka C. Frekvence obálky je poté upravena pomocí role měřené z Nunchucku (obrázek otáčením knoflíku).
Zdroje:
- 1 x Arduino Uno
- 1 x Wii Nunchuck
- 1 x adaptér WiiChuck
- 1 x 3,5 mm stereo stereo jack kompatibilní s breadboard
- 1 x 3,5 mm audio kabel
- 1 x nějaký reproduktor (Nejprve můžete zapojit bzučák a otestovat jej
- 4-5 Dráty různých barev
Volitelné, ale doporučené:
- 1 x odpor 330 ohmů
- 1 x.1 uF kondenzátor
Krok 1: Zapojte NunChuck
Zkopírujte/vložte třídu WiiChuck z Arduino Playground. Budeme potřebovat verzi s deklarací pinů PWR a GND. Uložte jej jako WiiChuck.h a uložte jej do stejného adresáře jako váš projekt.
Nyní zkopírujte/vložte následující do Arduino IDE a nahrajte jej.
#include "Wire.h" //#include "WiiChuckClass.h" // s největší pravděpodobností jeho WiiChuck.h pro nás ostatní. #include "WiiChuck.h" WiiChuck chuck = WiiChuck ();
neplatné nastavení () {
// nunchuck_init (); Serial.begin (115200); chuck.begin (); chuck.update (); //chuck.calibrateJoy (); }
prázdná smyčka () {
zpoždění (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 (",");
// není funkce // if (chuck.buttonC ()) {
if (chuck.buttonC) {Serial.print ("C"); } else {Serial.print ("-"); }
Serial.println ();
}
Odpojte Arduino od napájení a připojte adaptér WiiChuck k analogovým pinům 2-5 na Arduinu.
Znovu připojte napájení a zajistěte, aby hodnoty Nunchucku byly odesílány do vašeho Arduina a vytištěny na sériový monitor. Pokud v číslech nevidíte žádnou změnu, ujistěte se, že máte dobré připojení a že Nunchuck funguje. Strávil jsem několik dní zkoušením opravit software, než mi došlo, že můj Nunchuckův drát byl vnitřně zlomený!
Dále vše připojíme k Mozzi…
Krok 2: Seznámení s Mozzi
Nejprve si budete muset stáhnout nejnovější verzi Mozzi. Živí je dary, proto přispějte, pokud se cítíte tak nakloněni, a stáhněte si knihovnu. Můžete jej snadno přidat do svých knihoven výběrem Sketch> Libraries> Add. ZIP Library… z Arduino IDE.
Nyní připojíme 3,5 mm konektor pro sluchátka k prkénku a Arduinu, abychom se k němu mohli snadno připojit později (prozatím můžete odpojit Nunchuck a adaptér).
- Zapojte Jack do pravého dolního rohu desky a uvolněte místo pro zbytek. Zvedák by měl být široký 5 pinů.
- Připojte střední řadu k zemi pomocí propojovacího vodiče.
- Připojte nejvyšší řadu zvedáku k prázdné řadě výše (řada 10 na obrázku). Toto je vodič nesoucí zvukový signál.
- Připojte také Digital Pin ~ 9 na řádek 10.
- Připojte Ground na vašem Arduinu k zemnící liště na breadboardu.
- Ještě nemusíte nutně používat odpor a kondenzátor, ale pokud ne, můžete si všimnout vysokého pískání. Funguje jako dolní propust, která eliminuje frekvence nad ~ 15 kHz.
Otevřete skicu Mozzi's Sinewave v Arduino IDE výběrem Soubor> Příklady> Mozzi> Základy> Sinewave. Toto je v podstatě Mozziho ekvivalent „Hello World“.
Nahrajte skicu a zapojte reproduktor na prkénko. Můžete také použít bzučák, pokud jste dosud nepropojili prkénko do zvukového konektoru.
Pokud z reproduktoru neslyšíte konstantní formát A4 (440 Hz), ujistěte se, že jsou všechna vaše připojení v pořádku, a zkuste to znovu.
Dále připojíme Nunchuck k Arduinu!
Krok 3: Dát to všechno dohromady
Nyní použijeme hodnotu převrácení z Nunchucku ke změně frekvence sinusové vlny.
Z Arduino IDE zvolte Soubor> Příklady> Mozzi> Senzory> Piezo frekvence
Aby tento kód fungoval s Nunchuckem, budeme muset přidat několik řádků. Přidejte zahrnutí do knihovny WiiChuck a vytvořte instanci objektu WiiChuck s názvem chuck. Můžete také okomentovat deklaraci PIEZO_PIN nebo ji jednoduše smazat, protože ji nebudeme používat.
#include "WiiChuck. H"
WiiChuck chuck = WiiChuck (); // const int PIEZO_PIN = 3; // nastavte analogový vstupní pin pro piezo
Nyní v nastavení budeme muset přidat následující:
chuck.begin (); chuck.update ();
a nakonec budeme muset změnit několik věcí v updateControl ():
void updateControl () {
chuck.update (); // získat nejnovější data nunchucku // přečíst piezo // int piezo_value = mozziAnalogRead (PIEZO_PIN); // hodnota je 0-1023 int piezo_value = mapa (Okomentujte řádek, který nastavuje piezo_value, a přidejte pod něj následující:
void updateControl () {chuck.update (); // získat nejnovější data nunchucku // přečíst piezo // int piezo_value = mozziAnalogRead (PIEZO_PIN); // hodnota je 0-1023 // Nepotřebujeme řádek výše, ale proč nemapovat roli na stejný rozsah? int piezo_value = mapa (chuck.readRoll (), -180, 180, 0 1023);
Nahrajte kód a frekvence by měla odpovídat vašemu Nunchuck's Roll. Zkuste jej namapovat na různé frekvenční rozsahy. Pokud jste si níže v náčrtu nevšimli, hodnota ze snímače se vynásobí 3, takže aktuálně hrajeme tóny od 0 Hz do přibližně 3000 Hz.
Krok 4: Poslední dotyky
Nyní jste připraveni nahrát finální verzi kódu, který jsem sestavil z předchozího kroku, a několik dalších příkladů Mozziho (přesněji Phase_Mod_Envelope a Control_Gain). Abych si usnadnil život, přidal jsem také soubor s názvem pitches.h, který jednoduše definuje hodnoty frekvence se známými názvy not (tj. NOTE_A4).
Doporučuji přečíst si dokumentaci Mozzi, protože velká část kódu je přímo z příkladů kromě kódu pro Nunchuck.
Zde je odkaz na mé úložiště Git. Zahrnuty jsou všechny důležité soubory kromě knihovny Mozzi, kterou byste měli získat z jejich webových stránek, takže je aktuální. Stáhněte si WiiMusic.ino a nahrajte jej do svého zařízení, abyste slyšeli, jak to zní. Navrhuji, abyste si pohráli s parametry, které měním (změňte rozsahy mapy, rozdělte/vynásobte čísla atd.), Protože tak jsem našel konkrétní zvuk, který jsem hledal.
Odraz
Nemám pocit, že bych úplně skončil. To neznamená, že nejsem spokojený s projektem nebo zvukem, který vydává, ale mám pocit, že jsem jen ponořil prsty do nového světa, který chci stále zkoumat, a tak budu pokračovat, přidám novou větev z tohoto projektu pracovat.
Přesto bylo řečeno, že to byla moje první skutečná cesta do světa mikrokontrolérů, takže jsem velmi vděčný za zkušenost s učením. Asi dvacet hodin, které jsem na tom strávil, mi dalo vánoční nápady pro sebe a prakticky pro každého člena mé rodiny. Trochu lituji, že jsem na tomto projektu nepracoval s někým jiným, protože jsem mohl na cestě použít spoustu rad a pokynů. Osobně jsem se však během svých zkoušek hodně naučil, včetně třídenního vytrhávání vlasů při pokusu o ladění softwarového problému, který tu nikdy nebyl (přerušil se vnitřní drát v Nunchucku).
Stále existuje řada možností, jak se pohnout kupředu. Například bych rád použil Arduino jako typ MIDI rozhraní mezi MIDI kontrolérem a výstupem pro sluchátka pro změnu parametrů MIDI noty, protože je jich tolik na výběr (hlasitost, cutoff, frekvence obálky, pitch bend, modulace, vibrato, pojmenujete to). To by umožnilo mnohem větší flexibilitu, včetně přepínání parametrů pomocí tlačítek, a jednoduše hrát akord, který není pevně zakódován do pole C ++.
Doporučuje:
Jak vyrobit epickou zbraň Wii (za méně než 10 $): 4 kroky
How to Make an Epic Wii Gun (In Under $ 10): Welcome, thanks for trying my instruct !!! :) Dnes budeme vyrábět Wii zbraň pro zbraňové hry na konzoli Wii. Takže … Začněme
Přepínač Como Usar Un WII Pro Con Una Přepínač: 4 kroky
Como Usar Un WII Pro Controller Con Una Switch -hackeada .: Como usar un WII Pro Controller con una switch -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
Nunchuck Controlled Telescope Focuser: 6 Steps (with Pictures)
Nunchuck Controlled Telescope Focuser: Pokud jste někdy zkoušeli používat svůj dalekohled při relativně vysokých zvětšeních (> 150x), pravděpodobně jste si všimli, že manuální nastavení zaostřovače dalekohledu může mít za následek skutečnou bolest v krku, protože i tenčí nastavení vám
Jak zničit připojení k internetu Xbox 360, Wii a PS3 pomocí Nintendo Ds nebo Ds Lite: 4 kroky
Jak zničit připojení k internetu Xbox 360, Wii a PS3 pomocí Nintendo Ds nebo Ds Lite .: V tomto návodu vás naučím, jak snadno ztratit připojení k internetu na xbox 360 pomocí wi-fi připojení na Ds. Někdo potvrdil, že to funguje pro PS3, ale já nemám PS3, takže beru jeho slovo. Zkuste použít stejné kroky
Bezdrátové Wii Nunchuck ovládané Arduino: 7 kroků
Bezdrátové Wii Nunchuck řízené Arduino: Použijte zcela nemodifikovaný bezdrátový Wii & Nbchuck Nunchuck jako řídicí systém pro jakýkoli projekt založený na Arduinu. Žádné přidané páry rádiových vysílačů a přijímačů atd. Tento návod předpokládá určité zkušenosti s mikrokontrolérem Arduino. Poloměr