Съдържание:
- Стъпка 1: Проблем
- Стъпка 2: Контекст на проекта
- Стъпка 3: Необходими са части / инструменти
- Стъпка 4: Техническа стратегия
- Стъпка 5: Код
- Стъпка 6: Видео
Видео: NeckCrusher (педал за монтиран на китара ефект): 6 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Дейл Розен, Карлос Рейес и Роб Кох
DATT 2000
Стъпка 1: Проблем
Педалите за китара ограничават музиканта до платформата на педалите. Решение: Изградете и вградете функционалност на педалите за китара в самата китара. Това позволява на музиканта да се движи свободно по сцената, използвайки китарната шия като интерфейс, вместо да бъде ограничена до местоположението на педалната дъска. Ще проучим тази концепция, като създадем устройство за битръкшър/честота на дискретизация.
Стъпка 2: Контекст на проекта
Има много педали за китара, използвани от музикантите за манипулиране на звука на техните китари. Повечето от тях обикновено са в блокове, базирани на стелажи или кутии, което ограничава контрола на ефектите до местоположението на блока за ефекти. Монтирането на устройството върху китарата дава възможност на играчите да контролират параметрите на ефекта навсякъде по сцената. Това означава, че те няма да бъдат ограничени и могат да имат свободата да се движат за своето представяне.
Тъй като Arduino е способен само на 8 -битово аудио, е невъзможно да се извърши обработка на сигнал с висока точност. Ето защо избрахме ефектите, които направихме, тъй като те се основават на създаване на ниска вярност, изкривен звук. Това са единствените ефекти, които са разумно възможни с Arduino.
Стъпка 3: Необходими са части / инструменти
● Ударна бормашина
● Резачки за тел
● Машини за отстраняване на тел
● Поялник
● Пистолет за горещо лепило
● Помпа за разпаяване
● Китара ● Корпус
● Припой
● Горещо лепило
● Arduino
● Proto Board
● Тел с покритие
● Аудио жакове (x2)
● Потенциометри (x3)
● Кондензатори: 2.2 uF (x2)
● Открит меден проводник
● Винтове (M3.5 *8)
● Резистори: 1 k, 10 k, 1.2 k, 1.5 k, 390 k
● * Операционен усилвател (LM358) / * Транзистор (2N3442)
Стъпка 4: Техническа стратегия
Вътрешна схема
Вход изход
Трябва да преобразуваме аудио сигнала, идващ от китара, в нещо, което arduino може да използва и модифицира. След това ще трябва да преобразуваме сигнала, идващ от arduino обратно, в аудио сигнал. Arduino чете напрежения от 0V до 5V, аудио сигналите са от -1V до 1V. Тези преобразувания се извършват с помощта на резистори. Сигналът ще бъде преобразуван и в изходната верига.
Библиотека Arduino: ArduinoDSP
Описание на проекта (интерфейс)
Копчета Копче 1: Честота на дискретизация
Копче 2: Бит трошачка
Копче 3: Bit Shifter
Стъпка 5: Код
#include "dsp.h"
#дефинирайте cbi (sfr, бит) (_SFR_BYTE (sfr) & = ~ _BV (бит)) #дефинирайте sbi (sfr, бит) (_SFR_BYTE (sfr) | = _BV (бит))
булев div32; булев div16;
летливи булеви f_sample; променлив байт badc0; променлив байт badc1; летлив байт 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;
байт dd [512]; // Аудио памет масив 8-битов
void setup () {setupIO ();
// презареждане на вълната след 1 секунда fill_sinewave ();
// настройте adc prescaler на 64 за 19kHz честота на семплиране cbi (ADCSRA, ADPS2); sbi (ADCSRA, ADPS1); sbi (ADCSRA, ADPS0); // 8-битов ADC в ADCH регистър sbi (ADMUX, ADLAR); sbi (ADMUX, REFS0); cbi (ADMUX, REFS1); cbi (ADMUX, MUX0); cbi (ADMUX, MUX1); cbi (ADMUX, MUX2); cbi (ADMUX, MUX3); // Таймер2 PWM режим настроен на бърза ШИМ cbi (TCCR2A, COM2A0); sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); // Настройка за Timer2 cbi (TCCR2B, WGM22); // Timer2 Clock Prescaler до: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Timer2 PWM Port Enable sbi (DDRB, 3); // cli (); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = badc1;
}
void loop () {
// проверява състоянието на потенциометъра на ефекта и въртящия се ключ readKnobs ();
// ************* // *** Нормално *** // *************
if (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {байт вход = analogRead (вляво); изход (вляво, вход); }
// ************* // *** Phasor *** // *************
ако (fx4> 100) {
fx1 = 0; fx2 = 0; fx3 = 0;
while (! f_sample) {// изчакайте Sample Value от ADC} // Цикъл 15625 KHz = 64uSec PORTD = PORTD | 128; f_sample = false; bb = badc1; dd [icnt1] = bb; // запис в буфер fx4 = iw * badc0 / 255; // скалиране на проба със закъснение с потенциометър iw1 = dd [icnt2]; // прочетете буфера за забавяне badc0 = badc0 / 20; // гранична стойност до 512 icnt1 ++; icnt2 = icnt1 - badc0; icnt2 = icnt2 & 511; // граничен индекс 0.. icnt1 = icnt1 & 511; // граничен индекс 0..511 iw2 = iw1 + bb; iw2 = iw2 / 2; bb = iw2; OCR2A = bb; // Примерна стойност към PWM изход
PORTD = PORTD ^ 128; изход (вляво, PORTD); // Изход}
// ************* // *** Flanger *** // ************* if (fx3> 100) {
fx1 = 0; fx2 = 0; fx4 = 0;
while (! f_sample) {// изчакайте Sample Value от ADC} // Цикъл 15625 KHz = 64uSec
PORTD = PORTD | 128; f_sample = false; bb = dd [icnt]; // прочетете буфера за забавяне iw = 127 - bb; // изваждане на отместване fx3 = iw * badc0 / 255; // скалиране на проба със закъснение с потенциометър iw1 = 127 - badc1; // изваждане на изместване от нова извадка iw1 = iw1 + iw; // добавяме закъсняла проба и нова проба, ако (iw1 127) iw1 = 127; // Аудио ограничител bb = 127 + iw1; // добавяне на отместване dd [icnt] = bb; // съхранява пробата в аудио буфер icnt ++; icnt = icnt & 511; // ограничаване на буферния индекс 0..511 OCR2A = bb; // Примерна стойност към PWM изход
PORTD = PORTD ^ 128; изход (вляво, PORTD); // Изход
} }
void readKnobs () {fx1 = analogRead (1); fx2 = analogRead (2); fx3 = analogRead (3); fx4 = analogRead (4);
}
void fill_sinewave () {float pi = 3.141592; float dx; float fd; float fcnt; dx = 2 * pi / 512; // попълваме 512 байтовия буфер за (iw = 0; iw <= 511; iw ++) {// с 50 точки sinewawe fd = 127 * sin (fcnt); // основен тон fcnt = fcnt + dx; // в диапазона от 0 до 2xpi и 1/512 стъпки bb = 127 + fd; // добавяме dc offset към sinewawe dd [iw] = bb; // записва стойност в масив
} }
// ************************************************ ********** Hz ISR (TIMER2_OVF_vect) {
PORTB = PORTB | 1;
div32 =! div32; // разделяне на таймер2 на честота / 2 до 31.25kHz if (div32) {div16 =! div16; if (div16) {// пробен канал 0 и 1 последователно, така че всеки канал е избран с 15.6kHz badc0 = ADCH; // получаваме ADC канал 0 sbi (ADMUX, MUX0); // задаваме мултиплексор на канал 1} else {badc1 = ADCH; // получаваме ADC канал 1 cbi (ADMUX, MUX0); // задаваме мултиплексор на канал 0 f_sample = true; } ibb ++; ibb-; ibb ++; ibb-; // кратко забавяне преди стартиране на преобразуване sbi (ADCSRA, ADSC); // стартиране на следващото преобразуване}
}
Стъпка 6: Видео
Потенциални проблеми ● Пикапът е малко прекалено слаб за захранващата верига - нуждаете се от операционен усилвател. - Във видеото използвахме усилвател на сигнала. (Сивата кутия лежи на масата.)
Препоръчано:
Старо зарядно устройство? Не, това е усилвател и педал за слушалки с китара RealTube18: 8 стъпки (със снимки)
Старо зарядно устройство? Не, това е усилвател и педал за китара за слушалки на RealTube18: ПРЕГЛЕД: Какво да правите по време на пандемия, с остаряло зарядно устройство за батерии от никел-кадмий и 60-годишни остарели вакуумни лампи за кола, които седят наоколо и трябва да бъдат рециклирани? Какво ще кажете за проектиране и изграждане на тръба, ниско напрежение, обща батерия за инструменти
Педал за китара Phaser: 14 стъпки (със снимки)
Фазарен китарен педал: Фазарен китарен педал е китарен ефект, който разделя сигнал, изпраща един път през веригата чисто и измества фазата на втория. След това двата сигнала се смесват отново и когато са извън фазата, се анулират взаимно. Това създава така
Направи си сам педал за китара: 24 стъпки (със снимки)
DIY Guitar Pedal: Изработката на DIY педал за китара е забавен и лесен електронен проект през уикенда както за любители, така и за китаристи. Изработването на класически педал е много по -лесно, отколкото си мислите. Той просто използва два транзистора и шепа други компоненти. Освен ш
Педал за китара Arduino: 23 стъпки (със снимки)
Педал за китара Arduino: Педалът за китара на Arduino е цифров педал с много ефекти, базиран на педала за китара Lo-Fi Arduino, първоначално публикуван от Кайл Макдоналд. Направих няколко промени в оригиналния му дизайн. Най-забележимите промени са вграденият предусилвател и
Педал за ефект на китара за изкривяване на клони за плъхове - Мъртвите Плъх: 5 стъпки (със снимки)
Педал за ефект на китара за изкривяване на плъх на клони - Мъртвите ПЛЪЧ: Това не е педал за изкривяване на Мики Маус! Този педал е клонинг на един от любимите ми педали за ефекти от 80 -те … ProCo RAT Distortion. Това е основен педал за изкривяване на OpAmp, използващ класическия LM308N IC чип, който е доста проста конструкция за