Оглавление:
- Шаг 1. Проблема
- Шаг 2: контекст проекта
- Шаг 3: Необходимые детали / инструменты
- Шаг 4: Техническая стратегия
- Шаг 5: Код
- Шаг 6: видео
Видео: NeckCrusher (педаль эффектов, установленная на гитаре): 6 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Дейл Розен, Карлос Рейес и Роб Кох
DATT 2000
Шаг 1. Проблема
Педали гитары ограничивают музыканта педальной платформой. Решение: встроить функциональность гитарных педалей в саму гитару. Это позволяет музыканту свободно перемещаться по сцене, используя гриф гитары в качестве интерфейса вместо того, чтобы быть ограниченным местоположением педалборда. Мы будем исследовать эту концепцию, создав устройство эффекта битового дробления / частоты дискретизации.
Шаг 2: контекст проекта
Музыканты используют множество гитарных педалей для управления звуком своих гитар. Большинство из них обычно находятся в рэковых модулях или стомп-боксах, поэтому управление эффектами ограничивается местоположением модуля эффектов. Установка устройства на гитаре позволяет игрокам управлять параметрами эффекта в любом месте сцены. Это означает, что они не будут ограничены и могут свободно передвигаться во время выступления.
Поскольку Arduino поддерживает только 8-битный звук, обработка сигналов с высокой точностью невозможна. Вот почему мы выбрали созданные нами эффекты, поскольку они основаны на создании искаженного звука с низкой точностью. Это единственные эффекты, которые разумно возможны с Arduino.
Шаг 3: Необходимые детали / инструменты
● Ударная дрель
● Кусачки
● Устройства для зачистки проводов
● Паяльник.
● Пистолет для горячего клея.
● Демонтажный насос
● Гитара ● Корпус
● Припой
● Горячий клей
● Arduino
● Proto Board
● Проволока с покрытием
● Аудиоразъемы (2 шт.)
● Потенциометры (x3)
● Конденсаторы: 2,2 мкФ (x2)
● оголенный медный провод
● Винты (M3,5 * 8)
● Резисторы: 1 кОм, 10 кОм, 1,2 кОм, 1,5 кОм, 390 кОм
● * Операционный усилитель (LM358) / * Транзистор (2N3442)
Шаг 4: Техническая стратегия
Внутренняя схема
Ввод, вывод
Нам нужно преобразовать звуковой сигнал, исходящий от гитары, во что-то, что Arduino может использовать и изменять. Затем нам нужно будет преобразовать сигнал, поступающий от Arduino, обратно в аудиосигнал. Arduino считывает напряжения от 0 В до 5 В, аудиосигналы от -1 до 1 В. Эти преобразования выполняются с помощью резисторов. Сигнал также будет преобразован в выходной цепи.
Библиотека Arduino: ArduinoDSP
Описание проекта (интерфейс)
Ручки Ручка 1: Частота дискретизации
Ручка 2: Битовая дробилка
Ручка 3: Bit Shifter
Шаг 5: Код
#include "dsp.h"
#define cbi (sfr, bit) (_SFR_BYTE (sfr) & = ~ _BV (bit)) #define sbi (sfr, bit) (_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 ();
// устанавливаем предварительный делитель АЦП равным 64 для частоты дискретизации 19 кГц cbi (ADCSRA, ADPS2); sbi (ADCSRA, ADPS1); sbi (ADCSRA, ADPS0); // 8-битный АЦП в регистре ADCH sbi (ADMUX, ADLAR); sbi (ADMUX, REFS0); cbi (ADMUX, REFS1); cbi (ADMUX, MUX0); cbi (ADMUX, MUX1); cbi (ADMUX, MUX2); cbi (ADMUX, MUX3); // Timer2 PWM Mode установлен на быстрый PWM cbi (TCCR2A, COM2A0); sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); // Настройка Timer2 cbi (TCCR2B, WGM22); // Предделитель тактовых импульсов Timer2 до: 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) {byte input = analogRead (слева); вывод (слева, ввод); }
// ************* // *** Фазор *** // *************
if (fx4> 100) {
fx1 = 0; fx2 = 0; fx3 = 0;
while (! f_sample) {// ждать значения выборки от АЦП} // Цикл 15625 кГц = 64uSec PORTD = PORTD | 128; f_sample = false; bb = badc1; дд [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); // Выход }
// ************* // *** Флэнджер *** // ************* if (fx3> 100) {
fx1 = 0; fx2 = 0; fx4 = 0;
while (! f_sample) {// ждать значения выборки от АЦП} // Цикл 15625 кГц = 64uSec
PORTD = PORTD | 128; f_sample = false; bb = dd [icnt]; // читаем буфер задержки iw = 127 - bb; // вычесть смещение fx3 = iw * badc0 / 255; // масштабирование отсроченного отсчета с помощью потенциометра iw1 = 127 - badc1; // вычесть смещение из нового отсчета iw1 = iw1 + iw; // добавляем отсроченную выборку и новую выборку if (iw1 127) iw1 = 127; // Ограничитель звука bb = 127 + iw1; // добавляем смещение dd [icnt] = bb; // сохраняем сэмпл в аудиобуфер icnt ++; icnt = icnt & 511; // ограничить bufferindex 0..511 OCR2A = bb; // Пример значения для вывода PWM
PORTD = PORTD ^ 128; вывод (слева, PORTD); // Выход
} }
недействительным 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; дх = 2 * пи / 512; // заполняем 512-байтовый буфер для (iw = 0; iw <= 511; iw ++) {// 50 периодов sinewawe fd = 127 * sin (fcnt); // основной тон fcnt = fcnt + dx; // в диапазоне от 0 до 2xpi и с шагом 1/512 bb = 127 + fd; // добавляем смещение постоянного тока в sinewawe dd [iw] = bb; // записываем значение в массив
} }
// *********************************************** ****************** // Служба прерывания Timer2 на 62,5 кГц // здесь аудио и сигнал потенциометра дискретизируются с частотой: 16 МГц / 256/2/2 = 15625 Гц ISR (TIMER2_OVF_vect) {
PORTB = PORTB | 1;
div32 =! div32; // делим частоту таймера2 / 2 на 31,25 кГц if (div32) {div16 =! div16; if (div16) {// выборка каналов 0 и 1 поочередно, поэтому для каждого канала выполняется выборка с частотой 15,6 кГц badc0 = ADCH; // получаем канал 0 АЦП sbi (ADMUX, MUX0); // установить мультиплексор на канал 1} else {badc1 = ADCH; // получаем канал АЦП 1 cbi (ADMUX, MUX0); // установить мультиплексор на канал 0 f_sample = true; } ibb ++; ibb--; ibb ++; ibb--; // небольшая задержка перед началом преобразования sbi (ADCSRA, ADSC); // запуск следующего преобразования}
}
Шаг 6: видео
Возможные проблемы ● Датчик слишком слаб для цепи питания - нужен операционный усилитель. - В видео мы использовали усилитель сигнала. (Серая коробка, лежащая на столе.)
Рекомендуемые:
Педаль овердрайва с питанием от батареи для самостоятельного изготовления гитарных эффектов: 5 шагов
Педаль овердрайва с автономным питанием от аккумулятора для гитарных эффектов: из любви к музыке или из любви к электронике цель этой инструкции - показать, насколько важен четырехъядерный операционный усилитель SLG88104V Rail to Rail I / O 375nA с его низким энергопотреблением и низковольтными усовершенствованиями. может произвести революцию в схемах овердрайва. Тай
Педаль и педаль для гитарного карманного усилителя: 10 шагов
Педаль и педаль для гитарного карманного усилителя: Здравствуйте! Это мой первый инструктаж, и я старался изо всех сил заниматься тем, что я люблю, а именно музыкой. Я звукорежиссер и в свободное время играю на гитаре. Итак, вот гитарный карманный усилитель с выходной мощностью 1 Вт и минимум 4 Ом. Я использовал и
ATMega1284P Гитара и педаль музыкальных эффектов: 6 ступеней (с изображениями)
ATMega1284P для гитары и педали музыкальных эффектов: я портировал Arduino Uno ATMega328 Pedalshield (разработанный Electrosmash и частично на основе работы в Open Music Lab) на ATMega1284P, который имеет в восемь раз больше оперативной памяти, чем Uno (16 КБ против 2 КБ). Дополнительное неожиданное преимущество
Гитарная педаль эффектов DIY Rat Clone Distortion - The Dead RAT: 5 шагов (с изображениями)
Гитарная педаль эффектов DIY Rat Clone Distortion - The Dead RAT: это не педаль дисторшна Микки Мауса! Эта педаль - клон одной из моих любимых педалей эффектов из 80-х … RAT Distortion от ProCo. Это базовая педаль дисторшна на операционном усилителе, в которой используется классический микросхема LM308N IC, довольно простая сборка для т
Создайте свою собственную педаль эффектов тремоло: 4 шага
Создайте свою собственную педаль эффектов тремоло: в этой инструкции я покажу вам, как создать собственную педаль эффектов тремоло. На самом деле педаль последовательно включает и выключает сигнал гитары (прямоугольная волна постоянного тока, генерируемая осциллятором КМОП 555, пульсирует мощность до