INHOUDSOPGAWE:

Keytar Hero (met behulp van 'n Wii -kitaarbeheerder as 'n sintetiseerder): 7 stappe (met foto's)
Keytar Hero (met behulp van 'n Wii -kitaarbeheerder as 'n sintetiseerder): 7 stappe (met foto's)

Video: Keytar Hero (met behulp van 'n Wii -kitaarbeheerder as 'n sintetiseerder): 7 stappe (met foto's)

Video: Keytar Hero (met behulp van 'n Wii -kitaarbeheerder as 'n sintetiseerder): 7 stappe (met foto's)
Video: Zigbee Ethernet шлюз Zigstar Lilyzig с поддержкой Power over Ethernet, ставим второй zigbee2mqtt 2024, Julie
Anonim
Image
Image
Stap 1: Framboos Pi (aanvanklike opstelling)
Stap 1: Framboos Pi (aanvanklike opstelling)

'N Tiental jaar gelede was die Guitar Hero -speletjies woedend, en daar lê seker baie ou kitaarbeheerders wat stof bymekaarmaak. Hulle het baie knoppies, knoppe en hefbome, so waarom kan u dit nie weer goed gebruik nie? Die kitaarbeheerder maak normaalweg geen geluid op sigself nie, maar in hierdie tutoriaal sal ek jou wys hoe om 'n Wii Guitar Hero Controller om te skakel sodat dit as 'n sintetiseerder gespeel kan word.

Voorrade

  • Guitar Hero Wii -beheerder
  • Nunchucky breakout board (beskikbaar op Adafruit hier)
  • 4ea springdrade (vroulik tot vroulik)
  • 2 krimpverbindings (opsioneel)
  • Framboos Pi (3 B+ of 4 verkieslik)
  • 16 GB MicroSD -kaart

Stap 1: Stap 1: Framboos Pi (aanvanklike opstelling)

'N Raspberry Pi is die brein en die kern van hierdie projek, dus die eerste ding wat ons moet doen, is om een vir ons projek op te stel. Ek het hierdie projek op beide 'n Raspberry Pi 3 B+ en 'n 4 probeer, en dit lyk asof beide goed werk.

Raspberry Pi's is mikro -rekenaars wat alles op 'n microSD -kaart stoor in plaas van 'n hardeskyf … insluitend die bedryfstelsel. Die tipiese manier om dit te gebruik, is om die nuutste bedryfstelsel af te laai en 'n beeld daarvan soos volg op 'n microSD -kaart te verbrand:

  • Gaan na 'n aparte rekenaar of skootrekenaar na
  • Laai die nuutste Raspbian OS af. (Buster ten tyde van hierdie skrywe). Daar is verskeie weergawes op die bladsy beskikbaar, wat min of meer sagteware bevat, afhangende van u voorkeur. Hulle behoort almal goed te werk, maar ek gebruik die opsie 'Raspbian Buster met lessenaar en aanbevole sagteware' omdat dit 'n paar programmeer -IDE's en ander handige programme bevat. Die maklikste manier is om die zip -weergawe af te laai.
  • Brand Raspbian -beeld op 'n microSD -kaart. Daar is baie toepassings wat u kan gebruik om die Raspbian -prent op u microSD -kaart te verbrand, maar ek het die balenaEtcher -program gebruik wat u hier kan kry. Plaas die microSD -kaart in u rekenaar en voer balenaEtcher uit. Kies die zip -lêer wat u afgelaai het vir die skyfbeeld, kies dan u SD -kaart en druk op flits. Die instrument pak die skyfbeeldlêers uit en verbrand dit op die SD -kaart. BELANGRIK: Maak seker dat die stasie wat u kies die microSD -kaart is … die instrument sal die stasie wat u spesifiseer, oorskryf, dus maak seker dat u die regte een gekies het.
  • Steek jou Raspberry Pi aan. Plaas die microSD -kaart in u Raspberry Pi. Koppel u krag, muis, sleutelbord en luidsprekers aan. As u die instruksies volg, is dit redelik vanselfsprekend … stel u ligging/tyd in, stel 'n wagwoord in en koppel die WiFi aan.

Dit is alles standaard opstel vir 'n Raspberry Pi, so as u meer besonderhede benodig, kan u dit hier vind. Ons sal die res van ons stappe doen op die Raspberry Pi.

Stap 2: Stap 2: Aktiveer I2c

Stap 2: Aktiveer I2c
Stap 2: Aktiveer I2c

Die Guitar Hero Controller gebruik i2c om te kommunikeer (i2c is 'n redelik algemene protokol wat elektroniese toestelle gebruik om met mekaar te praat), daarom moet ons hierdie funksie op die Raspberry Pi aktiveer:

  • Installeer biblioteke vir i2c. Dit lyk asof die i2c -biblioteke nou deel uitmaak van die Buster -standaardopbou, maar in geval ons dit installeer. Maak 'n dop oop (daar is 'n ikoon bo -aan die taakbalk) en tik die volgende:

    • sudo apt-get install -y python-smbus
    • sudo apt-get install -y i2c-tools
  • Aktiveer i2c op Raspberry Pi. Tik in u dop: sudo raspi-config. Dit sal u konfigurasievenster oopmaak. Gaan na InterfacingOptions-> I2C om i2c vir die toestel in te skakel. Om uit die venster te kom, pyl regs na Terug en dan na Voltooi om die instellings te stoor.
  • Herlaai. Tik in u dop: sudo reboot
  • Stel pasgemaakte i2c -parameters in. Dit lyk asof die standaard i2c -baudrate (100k) die kitaar af en toe verwar, so ons sal dit soos volg vertraag tot 50k:

    • In 'n dop tipe: sudo nano /boot/config.txt
    • Dit maak u konfigurasielêer oop in 'n teksredigeerder. Pyl af en vind die reël wat sê dtparam = i2c_arm = aan. As u kommentaar lewer, lewer 'n opmerking daaroor. As jy nie die reël het nie, voeg dit by. Voeg onder die reël ook die volgende by:

      • dtparam = i2c1 = aan
      • dtparam = i2c1_baudrate = 50000
    • Druk Ctrl + O om die konfigurasielêer te stoor en druk dan Ctrl + X om af te sluit.
  • Herlaai. Tik in u dop: sudo reboot

Stap 3: Stap 3: Installeer Pure Data

Stap 3: Installeer Pure Data
Stap 3: Installeer Pure Data
Stap 3: Installeer Pure Data
Stap 3: Installeer Pure Data

Vir die synthesizer -klanke gebruik ons 'n program genaamd Pure Data. Dit is 'n generatiewe klank- en interaktiewe vertoonhulpmiddel wat al 'n geruime tyd bestaan. Dit het 'n paar funksies wat dit ideaal maak vir hierdie projek … dit het 'n node-gebaseerde UI wat redelik maklik is om te gebruik, en dit kan seine van eksterne bronne soos python-skrifte ontvang.

  • Installeer Pure Data. In 'n dop tipe: sudo apt-get install puredata
    • Dit moet die sagteware op u Raspberry Pi installeer, maar as dit in die dop kla dat u nie al die nodige lêers kan opspoor nie, probeer dit:

      • sudo apt-get update
      • Voer dan weer die installasieopdrag uit: sudo apt-get install puredata
    • Tydens die installasie sal u gevra word of u dopgehou vir uitbreidings wil skep, en u kan ja sê.
  • Begin Pure Data. As dit korrek geïnstalleer is, moet u die program in die Start -menu van die lessenaar onder Sound & Video sien. Begin dit om seker te maak dat dit begin word.
  • Stel Pure Data -klank op. Die klank in Pure Data is gewoonlik nie standaard aan nie, dus moet u dit aktiveer.

    • Stel klankuitset op ALSA. As Pure Data bekendgestel word, moet u die konsole -venster sien. Gaan na die Media -kieslys en kies ALSA as u uitvoer. U sal moontlik waarskuwingsboodskappe in die konsole -dop sien wat sê dat dit nie sekere lêers kan vind nie, maar u kan dit ignoreer.
    • Skakel DSP -klank aan. Merk die kassie in die konsole -venster met die naam DSP.
  • Toets klankuitset. Gaan in die venster Pure Data-konsole na Media-> Test Audio & MIDI. Dit sal 'n toetslêer oopmaak wat ons kan gebruik om seker te maak dat Pure Data werk en dat ons die klank kan hoor. Skakel u luidsprekers aan, maar hou dit eers op 'n lae volume (soms kan die klank standaard baie hard wees). In die toetslêer, aan die linkerkant, moet u 'n gedeelte genaamd Test Tones sien. Klik eers op die kassie wat 60 sê en kyk of u geluide van u luidsprekers hoor. Indien nie, klik dan op die 80 -blokkie en draai dan die luidsprekers aan totdat u geluid hoor. As u 'n geluid hoor, sleep dan die boks met die toonhoogte regs van die toetstone in, waar u die frekwensie van die klanke kan verander en sien wat gebeur.

As u Pure Data kan begin en 'n geluid van die toetsvlek hoor, is u gereed om na die volgende stap te gaan. Maar Pure Data kan die eerste keer effens ingewikkeld raak oor die klankuitset, dus probeer die volgende as u nog steeds nie klank kry nie:

  • Dit is moontlik dat die klank deur die HDMI -kabel gelei word, dus dwing dit om die koptelefoonaansluiting te gebruik:

    • In 'n dop tipe: sudo raspi-config
    • Gaan na Advanced Options-> Audio-> Force 3.5mm ('headphone') aansluiting
  • Probeer herlaai. Soms doen dit die ding.
  • Kontroleer u luidsprekers en die verbinding met die Raspberry Pi.

Stap 4: Stap 4: Koppel die kitaar

Stap 4: Koppel die kitaar
Stap 4: Koppel die kitaar
Stap 4: Koppel die kitaar
Stap 4: Koppel die kitaar
Stap 4: Koppel die kitaar
Stap 4: Koppel die kitaar

Die maklikste manier om die kitaarbeheerder aan die Raspberry Pi te koppel, is met 'n goedkoop uitbreekbord soos die Nunchucky*. Met hierdie bord kan u toegang tot die sein van die kitaar kry sonder om die prop af te sny of die kitaar oop te breek. Aan die een kant van die bord is plat spore wat ontwerp is om perfek in die prop van die kitaar te pas. Daar is ook twee klein inkepings waarmee die prop kan klik en sodoende verhoed dat dit loskom. Die spore lei na vier koppenne aan die teenoorgestelde kant van die bord.

Nota: die Nunchucky word met kopstukke voorsien, maar dit word nie gesoldeer nie, dus u moet dit self doen. Vir myne het ek eerder 90 grade koppenne gebruik, wat dit moontlik maak om in die finale projek plat te lê.

U benodig vier drade om die Nunchucky aan die Raspberry Pi te koppel. Verbind die drade van die Nunchucky -koppenne soos volg met die Raspberry Pi se GPIO -penne:

  • 3.3v -> Speld 1
  • Data -> Speld 3
  • Clk -> Speld 5
  • Gnd -> Speld 9

In my projek het ek krimpverbindings vir die drade gebruik, sodat hulle nie so maklik uittrek nie. Maar as u nie krimpverbindings het nie, werk vier individuele vroulike-tot-vroulike springdrade goed. As u wel die krimpverbindings gebruik, moet u let op die volgorde van die drade op die koppenne en die GPIO -penne. Let ook daarop dat ons pen 7. op die GPIO-penne oorslaan. Om dit te verantwoord, het ek 'n krimpkoppelstuk met vyf drade aan die een kant gebruik en een gleuf oorgeslaan.

Om te verifieer dat u Raspberry Pi die kitaarbeheerder kan opspoor, maak 'n dop oop en tik: sudo i2cdetect -y 1

Dit moet 'n rooster in die dop afdruk met meestal dubbele strepies daarin. As die rekenaar die kitaar kan opspoor, moet u die kitaar se ID# 52 in een van die gleuwe sien … op my masjien verskyn dit in kolom 2, ry 5 … maar dit maak nie saak watter een nie, solank u die nommer 52 iewers daar.

As die rekenaar dit nie kan opspoor nie, is daar 'n paar dinge om te probeer:

  • Maak seker dat u drade styf verbind is.
  • Maak seker dat alles aan die regte penne gekoppel is.
  • Draai die kitaarprop om. Die Nunchucky verhoed u nie om die prop onderstebo aan te sluit nie, dus dit kan maar omgekeerd wees.
  • Maak seker dat i2c geaktiveer is op die Raspberry Pi (soos getoon in stap 2)

*As die prop op die kitaarbeheerder bekend lyk, is dit omdat dit dieselfde is as die standaard Wii Nunchuck -kontroleerder … vandaar die naam Nunchucky! Dit beteken ook dat u dieselfde uitbreekbord kan gebruik om ook aan te sluit op nunchuck -beheerders.

Stap 5: Stap 5: Alles saamvoeg

Stap 5: Alles saamvoeg
Stap 5: Alles saamvoeg
Stap 5: Alles saamvoeg
Stap 5: Alles saamvoeg

Noudat alles op die Raspberry Pi ingestel is, benodig ons net 'n bietjie kode om dit te laat werk. U kan die kode en ander nodige lêers soos volg aflaai:

  • Om die kode en ander lêers op die Raspberry Pi af te laai, maak 'n nuwe dop oop en tik die volgende opdrag (u moet moontlik 'sudo' voor sit): git clone
  • Dit skep 'n gids in u tuisgids genaamd keytarHero (dit wil sê/home/pi/keytarHero) en laai die lêers daarin af.

Daar is drie hooflêers in hierdie pakket:

  • WiiGHController.py: Dit is 'n python -script wat 'n i2c -verbinding met die kitaar oopmaak en die waardes van die verskillende kontroles teruggee. Dit druk standaard ook die waardes wat dit lees op die dop af, sodat u kan sien wat dit doen.
  • keytarHero.pd: Dit is die Pure Data -lêer wat ek geskep het om die musiek te skep wat u sal hoor. Dit is ingestel om die waardes van die kitaar af te lees en lei dit na verskillende knope om die klanke te genereer. Ek sal in die volgende stap die besonderhede van die pleister bespreek, maar uiteindelik kan u dit aanpas om te doen wat u wil.
  • keytarHero.py: Dit is die skrif wat die hele proses afskop en alles aan mekaar plak. Dit loods Pure Data en maak die keytarHero.pd -pleister oop. Dit maak 'n verbinding met die patch oop en gee die waardes van kitaar na die patch.

Die oomblik van waarheid! Maak seker dat die kitaar gekoppel is aan die Raspberry Pi en dan gereed is. Om dit te begin, hoef u net die keytarHero.py -script uit te voer. Om dit te doen:

  • Maak 'n nuwe dop oop en tik: cd keytarHero
  • Voer dan die opdrag uit: python keytarHero.py

Dis dit! As alles reg werk, moet Pure Data begin en die pleister begin speel. U moet 'n reeks note hoor speel, en as u op die knoppies op die kitaar druk, moet dit daarop reageer.

Probleemoplossing

Hier is 'n paar dinge om na te gaan as dit nie werk nie:

  • Pure Data -lappie begin nie, of kry u 'n fout om nie lêers te vind nie? Die keytarHero.py -skrip het die pad na die Pure Data -lêer -lêer wat hardkodeer na '/home/pi/keytarHero/keytarHero.pd'. As u u keytarHero -lêergids of die lappie -lêer êrens anders verskuif het, moet u die script opdateer om eerder u pad te gebruik. Om dit te doen, maak die keytarHero.py -lêer oop en soek die veranderlike genaamd PD_PATCH_PATH en verander dit om na die gids te wys waar u keytarHero.pd -lêer woon. Stoor die draaiboek en voer dit weer uit, en u moet klaar wees.
  • Stuur die kitaar 'n sein? Die draaiboek moet die sein wat dit van die kitaar kry, voortdurend as 'n string getalle druk, elk verteenwoordig die waarde van 'n kontrole op die kitaar. As u 'n kontrole op die kitaar gebruik, moet hierdie getalle verander. Indien nie, moet u seker maak dat u die i2c -opstelling en kitaarverbindings korrek uitgevoer het in die bogenoemde stappe.
  • Is Pure Data -klank aangeskakel? Die Pure Data -pleister wat in hierdie pakket voorsien word, moet die klank outomaties aanskakel, maar verifieer dat die DSP -blokkie in die Pure Data -konsole aangeskakel is. Kontroleer ook u klankinstellings soos aangedui in stap 3.
  • Ontvang Pure Data die sein van die kitaar? In die regter boonste hoek van die pleister is 'n klomp nodusse wat verantwoordelik is vir die lees van die sein van die kitaar en die oordrag daarvan na die res van die pleister. As u op die knoppies op die kitaar druk, moet die nommers in hierdie afdeling opdateer en u vertel dat dit die sein behoorlik ontvang.
  • Initialiseer veranderlikes in die pleister. Pure Data kan 'n bietjie ingewikkeld wees as waardes in die pleister nie geïnitialiseer word nie. Ek het meganismes bygevoeg om veranderlikes te aktiveer wanneer dit oopgemaak word, maar dit kan die moeite werd wees om net op 'n paar van die boodskapkassies te klik (dié wat lyk asof hulle 'n hap uit hulle gekry het). Dit veroorsaak dat hulle begin word en kan hulle wakker word.

Stap 6: 'n Toer deur die suiwer data -pleister

'N Toer deur die suiwer data -pleister
'N Toer deur die suiwer data -pleister
'N Toer deur die suiwer data -pleister
'N Toer deur die suiwer data -pleister
'N Toer deur die suiwer data -pleister
'N Toer deur die suiwer data -pleister
'N Toer deur die suiwer data -pleister
'N Toer deur die suiwer data -pleister

Die opset wat tot dusver in hierdie tutoriaal beskryf is, sal dinge vir u laat werk, maar een van die lekker dinge om Pure Data vir hierdie projek te gebruik, is dat dit aangepas kan word om te doen wat u wil. As u die pleister oopmaak as u Ctrl + E druk, plaas dit die pleister in die bewerkingsmodus en kan u die pleister verander. Die besonderhede van die gebruik van Pure Data val buite die omvang van hierdie tutoriaal (daar is baie tutoriale aanlyn daarvoor), maar dit kan lekker wees om daaraan te peuter, so hier is 'n algemene oorsig van wat in die keytarHero.pd -pleister gebeur, vir ingeval u wil dit aanpas:

  • Kitaarkommunikasie: In die regter boonste hoek van die pleister is 'n boom van knope wat verantwoordelik is vir die hantering van die sein van die kitaar. Die waardes van die kitaar is 'n lang snaar, dus hierdie nodes verdeel die snaar in individuele waardes vir elke kontrole, sit dit om in getalle en stuur dit dan na 'stuur' nodusse (die wat met 'n s begin). Stuurknope kry 'n naam en gee die sein uit om 'node met dieselfde naam te ontvang. Byvoorbeeld, die 's whammy' node, gee die waardes af van die whammy bar van die kitaar en die 'r whammy' node in die middel van die pleister ontvang die sein en gebruik die sein om die sequencer te stop. Stuur/ontvang nodusse help om die warboel verbindingslyne in die pleister te verminder. Ek beveel nie aan om met hierdie afdeling te mors nie, want dit is nogal moeilik om reg te kom, maar u kan beslis ekstra ontvangsknoppies by die hele pleister voeg as dit nodig is om seine daaruit te ontvang.
  • Sequencer -afdeling: Die middelste gedeelte van die pleister beheer die sequencer. Aan die linkerkant is 'n balk met 'n bewegende swart vierkant wat wys watter noot van 'n ry met 16 note dit speel. Die strum -sleutel bepaal of die volgorde vorentoe of agtertoe speel. Die plus/min knoppies verhoog/verlaag die spoed. Aan die regterkant is vyf stelle getalle wat bepaal watter note tydens elke stap speel. Elke volgorde word toegewys om te speel wanneer een van die vyf knoppies op die fret gedruk word. Hierdie getalle is MIDI -waardes, en u kan dit verander om die note te speel wat u wil … gee dit net waardes tussen 0 en 127.
  • Ossillator/FX -afdeling: Links onder is die ossillator en FX -nodusse wat eintlik die geluid maak. Die primêre ossillator is aan die linkerkant. Die midi -waardes van die sequencer -afdeling word omgeskakel na frekwensies en na die ossillator gevoer. Dit word gemeng met 'n tweede ossillator wat van die regterkant af kom. Die frekwensie daarvan word ook beheer deur die midi-waardes, maar met 'n ekstra frekwensie-offset wat deur die X-as van die joystick aangedryf word. Dit veroorsaak 'n ontnugterde of fluitende effek as u die joystick na links of regs skuif. Regs onder is daar ook 'n laagdoorlaatfilterknoop waarvan die afsnyfrekwensie aan die joystick se Y-as gekoppel is. 'N Laagpasfilter bepaal hoeveel hoëfrekwensieklank uit die klank verwyder word. As die joystick in die afwaartse posisie beweeg word, sny dit baie van die hoë frekwensies af, wat lei tot 'n gedempte geluid. As dit na die opwaartse posisie beweeg word, gaan dit deur alle frekwensies, wat lei tot 'n helderder geluid.
  • Initialisering: In die linkerbovenhoek van die pleister is daar 'n reeks nodusse wat die pleister initialiseer wanneer dit begin, soos om die klank aan te skakel en verskillende knope aan te raak om hulle wakker te maak. Weereens, u hoef waarskynlik nie met hierdie afdeling te mors nie, maar as daar dinge is wat u wil hê moet gebeur wanneer die pleister begin, koppel dit dan aan die node 'loadbang'.
  • Ek het probeer om die pleister te dokumenteer met opmerkings in die pleister self, so hopelik sal dit u genoeg inligting gee om verskillende opsies van hier af te ondersoek.

Geniet dit!

Stap 7: Bykomende dinge om te probeer

Die kitaar 'koploos' bestuur

Dit moet moontlik wees om hierdie projek uit te voer sonder om aan 'n monitor/sleutelbord/muis gekoppel te wees as u u Raspberry Pi van 'n geskikte draagbare kragbron af weggejaag het. Die Raspberry Pi pas nie heeltemal in die opening aan die agterkant van die kitaar nie, maar as jy dapper voel, kan jy die kitaar aanpas om dit reg te stel … bietjie uit. Daar is baie tutoriale aanlyn oor hoe om scripts op die Raspberry Pi koploos uit te voer, maar basies wil u die opdrag 'python /home/pi/keytarHero/keytarHero.py&' uitvoer wanneer dit opstart. Teoreties sou u 'n kitaar hê met slegs een kabel daaruit na die luidspreker … net soos 'n regte elektriese kitaar!

Bykomende Pure Data -wysigings

Ek het 'n paar ander idees gehad oor hoe die kitaar die Pure Data -lappie kan beheer, maar ek kon nie probeer nie. Dit is veranderinge in die pleister wat lekker kan wees om mee te eksperimenteer:

  • Whammy bar: In die huidige pleister stop die whammy bar eenvoudig met die volgorde afspeel, maar ek dink dit sou beter wees as die whammy bar terselfdertyd ook die frekwensie opstel, net soos 'n ware whammy bar. Ek het probeer om dit 'n rukkie te laat werk, maar dit was moeiliker as wat ek gedink het. Ek dink dit kan net gaan oor die toevoeging van 'n uitdrukking in die ossillatorseksie wat 'n bietjie hoër frekwensie by die ossillator voeg, gebaseer op die waarde wat uit die whammy -balk kom.
  • Strumbalk: Tans speel die strookbalk die volgorde vorentoe wanneer dit ingedruk word en agtertoe as dit ingedruk word, maar dit is dalk beter om dit deur verskillende volgorde -opsies te laat loop, soos ewekansige stap, ens.
  • Plus/min knoppies: Die plus/min knoppies verander die slae per minuut, maar dit is 'n bietjie oorweldigend, tensy u dit 'n paar keer tref. Dit kan goed wees om dit elke keer met 'n groter hoeveelheid te laat toeneem. Of laat die sequencer wissel tussen 16-beat, 8-beat, 4-beat, drieling afspeel.

Aanbeveel: