Satura rādītājs:

Kakla drupinātājs (uz ģitāras piestiprināts efekta pedālis): 6 soļi (ar attēliem)
Kakla drupinātājs (uz ģitāras piestiprināts efekta pedālis): 6 soļi (ar attēliem)

Video: Kakla drupinātājs (uz ģitāras piestiprināts efekta pedālis): 6 soļi (ar attēliem)

Video: Kakla drupinātājs (uz ģitāras piestiprināts efekta pedālis): 6 soļi (ar attēliem)
Video: 20 товаров для автомобиля с Алиэкспресс, автотовары №30 2024, Novembris
Anonim
Kakla drupinātājs (uz ģitāras piestiprināts efekta pedālis)
Kakla drupinātājs (uz ģitāras piestiprināts efekta pedālis)

Deils Rozens, Karloss Reiss un Robs Kohs

DATT 2000

1. darbība: problēma

Problēma
Problēma

Ģitāras pedāļi ierobežo mūziķi līdz pedāļu platformai. Risinājums: izveidojiet un ieguliet ģitāras pedāļu funkcionalitāti pašā ģitārā. Tas ļauj mūziķim brīvi pārvietoties pa skatuvi, izmantojot ģitāras kaklu kā saskarni, nevis aprobežojoties ar pedāļa dēļa atrašanās vietu. Mēs izpētīsim šo koncepciju, izveidojot bitcrusher/izlases ātruma efekta ierīci.

2. darbība: projekta konteksts

Projekta konteksts
Projekta konteksts

Ir daudz ģitāras pedāļu, ko mūziķi izmanto, lai manipulētu ar ģitāras skaņu. Lielākā daļa no tiem parasti atrodas uz statīviem vai stomp box, tāpēc ierobežo efektu kontroli tikai uz efektu vienības atrašanās vietu. Ierīces uzstādīšana uz ģitāras ļauj spēlētājiem kontrolēt efekta parametrus jebkurā vietā uz skatuves. Tas nozīmē, ka viņi netiks ierobežoti un varēs brīvi pārvietoties, lai sniegtu savu sniegumu.

Tā kā Arduino spēj atskaņot tikai 8 bitu audio, nav iespējams veikt augstas precizitātes signālu apstrādi. Tāpēc mēs izvēlējāmies efektus, ko mēs darījām, jo tie ir balstīti uz zemas precizitātes, izkropļotas skaņas radīšanu. Šie ir vienīgie efekti, kas ir pamatoti iespējami ar Arduino.

3. darbība. Nepieciešamās detaļas / rīki

Nepieciešamas detaļas / instrumenti
Nepieciešamas detaļas / instrumenti

● trieciena urbis

● Stiepļu griezēji

● Stiepļu noņēmēji

● Lodāmurs

● Karstās līmes pistole

● Atkausēšanas sūknis

● Ģitāra ● Korpuss

● lodēt

● Karstā līme

● Arduino

● Proto dēlis

● Pārklāts vads

● Audio ligzdas (x2)

● Potenciometri (x3)

● Kondensatori: 2,2 uF (x2)

● Atklāta vara stieple

● Skrūves (M3.5 *8)

● Rezistori: 1 k, 10 k, 1,2 k, 1,5 k, 390 k

● * Op pastiprinātājs (LM358) / * tranzistors (2N3442)

4. solis: Tehniskā stratēģija

Tehniskā stratēģija
Tehniskā stratēģija

Iekšējā shēma

Ieejas izejas

Mums ir jāpārveido audio signāls no ģitāras uz kaut ko tādu, ko arduino var izmantot un modificēt. Pēc tam mums būs jāpārveido signāls, kas nāk no arduino, atpakaļ audio signālā. Arduino nolasa spriegumus no 0V līdz 5V, audio signāli ir no -1V līdz 1V. Šie pārveidojumi tiek veikti, izmantojot rezistorus. Signāls tiks pārveidots arī izejas ķēdē.

Arduino bibliotēka: ArduinoDSP

Projekta apraksts (saskarne)

Pogas 1. poga: parauga ātrums

2. poga: uzgaļu drupinātājs

3. poga: bitu pārslēdzējs

5. darbība: kods

Kods
Kods

#include "dsp.h"

#define cbi (sfr, bit) (_SFR_BYTE (sfr) & = ~ _BV (bit)) #define sbi (sfr, bit) (_SFR_BYTE (sfr) | = _BV (bit))

Būla div32; Būla div16;

gaistošs Būla f_paraugs; gaistošs baits badc0; gaistošs baits badc1; gaistošs baits 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; baits bb;

baits dd [512]; // Audio atmiņas masīvs 8 bitu

void setup () {setupIO ();

// reload wave pēc 1 sekundes fill_sinewave ();

// iestatiet adc prescaler uz 64 19kHz paraugu ņemšanas frekvencei cbi (ADCSRA, ADPS2); sbi (ADCSRA, ADPS1); sbi (ADCSRA, ADPS0); // 8 bitu ADC ADCH reģistrā sbi (ADMUX, ADLAR); sbi (ADMUX, REFS0); cbi (ADMUX, REFS1); cbi (ADMUX, MUX0); cbi (ADMUX, MUX1); cbi (ADMUX, MUX2); cbi (ADMUX, MUX3); // Taimeris2 PWM režīms iestatīts uz ātru PWM cbi (TCCR2A, COM2A0); sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); // Timer2 cbi iestatīšana (TCCR2B, WGM22); // Taimera pulksteņa prescaler uz: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Taimeris2 PWM ports Iespējot sbi (DDRB, 3); // cli (); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = badc1;

}

void loop () {

// pārbaudīt efekta potenciometra un rotējošā slēdža statusu ReadKnobs ();

// ************* // *** Normāli *** // *************

ja (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {baitu ievade = analogRead (pa kreisi); izeja (pa kreisi, ievade); }

// ************* // *** Phasor *** // *************

ja (fx4> 100) {

fx1 = 0; fx2 = 0; fx3 = 0;

kamēr (! f_sample) {// gaidiet parauga vērtību no ADC} // cikls 15625 KHz = 64uSec PORTD = PORTD | 128; f_paraugs = nepatiess; bb = badc1; dd [icnt1] = bb; // rakstīt buferī fx4 = iw * badc0 / 255; // mēroga aizkavēts paraugs ar potenciometru iw1 = dd [icnt2]; // lasīt aizkaves buferi badc0 = badc0 / 20; // robežvērtība līdz 512 icnt1 ++; icnt2 = icnt1 - badc0; icnt2 = icnt2 & 511; // ierobežojuma indekss 0.. icnt1 = icnt1 & 511; // ierobežojuma indekss 0..511 iw2 = iw1 + bb; iw2 = iw2 / 2; bb = iw2; OCR2A = bb; // Parauga vērtība PWM izvadei

PORTD = PORTD ^ 128; izeja (pa kreisi, PORTD); // Izvade}

// ************* // *** Flanger *** // ************* if (fx3> 100) {

fx1 = 0; fx2 = 0; fx4 = 0;

kamēr (! f_sample) {// gaidiet parauga vērtību no ADC} // cikls 15625 KHz = 64uSec

PORTD = PORTD | 128; f_paraugs = nepatiess; bb = dd [icnt]; // nolasīt aizkaves buferi iw = 127 - bb; // atņemt nobīdi fx3 = iw * badc0 / 255; // mēroga aizkavēts paraugs ar potenciometru iw1 = 127 - badc1; // atņemt nobīdi no jaunā parauga iw1 = iw1 + iw; // pievienot aizkavēto paraugu un jaunu paraugu, ja (iw1 127) iw1 = 127; // Audio ierobežotājs bb = 127 + iw1; // pievienot nobīdi dd [icnt] = bb; // uzglabāt paraugu audio buferī icnt ++; icnt = icnt & 511; // ierobežot buferindeksu 0..511 OCR2A = bb; // Parauga vērtība PWM izvadei

PORTD = PORTD ^ 128; izeja (pa kreisi, PORTD); // Izeja

} }

void readKnobs () {fx1 = analogRead (1); fx2 = analogRead (2); fx3 = analogRead (3); fx4 = analogRead (4);

}

void fill_sinewave () {pludiņš pi = 3.141592; pludiņš dx; pludiņš fd; pludiņš fcnt; dx = 2 * pi / 512; // aizpildiet 512 baitu buferi (iw = 0; iw <= 511; iw ++) {// ar 50 punktiem sinewawe fd = 127 * sin (fcnt); // pamata tonis fcnt = fcnt + dx; // diapazonā no 0 līdz 2xpi un 1/512 soli bb = 127 + fd; // pievienot dc nobīdi sinewawe dd [iw] = bb; // ierakstiet vērtību masīvā

} }

// *********************************************** ***** **************** Hz ISR (TIMER2_OVF_vect) {

PORTB = PORTB | 1;

div32 =! div32; // sadaliet taimeri2 frekvenci / 2 līdz 31,25 kHz, ja (div32) {div16 =! div16; ja (div16) {// parauga kanāls 0 un 1 pārmaiņus, lai katrs kanāls tiktu izlasīts ar 15,6 kHz badc0 = ADCH; // iegūt ADC kanālu 0 sbi (ADMUX, MUX0); // iestatīt multipleksoru uz kanālu 1} else {badc1 = ADCH; // iegūt ADC 1. kanālu cbi (ADMUX, MUX0); // iestatīt multipleksoru uz kanālu 0 f_sample = true; } ibb ++; ibb--; ibb ++; ibb--; // īsa aizkave pirms konversijas sākuma sbi (ADCSRA, ADSC); // sākt nākamo reklāmguvumu}

}

6. darbība: video

Iespējamās problēmas ● Pickup ir nedaudz par vāju, lai to ieslēgtu strāvas ķēdē - nepieciešams op pastiprinātājs. - Video mēs izmantojām signāla pastiprinātāju. (Pelēkā kaste guļ uz galda.)

Ieteicams: