Tartalomjegyzék:
- 1. lépés: Probléma
- 2. lépés: A projekt kontextusa
- 3. lépés: Szükséges alkatrészek / eszközök
- 4. lépés: Műszaki stratégia
- 5. lépés: Kód
- 6. lépés: Videó
Videó: NeckCrusher (gitárra szerelt effektpedál): 6 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
Dale Rosen, Carlos Reyes és Rob Koch
DATT 2000
1. lépés: Probléma
A gitárpedálok a zenészt a pedálplatformra korlátozzák. Megoldás: Építsen és illesszen be egy gitárpedál funkciót a gitárba. Ez lehetővé teszi a zenész számára, hogy szabadon mozogjon a színpadon, a gitár nyakát használva interfészként, ahelyett, hogy a pedál tábla helyére korlátozódna. Ezt a koncepciót fogjuk feltárni egy bitzúzó/mintavételi effektus eszköz létrehozásával.
2. lépés: A projekt kontextusa
Sok gitárpedált használnak a zenészek, hogy manipulálják gitárjuk hangját. Ezek többsége általában rack alapú vagy stomp box egységekben van, ezért az effektek vezérlését az effekt egység helyére korlátozzák. A készüléket a gitárra szerelve a játékosok bárhol a színpadon szabályozhatják a hatás paramétereit. Ez azt jelenti, hogy nem korlátozzák őket, és szabadon mozoghatnak teljesítményük érdekében.
Mivel az Arduino csak 8 bites hangra képes, lehetetlen nagy pontosságú jelfeldolgozást végezni. Ezért esett a választásunk az effektekre, mivel alacsony hűségű, torz hangzáson alapulnak. Ez az egyetlen olyan hatás, amely ésszerűen lehetséges egy Arduino használatával.
3. lépés: Szükséges alkatrészek / eszközök
● Ütvefúró
● Drótvágók
● Huzalcsupaszítók
● Forrasztópáka
● Forró ragasztópisztoly
● Forrasztószivattyú
● Gitár ● Ház
● Forrasztás
● Forró ragasztó
● Arduino
● Proto Board
● Bevonatú huzal
● Hangcsatlakozók (x2)
● Potenciométerek (x3)
● Kondenzátorok: 2,2 uF (x2)
● Nyitott rézhuzal
● Csavarok (M3,5 *8)
● Ellenállások: 1 k, 10 k, 1,2 k, 1,5 k, 390 k
● * Op erősítő (LM358) / * tranzisztor (2N3442)
4. lépés: Műszaki stratégia
Belső áramkör
Bemenet kimenet
Át kell alakítanunk a gitárból érkező hangjelet olyasmivé, amelyet az arduino használhat és módosíthat. Ezt követően vissza kell alakítanunk az arduino -ból érkező jelet audió jellé. Az Arduino 0V és 5V közötti feszültséget olvas, az audiojelek -1V és 1V között vannak. Ezeket az átalakításokat ellenállások segítségével végezzük. A jel átalakul a kimeneti áramkörben is.
Arduino könyvtár: ArduinoDSP
Projekt leírása (interfész)
Gombok 1. gomb: Mintavételi arány
2. gomb: Bitzúzó
3. gomb: Bitváltó
5. lépés: Kód
#include "dsp.h"
#define cbi (sfr, bit) (_SFR_BYTE (sfr) & = ~ _BV (bit)) #define sbi (sfr, bit) (_SFR_BYTE (sfr) | = _BV (bit))
logikai div32; boolean div16;
illékony logikai f_sample; illékony bájt badc0; illékony bájt badc1; illékony bájt 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; bb bájt;
bájt dd [512]; // Audio memória tömb 8 bites
void setup () {setupIO ();
// hullám újratöltése 1 másodperc után fill_sinewave ();
// az adc prescaler beállítása 64 -re 19 kHz mintavételi frekvenciára cbi (ADCSRA, ADPS2); sbi (ADCSRA, ADPS1); sbi (ADCSRA, ADPS0); // 8 bites ADC az ADCH regiszterben sbi (ADMUX, ADLAR); sbi (ADMUX, REFS0); cbi (ADMUX, REFS1); cbi (ADMUX, MUX0); cbi (ADMUX, MUX1); cbi (ADMUX, MUX2); cbi (ADMUX, MUX3); // Az időzítő2 PWM mód beállítása gyors PWM cbi (TCCR2A, COM2A0); sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); // Timer2 cbi beállítása (TCCR2B, WGM22); // Timer2 Clock Prescaler to: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Timer2 PWM Port Engedélyezze a sbi -t (DDRB, 3); // cli (); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = badc1;
}
void loop () {
// az effekt potenciométer és a forgókapcsoló állapotának ellenőrzése readKnobs ();
// ************* // ***Normál*** // *************
if (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {bájtos bemenet = analóg Olvasás (balra); kimenet (bal, bemenet); }
// ************* // *** Phasor *** // *************
ha (fx4> 100) {
fx1 = 0; fx2 = 0; fx3 = 0;
while (! f_sample) {// várjon mintaértéket az ADC -től} // Ciklus 15625 KHz = 64uSec PORTD = PORTD | 128; f_minta = hamis; bb = badc1; dd [icnt1] = bb; // írás a pufferbe fx4 = iw * badc0 / 255; // skálázott késleltetett minta potenciométerrel iw1 = dd [icnt2]; // olvassa el a késleltető puffert badc0 = badc0 / 20; // határérték 512 icnt1 ++; icnt2 = icnt1 - badc0; icnt2 = icnt2 & 511; // limit index 0.. icnt1 = icnt1 & 511; // limit index 0..511 iw2 = iw1 + bb; iw2 = iw2 / 2; bb = iw2; OCR2A = bb; // Mintaérték a PWM kimenethez
PORTD = PORTD ^ 128; kimenet (bal, PORTD); // Kimenet }
// ************* // *** Flanger *** // ************* if (fx3> 100) {
fx1 = 0; fx2 = 0; fx4 = 0;
while (! f_sample) {// várjon mintaértéket az ADC -től} // Ciklus 15625 KHz = 64uSec
PORTD = PORTD | 128; f_minta = hamis; bb = dd [icnt]; // a késleltető puffer olvasása iw = 127 - bb; // kivonás eltolás fx3 = iw * badc0 / 255; // skála késleltetett minta potenciométerrel iw1 = 127 - badc1; // levonás eltolás az új mintából iw1 = iw1 + iw; // késleltetett minta és új minta hozzáadása, ha (iw1 127) iw1 = 127; // Hanghatároló bb = 127 + iw1; // add offset dd [icnt] = bb; // minta tárolása audio pufferben icnt ++; icnt = icnt & 511; // limit bufferindex 0..511 OCR2A = bb; // Mintaérték a PWM kimenethez
PORTD = PORTD ^ 128; kimenet (bal, PORTD); // Kimenet
} }
void readKnobs () {fx1 = analogRead (1); fx2 = analóg (2); fx3 = analóg (3); fx4 = analóg (4);
}
void fill_sinewave () {float pi = 3.141592; float dx; float fd; float fcnt; dx = 2 * pi / 512; // töltse ki az (iw = 0; iw <= 511; iw ++) {512 bájtos ütközőt 50 ponttal sinewawe fd = 127 * sin (fcnt); // alaphang fcnt = fcnt + dx; // 0 és 2xpi közötti tartományban és 1/512 lépésekben bb = 127 + fd; // dc offset hozzáadása a sinewawe -hez dd [iw] = bb; // érték írása tömbbe
} }
// ************************************************ ****************** // Timer2 Interrupt Service 62,5 KHz -en // itt az audio és a pot jel mintavételezése: 16Mhz / 256 /2 /2 = 15625 Hz ISR (TIMER2_OVF_vect) {
PORTB = PORTB | 1;
div32 =! div32; // osztja az időzítő2 frekvenciát / 2 -ről 31,25 kHz -re, ha (div32) {div16 =! div16; if (div16) {// mintacsatorna 0 és 1 felváltva, így minden csatorna mintavételezése 15,6 kHz badc0 = ADCH; // ADC csatorna beszerzése 0 sbi (ADMUX, MUX0); // állítsa be a multiplexert az 1 csatornára} else {badc1 = ADCH; // ADC 1. csatorna beszerzése cbi (ADMUX, MUX0); // állítsa a multiplexert a 0 csatornára f_sample = true; } ibb ++; ibb--; ibb ++; ibb--; // rövid késleltetés a konverzió megkezdése előtt sbi (ADCSRA, ADSC); // indítsa el a következő konverziót}
}
6. lépés: Videó
Lehetséges problémák ● A hangszedő kissé gyenge az áramkörhöz - op erősítőre van szükség. - A videóban jelfokozót használtunk. (A szürke doboz az asztalon hever.)
Ajánlott:
Vezeték nélküli kerékpárra szerelt Bluetooth hangszóró: 11 lépés (képekkel)
Vezeték nélküli kerékpárra szerelt Bluetooth hangszóró: Üdv! Ebben az utasításban megmutatom, hogyan építettem fel a vezeték nélküli kerékpárra szerelt Bluetooth hangszórómat. Azt kell mondanom, hogy ez lehet az egyik kedvenc projektem eddig. Remekül néz ki, nagyszerű hangzása és futurisztikus megjelenése van! Mint al
Szemüvegre szerelt lézermutató mozgáskorlátozott személyek számára: 9 lépés (képekkel)
Szemüvegre szerelt lézermutató mozgásszervi fogyatékossággal élő személyek számára: A súlyos mozgásszervi fogyatékossággal élő személyek, például az agyi bénulás okozta betegek gyakran összetett kommunikációs igényekkel rendelkeznek. Előfordulhat, hogy a kommunikáció elősegítésére táblákat kell használniuk, amelyeken ábécét vagy általában használt szavakat nyomtatnak. Azonban sok
Visorra szerelt többszínű LED fényterápiás lámpa: 9 lépés (képekkel)
Visorra szerelt többszínű LED fényterápiás lámpa: Fényterápiás lámpával a kalapján használhatja, miközben olyan tevékenységeket végez, amelyek megkövetelik a mozgást, például gyakorlást és munkát. Ez a lámpa vörös, sárga, ciánkék és kék LED -ekkel rendelkezik, fényerő -szabályozással. 15 vagy 45 perc múlva kikapcsol. Azt
Ablakra szerelt forrasztási füstelszívó (nem csak lakóautókhoz!): 10 lépés (képekkel)
Ablakra szerelt forrasztópáraelszívó (nem csak lakóautókhoz!): Ez az én megoldásom az otthoni (RV) munkapad forrasztópára elszívására. Szárítótömlőt, számítógép -ventilátort és néhány szigetelőlapot használ egy eltávolítható forrasztó szellőzőrendszerhez, amely kifújja a füstöt. Akár normál házakhoz is használhatja
Hogyan szerelhetem a Rackre szerelt My Line 6 pod gitáreffektus-processzorát: 10 lépés (képekkel)
Hogyan rackre szerelt My Line 6 pod gitáreffektus -processzor: Vettem az egyik eredeti Line 6 POD egységet, amikor először 1998 -ban jelentek meg. Akkoriban fenomenálisan hangzott, és még ma is remekül hangzik - az egyetlen probléma az alakja volt - Világosan fogalmazva, hülyén néz ki. Fontosabb, hacsak nincs