Spisu treści:
- Krok 1: Problem
- Krok 2: Kontekst projektu
- Krok 3: Wymagane części/narzędzia
- Krok 4: Strategia techniczna
- Krok 5: Kod
- Krok 6: Wideo
Wideo: NeckCrusher (pedał efektów montowany na gitarze): 6 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
Dale Rosen, Carlos Reyes i Rob Koch
DATT 2000
Krok 1: Problem
Pedały gitarowe ograniczają muzyka do platformy pedałów. Rozwiązanie: Zbuduj i osadź funkcjonalność pedałów gitarowych w samej gitarze. Pozwala to muzykowi na swobodne poruszanie się po scenie, używając gryfu gitary jako interfejsu zamiast ograniczania się do położenia pedału. Będziemy badać tę koncepcję, tworząc urządzenie z efektem kruszenia bitów/częstotliwości próbkowania.
Krok 2: Kontekst projektu
Istnieje wiele pedałów gitarowych używanych przez muzyków do manipulowania dźwiękiem ich gitar. Większość z nich znajduje się zwykle w jednostkach typu rack lub stomp box, co ogranicza kontrolę efektów do lokalizacji jednostki efektów. Zamontowanie urządzenia na gitarze pozwala graczom kontrolować parametry efektu w dowolnym miejscu na scenie. Oznacza to, że nie będą podlegać ograniczeniom i będą mogli swobodnie poruszać się w celu wykonania swojej pracy.
Ponieważ Arduino obsługuje tylko dźwięk 8-bitowy, niemożliwe jest przetwarzanie sygnału o wysokiej wierności. Dlatego wybraliśmy efekty, które wykonaliśmy, ponieważ opierają się na tworzeniu niskiej wierności, zniekształconego dźwięku. To jedyne efekty, które są rozsądnie możliwe z Arduino.
Krok 3: Wymagane części/narzędzia
● Wiertarka udarowa
● Przecinaki do drutu
● Narzędzie do ściągania izolacji
● Lutownica
● Pistolet do klejenia na gorąco
● Pompa rozlutowująca
● Gitara● Obudowa
● Lutowane
● Gorący Klej
● Arduino
● Prototablica
● Drut powlekany
● Gniazda audio (x2)
● Potencjometry (x3)
● Kondensatory: 2,2 uF (x2)
● Odsłonięty drut miedziany
● Śruby (M3,5*8)
● Rezystory: 1 k, 10 k, 1,2 k, 1,5 k, 390 k
● * Wzmacniacz operacyjny (LM358) / * Tranzystor (2N3442)
Krok 4: Strategia techniczna
Obwody wewnętrzne
Wejście wyjście
Musimy przekonwertować sygnał audio pochodzący z gitary na coś, co arduino może używać i modyfikować. Następnie będziemy musieli przekonwertować sygnał pochodzący z arduino z powrotem na sygnał audio. Arduino odczytuje napięcia od 0V do 5V, sygnały audio od -1V do 1V. Te konwersje są wykonywane za pomocą rezystorów. Sygnał będzie konwertowany również w obwodzie wyjściowym.
Biblioteka Arduino: ArduinoDSP
Opis projektu (interfejs)
Pokrętła Pokrętło 1: Częstotliwość próbkowania
Pokrętło 2: Kruszarka do bitów
Pokrętło 3: przesuwanie bitów
Krok 5: Kod
#include "dsp.h"
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
boolowski div32; boolowski div16;
lotna wartość logiczna f_sample; ulotny bajt badc0; ulotny bajt badc1; ulotny bajt ibb;
int fx1; int fx2; int fx3; int fx4;
wewn cnt; wewn. int int1; int icnt2; int cnt2; wew; int iw1; int iw2; bajt bb;
bajt dd[512]; // 8-bitowa macierz pamięci audio
void setup() { setupIO();
// przeładowanie fali po 1 sekundzie fill_sinewave();
// ustaw preskaler adc na 64 dla częstotliwości próbkowania 19kHz cbi(ADCSRA, ADPS2); sbi(ADCSRA, ADPS1); sbi(ADCSRA, ADPS0); // 8-bitowy ADC w ADCH Rejestr sbi(ADMUX, ADLAR); sbi(ADMUX, REFS0); cbi(ADMUX, REFS1); cbi(ADMUX, MUX0); cbi(ADMUX, MUX1); cbi(ADMUX, MUX2); cbi(ADMUX, MUX3); // Tryb Timer2 PWM ustawiony na szybki PWM cbi (TCCR2A, COM2A0); sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); //Konfiguracja dla Timera2 cbi (TCCR2B, WGM22); // Preskaler zegara Timer2 do: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Port PWM timera2 Włącz sbi(DDRB, 3); //cli(); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = badc1;
}
pusta pętla () {
//sprawdź stan potencjometru efektu i przełącznika obrotowego readKnobs();
// ************* // ***Normal*** // *************
if (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) { byte input = analogRead(po lewej); wyjście (po lewej, wejście); }
// ************* // ***Wskaźnik*** // *************
jeśli (fx4 > 100) {
fx1 = 0; fx2 = 0; fx3 = 0;
while (!f_sample) { // czekaj na wartość próbki z ADC } // Cykl 15625 KHz = 64uSec PORTD = PORTD | 128; f_próbka = fałsz; bb = badc1; dd[icnt1] = bb; // zapis do bufora fx4 = iw * badc0 / 255; // skalowanie opóźnionej próbki potencjometrem iw1 = dd[icnt2]; // odczytaj bufor opóźnienia badc0 = badc0 / 20; // ograniczenie wartości do 512 icnt1++; icnt2 = icnt1 - badc0; icnt2 = icnt2 i 511; // indeks limitu 0.. icnt1 = icnt1 & 511; // indeks limitu 0..511 iw2 = iw1 + bb; iw2 = iw2 / 2; bb = iw2; OCR2A = bb; // Przykładowa wartość do wyjścia PWM
PORTD = PORT ^ 128; wyjście (po lewej, PORTD); // Wyjście }
// ************* // ***Flanger*** // ************* if (fx3 > 100) {
fx1 = 0; fx2 = 0; fx4 = 0;
while (!f_sample) { // czekaj na wartość próbki z ADC } // Cykl 15625 KHz = 64uSec
PORTD = PORT | 128; f_próbka = fałsz; bb = dd[icnt]; // odczytaj bufor opóźnienia iw = 127 - bb; // odejmij offset fx3 = iw * badc0 / 255; // skalowanie opóźnionej próbki potencjometrem iw1 = 127 - badc1; // odejmij offset od nowej próbki iw1 = iw1 + iw; // dodaj opóźnioną próbkę i nową próbkę if (iw1 127) iw1 = 127; // Ogranicznik dźwięku bb = 127 + iw1; // dodaj przesunięcie dd[icnt] = bb; // przechowuj próbkę w buforze audio icnt++; icnt = icnt & 511; // limit bufora indeksu 0..511 OCR2A = bb; // Przykładowa wartość do wyjścia PWM
PORTD = PORT ^ 128; wyjście (po lewej, PORTD); // Wyjście
} }
void readKnobs() { fx1 = analogRead(1); fx2 = odczyt analogowy(2); fx3 = analogowyOdczyt(3); fx4 = odczyt analogowy(4);
}
void fill_sinewave() { float pi = 3.141592; pływak dx; pływak fd; pływak fcnt; dx = 2 * pi / 512; // wypełnij 512 bajtową tablicę bufora for (iw = 0; iw <= 511; iw++) { // 50 okresami sinewawe fd = 127 * sin(fcnt); // ton podstawowy fcnt = fcnt + dx; // w zakresie od 0 do 2xpi i 1/512 przyrostów bb = 127 + fd; // dodaj przesunięcie dc do sinusoidy dd[iw] = bb; // zapisz wartość do tablicy
} }
//************************************************** ****************** // Usługa przerwań Timer2 przy 62,5 KHz // tutaj sygnał audio i pot są próbkowane z częstotliwością: 16 Mhz / 256 / 2 / 2 = 15625 Hz ISR(TIMER2_OVF_vect) {
PORTB = PORTB | 1;
div32 = !div32; // podziel częstotliwość timera2 / 2 na 31.25kHz if (div32) { div16 = !div16; if (div16) { // próbkowanie kanału 0 i 1 naprzemiennie, więc każdy kanał jest próbkowany z 15,6kHz badc0 = ADCH; // pobierz kanał ADC 0 sbi(ADMUX, MUX0); // ustaw multiplekser na kanał 1 } else { badc1 = ADCH; // pobierz kanał ADC 1 cbi(ADMUX, MUX0); // ustaw multiplekser na kanał 0 f_sample = true; } ibb++; ibb--; ibb++; ibb--; // krótkie opóźnienie przed rozpoczęciem konwersji sbi(ADCSRA, ADSC); // rozpocznij następną konwersję }
}
Krok 6: Wideo
Potencjalne problemy ● Odbiór jest trochę za słaby do zasilania obwodu - potrzebny jest wzmacniacz operacyjny. - W filmie użyliśmy wzmacniacza sygnału. (Szare pudełko leżące na stole.)
Zalecana:
Zrób to sam, zasilany bateryjnie pedał Overdrive do efektów gitarowych: 5 kroków
Zrób to sam, zasilany bateryjnie pedał przesterowania do efektów gitarowych: Z miłości do muzyki lub z miłości do elektroniki, celem tego Instruktażu jest pokazanie, jak ważny jest wzmacniacz SLG88104V Rail to Rail I/O 375nA z niskim poborem mocy i niskim napięciem może być zrewolucjonizowanie obwodów overdrive. Ty
ATMega1284P Pedał efektów gitarowych i muzycznych: 6 kroków (ze zdjęciami)
ATMega1284P Pedał efektów gitarowych i muzycznych: Przeniosłem Arduino Uno ATMega328 Pedalshield (opracowany przez Electrosmash i częściowo oparty na pracy w Open Music Lab) do ATMega1284P, który ma osiem razy więcej pamięci RAM niż Uno (16kB w porównaniu z 2kB). Dodatkową nieoczekiwaną korzyścią jest
DIY Rat Clone Distortion Pedał efektów gitarowych - The Dead RAT: 5 Steps (ze zdjęciami)
DIY Rat Clone Distortion Guitar Effect Pedal - the Dead RAT: To nie jest pedał zniekształceń Myszki Miki! Ten pedał jest klonem jednego z moich ulubionych efektów z lat 80-tych… RAT Distortion firmy ProCo. Jest to podstawowy efekt przesterowania OpAmp wykorzystujący klasyczny układ scalony LM308N, który jest dość prostą konstrukcją dla t
Wymiana przetworników w gitarze: 17 kroków (ze zdjęciami)
Wymiana przetworników w gitarze: Jeśli jesteś podobny do mnie, zacząłeś od podstawowej gitary dla początkujących, az czasem zdałeś sobie sprawę, że jesteś gotowy na coś lepszego. Miałem Squier Telecaster (seria standardowa) i byłem gotowy na zmianę. Zostałem ustawiony na Les Paul niektórych
Stwórz własny pedał efektów Tremolo: 4 kroki
Stwórz własny pedał efektów tremolo: W tej instrukcji pokażę, jak zrobić własny pedał efektów tremolo. Tak naprawdę to, co robi pedał, to sekwencyjne włączanie i wyłączanie sygnału gitary (fala kwadratowa DC generowana z oscylatora 555 CMOS pulsuje moc do