Sisukord:
- Samm: probleem
- 2. samm: projekti kontekst
- 3. samm: vajalikud osad / tööriistad
- 4. samm: tehniline strateegia
- Samm: kood
- 6. samm: video
Video: NeckCrusher (kitarrile paigaldatud efektipedaal): 6 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Dale Rosen, Carlos Reyes ja Rob Koch
DATT 2000
Samm: probleem
Kitarripedaalid piiravad muusikut pedaaliplatvormiga. Lahendus. Ehitage ja kinnitage kitarripedaalide funktsioonid kitarrisse. See võimaldab muusikul vabalt üle lava liikuda, kasutades kitarrikaela liidesena, selle asemel et piirduda pedaalilaua asukohaga. Uurime seda kontseptsiooni, luues bitipurustaja/diskreetimissageduse seadme.
2. samm: projekti kontekst
On palju kitarripedaale, mida muusikud kasutavad oma kitarride heli manipuleerimiseks. Enamik neist on tavaliselt riiulipõhistes või stomp-kastides, piirates seega efektide juhtimist efektide üksuse asukohaga. Seadme paigaldamine kitarrile võimaldab mängijatel kontrollida efekti parameetreid kõikjal laval. See tähendab, et neid ei piirata ja neil on vabadus oma esinemise nimel ringi liikuda.
Kuna Arduino on võimeline edastama ainult 8 -bitist heli, on võimatu teha täpset signaalitöötlust. Seetõttu valisime meie tehtud efektid, kuna need põhinevad madala täpsusega moonutatud heli loomisel. Need on ainsad efektid, mis on Arduinoga mõistlikult võimalikud.
3. samm: vajalikud osad / tööriistad
● Lööktrell
● Traadilõikurid
● Traadi eemaldajad
● jootekolb
● Kuumliimipüstol
● jootmispump
● Kitarr ● Korpus
● jootma
● Kuum liim
● Arduino
● Proto Board
● Kaetud traat
● Helipistikud (x2)
● potentsiomeetrid (x3)
● Kondensaatorid: 2,2 uF (x2)
● Avatud vasktraat
● Kruvid (M3.5 *8)
● Takistid: 1 k, 10 k, 1,2 k, 1,5 k, 390 k
● * Op võimendi (LM358) / * Transistor (2N3442)
4. samm: tehniline strateegia
Sisemine vooluring
Sisend väljund
Peame teisendama kitarrist tuleva helisignaali millekski, mida arduino saab kasutada ja muuta. Seejärel peame arduinost tuleva signaali helisignaaliks teisendama. Arduino loeb pingeid vahemikus 0V kuni 5V, helisignaalid on vahemikus -1V kuni 1V. Need teisendused tehakse takistite abil. Signaal teisendatakse ka väljundahelas.
Arduino raamatukogu: ArduinoDSP
Projekti kirjeldus (liides)
Nupud Nupp 1: Proovikiirus
Nupp 2: bitipurustaja
Nupp 3: bittide nihutaja
Samm: kood
#include "dsp.h"
#define cbi (sfr, bit) (_SFR_BYTE (sfr) & = ~ _BV (bit)) #define sbi (sfr, bit) (_SFR_BYTE (sfr) | = _BV (bit))
boolean div32; boolean div16;
lenduv boolean f_sample; lenduv bait badc0; lenduv bait badc1; lenduv bait 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; bait bb;
bait dd [512]; // Helimälu massiiv 8-bitine
void setup () {setupIO ();
// uuesti laine 1 sekundi pärast fill_sinewave ();
// määrake 19kHz diskreetimissageduse cbi jaoks ADC prescaler 64 -le (ADCSRA, ADPS2); sbi (ADCSRA, ADPS1); sbi (ADCSRA, ADPS0); // 8-bitine ADC ADCH registris sbi (ADMUX, ADLAR); sbi (ADMUX, REFS0); cbi (ADMUX, REFS1); cbi (ADMUX, MUX0); cbi (ADMUX, MUX1); cbi (ADMUX, MUX2); cbi (ADMUX, MUX3); // Taimer2 PWM -režiim on seatud kiireks PWM cbi (TCCR2A, COM2A0); sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); // Seadistus Timer2 cbi jaoks (TCCR2B, WGM22); // Timer2 Clock Prescaler to: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Taimer2 PWM -port Luba sbi (DDRB, 3); // cli (); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = badc1;
}
void loop () {
// efekti potentsiomeetri ja pöördlüliti oleku kontrollimine readKnobs ();
// ************* // *** Tavaline *** // *************
if (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {baidi sisend = analoogLugemine (vasakul); väljund (vasakul, sisend); }
// ************* // *** Phasor *** // *************
kui (fx4> 100) {
fx1 = 0; fx2 = 0; fx3 = 0;
while (! f_sample) {// oodake ADC prooviväärtust} // tsükkel 15625 KHz = 64uSec PORTD = PORTD | 128; f_näide = vale; bb = badc1; dd [icnt1] = bb; // kirjuta puhvrisse fx4 = iw * badc0 / 255; // skaleerige viivitatud proov potentsiomeetriga iw1 = dd [icnt2]; // loe viivituspuhvrit badc0 = badc0 / 20; // piirväärtus kuni 512 icnt1 ++; icnt2 = icnt1 - badc0; icnt2 = icnt2 & 511; // limiidi indeks 0.. icnt1 = icnt1 & 511; // piirindeks 0..511 iw2 = iw1 + bb; iw2 = iw2 / 2; bb = iw2; OCR2A = bb; // PWM -väljundi näidisväärtus
PORTD = PORTD ^ 128; väljund (vasakul, PORTD); // Väljund}
// ************* // *** Flanger *** // ************* if (fx3> 100) {
fx1 = 0; fx2 = 0; fx4 = 0;
while (! f_sample) {// oodake ADC prooviväärtust} // tsükkel 15625 KHz = 64uSec
PORTD = PORTD | 128; f_näide = vale; bb = dd [icnt]; // viivituspuhvri lugemine iw = 127 - bb; // lahutada nihe fx3 = iw * badc0 / 255; // skaleeritud viivitatud proov potentsiomeetriga iw1 = 127 - badc1; // lahutada nihkega uuest proovist iw1 = iw1 + iw; // lisage viivitatud proov ja uus proov, kui (iw1 127) iw1 = 127; // Helipiiraja bb = 127 + iw1; // lisa nihke dd [icnt] = bb; // salvestada näidis helipuhvrisse icnt ++; icnt = icnt & 511; // limiteeri puhverindeks 0..511 OCR2A = bb; // PWM -väljundi näidisväärtus
PORTD = PORTD ^ 128; väljund (vasakul, PORTD); // Väljund
} }
void readKnobs () {fx1 = analogRead (1); fx2 = analoogLoe (2); fx3 = analoogLoe (3); fx4 = analoogLoe (4);
}
void fill_sinewave () {float pi = 3.141592; ujuk dx; float fd; float fcnt; dx = 2 * pi / 512; // täitke 512 -baidine puhverplaat (iw = 0; iw <= 511; iw ++) {// 50 punktiga sinewawe fd = 127 * sin (fcnt); // põhitoon fcnt = fcnt + dx; // vahemikus 0 kuni 2xpi ja 1/512 sammuga bb = 127 + fd; // lisage sinewawe -le dc -nihke dd [iw] = bb; // väärtuse kirjutamine massiivi
} }
// *********************************************** ***** **************** Hz ISR (TIMER2_OVF_vect) {
PORTB = PORTB | 1;
div32 =! div32; // jaga taimer2 sagedust / 2 kuni 31,25 kHz, kui (div32) {div16 =! div16; if (div16) {// proovikanal 0 ja 1 vaheldumisi, nii et igast kanalist võetakse 15,6 kHz badc0 = ADCH; // hangi ADC kanal 0 sbi (ADMUX, MUX0); // seadista multiplekser kanalile 1} else {badc1 = ADCH; // hangi ADC kanal 1 cbi (ADMUX, MUX0); // määra multiplekser kanalile 0 f_sample = true; } ibb ++; ibb--; ibb ++; ibb--; // lühike viivitus enne teisendamise alustamist sbi (ADCSRA, ADSC); // alusta järgmist konversiooni}
}
6. samm: video
Võimalikud probleemid ● Pickup on toiteahela jaoks pisut liiga nõrk - vajate võimendit. - Videos kasutasime signaali võimendit. (Hall karp laual.)
Soovitan:
Kahe kanaliga signaaligeneraator kitarrile: 10 sammu
Kahe kanaliga signaaligeneraator kitarrile: see projekt on lihtne ehitada, originaalne disain kahekanalilisele signaaligeneraatorile kitarrile ja muuks otstarbeks. See hõlmab kogu kitarrinootide valikut (teile, kitarristidele, alates avatud Low E keelpillist - 83 Hertz, kuni 24. fretini kõrgel E
AB/XY 2 kitarrile ja 2 amprile eraldi kanalitel: 7 sammu (koos piltidega)
AB/XY 2 kitarrile ja 2 amprile eraldi kanalitel: nagu tavaliselt meeldib mulle teha asju, mis minu jaoks probleeme lahendavad. Seekord on see see, ma kasutan oma kahe võimendi vahel vahetamiseks Boss AB-2 pedaali, üks on tavaliselt määrdunud ja teine on puhas, pedaalid ees. Siis kui keegi teine tuleb ja
Visiirile paigaldatud mitmevärviline LED-valgusravi lamp: 9 sammu (piltidega)
Visiirile kinnitatud mitmevärviline LED-valgusravi lamp: Kui mütsil on valgusteraapia lamp, saate seda kasutada, kui teete liikumist nõudvaid tegevusi, nagu näiteks treenimine ja töötamine. Sellel lambil on heleduse reguleerimisega punased, kollased, tsüaansinised ja sinised LED -id. See lülitub välja 15 või 45 minuti pärast. See on
Raspberry Pi: seinale paigaldatud kalender ja teavituskeskus: 5 sammu (koos piltidega)
Raspberry Pi: seinale kinnitatud kalender ja teavituskeskus: enne “ digitaalajastut ” paljud pered kasutasid eelseisvate sündmuste igakuise ülevaate kuvamiseks seinakalendreid. See seinale paigaldatud kalendri tänapäevane versioon sisaldab samu põhifunktsioone: igakuine päevakava Pereliikmete tegevuse sünkroonimine
Juhised nelja latiga haakeseadise valmistamiseks keskele paigaldatud jalatoe jaoks: 9 sammu (koos piltidega)
Juhised nelja latiga haakeseadise valmistamiseks keskele paigaldatava jalatoe jaoks: viimastel aastatel on populaarsemaks muutunud keskmise veoga ratastoolid (PWC). Kuid eesmiste rataste paigutuse tõttu on traditsioonilised küljele paigaldatavad jalatoed asendatud ühe keskele paigaldatava jalatoega. Kahjuks kesklinn