Mündəricat:
- Addım 1: Problem
- Addım 2: Layihə Konteksti
- Addım 3: Ehtiyac duyulan hissələr / alətlər
- Addım 4: Texniki Strategiya
- Addım 5: Kod
- Addım 6: Video
Video: NeckCrusher (Gitara Efektli Pedal): 6 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Dale Rosen, Carlos Reyes və Rob Koch
DATT 2000
Addım 1: Problem
Gitara pedalları musiqiçini pedal platformasına məhdudlaşdırır. Həll yolu: Gitara pedallarının funksionallığını qurun və gitaranın özünə yerləşdirin. Bu, musiqiçinin pedal taxtasının yeri ilə məhdudlaşmaq əvəzinə gitara boynunu interfeys olaraq istifadə edərək səhnədə sərbəst hərəkət etməsinə imkan verir. Bir bitcrusher/nümunə dərəcəsi təsir cihazı quraraq bu konsepsiyanı araşdıracağıq.
Addım 2: Layihə Konteksti
Musiqiçilərin gitaralarının səsini idarə etmək üçün istifadə etdikləri bir çox gitara pedalı var. Bunların çoxu ümumiyyətlə rack-based və ya stump box vahidlərindədir, buna görə də effektlərin nəzarətini effekt bölməsinin yerləşdiyi yerə məhdudlaşdırır. Cihazı gitaraya quraşdırmaq, oyunçuların səhnənin istənilən yerində efekt parametrlərini idarə etməsinə imkan verir. Bu, məhdudlaşdırılmayacaqları və performansları üçün hərəkət etmək sərbəstliyinə sahib ola biləcəkləri deməkdir.
Arduino yalnız 8 bitlik səs qabiliyyətinə malik olduğundan, yüksək sədaqətli siqnal emalı etmək mümkün deyil. Efektləri aşağı sədaqətlə, təhrif olunmuş bir səs yaratmağa əsaslandığı üçün seçdiyimiz təsirlərin səbəbidir. Bunlar bir Arduino ilə mümkün olan yeganə təsirlərdir.
Addım 3: Ehtiyac duyulan hissələr / alətlər
● Zərbəli Matkap
● Tel kəsicilər
● Tel çıxarıcılar
● Havya
● İsti Yapışqan Tabancası
● Sökülmə Pompası
● Gitara ● Qutusu
● Lehim
● İsti yapışqan
● Arduino
● Proto Board
● örtülmüş tel
● Audio Jaklar (x2)
● Potansiyometrlər (x3)
● Kondansatörler: 2.2 uF (x2)
● Açıq Mis Tel
● Vintlər (M3.5 *8)
● Rezistorlar: 1 k, 10 k, 1,2 k, 1,5 k, 390 k
● * Op Amp (LM358) / * Transistor (2N3442)
Addım 4: Texniki Strategiya
Daxili Dövrə
Giriş/Çıxış
Gitardan gələn səs siqnalını arduinonun istifadə edə və dəyişdirə biləcəyi bir şeyə çevirməliyik. Arduino -dan gələn siqnalı yenidən səs siqnalına çevirməliyik. Arduino 0V -dan 5V -a qədər gərginlik oxuyur, səs siqnalları -1V -dən 1V -ə qədərdir. Bu dönüşümlər rezistorlardan istifadə etməklə həyata keçirilir. Siqnal çıxış dövrəsində də çevriləcək.
Arduino Kitabxanası: ArduinoDSP
Layihənin Təsviri (İnterfeys)
Düymələr Topuzu 1: Nümunə Hızı
Topuz 2: Bit Kırıcı
Düymə 3: Bit dəyişdirici
Addım 5: Kod
#"dsp.h" daxil edin
#define cbi (sfr, bit) (_SFR_BYTE (sfr) & = ~ _BV (bit)) #debine sbi (sfr, bit) (_SFR_BYTE (sfr) | = _BV (bit))
boolean div32; boolean div16;
uçucu boolean f_sample; uçucu bayt badc0; uçucu bayt badc1; uçucu bayt ibb;
int fx1; int fx2; int fx3; int fx4;
int cnta; int icnt; int icnt1; int icnt2; int cnt2; int iw; int iw1; int iw2; bayt bb;
bayt dd [512]; // Audio Yaddaş Array 8-Bit
void setup () {setupIO ();
// 1 saniyədən sonra dalğanı yenidən doldurun fill_sinewave ();
// 19kHz nümunə götürmə tezliyi cbi (ADCSRA, ADPS2) üçün adc prescaler -ı 64 -ə təyin edin; sbi (ADCSRA, ADPS1); sbi (ADCSRA, ADPS0); // ADCH Register sbi-də 8-bit ADC (ADMUX, ADLAR); sbi (ADMUX, REFS0); cbi (ADMUX, REFS1); cbi (ADMUX, MUX0); cbi (ADMUX, MUX1); cbi (ADMUX, MUX2); cbi (ADMUX, MUX3); // Timer2 PWM rejimi sürətli PWM cbi (TCCR2A, COM2A0) olaraq təyin edilmişdir; sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); // Timer2 cbi üçün quraşdırma (TCCR2B, WGM22); // Timer2 Clock Prescaler: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Timer2 PWM Port Enable sbi (DDRB, 3); // cli (); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = badc1;
}
boşluq döngəsi () {
// effekt potensiometrinin və fırlanan açarın readKnobs () vəziyyətini yoxlayın;
// ************* // ***Normal*** // *************
if (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {byte input = analogRead (solda); çıxış (sol, giriş); }
// ************* // *** Phasor *** // *************
əgər (fx4> 100) {
fx1 = 0; fx2 = 0; fx3 = 0;
while (! f_sample) {// ADC -dən Nümunə Dəyərini gözləyin} // Dövr 15625 KHz = 64uSec PORTD = PORTD | 128; f_sample = yalan; bb = badc1; gg [icnt1] = bb; // tampona yaz fx4 = iw * badc0 / 255; // potensialiometr iw1 = dd [icnt2] ilə gecikmiş nümunə miqyası; // gecikmə tamponunu oxuyun badc0 = badc0 / 20; // 512 icnt1 ++ ilə məhdudlaşdırın; icnt2 = icnt1 - badc0; icnt2 = icnt2 & 511; // limit indeksi 0.. icnt1 = icnt1 & 511; // limit indeksi 0..511 iw2 = iw1 + bb; iw2 = iw2 / 2; bb = iw2; OCR2A = bb; // PWM Çıxışına Nümunə Dəyəri
PORTD = PORTD ^ 128; çıxış (sol, PORTD); // Çıxış}
// ************* // *** Flanşer *** // ************* əgər (fx3> 100) {
fx1 = 0; fx2 = 0; fx4 = 0;
while (! f_sample) {// ADC -dən Nümunə Dəyərini gözləyin} // Dövr 15625 KHz = 64uSec
PORTD = PORTD | 128; f_sample = yalan; bb = gg [icnt]; // gecikmə tamponunu oxuyun iw = 127 - bb; // subset ofset fx3 = iw * badc0 / 255; // potensialiometr iw1 = 127 ilə gecikmiş nümunə miqyası - badc1; // yeni nümunədən subset ofset iw1 = iw1 + iw; // gecikmiş nümunə və yeni nümunə əlavə edin, əgər (iw1 127) iw1 = 127; // Səs məhdudlaşdırıcısı bb = 127 + iw1; // ofset əlavə et dd [icnt] = bb; // nümunəni audio tamponda icnt ++ saxla; icnt = icnt & 511; // limit tampon indeksi 0..511 OCR2A = bb; // PWM Çıxışına Nümunə Dəyəri
PORTD = PORTD ^ 128; çıxış (sol, PORTD); // Çıxış
} }
void readKnobs () {fx1 = analogRead (1); fx2 = analogRead (2); fx3 = analogRead (3); fx4 = analogRead (4);
}
void fill_sinewave () {float pi = 3.141592; float dx; float fd; float fcnt; dx = 2 * pi / 512; // (iw = 0; iw <= 511; iw ++) {// üçün 512 baytlıq buferi doldurun, sinewawe fd = 127 * sin (fcnt) 50 dövrlə; // əsas ton fcnt = fcnt + dx; // 0 ilə 2xpi və 1/512 artımlar aralığında bb = 127 + fd; // sinewawe dc ofset əlavə edin dd [iw] = bb; // diziyə dəyər yazın
} }
// ********************************************** ****************** // 62.5 KHz -də Timer2 Interrupt Service // burada səs və pot siqnalı nümunə olaraq alınır: 16Mhz / 256/2/2 = 15625 Hz ISR (TIMER2_OVF_vect) {
PORTB = PORTB | 1;
div32 =! div32; // timer2 tezliyini / 2 -ni 31.25kHz -ə bölün, əgər (div32) {div16 =! div16; if (div16) {// nümunə kanal 0 və 1 alternativ olaraq hər bir kanal 15.6kHz badc0 = ADCH ilə nümunələnir; // ADC kanalını 0 sbi (ADMUX, MUX0) əldə edin; // multiplekseri 1 kanala təyin et} başqa {badc1 = ADCH; // ADC kanal 1 cbi (ADMUX, MUX0) alın; // multiplekseri 0 kanalına qoy f_sample = true; } ibb ++; ibb--; ibb ++; ibb--; // dönüşüm başlamazdan əvvəl qısa gecikmə sbi (ADCSRA, ADSC); // növbəti çevrilməyə başla}
}
Addım 6: Video
Potensial Problemlər ● Pikap elektrik dövrəsi üçün bir az zəifdir - bir op amp lazımdır. - Videoda bir siqnal gücləndiricisindən istifadə etdik. (Masada uzanan boz qutu.)
Tövsiyə:
Lazer Səs Efektli Ray Gun: 19 Addım (Şəkillərlə birlikdə)
Lazer Səs Efektli Ray Gun: Qablaşdırdığım köhnə hissələrdən layihələr qurmağı çox sevirəm. Bu sənədləşdirdiyim 2 -ci ray silahıdır (bu mənim ilk silahımdır). Ray silahları ilə birlikdə zibilliklər qurdum - (onları buradan yoxlayın) və bir çox başqa layihələr
Tozlu Divar Arduino İşıq Efektli Led Lampa: 11 Addım (Şəkillərlə)
Tozlu Divar Arduino İşıq Efektli Cizgi Led Lampası: Yenicə körpəm var idi və yataq otağını düzəltdikdən sonra divarda işığa ehtiyacım var idi. LED -i çox sevdiyim üçün bir şey yaratmağa qərar verdim. Ümumiyyətlə təyyarəni də bəyənirəm, buna görə də karikaturadan bir təyyarəni divara qoymayın, burada başladığı vaxt və necə etdiyim. Ümid edirəm
Proqramlaşdırıla bilən Həqiqi Bypass Gitara Efektli Looper Stansiyası, Daldırma Açarlarından istifadə edərək: 11 Addım
Proqramlaşdırıla bilən Həqiqi Baypas Gitara Efektli Looper Stansiyası, Dip Switch -lərdən istifadə edir: Mən gitara həvəskarı və hobbiistəm. Layihələrimin əksəriyyəti gitara alətləri ətrafında baş verir. Mən öz amplifikatörlerimi və bir neçə effektli pedalı qururam. Keçmişdə kiçik bir qrupda oynayırdım və özümü inandırırdım ki, təkərli bir ampa ehtiyacım var
Gitara Qəhrəmanı Gitara Ayırma Düzeltmesi: 5 Addım (Şəkillərlə birlikdə)
Gitara Qəhrəmanı Gitara Ayırıcı Düzeltme: Beləliklə, ebaydan o gözəl istifadə olunan gitara qəhrəmanı gitarı aldınız və sizə çatanda o USB dongle -a qoşulmayacaq, buna görə də 30 və avro boşa getdiyinizi düşünürsünüz; drenajdan aşağı. Ancaq bir düzəliş var və bu düzəliş çox güman ki işləyəcək
İşıq və Səs Efektli Arduino Əsaslı Lightsaber: 14 Addım (Şəkillərlə)
İşıq və Səs Efektli Arduino Əsaslı Lightsaber: Salam jedi! Bu təlimat, filmdəki kimi görünən, səslənən və işləyən bir işıq kəməri hazırlamaqdır! Yeganə fərq - metal kəsə bilməz: (Bu cihaz Arduino platformasına əsaslanır və ona bir çox xüsusiyyət və funksiya verirəm, bu