Sadržaj:
- Korak 1: Stvari koje će vam trebati
- Korak 2: Sažetak
- Korak 3: Osnovna ideja
- Korak 4: Walabot
- Korak 5: Početak
- Korak 6: Postavljanje Raspberry Pi - 1
- Korak 7: Postavljanje Raspberry Pi - 2
- Korak 8: Postavljanje Raspberry Pi - 3
- Korak 9: Postavljanje Raspberry Pi - 4
- Korak 10: Python
- Korak 11: Za Walabot
- Korak 12: Za servo sučelje
- Korak 13: Za LCD
- Korak 14: Blynk
- Korak 15: Konfiguriranje aplikacije Blynk
- Korak 16: Ovaj QR kôd možete koristiti s aplikacijom Blynk za kloniranje mog projekta kako biste uštedjeli vrijeme
- Korak 17: Pokretanje Blynka s Raspberry Pi -om i korištenje Blynk HTTPS -a za Python
- Korak 18: Automatsko pokretanje skripte
- Korak 19: Hardver
- Korak 20: Dizajn kućišta
- Korak 21: Upuci utrobom
- Korak 22: Snimci završne montaže
- Korak 23: Postavljanje Walabota na postolje
- Korak 24: Hardverske STL datoteke za 3D ispis
- Korak 25: Sheme ožičenja
- Korak 26: Kôd
- Korak 27: Github spremišta za upotrebu
- Korak 28: Zaključak
Video: Walabot FX - Upravljanje efektom gitare: 28 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:38
Upravljajte svojim omiljenim gitarskim efektom ne koristeći ništa osim sjajnih poza gitare!
Korak 1: Stvari koje će vam trebati
Hardverske komponente
Walabot - Walabot
Raspberry Pi - Raspberry Pi 3 Model B
Sunfounder LCD1602
SunFounder PCA9685 16-kanalni 12-bitni PWM servo upravljački program za Arduino i Raspberry Pi
Servo (općenito) Nema veze
9V isječak za bateriju
Držač baterije 4xAA
AA baterije
Kratkospojne žice (općenito)
DPDT Latching Action Foot Switch
Korg SDD3000-PDL
Softverski OS, aplikacije i mrežne usluge
Autodesk Fusion360 -
Blynk -
Alati itd
3D pisač
Lemilica
Korak 2: Sažetak
Kako bi bilo kontrolirati glazbeni izraz ne koristeći ništa osim položaja svoje gitare u 3D prostoru? Pa, napravimo nešto po prototipu i saznajmo!
Korak 3: Osnovna ideja
Htio sam moći kontrolirati parametar 3 efekta u stvarnom vremenu, želio sam to učiniti koristeći način na koji sam postavio svoju gitaru. Dakle, jedno je bilo jasno, trebat će mi nekoliko stvari.
- Senzor koji može vidjeti 3D prostor
- Servo za okretanje gumba
- LCD zaslon
- Serverski upravljački program za I2C
- Pivo od maline Pi
- Za učenje Pythona
Korak 4: Walabot
Želite vidjeti kroz zidove? Osjetljivi objekti u 3D prostoru? Osjećate li da dišete s druge strane sobe? Pa, imaš sreće!
Walabot je potpuno novi način za otkrivanje prostora oko vas pomoću radara male snage.
To će biti ključno za ovaj projekt, mogao bih uzeti karteasanske (X-Y-Z) koordinate objekata u 3D prostoru i preslikati ih na servo položaje mijenjajući kako zvuči gitarski efekt, u stvarnom vremenu, bez dodirivanja pedale.
Pobijediti.
Više informacija o Walabotu možete pronaći ovdje
Korak 5: Početak
Prvo, trebat će vam računalo za pogon Walabota, za ovaj projekt koristim Raspberry Pi 3 (ovdje se spominje na RPi) zbog ugrađenog WiFi -a i općenitog dodatnog napora
Kupio sam SD karticu od 16 GB s unaprijed instaliranim NOOBS -om kako bi stvari bile lijepe i jednostavne, te sam odlučio instalirati Raspian kao svoj Linux OS po izboru
(ako niste upoznati s načinom instaliranja Raspiana, odvojite trenutak da ovo malo pročitate)
U redu, nakon što pokrenete Raspian na svom RPi -u, potrebno je poduzeti nekoliko koraka konfiguracije kako biste pripremili stvari za naš projekt
Korak 6: Postavljanje Raspberry Pi - 1
Prvo provjerite imate li najnoviju verziju kernela i provjerite ima li ažuriranja otvaranjem naredbene ljuske i upisivanjem
sudo apt-get ažuriranje
sudo apt-get dist-upgrade
(sudo je dodan kako biste bili sigurni da imate administrativne privilegije, npr. stvari će raditi)
Ovo može potrajati dok se ne završi pa idite i popijte šalicu čaja.
Korak 7: Postavljanje Raspberry Pi - 2
Morate instalirati Walabot SDK za RPi. Iz vašeg RPi web preglednika idite na https://www.walabot.com/gettingstarted i preuzmite Raspberry Pi Installer paket.
Iz naredbene ljuske:
cd preuzimanja
sudo dpkg -I walabotSDK_RasbPi.deb
Korak 8: Postavljanje Raspberry Pi - 3
Moramo početi konfigurirati RPi za korištenje sabirnice i2c. Iz naredbene ljuske:
sudo apt-get install python-smbus
sudo apt-get install i2c-tools
nakon što to učinite, morate dodati sljedeće u datoteku modula
Iz naredbene ljuske:
sudo nano /etc /moduli
dodajte ove 2 žice u zasebne redove:
i2c-dev
i2c-bcm2708
Korak 9: Postavljanje Raspberry Pi - 4
Walabot crpi priličnu količinu struje, a mi ćemo također koristiti GPIO -e za kontrolu stvari pa ih moramo postaviti
Iz naredbene ljuske:
sudo nano /boot/config.txt
dodajte sljedeće retke na kraj datoteke:
safe_mode_gpio = 4
max_usb_current = 1
RPi je izvrstan alat za proizvođače, ali je ograničen u struji koju može poslati Walabotu. Stoga dodajemo maksimalnu struju od 1Amp umjesto standardnijih 500mA
Korak 10: Python
Zašto Python? dobro, jer je vrlo jednostavno kodirati, brzo se pokrenuti i na raspolaganju je hrpa dobrih primjera pythona! nikad ga prije nisam koristio i uskoro je počeo raditi. Sada je RPi konfiguriran za ono što želimo, sljedeći korak je konfiguriranje Pythona za pristup Walabot API -ju, LCD servo sučeljima
Korak 11: Za Walabot
Iz naredbene ljuske
Sudo pip install "/usr/share/walabot/python/WalabotAPI-1.0.21.zip"
Korak 12: Za servo sučelje
Iz naredbene ljuske
sudo apt-get install git build-essential python-dev
cd ~
git klon
cd Adafruit_Python_PCA9685
sudo python setup.py install
Zašto moramo koristiti servo upravljački program? Pa, za RPi nekoliko razloga.
1. Struja koju vuče servo može biti vrlo velika, a taj broj postaje sve veći što imate više servomotora (naravno). Ako upravljate servo izravnim upravljanjem iz RPi -a, riskirate da mu pušete u izvor napajanja
2. Vrlo su važna vremena PWM -a (Pulse Width Modulation) koja kontrolira položaj servomotora. Budući da RPi ne koristi OS u stvarnom vremenu (može doći do prekida i slično) vrijeme nije točno i može učiniti da se servomotori nervozno trzaju. Namjenski upravljački program omogućuje preciznu kontrolu, ali također omogućuje dodavanje do 16 servo pogona, pa je to odlično za proširenje.
Korak 13: Za LCD
otvorite RPi web preglednik
www.sunfounder.com/learn/category/sensor-k…
preuzimanje datoteka
github.com/daveyclk/SunFounder_SensorKit_…
Iz naredbene ljuske:
sudo mkdir/usr/share/sunfounder
Pomoću grafičkog istraživača kopirajte mapu python iz zip datoteke u novu mapu sunfounder
LCD se koristi za upućivanje korisnika o tome što se točno događa. Prikaz procesa konfiguracije do vrijednosti x, y i z koje se mapiraju na svaki servo
Korak 14: Blynk
Blynk je briljantna IoT usluga koja vam omogućuje stvaranje prilagođene aplikacije za kontrolu vaših stvari. Činilo se kao savršeno rješenje za daljinsko upravljanje walabotom za stvarno biranje u postavkama …
Jedan problem. Blynk trenutno nije podržan na platformi Python, bugger. Ali ne bojte se! uspio sam pronaći lijep mali posao koji omogućuje daljinsko upravljanje i daljinski unos parametara! malo je hacky
prvi korak je preuzimanje aplikacije Blynk iz vaše omiljene trgovine aplikacija
Drugo, prijavite se za račun
Nakon što to učinite, otvorite aplikaciju i pokrenite novi projekt, odabirom Raspberry Pi 3 kao hardvera.
Aplikacija će vam dodijeliti pristupni token (ovo će vam trebati za unos koda)
Nakon što ste to učinili. morat ćete postaviti aplikaciju kako je prikazano na slikama. Ovako će se spojiti s walabotom.
Korak 15: Konfiguriranje aplikacije Blynk
Korak 16: Ovaj QR kôd možete koristiti s aplikacijom Blynk za kloniranje mog projekta kako biste uštedjeli vrijeme
U redu Sada kada je aplikacija sve postavljena, možemo konfigurirati Python i RPi da razgovaraju s njom putem Interneta. magija
Korak 17: Pokretanje Blynka s Raspberry Pi -om i korištenje Blynk HTTPS -a za Python
Prvo morate instalirati Blynk HTTPS omot za Python
Iz naredbene ljuske:
klon sudo git
sudo pip instalirajte blynkapi
Drugo, morate instalirati Blynk uslugu na RPi
Iz naredbene ljuske:
git klon
cd blynk-library/linux
očisti sve
za pokretanje usluge blynk
sudo./blynk --token = VašAuthToken
Kako biste osigurali da se usluga Blynk pokreće pri pokretanju, morate izmijeniti /etc/rc.local
radeći
sudo nano /etc/rc.local
dodaj ovo na kraju
./blynk-library/linux/blynk --token = moj token &
(uključio sam kopiju moje /etc/rc.local datoteke u odjeljak koda za referencu)
Da biste provjerili radi li jednostavno upišite
sudo /etc/rc.lokalni početak
Usluga Blynk sada bi trebala biti pokrenuta
Korak 18: Automatsko pokretanje skripte
Sad kad je sve ovo postavljeno i konfigurirano te imamo spreman python kod. možemo postaviti stvari na automatsko pokretanje kako bismo odbacili tipkovnicu i monitore
Postoji nekoliko stvari koje treba učiniti
Izradite novu datoteku skripte za pokretanje programa Python
sudo nano guitareffect.sh
dodajte ove retke
#!/bin/sh
python /home/pi/GuitarEffectCLI.py
svakako ga spremite
Zatim moramo dati dopuštenje skripti za pokretanje upisivanjem
Sudo chmod +x /home/pi/guitareffect.sh
I na kraju, moramo dodati ovu skriptu u datoteku /etc/rc.local s kojom smo ranije radili.
Sudo nano /etc/rc.local
Dodati
/home/pi/guitareffect.sh &
svakako uključite "&" koji omogućuje da se Python skripta izvodi u pozadini
Pravo! To je sve što je s konfiguracijom i softverom sortirano, sljedeće je vrijeme za povezivanje hardvera
Korak 19: Hardver
Prvi prototip Breadboard -a
Korak 20: Dizajn kućišta
Kućište je dizajnirano i izrađeno u izvrsnom Fusion360
Korak 21: Upuci utrobom
Korak 22: Snimci završne montaže
Korak 23: Postavljanje Walabota na postolje
Za pričvršćivanje upotrijebite samoljepljivi metalni disk koji dolazi s walabotom
Korak 24: Hardverske STL datoteke za 3D ispis
Korak 25: Sheme ožičenja
Korak 26: Kôd
Za svoj projekt upotrijebite priloženu Python skriptu
from _future_ import print_functionfys sys import platform from os import system from blynkapi import Blynk import WalabotAPI import import import RPi. GPIO kao GPIO
#postavi GPIO pomoću numeriranja ploča
GPIO.setmode (GPIO. BOARD) GPIO.setup (18, GPIO. IN, pull_up_down = GPIO. PUD_UP)
#blynk auth token
auth_token = "your_auth_token_here"
# Uvezite modul PCA9685 za servo upravljanje.
uvoz Adafruit_PCA9685
#import LCD modula s lokacije
from imp import load_source LCD1602 = load_source ('LCD1602', '/usr/share/sunfounder/Python/LCD1602.py')
# Inicijalizirajte PCA9685 pomoću zadane adrese (0x40).
pwm = Adafruit_PCA9685. PCA9685 ()
# blynk objekta
zadane vrijednosti = Blynk (auth_token, pin = "V9") start_button = Blynk (auth_token, pin = "V3") Rmax = Blynk (auth_token, pin = "V0") Rmin = Blynk (auth_token, pin = "V1") Rres = Blynk (auth_token, pin = "V2")
ThetaMax = Blynk (auth_token, pin = "V4")
ThetaRes = Blynk (auth_token, pin = "V5")
PhiMax = Blynk (auth_token, pin = "V6")
PhiRes = Blynk (auth_token, pin = "V7")
Prag = Blynk (auth_token, pin = "V8")
ServoMin = Blynk (auth_token, pin = "V10")
ServoMax = Blynk (auth_token, pin = "V11")
def LCDsetup ():
LCD1602.init (0x27, 1) # init (adresa slave, pozadinsko svjetlo)
def numMap (x, in_min, in_max, out_min, out_max): "" "koristi se za mapiranje walabotovih očitanja u položaj servo" "" return int ((x- in_min) * (out_max - out_min) / (in_max - in_min) + van_min)
# koristite ovo za zaokruživanje neobrađenih podataka na dodijeljenu vrijednost
def myRound (x, base = 2): return int (base * round (float (x)/base))
#izvlači broj iz vraćenog blynk niza
def numberExtract (val): val = str (val) return int (filter (str.isdigit, val))
# Postavite frekvenciju na 60Hz, dobro za servo pogone.
pwm.set_pwm_freq (60)
# Konfigurirajte zadane vrijednosti min i max duljine servo impulsa
SERVO_MIN = 175 # Minimalna duljina impulsa od 4096 SERVO_MAX = 575 # Maksimalna duljina impulsa od 4096
# walabot zadane vrijednosti
R_MAX = 60 R_MIN = 20 R_RES = 5
THETA_MAX = 20
THETA_RES = 5
PHI_MAX = 20
PHI_RES = 5
PRAG = 1
# varijable za blynk prebacivanje
on = "[u'1 ']"
klasa Walabot:
def _init _ (samo):
self.wlbt = WalabotAPI self.wlbt. Init () self.wlbt. SetSettingsFolder () self.isConnected = False self.isTargets = False
def blynkConfig (self):
load_defaults = defaults.get_val () if str (load_defaults) == on: SERVO_MAX = ServoMax.get_val () SERVO_MAX = numberExtract (SERVO_MAX) ispis ("Servo Max =", SERVO_MAX)
SERVO_MIN = ServoMin.get_val ()
SERVO_MIN = broj Izvlačenje (SERVO_MIN) ispis ("Servo MIN =", SERVO_MIN) R_MAX = Rmax.get_val () R_MAX = broj Izvlačenje (R_MAX) ispis ("R max =", R_MAX)
R_MIN = Rmin.get_val ()
R_MIN = broj Izvlačenje (R_MIN) ispis ("R Min =", R_MIN)
R_RES = Rres.get_val ()
R_RES = broj Izvlačenje (R_RES) ispis ("R Res =", R_RES)
THETA_MAX = ThetaMax.get_val ()
THETA_MAX = numberExtract (THETA_MAX) print ("Theta Max =", THETA_MAX) THETA_RES = ThetaRes.get_val () THETA_RES = numberExtract (THETA_RES) print ("Theta Res =", THETA_RES)
PHI_MAX = PhiMax.get_val ()
PHI_MAX = numberExtract (PHI_MAX) print ("Phi Max =", PHI_MAX) PHI_RES = PhiRes.get_val () PHI_RES = numberExtract (PHI_RES) print ("Phi Res =", PHI_RES)
THRESHOLD = Threshold.get_val ()
THRESHOLD = numberExtract (THRESHOLD) print ("Threshold =", THRESHOLD)
else: # ako ništa od aplikacije blynk, zadane postavke učitavanja SERVO_MIN = 175 # Minimalna duljina impulsa od 4096 SERVO_MAX = 575 # Maksimalna duljina impulsa od 4096
# walabot zadane vrijednosti
R_MAX = 60 R_MIN = 20 R_RES = 5
THETA_MAX = 20
THETA_RES = 5
PHI_MAX = 20
PHI_RES = 5
PRAG = 1
def connect (self): try: self.wlbt. ConnectAny () self.isConnected = True self.wlbt. SetProfile (self.wlbt. PROF_SENSOR) #self.wlbt. SetDynamicImageFilter (self.wlbt. FILTER_TYPEwMic) (self.wlbt. FILTER_TYPE_NONE) #self.wlbt. SetDynamicImageFilter (self.wlbt. FILTER_TYPE_DERIVATIVE) self.wlbt. SetArenaTheta (-THETA_MAX, THETA_MAX, THETA_RESX) SetArenaR (R_MIN, R_MAX, R_RES) self.wlbt. SetThreshold (THRESHOLD) osim self.wlbt. WalabotError kao pogreška: if err.code! = 19: # 'WALABOT_INSTRUMENT_NOT_FOUND' podići pogrešku
def start (samo):
self.wlbt. Start ()
def calibrate (self):
self.wlbt. StartCalibration ()
def get_targets (self):
self.wlbt. Trigger () vrati self.wlbt. GetSensorTargets ()
def stop (samo):
self.wlbt. Stop ()
def prekid veze (self):
self.wlbt. Disconnect ()
def main ():
flag = True check = "" LCDsetup () while flag: LCD1602.write (0, 0, 'Guitar') LCD1602.write (0, 1, 'Effect Control') time.sleep (2) LCD1602.write (0, 0, 'Pritisnite Start za') LCD1602.write (0, 1, 'begin') time.sleep (2) if (str (check) == on): flag = False else: check = start_button.get_val () # provjerite ima li blynk start tipku pritisnite if (GPIO.input (18) == 0): #check nožna sklopka = False
LCD1602.write (0, 0, "OK! Učinimo to")
LCD1602.write (0, 1, '') wlbt = Walabot () wlbt.blynkConfig () wlbt.connect () LCD1602.clear () ako nije wlbt.isConnected: LCD1602.write (0, 0, 'Not Connected') else: LCD1602.write (0, 0, 'Connected') time.sleep (2) wlbt.start () wlbt.calibrate () LCD1602.write (0, 0, 'Calibrating…..') time.sleep (3) LCD1602.write (0, 0, 'Pokretanje Walabota')
appcheck = start_button.app_status () flag = True # zastavica za poništavanje glavne prog
while flag: # koristi se za stavljanje učinka u stanje pripravnosti (učinkovito)
if (appcheck == True): if (str (check)! = on): if (GPIO.input (18)! = 0): #check zastavica nožnog prekidača = False else: check = start_button.get_val () #check za gumb za pokretanje pritisnite appcheck = start_button.app_status ()
drugo:
if (GPIO.input (18)! = 0): #check nožna sklopka = False
xval = 0
yval = 0 zval = 0 prosjek = 2 delayTime = 0
ciljevi = wlbt.get_targets ()
ako je len (ciljevi)> 0:
za j u rasponu (prosjek):
ciljevi = wlbt.get_targets ()
ako je len (ciljevi)> 0: ispis (len (ciljevi)) ciljevi = ciljevi [0]
ispis (str (target.xPosCm))
xval += int (ciljevi.xPosCm) yval += int (ciljevi.yPosCm) zval += int (ciljevi.zPosCm) vrijeme.spavanje (vrijeme odgode) else: print ("nema ciljeva") xval = xval/prosjek
xval = numMap (xval, -60, 60, SERVO_MIN, SERVO_MAX)
xval = myRound (xval) ako je xval SERVO_MAX: xval = SERVO_MAX LCD1602.write (0, 0, 'x =' + str (xval) + '') pwm.set_pwm (0, 0, xval)
yval = yval/prosjek
yval = numMap (yval, -60, 60, SERVO_MIN, SERVO_MAX)
yval = myRound (yval) if yval SERVO_MAX: yval = SERVO_MAX LCD1602.write (0, 1, 'y =' + str (yval)) pwm.set_pwm (1, 0, yval)
zval = zval/prosjek
zval = numMap (zval, R_MIN, R_MAX, SERVO_MIN, SERVO_MAX)
zval = myRound (zval) ako je zval SERVO_MAX: zval = SERVO_MAX LCD1602.write (8, 1, 'z =' + str (zval)) pwm.set_pwm (2, 0, zval)
drugo:
print ("nema ciljeva") LCD1602.write (0, 0, "Gašenje") LCD1602.write (0, 1, 'The Walabot') time.sleep (3) wlbt.stop () wlbt.disconnect ()
ako je _naziv_ == '_glavni_':
dok True: main ()
za efekt gitare.sh
#!/bin/sh
cd /home /pi
sudo python GuitarEffectCLI.py
Kopija RC lokalne datoteke za referencu
#!/bin/sh -e # # rc.local # # Ova se skripta izvršava na kraju svake višekorisničke razine izvođenja. # Provjerite hoće li skripta "izaći 0" u slučaju uspjeha ili bilo koje druge # vrijednosti u slučaju pogreške. # # Da biste omogućili ili onemogućili ovu skriptu, samo promijenite # bita izvođenja. # # Prema zadanim postavkama, ova skripta ne radi ništa.
# Ispišite IP adresu
_IP = $ (naziv hosta -I) || true if ["$ _IP"]; zatim printf "Moja IP adresa je %s / n" "$ _IP" fi
./blynk-library/linux/blynk --token = "token ide ovamo" &
spavanje 10 sudo /home/pi/guitareffect.sh i izlaz 0
Korak 27: Github spremišta za upotrebu
Koristite ovo za LCD zaslon Sunfounder
github.com/daveyclk/SunFounder_SensorKit_f…
Koristite ovo za upravljački program servo
github.com/daveyclk/Adafruit_Python_PCA968…
Koristite ovo za Blynk Python HTTPS omot
github.com/daveyclk/blynkapi
Korak 28: Zaključak
Pa ovo je bila strma krivulja učenja, ali vrijedilo je.
Moja oduzimanja su
- Morao sam naučiti Python..ispostavilo se da je as
- Povezao Python na Raspberry Pi s Blynk IoT uslugom. Ovo nije službeno podržano pa postoje neka ograničenja njegovih funkcija. Ipak radi odlično!
- Pokazalo se da je Walabot odličan za glazbeni izraz. Koristio sam ga na Korgu SDD3000, ali možete koristiti bilo koji efekt koji vam se sviđa
Idite sami. Ovo nije ograničeno na efekte gitare, mogu se koristiti sa bilo kojim instrumentom s bilo kojim učinkom.
Drugoplasirani na natjecanju Raspberry Pi 2017
Preporučeni:
NeckCrusher (papučica s efektom na gitari): 6 koraka (sa slikama)
NeckCrusher (papučica s efektom na gitari): Dale Rosen, Carlos Reyes i Rob KochDATT 2000
Programabilna stanica za petlje s efektom premosnice s efektom premosnice pomoću dip prekidača: 11 koraka
Programabilna stanica za petlje s gitarskim efektom True Bypass pomoću dip prekidača: Oduševljen sam gitarom i hobist. Većina mojih projekata odvija se oko alata za gitaru. Gradim vlastita pojačala i neke efektne pedale. U prošlosti sam svirao u malom bendu i uvjerio se da mi je potrebno samo pojačalo s ponovnim
DIY papučica s efektom gitare za izobličenje klonova štakora - mrtvi štakor: 5 koraka (sa slikama)
DIY papučica s efektom izobličenja klona klonova štakora - mrtvi štakor: Ovo nije pedalica za izobličenje Mickeyja Mousea! Ova pedala je klon jedne od mojih omiljenih efektnih pedala iz 80 -ih … ProCo -ova RAT Distortion. To je osnovna OpAmp pedala za izobličenje koja koristi klasični LM308N IC čip i koja je prilično jednostavna za
Laserski sintitar iz gitare poput gitare poput heroja: 6 koraka
Laser-synthitar From Guitar-hero-Like Toy Guitar: Bio sam jako inspiriran svim youtube video zapisima laserskih harfa, ali smatrao sam da su svi preveliki da bi ih donijeli na jam session ili su trebali komplicirano postavljanje i računalo itd. Pomislio sam na gitaru s laserima umjesto žica. Tada sam pronašao pokvaren t
Kućište s efektom gitare ventila i napajanje: 7 koraka (sa slikama)
Kućište s efektom gitare ventila i napajanje: Ovo će biti izvor napajanja i šasija za pedalu s efektom gitare na bazi ventila. Shvaćao sam to dok sam išao pa napredak koji ću prikazati nije nužno bio redoslijed kojim sam krenuo-- ono što slijedi je idealizirana ruta, preuređena i neumoljiva