Ардуино гитарная педаль: делаем своими руками

Гитарная педаль с Ардуино Уно

pedalSHIELD UNO – программируемая гитарная педаль Arduino UNO. Вы можете создавать собственные гитарные эффекты и цифровые звуки. Подобного рода педали можно увидеть во многих музыкальных магазинах, мы же сделаем проект своими руками.

Комплектующие

Нам понадобится сама pedalSHIELD UNO, которую можно купить на сайте electrosmash.com. Также нам нужны:

  • Arduino Uno
  • Паяльник
  • Припой и режущий инструмент
  • Печатная плата и некоторые материалы

Что из себя представляет педаль?

Работу модуля можно разделить на три части:

На входе: усиливает и фильтрует гитарный сигнал, что делает его готовым для Arduino Uno ADC (аналого-цифровой преобразователь).

Arduino: использует цифровую форму волны от АЦП и выполняет все эффекты цифровой обработки сигналов (DSP) (искажение, громкость, метроном, . ).

На выходе: после создания новой формы сигнала он поступает с цифровых выходов Arduino (два PWM в сочетании) и готов к отправке на следующую педаль или на гитарный усилитель.

Как программировать?

Идея состоит в том, чтобы сделать этот процесс максимально простым, как обычно модуль программируется обычными C/C ++ командами с использованием стандартных функций Arduino и программной платформы (Linux/Windows/Mac). Все инструменты и программы являются свободными и открытыми.

Необходимы базовые знания C. Лучший способ проиллюстрировать то, как запрограммировать её – это простой пример педали с эффектом Volume/Booster:

Выше вы можете скопировать код или скачать .INO файл для своей платы Ардуино.

Код можно разделить на 3 блока:

Библиотека эффектов

В нашей Библиотеке вы также можете найти коды для других эффектов педали:

На этом пока всё. Желаем вам отличных проектов. В следующих материалах мы постараемся дополнить информацию о гитарных педалях на Ардуино.

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Гитарная педаль эффектов на Arduino своими руками

Если вы заядлый гитарист и разбираетесь в электронике, то, наверное, пробовали самостоятельно собрать свою гитарную педаль эффектов и, возможно, не одну. Ламповые педали, конечно, очень хороши в звучании, но относительно дороги в создании, зато педали на дискретных компонентах можно собирать с малой себестоимостью, и их создание доступно даже новичкам в области звукотехники.

Но, как правило, одна педаль дает один эффект, а зачастую хочется, чтобы их было больше для колоритного звучания. В этом случае нужен целый процессор эффектов. Но сегодня даже новичок может собрать свою гитарную педаль с возможностью программирования для нее различных эффектов благодаря плате Arduino.

Теперь для Arduino Uno можно собрать специальный шилд pedalSHIELD UNO, исходники которого находятся в открытом доступе. С помощью pedalSHIELD UNO можно довольно легко сделать программируемую гитарную педель эффектов. Этот шилд собирается на основе широко доступных компонентов и не требует глубоких знаний в программировании алгоритмов цифровой обработки сигналов. Вот так внешне выглядит шилд pedalSHIELD UNO:

Схема подключения разъемов, кнопок и других компонентов к плате Arduino Uno показана на изображении ниже. Здесь входной сигнал гитары через джек заводится на аналоговый ввод A0 и впоследствии считывается с помощью АЦП. Выходной сигнал обеспечивается ШИМ-каналами 9 и 10.

Далее представлена принципиальная схема, на которой подробно изображена структура входного и выходного каскадов.

Список компонентов схемы шилда pedalSHIELD UNO:

C5,C2, C7, C8, C9 конденсаторы 6.8 нФ
C3, C6, C10 конденсаторы 4.7 нФ
C1, C11 конденсаторы 100 нФ
C4 конденсатор 100 пФ

R12,R13, R10, R9, R6, R4, R3 резисторы 4.7 КОм
R5, R7, R8 резисторы 100 КОм
R1, R2 резисторы 1 МОм
R11 резистор 1.2 МОм

RV1 потенциометр 500 КОм
D1 светодиод 3 мм синий
U1 операционный усилитель TL972
pdip-8 разъем для 8-выводных DIP-корпусов
SW1 тройной переключатель-кнопка
SW2 переключатель
SW3, SW4 кнопки
J1, J2 аудиоразъемы-джеки

Для того чтобы запрограммировать Arduino для реализации определенного гитарного эффекта, нужно скачать архив со скетчами, обеспечивающими эти эффекты. На данный момент представлено одиннадцать скетчей, и среди них есть такие популярные звучания, как дисторшн (distortion), тремоло (tremolo), задержка (delay) и ряд других.

Таким образом, собрать гитарную педаль своими руками с помощью Arduino представляет собой довольно простой процесс. Конечно, она не получится такой же качественной по звучанию, как педали именитых производителей Fender, Marshall или Boss, но благодаря этому проекту можно многое чему научиться в деле проектирования звукотехники.

Lo-Fi гитарная педаль на Arduino

Изменение битности, снижение скорости, причудливые звуки – все это возможности самодельной гитарной педали с 10 битными эффектами на Arduino, предназначенной для Lo-Fi DSP (Digital Dignal Processing – цифровой обработки сигнала).

Необходимые материалы

Инструменты:
Arduino
Паяльник
Пистолет для термоклея
Кусачки
Сверлильный станок или Dremel

Материалы:
Корпус
Припой
Термоклей
Провода
Макетная плата
(x2) Аудио разъёмы (я использую 1/8″)
Интерфейс ввода: например 3 потенциометра
Интерфейс вывода: например 3 светодиода и 3 резистора 150 Ом.
Резисторы: 1 кОм, 10 кОм (x2), 1.2 кОм, 1.5 кОм, 390 кОм.
Конденсаторы: 2.2 мкФ (x2)

Количество резисторов и конденсаторов удваивается при использовании стерео режима.

Подготовка корпуса

В качестве корпуса я использовал медиаконвертер. Его корпус подходит к Arduino, элементам интерфейса и двум аудио разъемам. Этот корпус сделан из довольно прочного металла, что важно для педали. Также задняя стенка корпуса закреплена на петли, что позволяет легко открывать его.

Я только просверлил в этом корпусе три отверстия для потенциометров при помощи сверлильного станка и вырезал отверстие для USB разъема.

Установка элементов

После того, корпус подготовлен:
– разместите в нем Arduino.
– установите элементы интерфейса, то есть потенциометры и светодиоды.
– установите входные и выходные разъемы.

Помните, что светодиоды необходимо подключать к Arduino через резисторы: LED калькулятор. Я использовал резисторы на 150 Ом.

Нормализация входов и выходов

Вход

Это единственное место в этом проекте, где используется аппаратное решение. Аудио сигнал это переменный от -1В до +1В, но аналоговые входы Arduino работают с напряжением от 0В (GND) до опорного напряжения (по умолчанию +5В). Опорное напряжение можно указать в коде или использовать источник внешнего опорного напряжения.

Диапазон между напряжениями -1В и +1В 2В. В качестве опорного напряжения мы выберем напряжение меньше 2В. Оказывается, встроенный источник опорного напряжения, с которым удобно работать можно настроить на 1.1В.

Теперь мы должны преобразовать напряжение от -1В до +1В в напряжение от 0В до +1.1В. Я сделал это при помощи резистивного делителя напряжения. Гитару нельзя подключать напрямую к этой схеме, необходим предусилитель (например, другая педаль), но вы можете добавить предусилитель на транзисторе или ОУ на макетную плату, чтобы подключать гитару напрямую.

Выход

Для вывода звука мы будем использовать ШИМ. При помощи низкоуровневого хака программного обеспечения, мы можем получить 8 битный ШИМ работающий на частоте 62кГц = 16МГц/28.

Есть и другие методы вывода звука на Arduino. Хороший обзор этих методов можно найти на сайте uC hobby. Я получил хороший результат при использовании R2R ЦАП, но для 10 битного стерео выхода необходимо около 40 резисторов, поэтому я отказался от него. Вместо этого я решил использовать метод “weighted pins“, который представляет собой нечто среднее между обычным ШИМ и резисторной матрицей.

Сборка схемы

Я собрал по две схемы на одном куске макетной платы. По центру макетной платы шел полигон GND, благодаря чему я смог собрать схему максимально аккуратно, насколько это возможно. При первой сборке схемы, она получилась слишком высокой и не помещалась в корпус, поэтому мне пришлось пересобрать её.

Если вы используете такие конденсаторы, как и я, то они будут отрезать некоторые нижние частоты. При емкости 2.2 мкФ, это незначительно и не чувствуется в диапазоне слышимости человеческого слуха. Чем больше емкость – тем лучше, однако чем больше емкость, тем конденсатор больше физически.

Подключение остальных элементов

Обычно на гитарной педали вход находиться справа, а выход слева. Но я узнал об этом только после того, как закрепил разъемы термоклеем

После сборки схемы на макетной плате, поместите её внутрь и подключите все не подключенные до сих пор провода:
– аудио вход подключается к входу схемы, которая подключается к аналоговому входу Arduino.
– средние выводы потенциометров подключаются к аналоговым входам Arduino.
– два светодиода подключаются к ШИМ выходам, а один к цифровому.
– четыре ШИМ выхода подключаются к 8/2 битным входам ЦАП.
– выход с ЦАП подключается к аудио выходу.

Загрузка DSP кода

Загрузите исходный код, и вы увидите две папки. В одной из них находиться основной код DSP, “ArduinoDSP”, который используется при изготовлении педали. В папке “GlitchPedal” находится код который я использовал.

ArduinoDSP

Включенные в ArduinoDSP функции полезны для настройки значения предварительного деления частоты ШИМ и аналоговых входов. Контакты 3 и 11 используются в качестве выхода левого канала (8 и 2 битные соответственно), а 5 и 6 контакты в правый выход. ШИМ используется без предварительного деления частоты и работает так быстро, как это возможно. Значение предварительного деления частоты для АЦП также установлено низкое, 32, в качестве опорного напряжения используется 1.1В.

Для изменения основного кода ArduinoDSP, просто вставить свой собственный код с измененным значением переменной “input” между строками “short input = analogRead(left);” и “output(left, input);”.

GlitchPedal

Этот код делает несколько вещей. Светодиоды обеспечивают визуальную обратную связь, сообщая о позиции потенциометра и уровне входного сигнала. Установки потенциометров для DSP прошиты в микроконтроллере. Первым потенциометром выбирается режим, вторым параметры этого режима, а третьим управляется эффективная частота дискретизации.

Режимы:
Bitcrush (изменение битности): немного смещает вход вправо, а потом влево, обрубая N битов.
Bitshift (сдвиг битов): смещает вход налево, что приводит к странным эффектам для нескольких первых значений и шум в конечном итоге (т. е. “дизеринг битов”).
Overdrive: Умножает значение на воде на дробное значение от 1 до 20.
Двоичные бинарные операции над импульсами: делает различные бинарные операции на входе и последнем результате (XOR, NOR, XNOR, NAND. )

Улучшения и примечания

Возможные улучшения
Добавление RC фильтра нижних частот с возможностью выбора частоты среза на выходе.
Режим причудливых звуков: Переназначение битов? Ротация битов?
Повторение N последних семплов? Это ограниченно ОЗУ ATmega.
Использование 9В адаптера вместо питания от USB
Шесть 8 битных выходов для акустической системы 5.1?
Использование Arduino mini для миниатюризации педали?
Вывод интерфейса на отдельную панель?
Кнопочная регулировка входной громкости?

Примечания

Поскольку в этом проекте – АЦП это действительно основной ограничивающий параметр, хорошо было бы использовать другой тип АЦП, в идеале специализированную микросхему, подключенную по SPI. При использовании текущей схемы, лучше использовать моно вход, если вы хотите получить сигнал на выходе.

Спасибо Andrew Armenia за помощь с нормализацией входа, Dane Kouttron за объяснение некоторых вещей о ШИМ в ATmega168, Джеймсу Miglietta за то, что он сказал, что гитарная педаль работает на обычном напряжении и Блэру Нилу за то, что он захотел уменьшение дискретизации.

Еще одну интересную методику с использованием аудио буфера и “реальными” эффектами дал Мартин Nawrath. Я думаю, что один из главных плюсов его решения в том, что он использует прерывание для АЦП. Обычно, АЦП вызывается командой analogRead() (т.е. код не может пропустить команду analogRead() и исполняться дальше). Его способ освобождает микроконтроллер от выполнения других задач на время работы АЦП.

Скачать скетч, посмотреть проект на github’е

Гитарная педаль на Arduino Uno – pedalSHIELD UNO

pedalSHIELD UNO – это программируемая гитарная педаль на Arduino UNO. С ней вы можете создавать свои собственные эффекты и цифровые звуки.

Гитарная педаль на Arduino Uno – pedalSHIELD UNO

О проекте

pedalSHIELD UNO – это lo-fi программируемая гитарная педаль, которая работает с платами Arduino UNO / Genuino UNO. Это Open Source & Open Hardware проект для гитаристов, хакеров и программистов, которые хотят узнать о цифровой обработке сигналов, эффектах, синтезаторах и прочих экспериментах без глубоких знаний о DSP, электронике или низкоуровневом программировании.

Вы можете запрограммировать свои собственные эффекты на C/C++ или использовать готовые эффекты с форума.

Программируемая гитарная педаль Arduino pedalSHIELD UNO

Как работает схема?

Плата расширения состоит из трех частей:

  • входной каскад: усиливает и фильтрует сигнал с гитары, что делает его готовым для аналого-цифрового преобразователя Arduino Uno;
  • плата Arduino: использует оцифрованный сигнал с АЦП и выполняет всю цифровую обработку сигнала (DSP),создавая эффекты (distortion, fuzz, громкость, метроном. );
  • выходной каскад: после создания новой формы сигнал поступает с цифровых выходов Arduino (два объединенных ШИМ выхода) и подготавливается к отправке на следующую педаль или гитарный усилитель.

Входной и выходной каскады гитарной педали

Технические параметры

  • На базе Arduino / Genuino UNO (16 МГц, 2 KB RAM).
  • Аналоговые каскады на операционном усилителе «rail-to-rail» TL972.
  • АЦП: 10 бит.
  • Выходной каскад: 16 бит (2 x 8 бит ШИМ, работающих параллельно).
  • Интерфейс:
    • 2 настраиваемые кнопки;
    • 1 настраиваемый переключатель;
    • 1 программируемый синий светодиод;
    • ножной переключатель обхода.
  • Разъемы:
    • входной разъем, TRS 1/4″ (1/4 джек), несимметричный, Zвх = 0,5 МОм;
    • выходной разъем, TRS 1/4″ (1/4 джек), несимметричный, Zвых = 0,1 Ом;
    • Источник питания: питание берется с платы Arduino Uno.

Готовые примеры эффектов

  • Clean/Transparent
  • Volume/Booster
  • Distortion
  • Fuzz Distortion
  • Bit-Crusher
  • Daft Punk Octaver
  • Signal Generator
  • Metronome
  • Delay
  • Tremolo

Как программировать педаль?

Идея состоит в том, чтобы сделать программирование максимальным простым, плата программируется на C/C++ с использованием стандартных функций и среды разработки Arduino. Все инструменты и программы являются бесплатными / с открытым исходным кодом.

Ниже показана связь интерфейсов гитарной педали (вход/выход, элементы управления) с выводами платы Arduino Uno.

Связь интерфейсов платы расширения гитарной педали с Arduino Uno

Необходимы базовые знания C. Лучший способ проиллюстрировать, как программировать педаль – это показать простой пример педали с эффектом Volume/Booster.

Педаль Громкость/Booster

Структурная схема программы выглядит так:

Структурная схема программы

Реально используемый код выглядит так:

Аппаратная конструкция pedalSHIELD UNO

Весь проект педали с открытыми исходниками, разработка была выполнена с помощью KiCad, бесплатного открытого инструмента проектирования электроники. Все файлы проекта, схемы и перечни элементов являются общедоступными. Схема может быть разбита на 5 простых блоков: источник питания, входной каскад, выходной каскад, пользовательский интерфейс и разъемы Arduino.

Программируемая гитарная педаль Arduino pedalSHIELD UNO. Схема электрическая принципиальная

Принцип действия прост; 1 операционный усилитель готовит сигнал для оцифровки, а другой операционный усилитель принимает сигнал с микроконтроллера Arduino UNO. Один АЦП используется для считывания сигнала гитары, и два ШИМ сигнала используются для генерации выходного сигнала.

  • Входной каскад: для лучшего захвата сигнал гитары усиливается с помощью первого операционного усилителя. Потенциометр VR1 регулирует коэффициент усиления этого усилителя от 1 до 21 так, чтобы уровень с гитары мог быть оптимизирован для оцифровки. Сигнал проходит через 3 фильтра нижних частот (сформированных из R3 и C2, R5 и C4, R6 и C5), которые устраняют избыток высших гармоник, которые могут создавать наложение во время выборки сигнала аналого-цифровым преобразователем (fср = 5 кГц).
  • Выходной каскад: использует фильтр нижних частот Саллена-Ки третьего порядка, который устраняет гармоники выше 5 кГц. Два ШИМ сигнала используются параллельно, увеличивая разрядность (2 x 8 бит).
  • Источник питания: для питания операционного усилителя «rail-to-rail» педаль использует +5В от Arduino Uno, что обеспечивает простоту конструкции и максимальное раскачивание сигнала без обрезки. Резисторный делитель R7 и R8 создает 2,5 В для виртуальной земли, а конденсатор C6 удаляет пульсации на линии питания.
  • Пользовательский интерфейс: музыкант может использовать 2 настраиваемые кнопки, 1 настраиваемый переключатель, ножной обходной переключатель 3PDT и программируемый светодиод.
  • Разъемы Arduino Uno: штыревые разъемы соединяют плату расширения с Arduino Uno, передавая сигналы и напряжение питания.

Список компонентов

Это компоненты сквозного монтажа, которые легко найти.

Список компонентов программируемой гитарной педали pedalSHIELD UNO

Позиционное обозначение Количество Наименование/номинал Описание Номер детали
Конденсаторы
C5,C2, C7, C8, C9 5 6,8 нФ керамический конденсатор SR211C682MARTR1
C3, C6, C10 3 4,7 мкФ электролитический конденсатор ECE-A1EKA4R7
C1, C11 2 100 нФ керамический конденсатор SR211C104KARTR1
C4 1 270 пФ керамический конденсатор D271K20Y5PH63L6R
Резисторы
R12,R13, R10, R9, R6, R4, R3 7 4,7 кОм Резистор, 1%, 0,25 Вт MFR-25FRF52-4K7
R5, R7, R8, 3 100 кОм Резистор, 1%, 0,25 Вт MFR-25FRF52-100K
R1, R2 2 1 МОм Резистор, 1%, 0,25 Вт MFR-25FRF52-1M
R11 1 1,2 МОм Резистор, 1%, 0,25 Вт MFR-25FRF52-1M2
Прочее
RV1 1 500 кОм Подстроечный потенциометр 3319W-1-504
D1 1 Светодиод 3 мм, синий Синий светодиод 3 мм SSL-LX3044USBC
U1 1 TL972 DIP8 Операционный усилитель «rail-to-rail» 595-TL972IP
Панель для микросхемы 1 Панель DIP8 Панель DIP8 1-2199298-2
SW1 1 3DPT ножной переключатель 3PDT ножной переключатель 107-SF17020F-32-21RL
SW2 1 Тумблер SPDT тумблер 612-100-A1111
SW3, SW4 2 Кнопка кнопка вкл/выкл 103-1013-EVX
Conn1,2,3,4 1 Разъем 40-выводный Штыревой разъем с шагом 2,54 710-61304011121
J1, J2 2 TRS 1/4″ (1/4 джек аудио) Стерео джек 6,35 мм NMJ6HCD2

Печатная плата

Хотя разработчики и утверждают, что это полностью открытый проект, но упорно не желают делиться файлами разводки печатной платы для какой-либо САПР (например, для того же KiCad, в формате которого они предоставляют принципиальную схему).

Поэтому для изготовления педали есть три варианта:

  1. заказать у разработчиков либо только печатную плату, либо весь набор для сборки педали (ссылка на сайт разработчиков будет в конце статьи);
  2. изготовить печатную плату по экспортированному в pdf-файл трафарету (предоставлен разработчиками) с помощью «лазерно-утюжной» технологии; ссылки для скачивания архивов с проектом в KiCad и трафаретами печатной платы будут приведены ниже;
  3. развести печатную плату в удобной для вас САПР и под компоненты, которые вы предпочитаете, или которые у вас есть в наличии (и, возможно, поделиться результатами с остальными 😉 ).

Часто задаваемые вопросы (FAQ)

pedalSHIELD Uno совместима со всеми платами Arduino?

Нет, только с Arduino Uno и Genuino Uno.

pedalSHIELD Uno подходит для басистов?

Да, но вам необходимо заменить 2 конденсатора (C1 и C11) с 0,1 мкФ на 0,47 мкФ, чтобы пропускать через схему более низкие частоты.

Могу я включить наушники напрямую в pedalSHIELD Uno?

Нет, pedalSHIELD Uno – это не усилитель. Её необходимо включть в гитарный усилитель или в педаль мультиэффектов (например, Line 6 pods и т.п.).

Вот и всё! Делитесь впечатлениями и результатами сборки!

Источники:

http://digitrode.ru/computing-devices/mcu_cpu/387-gitarnaya-pedal-effektov-na-arduino-svoimi-rukami.html

http://cxem.net/sound/music/music27.php

http://radioprog.ru/post/533

http://arduino.ru/forum/programmirovanie/uglomer-na-arduino-na-potentsiometre

Ссылка на основную публикацию