INHOUDSOPGAWE:
- Stap 1: Probleem
- Stap 2: Projekkonteks
- Stap 3: Onderdele / gereedskap benodig
- Stap 4: Tegniese strategie
- Stap 5: Kode
- Stap 6: Video
Video: NeckCrusher (kitaar gemonteerde effekpedaal): 6 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Dale Rosen, Carlos Reyes en Rob Koch
DATT 2000
Stap 1: Probleem
Kitaarpedale beperk die musikant tot die pedaalplatform. Oplossing: Bou en sluit 'n kitaarpedaal -funksie in die kitaar self in. Dit stel die musikant in staat om vrylik oor die verhoog te beweeg, met die kitaarhals as 'n koppelvlak in plaas van om beperk te word tot die ligging van die pedaalbord. Ons sal hierdie konsep ondersoek deur 'n apparaat vir bitcrusher/sample rate effek te skep.
Stap 2: Projekkonteks
Daar is baie kitaarpedale wat musikante gebruik om die klank van hul kitare te manipuleer. Die meeste hiervan is gewoonlik in rek-gebaseerde eenhede of stampbakke, en beperk die beheer van die effekte tot die plek van die effekteenheid. Deur die toestel op die kitaar te monteer, kan spelers die parameters van die effek oral op die verhoog beheer. Dit beteken dat hulle nie beperk sal word nie en dat hulle die vryheid kan hê om rond te beweeg vir hul optrede.
Aangesien Arduino slegs 8 -bis -klank kan gebruik, is dit onmoontlik om 'n hoë -getrouheidsseinverwerking te doen. Dit is die rede waarom ons die effekte wat ons gedoen het, gekies het, aangesien dit gebaseer is op die skep van 'n lae -getroue, verwronge klank. Dit is die enigste effekte wat redelik moontlik is met 'n Arduino.
Stap 3: Onderdele / gereedskap benodig
● Impakboor
● Draadsnyers
● Draadstroppers
● Soldeerbout
● Warmlijmpistool
● Desoldeerpomp
● Kitaar ● Omhulsel
● Soldeer
● Warm gom
● Arduino
● Proto Board
● Bedekte draad
● Audio -aansluitings (x2)
● Potensiometers (x3)
● Kapasitors: 2,2 uF (x2)
● Blootgestelde koperdraad
● Skroewe (M3,5 *8)
● Weerstands: 1 k, 10 k, 1,2 k, 1,5 k, 390 k
● * Op Amp (LM358) / * Transistor (2N3442)
Stap 4: Tegniese strategie
Interne stroombane
Invoer/uitvoer
Ons moet die klanksignaal van 'n kitaar omskakel na iets wat die arduino kan gebruik en verander. Ons sal dan die sein van die arduino terug moet omskakel in 'n klanksein. Arduino lees spanning van 0V tot 5V, klankseine is van -1V tot 1V. Hierdie omskakelings word gedoen met behulp van weerstande. Die sein sal ook in die uitsetstroombaan omgeskakel word.
Arduino -biblioteek: ArduinoDSP
Projekbeskrywing (koppelvlak)
Knoppe Knop 1: Monstertempo
Knop 2: Bit Crusher
Knop 3: Bit Shifter
Stap 5: Kode
#sluit "dsp.h" in
#define cbi (sfr, bit) (_SFR_BYTE (sfr) & = ~ _BV (bit)) #define sbi (sfr, bit) (_SFR_BYTE (sfr) | = _BV (bit))
boolean div32; booleaanse div16;
vlugtige booleaanse f_monster; vlugtige byte badc0; vlugtige byte badc1; vlugtige byte 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; byte bb;
greep dd [512]; // Audiogeheue-reeks 8-bis
ongeldige opstelling () {setupIO ();
// herlaai golf na 1 sekonde fill_sinewave ();
// stel adc prescaler op 64 vir 19kHz bemonsteringsfrekwensie cbi (ADCSRA, ADPS2); sbi (ADCSRA, ADPS1); sbi (ADCSRA, ADPS0); // 8-bis ADC in ADCH Register sbi (ADMUX, ADLAR); sbi (ADMUX, REFS0); cbi (ADMUX, REFS1); cbi (ADMUX, MUX0); cbi (ADMUX, MUX1); cbi (ADMUX, MUX2); cbi (ADMUX, MUX3); // Timer2 PWM -modus ingestel op vinnige PWM -cbi (TCCR2A, COM2A0); sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); // Opstel vir Timer2 cbi (TCCR2B, WGM22); // Timer2 Clock Prescaler na: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Timer2 PWM -poort Aktiveer sbi (DDRB, 3); // cli (); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = badc1;
}
leemte -lus () {
// kyk na die status van die effekpotensiometer en draaiskakelaar readKnobs ();
// ************* // ***Normaal*** // *************
as (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {byte input = analogRead (links); uitset (links, invoer); }
// ************* // *** Phasor *** // *************
as (fx4> 100) {
fx1 = 0; fx2 = 0; fx3 = 0;
terwyl (! f_sample) {// wag vir monsterwaarde van ADC} // siklus 15625 KHz = 64uSec PORTD = PORTD | 128; f_monster = vals; bb = badc1; dd [icnt1] = bb; // skryf na buffer fx4 = iw * badc0 / 255; // skaal vertraagde monster met potensiometer iw1 = dd [icnt2]; // lees die vertragingsbuffer badc0 = badc0 / 20; // grenswaarde tot 512 icnt1 ++; icnt2 = icnt1 - badc0; icnt2 = icnt2 & 511; // limietindeks 0.. icnt1 = icnt1 & 511; // limietindeks 0..511 iw2 = iw1 + bb; iw2 = iw2 / 2; bb = iw2; OCR2A = bb; // Voorbeeldwaarde tot PWM -uitset
PORTD = PORTD ^ 128; uitset (links, PORTD); // Uitgawe}
// ************* // *** Flanger *** // ************* if (fx3> 100) {
fx1 = 0; fx2 = 0; fx4 = 0;
terwyl (! f_sample) {// wag vir monsterwaarde van ADC} // siklus 15625 KHz = 64uSec
PORTD = PORTD | 128; f_monster = vals; bb = dd [icnt]; // lees die vertragingsbuffer iw = 127 - bb; // aftrek offset fx3 = iw * badc0 / 255; // skaal vertraagde monster met potensiometer iw1 = 127 - badc1; // aftrek van nuwe monster iw1 = iw1 + iw; // voeg vertraagde monster en nuwe monster by as (iw1 127) iw1 = 127; // Audio limiter bb = 127 + iw1; // voeg offset dd [icnt] = bb; // stoor monster in klankbuffer icnt ++; icnt = icnt & 511; // limiet bufferindeks 0..511 OCR2A = bb; // Voorbeeldwaarde tot PWM -uitset
PORTD = PORTD ^ 128; uitset (links, PORTD); // Uitset
} }
leegte readKnobs () {fx1 = analogRead (1); fx2 = analogRead (2); fx3 = analogRead (3); fx4 = analogRead (4);
}
void fill_sinewave () {float pi = 3.141592; float dx; dryf fd; float fcnt; dx = 2 * pi / 512; // vul die 512 byte bufferarry vir (iw = 0; iw <= 511; iw ++) {// met 50 periodes sinewawe fd = 127 * sin (fcnt); // fundamentele toon fcnt = fcnt + dx; // in die reeks van 0 tot 2xpi en 1/512 inkremente bb = 127 + fd; // voeg dc offset by sinwawe dd [iw] = bb; // skryf waarde in skikking
} }
// ************************************************ ****************** // Timer2 -onderbrekingsdiens by 62,5 KHz // hier word die klank- en potsein getoets in 'n snelheid van: 16Mhz / 256 /2 /2 = 15625 Hz ISR (TIMER2_OVF_vect) {
PORTB = PORTB | 1;
div32 =! div32; // verdeel timer2 frekwensie / 2 tot 31,25 kHz as (div32) {div16 =! div16; as (div16) {// monster kanaal 0 en 1 om die beurt, sodat elke kanaal bemonster word met 15,6 kHz badc0 = ADCH; // kry ADC -kanaal 0 sbi (ADMUX, MUX0); // stel multiplexer op kanaal 1} else {badc1 = ADCH; // kry ADC kanaal 1 cbi (ADMUX, MUX0); // stel multiplexer op kanaal 0 f_sample = true; } ibb ++; ibb--; ibb ++; ibb--; // kort vertraging voor die begin van die omskakeling sbi (ADCSRA, ADSC); // begin volgende omskakeling}
}
Stap 6: Video
Moontlike probleme ● Die bakkie is 'n bietjie te swak om 'n stroombaan aan te skakel - benodig 'n op -amp. - In die video gebruik ons 'n seinversterker. (Die grys boks wat op die tafel lê.)
Aanbeveel:
N Ou laaier? Nee, dit is 'n RealTube18 all-Tube kitaar koptelefoonversterker en pedaal: 8 stappe (met foto's)
N Ou laaier? Nee, dit is 'n koptelefoonversterker en pedaal van RealTube18 met 'n buis vir almal: OORSIG: Wat om te doen tydens 'n pandemie, met 'n verouderde nikkel-kadmium-batterylaaier, en 60+ jaar oud, verouderde motorradio-vakuumbuise wat moet sit en herwin moet word? Hoe gaan dit met die ontwerp en bou van 'n gewone buis, lae spanning, algemene gereedskapbattery
Kitaar kitaar-versterker: 6 stappe
Kitaar-kitaarversterker: Toe ek kyk hoe my broer 'n ou kitaar wat hy al maande lank het, gaan weggooi, kon ek nie anders as om hom te keer nie. Ons het almal die gesegde gehoor: 'een mens se asblik is 'n ander mens se skat. &Quot; So ek het dit gegryp voordat dit die grondvul geraak het. Hierdie
Visor-gemonteerde veelkleurige LED-ligterapie-lamp: 9 stappe (met foto's)
Visor-gemonteerde veelkleurige LED-ligterapie-lamp: Met 'n ligterapie-lamp op u hoed, kan u dit gebruik terwyl u aktiwiteite doen wat u moet verplaats, soos oefen en werk. Hierdie lamp het rooi, geel, siaan en blou LED's met helderheidsbeheer. Dit skakel na 15 of 45 minute uit. Dit
Venster-gemonteerde soldeer-afzuigkap (nie net vir kampeerders nie!): 10 stappe (met foto's)
Venster-gemonteerde soldeer-afzuigkap (nie net vir kampeerders nie!): Dit is my oplossing vir die ekstraksie van soldeergas vir my werkbank (RV). Dit maak gebruik van 'n droërslang, 'n rekenaarwaaier en 'n isolasiebord om 'n verwyderbare soldeerstelsel te maak wat dampe buite waai. U kan dit selfs vir gewone huise gebruik om
Dek 'n kitaar luidsprekerkas met TOLEX: 18 stappe (met foto's)
Bedek 'n kitaarluidsprekerkabinet met TOLEX: Hoe om 'n kitaarluidsprekerkas te meet, te sny en te bedek met TOLEX