Электронная барабанная установка своими руками на Arduino Mega2560
Электронная барабанная установка своими руками на Arduino Mega2560
В первую очередь, если вам нравится такого рода вещи, вы будете получать удовольствие от самого процесса работы. Во-вторых, потому, что она на самом деле дешевле по сравнению с реальной электронной ударной установкой, и вы будете иметь возможность сохранить огромное количество денег. Во всяком случае, давайте перейдем к основной части этой статьи.
Шаг 1: Материалы— Дерево.Лучше всего использовать 16 мм и 10 мм ДВП для подушечек барабана, а также 5 мм фанеру для тарелок.Я настоятельно рекомендую ДВП для принятия этого проекта из-за своей простоты во время работы с ним— Arduino Mega.Тут использован Arduino Mega 2560, потому что включено 9 компонентов. В противном случае вы можете использовать Arduino UNO, что дешевле.— USB папа-папа кабель.Для того, чтобы подключить датчики к плате Arduino, вам потребуется либо USB или Jack кабели. Jack кабели лучше в этом случае, но вы будете экономить деньги, если вы используете USB. Помимо кабелей вы также должны подключить свои соответствующие гнездовые разъемы.— Этиленвинилацетат EVA (резина, как пол в бассейне)— Датчики пьезо- и фотоэлемент.Пьезо являются датчики для мышек и тарелок. Фотоэлемент будет работать как педаль HiHat.— Резисторы, печатная плата, электрический кабель, контактные разъемы.— MIDI-разъем и MIDI — USB.— винты, гайки и бабочки— Обивка— Структура E-барабанИнструменты:— Лобзик— Наждачная бумага— Дрель— отвертки
Шаг 2: Барабанные колодкиБазовуя фигуру из 16-мм ДВП. Это будет в нижней части нашей колодки. После этого вырезать кольцо из 16-мм ДВП такого же размера, что и дно подушечек барабана.После того, как вы вырезали столько колец и нижних частей, сколько вам нужно, настало время, чтобы перейти к следующему шагу.
Шаг 3: Голова мембраны
Чтобы прикрепить головку мембраны к колодкам, вам нужно будет вырезать еще два кольца, которые будут отвечать за проведение и напряг мембраны.Первая мембрана-обруч должна быть из меньшего ДВП, чем в нижней и первое кольцо из губок. Она должна быть немного тоньше, чем первая панель, но вы можете только вырезать из внутренней части, так что внешний край мембранного кольца совпадает с внешним краем первого кольца.Вторая мембрана-обруч должна быть выше, чем первая мембрана-обруч и его внутренний край должен совпадать с внутренним краем первого кольца.Тут использовано по 4 листа для каждой мембраны.
Приклейте их с помощью горячего клея.
Шаг 4: Завершение барабанных колодокТеперь настало время, чтобы ввернуть все вместе. Используйте винты, шайбы и гайки. Вы должны поставить сначала датчики!Датчик переходит на нижней части и «подключается» к мембране от тригера пирамиды.
Шаг 5: ТарелкиТарелки выполнены из листа 5мм фанеры и этиленвинилацетата EVA. EVA используется для уменьшения шума во время удара по тарелкам.
Вам придется вырезать треугольники фанеры. И просверлить 2 отверстия на них. Одно из отверстий для палки, а другой , чтобы получить кабели от пьезоэлектрического датчика.
Шаг 6: Педаль Hi-hatДля изготовления педали Hi-hat вам потребуется фотоэлемент и тапок на левую ногу. Удалить группу вашего триггера и положить упругую вместо этого.Переделать тапок и сделать некоторое пространство для датчика на передней части нижней части сандала.
После этого, вам придется соединить кабели к фотоэлементу и к разъему (USB / Jack), что расположенный в задней части сандалия.
Шаг 7: Kick / Bass педаль барабана
Есть много вариантов.
Сделайте наклонную структуру древесины и поставить пьезодатчик на ней. Накройте тогда всю педаль каучуком, чтобы изолировать датчик.Шаг 8: Схема
Датчики обычно должны быть подключены к Arduino плате через резисторы.Пьезоэлектрические датчики поключаются через резистор 1MOм между аналоговым входом и контактом заземления. Фотоэлемент отлично работает без резистора, но если вы не хотите перегружать его, то вы должны использовать резистор 10кОм и подключить его между аналоговым входом и выводом 5В.
И, наконец, вам придется подключить MIDI-адаптер, который идет, подключенный к Tx0 пину, клеммам заземления и к контакту 5V. Вам придется подключить адаптер с двумя резисторами 220 кOм. Один из них будет идти к TX0 и другой к контакту 5V.
Шаг 9: Arduino кодОригинальный код был написан Evan Kale, но он был чуть отредактирован.
Скачать файл: homemade-electronic-drum-kit-with-arduino-master.zip [14,82 Kb] (cкачиваний: 1600)
Источник
{poster_avatar} admin
23 112
Электронная установка из кастрюль и ARDUINO | DIY барабаны
Электронные барабаны на ардуино своими руками Arduino+PIEZZO #7 Новый Модуль/Миди контроллер часть 2
Электронные барабаны на ардуино своими руками Arduino+PIEZZO #7 Новый Модуль/Миди контроллер часть 2
Электронные барабаны(жёсткий самопал)
Электронные барабаны(жёсткий самопал)
/*
MIDI ударная установка
*/
int buttonState = 0;
int rt = 0;
int buttonState1l = 0;
int rt1l = 0;
#define LED 13
#define PIEZ_CNT 8 // количество датчиков
#define DRUM_CHANNEL 9
#define ANOTHER_MUTE_PIN_
#define SHOW_
// пороговый уровень датчика
int kick_treshold[PIEZ_CNT]={50,50,50,50,50,50,50,50};
// время на остановку колебаний
long kick_mute_time[PIEZ_CNT]={50000,50000,50000,50000,50000,50000,50000,50000};
// ноты на каналах
byte kick_note[PIEZ_CNT]={7,46,40,71,36,69,67,45};
// канал молчит
bool mute[PIEZ_CNT]={1,1,1,1,1,1,1,1};
// ножка датчика
const uint8_t kick_pin[PIEZ_CNT]={A0,A1,A2,A3,A4,A5,A6,A7};
#ifdef ANOTHER_MUTE_PIN
const uint8_t stop_pin[PIEZ_CNT]={A0,A1,A2,A3,A4,A5,A6,A7};
#endif
int kick_val[PIEZ_CNT]; // предыдущее значение датчика
int velocity;
uint32_t tm[PIEZ_CNT], tm_led;
byte cnt=0, piez_idx=0;
void noteOn(int chan, int note, int velocity) {
Serial.write( (0x90 | chan) );
Serial.write(note);
Serial.write(velocity);
}
void noteOff(int chan, int note, int velocity) {
Serial.write( (0x80 | chan) );
Serial.write(note);
Serial.write(velocity);
}
void channelVolume(int chan, int velocity) {
Serial.write( (0xb0 | chan) );
Serial.write( 0x07 );
Serial.write(velocity);
}
void channelPan(int chan, int pan) {
Serial.write( (0xb0 | chan) );
Serial.write( 0x0a );
Serial.write(pan);
}
void channelBank(int chan, int dat) {
Serial.write( (0xB0 | chan) );
Serial.write( 0x00 );
Serial.write( dat );
}
void channelInstrum(int chan, int dat) {
Serial.write( (0xC0 | chan) );
Serial.write( dat );
}
void setup() {
//Serial.begin(115200); // эмулятор МИДИ на компе
Serial.begin(115200); // реальный МИДИ
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(LED, OUTPUT);
digitalWrite(LED, LOW);
for (byte i=0; i<PIEZ_CNT; i++) {
digitalWrite(kick_pin[i], LOW);
pinMode(kick_pin[i], INPUT);
#ifdef ANOTHER_MUTE_PIN
digitalWrite(stop_pin[i], LOW);
pinMode(stop_pin[i], INPUT);
#endif
}
channelBank(1, 0);
channelInstrum(1, DRUM_CHANNEL);
channelVolume(1, 70);
// делитель 16 — частота опроса 1МГц разрешение 8 бит
ADCSRA |= (1 << ADPS2); //Биту ADPS2 присваиваем единицу
ADCSRA &= ~ ((1 << ADPS1) | (1 << ADPS0)); //Битам ADPS1 и ADPS0 присваиваем нули
}
void loop(){
buttonState = digitalRead(3);
buttonState1l = digitalRead(4);
if (buttonState == HIGH && rt == 0)
{
Serial.write(185);
Serial.write(4);
Serial.write(127);
rt = 10;
}
if (buttonState == LOW && rt == 10)
{
Serial.write(185);
Serial.write(4);
Serial.write(0);
rt = 0;
}
if (buttonState1l == HIGH && rt1l == 0)
{
Serial.write(0x90);
Serial.write(68);
Serial.write(127);
rt1l = 10;
}
if (buttonState1l == LOW && rt1l == 10)
{
Serial.write(0x90);
Serial.write(68);
Serial.write(0);
rt1l = 0;
}
if(piez_idx>0) piez_idx—; else piez_idx=PIEZ_CNT—1; // выбор следующего датчика
int adc = analogRead(kick_pin[piez_idx]);
if (adc > kick_treshold[piez_idx]) {
if ( tm[piez_idx] == 0 ){
tm[piez_idx] = micros() + 2000;
kick_val[piez_idx] = 0;
digitalWrite(LED, HIGH);
tm_led = millis()+10;
}
}
if (tm_led > 0) {
if (millis() > tm_led) {
tm_led = 0;
digitalWrite(LED, LOW);
}
}
if ( tm[piez_idx] > 0 ) {
if ( micros() > tm[piez_idx] ) {
if ( mute[piez_idx] ) {
mute[piez_idx] = false;
velocity = map(kick_val[piez_idx], kick_treshold[piez_idx], 1023, 1, 127);
if (velocity > 127) velocity = 127;
noteOn(DRUM_CHANNEL, kick_note[piez_idx], velocity); // играем ноту
tm[piez_idx] += kick_mute_time[piez_idx];
#ifdef ANOTHER_MUTE_PIN
pinMode(stop_pin[piez_idx], OUTPUT); // разряжаем кондер
#else
pinMode(kick_pin[piez_idx], OUTPUT); // разряжаем кондер
#endif
#ifdef SHOW
cnt++;
velocity = kick_val[piez_idx];
Serial.print(«IDX=»); Serial.print(piez_idx);
Serial.print(» Vel=»); Serial.print(velocity);
Serial.print(» cnt=»); Serial.println(cnt);
#endif
}
}
if ( kick_val[piez_idx] < adc ) {
kick_val[piez_idx] = adc; // ищем максимум сигнала от датчика
}
if ( micros() > tm[piez_idx] ) {
// закончили сканирование одного удара
tm[piez_idx] = 0;
mute[piez_idx] = true;
// отключаем разрядку кондера
#ifdef ANOTHER_MUTE_PIN
pinMode(stop_pin[piez_idx], INPUT);
#else
pinMode(kick_pin[piez_idx], INPUT);
#endif
}
}
}
«Строим из микроконтрололеров» 6 серия
Заставляем коробки издавать звуки настоящих барабанов. Вывод звука через midi-интерфейс на компьютер или синтезатор. Пьезоэлементы в качестве датчиков. Программа доступна в документах группы ВКонтакте «Строим из микроконтрололеров»
Видео Барабанная установка из Arduino канала darkavengersmr
Показать
Барабаны из клавиатуры своими руками
Простейший электронный барабан за 300 руб. своими руками
Электронные Барабаны Своими Руками
Наш проект живет и развивается для тех, кто ищет ответы на свои вопросы и стремится не потеряться в бушующем море зачастую бесполезной информации. На этой странице мы рассказали (а точнее — показали 🙂 вам Как сделать электро барабаны своими руками. Кроме этого, мы нашли и добавили для вас тысячи других видеороликов, способных ответить, кажется, на любой ваш вопрос. Однако, если на сайте все же не оказалось интересующей информации — напишите нам, мы подготовим ее для вас и добавим на наш сайт!
Если вам не сложно — оставьте, пожалуйста, свой отзыв, насколько полной и полезной была размещенная на нашем сайте информация о том, Как сделать электро барабаны своими руками.
В этой статье мастер-самодельщик расскажет нам, как он сделал часы похожие на часы Humans Since 82.
Для изготовления авторских часов нужно, помимо остальных деталей, 25 плат Arduino и 48 шаговых двигателей, а так же, для каждого циферблата, используется специальная печатная плата. Общая цена сборки составила около 500 долларов (оригинальные часы стоят около 6000$).
Часы можно настроить для хранения настроек различных часовых поясов (EEPROM Arduino).
Давайте посмотрим демонстрационное видео работы часов.
Инструменты и материалы:
-3D-принтер;
-Паяльник;
-Отвертка;
-Кусачки;
-Суперклей;
-Шаговый двигатель + плата драйвера двигателя — 48 шт;
-Nano V3.0 — 25 шт;
-Магниты 5Х1 мм — 48 шт;
-Модуль 3144E с датчиком Холла — 48 шт;
-DIP переключатель 6-позиционный — 24 шт;
-Модуль времени DS3231 — 1шт;
-Угловой 5-контактный разъем — 48 шт;
-Резистор 1,3 кОм — 2 шт;
-Кнопка включения с фиксацией- 1 шт;
-Кнопка без фиксации — 2 шт;
-Блок питания от 10А;
Шаг первый: 3D-печать
Дальше нужно напечатать детали. Мастер использовал принтер Creality Ender 3 Pro, нить — PLA. Все детали были напечатаны при стандартных температурах с 20% -ным заполнением, за исключением двух зубчатых трубок, которые были напечатаны со 100% -ным заполнением и опорами. Опоры на зубчатых трубках необходимо будет отрезать.
Для печати всех деталей требуется около 30 дней.
Несколько советов при печати:
Сопло необходимо регулярно чистить. В противном случае отпечатки станут очень тонкими.
Катушки с PLA должны плотно прилегать, чтобы нить не скручивалась и не ломалась во время печати.
Ниже можно скачать файлы для 3D-печати, количество каждых деталей можно посмотреть в этой таблице.
Показать / Скрыть текстcenter_connector_plate.stl
clock_arm_small_5.1.stl
clock_arm_big_8.65.stl
clock_base_plate.stl
corner_frame_A.stl
corner_frame_B.stl
gear_tube_big.stl
gear_tube_small_2.stl
long_edge_frame.stl
master_support.stl
motor_gear.stl
short_edge_frame.stl
side_connector_plate.stl
Шаг второй: схема
Схемы была разработана в Autodesk.
На данной схеме изначально обозначен оптический модуль, а не датчик Холла, как в устройстве.
Каждая плата датчика Холла подключена к 5V, Gnd и аналоговому выводу (O_0 или O_1) на печатной плате. Более подробная информация об этом будет предоставлена в деталях сборки.
analog_clock_rev2.sch
Шаг третий: печатная плата
Для этого проекта понадобится 25 печатных плат. Скачать файл для платы можно ниже. Платы мастер заказывал здесь, но можно и попробовать сделать самому.
H2W-312555_Analog_clock_Rev2.zip.gz
Шаг четвертый: код
В этом проекте используются два файла Arduino: главный и подчиненный.
Мастер-код используется один раз и управляет всеми подчиненными. Код ведомого используется 24 раза.
ZIP-файл библиотеки RTC (часы реального времени) также включен сюда. Файл .zip можно добавить в IDE Arduino, выполнив следующие действия:
sketch -> include library -> add .zip library.
Чтобы запрограммировать Arduino, выберите:
tools -> Boards: Arduino Nano
tools -> Processor Atmega328 (old bootloader/старый загрузчик)
tools -> port (select your port/выберите свой порт)
Файл с кодом можно скачать ниже. Открывается файл архиватором.
HartClock_Arduino_Code.zip.gz
Главный Arduino отправляет последовательные команды I2C на 24 подчиненных Arduino, которые расположены за каждым циферблатом. Подчиненные Ардуино декодируют команды I2C в часы.
Возможные команды Arduino I2C от ведущего к ведомому:
0= IDLE, 1= Calibrate, 2= Arm_go_clockwise, 3= Arm_go_counter_clockwise
Часы имеют 8 возможных положений, в которых они могут находиться, как показано на рисунке ниже.
После сброса «главный» отправит команду калибровки на каждое Arduino, чтобы заставить вернутся в исходное положение, которое соответствует положению часов «8». В шестеренках позади каждых часов есть магниты, а также датчик Холла, который определяет, когда магнит находится «дома».
Шаг пятый: монтаж плат
Нужно смонтировать 24 платы.
Не забудьте вытащить микросхемы драйверов ULN2003 из их гнезд на маленьких платах драйверов, которые поставляются с двигателями.
Обратите внимание, что к каждой плате припаяно по 6 перемычек.
Обратите внимание, что зеленые 4-контактные клеммные колодки, показанные на этих рисунках, не используются. Мастер просто припаял провода напрямую, так меньше потери напряжения
На каждой печатной плате есть микропереключатель. Двухпозиционный переключатель для каждого тактового сигнала должен быть установлен на значения, показанные на рисунке, чтобы «мастер» мог индивидуально адресовать каждый подчиненный модуль часов.
Шаг шестой: сборка основной платы
Основная плата Arduino состоит из платы часов реального времени (RTC) и Arduino nano.
Эта плата RTC может быть приклеена термоклеем или с помощью двусторонней ленты. После пайки она будет надежно зафиксирована.
Подключите RTC Vcc к монтажному отверстию +5 на плате.
Подключите RTC Gnd, SCL и SDA к соответствующим обозначениям контактов на плате.
Припаяйте подтягивающий резистор I2C 1,3 кОм (или близкое значение) между платой Vcc RTC и SDA.
Припаяйте подтягивающий резистор I2C 1,3 кОм (или близкое значение) между платой RTC Vcc и SCL.
Припаяйте четыре провода длиной около 15 см к + 6V, Gnd SDA и SCL для будущего подключения к другим платам.
Шаг седьмой: монтаж модуля часов
Для лучшего понимания процесса сборки смотрим видео.
Определите правильную полярность установки магнитов проверив их с помощью модуля датчика Холла, подключенного к источнику питания 5 В или небольшой аккумуляторной батареи. Для этого мастер использовал аккумуляторную батарею на 4,5 В. Когда направление правильное, индикатор должен стать зеленым (значит, эта сторона ставится вверх).
Приклейте магниты суперклеем.
Соберите часы, как показано на видео.
Отрежьте четыре провода сантиметров по 15. Зачистите оба конца и скрутите их вместе. Припаяйте их к одной стороне печатной платы в точках + 6V, Gnd, SDA, SCL. Они будут использоваться в дальнейшем.
Шаг восьмой: тестовый код Arduino ведомого устройства с одним тактовым сигналом
Мастер рекомендует протестировать каждый модуль часов после его сборки. Для этого нужно временно установить DIP-переключатель на значение больше 23. Это заставит код подчиненного устройства Arduino выполнить калибровку после включения питания.
Это не будет похоже на движение на видео, но проверить что движения правильные, а магниты находятся в нужных местах. Кабель USB сможет питать оба двигателя для этого теста, поэтому подключение к источнику питания не требуется.
Для проверки нужно произвести следующие действия.
Подключите USB-кабель и загрузите подчиненный код Arduino. Вы должны увидеть, как выполняется калибровка на каждой стрелке. Переместите стрелку в верхнее положение «8 часов» после калибровки. Нажмите кнопку сброса на Arduino nano. Проверьте еще раз.
Не забудьте установить переключатель DIP на правильное значение (от 0 до 23) после калибровки. Напишите номер часов маркером на обратной стороне часов, чтобы упростить сборку.
Шаг девятый: блок питания
Сначала нужно обжать разъемы и подключить провода к блоку питания. Затем отрегулировать напряжение до 7,5 В и зафиксировать ручку регулировки (например изолентой).
Провода будут подключены к главной плате через переключатель.
Обратите внимание, что каждый шаговый двигатель 28BYJ48 приводится в действие напряжением 7,5 В. Обмотки по 70 Ом каждая.
Таким образом, ток через каждую обмотку составляет 7,5 В / 70 Ом = 107 мА.
Есть 2 обмотки, которые активно управляются ведомым шаговым двигателем на шаг. Итак, 2 * 107 мА = 214 мА на двигатель.
Если все 48 двигателей вращаются, это 48 * 214 мА = 10,2 ампер. В соответствии с этим и нужно выбирать блок питания.
Шаг десятый: тест для ведущего Ардуино
Этот шаг позволяет проверить одну полную цифру из шести блоков.
Соберите 6 часов в одну цифру, используя 2 боковых соединителя на каждом стыке и вставив в них винт. Припаяйте провода, чтобы получилась цифра.
Код Arduino, называемый здесь debug_master_counter.ino, загружается в главную плату. К этому моменту все подчиненные модули синхронизации должны иметь загруженный файл analog_clock_slave.ino.
DIP-переключатели должны быть установлены в положение: (от 0 до 5), или (от 6 до 11), или (от 12 до 17), или (от 18 до 23).
Это позволит добавлять одну цифру за раз, тестировать и соединять, спаяв 6 блоков вместе.
Временно припаяйте 4 провода ведущего модуля к этим часам в точке + 6 В, gnd, sda, SCL для тестирования.
Убедитесь, что к главному модулю подключен источник питания (временно без переключателя) и настроен на 7,5 В. Поскольку разъема нет, придется временно припаять его для этого теста.
Главный модуль включает и инициализирует все 6 часов. Нам нужно переместить стрелки вверх (позиции на 8 часов). Затем он отправит инструкции, чтобы показать схему увеличения счета от 0 до 9, как показано на фотографиях.
Загрузите основную плату arduino с правильным кодом master_clock_slave.ino, когда вы закончите тестирование всех цифр.
debug_master_counter.ino
Шаг одиннадцатый: полная сборка часов
После того, как будут собраны все модули, можно приступить к сборке часов. Для каждого соединения двух модулей требуется два кронштейна. Кронштейны фиксируются винтами.
После того, как часы будут собраны, нужно припаять провода между каждым модулем. Изначально на каждой плате были зеленые винтовые клеммы, но мастер решил просто припаять соединения. Винтовые клеммные колодки создавали сопротивление на каждом винте, что приводило к падению напряжения.
Дальше нужно установить рамку. Все детали напечатаны на 3D-принтере, и собрать ее не составит труда. В одной из нижней секций рамки нужно просверлить три отверстия для установки кнопок управления.
Приклейте скобу master_support, которая будет удерживать главную плату Arduino, как показано на фото ниже.
Шаг двенадцатый: заключительные работы
В мастер-коде Arduino можно настроить направления вращения стрелок часов.
Некоторые из шаговых двигателей 28BYJ-48, работают задом наперед, но это можно исправить в коде. Пример этого показан на картинке. Установите соответствующий бит = 1 в мастер-коде Arduino, чтобы инвертировать стрелку часов, которая вращается неправильно.
Часы мастер крепит на стену с помощью длинного кронштейна.
Все готово.
Про Ардуино и не только
воскресенье, 6 августа 2017 г.
Попалось мне как-то в интернете видео про барабаны из пьезоизлучателей и Ардуино. Идея мне очень понравилась и я решил собрать что-то подобное для сынишки. Поэтому начал изучать информацию по данной теме.
Пьезоэлектрический излучатель состоит из металлической пластины, на которую нанесён слой пьезоэлектрика, имеющий на внешней стороне токопроводящее напыление. Пластина и напыление являются двумя контактами. Пьезоизлучатель способен как генерировать звуковой сигнал из электрической энергии, так и конвертировать приходящие механические колебания в электрические. Именно на этом эффекте и основан принцип работы MIDI-барабанов, описанных в данной статье.
С подключением к Ардуино все просто, кроме собственно пьезоизлучателя нужен резистор на 1МОм. Ниже приведена схема подключения одного барабана.

Теперь когда мы можем отследить момент удара по барабану необходимо воспроизвести соответствующий звук. Эту задачу можно возложить на компьютер. Для этого будем передавать ему сообщения в MIDI-формате. Интересующимся рекомендую почитать статью MIDI в деталях. Часть 2 – Сообщения канала, она мне здорово помогла. Для остальных же скажу, что на Ардуино необходимо реализовать передачу MIDI-сообщений NOTE ON и NOTE OFF через Serial. Данные сообщения состоят из 3 байт:

Компьютер, а точнее установленная на нем музыкальная программа, при получении с MIDI-входа сообщения NOTE ON воспроизводит ноту с заданной частотой и громкостью (частота ноты определяется ее номером). Соответственно, NOTE OFF используется для снятия ноты. Здесь есть момент, имеющий отношение к нашим MIDI-барабанам: большинство звуков ударных имеют фиксированное время звучания, и управлять их длительностью с помощью команды NOTE OFF мы не можем. Тем не менее данная команда должна рано или поздно поступить, как того требует спецификация. Также отмечу, что для перкуссии в стандарте MIDI зарезервирован отдельный 10-й канал, поэтому Ардуино будет передавать в сообщениях номер канала 9 (нумерация с 0).
Как было сказано ранее, для воспроизведения звука требуется установка соответствующей программы. И такой подход применялся во всех публикациях на данную тему которые мне попадались. При этом входящие с Ардуино сообщения должны перенаправляться на MIDI-вход, например, при помощи программы Hairless MIDI Serial. Я не музыкант, ничего подобного у меня на компьютере не установлено. И захламлять систему ненужным ПО не хотелось бы. Я поступил иначе: написал свою программу, которая читает сообщения из указанного COM порта и воспроизводит соответствующие звуки. Мне для написания ПО ближе всего Delphi, но т.к. это платный продукт, то для размещения здесь готовой программы и исходников к ней я воспользовался бесплатной средой Lazarus. В своей программе можно было бы отойти от формата сообщений MIDI, я рассматривал вариант с передачей номера барабана вместо конкретной ноты. И уже в программе можно сопоставить каждому барабану свой инструмент. Но в итоге я оставил эту затею, по крайней мере для публикации. Пусть лучше это будет MIDI-совместимое решение.
Источник
Table of Contents:
Это мой проект Arduino. Как собрать электронную барабанную установку с Arduino?
Здравствуйте, дорогой читатель!
-Почему такой проект?
Прежде всего потому, что если вам нравятся такие вещи, вы очень сильно насладитесь рабочим процессом. Во-вторых, потому что это действительно дешево по сравнению с реальными электронными барабанами, и вы сможете сэкономить огромное количество денег. В любом случае, давайте перейдем к основной части этой статьи.
Расходные материалы:
Шаг 1: Материалы
— Дерево.
Вам понадобятся разные меры из дерева. Я использовал 16 мм и 10 мм МДФ для колодок барабана, а затем 5 мм фанеры для тарелок.
Я настоятельно рекомендую МДФ для создания этого проекта, потому что он прост в работе с ним.
— Ардуино Мега.
Я использовал Arduino Mega 2560, потому что я включил 9 компонентов. В противном случае вы можете использовать Arduino UNO, который дешевле.
— USB м / м кабели.
Для подключения датчиков к плате Arduino вам понадобятся кабели USB или Jack. Джек кабели в этом случае лучше, но вы сэкономите деньги, если получите USB. Помимо кабелей вам также понадобятся соответствующие гнезда для них.
— ЭВА резина. (Обычно известный как пол бассейна)
— Датчики. Пьезо и фотоэлемент.
— Резисторы, Protoboard / Breadbord, электрический кабель, контактные разъемы.
— MIDI-разъем и кабель MIDI-USB.
— Винты, гайки и бабочки
— Экран питомца
— * структура электронного барабана
— Джиг Соу
— Шлифовальная / наждачная бумага
— Дрель
— Отвертка
Шаг 2: Барабанные колодки
Используйте лобзик, чтобы вырезать основную форму из 16 мм МДФ. Это будет дно наших колодок. Я рекомендую вам обрезать их правильной формой, чтобы в конце она выглядела лучше. После этого отрежьте кольцо из 16-мм МДФ того же размера, что и нижняя часть колодок барабана.
После того, как вы отрежете столько днищ и колец, сколько вам нужно, пришло время перейти к следующему шагу.
Шаг 3: Головная мембрана
Чтобы прикрепить головную мембрану к колодкам, вам необходимо разрезать еще два кольца, которые будут отвечать за удержание и натяжение мембраны.
Первый мембранный обруч должен быть из меньшего МДФ, чем нижнее и первое кольцо колодок. Он должен быть немного тоньше, чем первая прокладка, но вы можете разрезать его только из внутренней части, чтобы внешний край мембранного кольца совпадал с внешним краем первого кольца.
Второй мембранный обруч должен быть выше первого мембранного кольца, а его внутренний край должен совпадать с внутренним краем первого кольца.
После того, как вы обрезали эти два обруча, пришло время вырезать мембрану из нашего экрана для домашних животных. Вы можете выбрать количество листов экрана для домашних животных для изготовления мембраны. Я использовал 4 листа для каждой мембраны, чтобы я мог играть сильнее, не нарушая их.
С помощью пистолета для горячего клея нарисуйте форму первого мембранного обруча, оставляя некоторое пространство между обручем и клеем на четырех ранее собранных листах, чтобы они оставались неподвижными. После этого обрежьте мембрану вокруг горячего клея, чтобы получить первую мембрану. Повторите процесс столько раз, сколько хотите мембран.
Чтобы натянуть и закрепить мембрану на обручах с мембраной, вам придется просверлить несколько отверстий через первый обруч с мембраной и экран для домашних животных, как показано на рисунке выше. Мембрана будет расположена между двумя обручами мембраны.
Шаг 4: Отделка барабанных колодок
Теперь пришло время скрутить весь Pad. Используйте винты, шайбы и гайки. Вы можете увидеть готовый Pad на картинке ниже. Не прикручивайте дно сейчас! Вы должны поставить датчики первыми!
Датчик идет по нижней части колодки и «соединяется» с мембраной через триггерную пирамиду. В любом случае, вы можете адаптировать пьезодатчик так, как вам хочется.
Шаг 5: Тарелки
Тарелки изготовлены из листа фанеры толщиной 5 мм и резины EVA. EVA-каучук используется для уменьшения шума при ударе по тарелке.
Вам придется разрезать (3) треугольника фанеры. И просверлите на них 2 отверстия. Одно из отверстий предназначено для стержня конструкции, а другое предназначено для пропускания кабелей от пьезодатчика.
Шаг 6: Педаль Hi-Hat
Для изготовления педали Hi-hat вам понадобится фотоэлемент и сандалия для левой ноги. Удалите ленту из своего триггера и вместо этого наденьте эластичную.
Просверлите сандалию и освободите место для датчика в передней части нижней части сандалии.
После этого вам придется приварить кабели к фотоэлементу и к разъему (USB / Jack), расположенному в задней части сандалии.
Шаг 7: Педаль ударного / басового барабана
Для изготовления педали Kick существует множество вариантов.
Если вы хотите сделать мою вариацию педали Kick, вам нужно немного дерева, шурупов, немного резины EVA и, наконец, пьезодатчик
Сделайте наклонную деревянную структуру и поместите на нее пьезодатчик. Затем закройте всю педаль резиной, чтобы изолировать датчик.
Шаг 8: Схема
Каждый компонент должен быть подключен к кабелю (USB / разъем). Вам нужно будет подключить эти кабели к гнезду адаптера, а затем к макету.
Датчики обычно необходимо подключать к плате Arduino через резисторы.
Для пьезодатчиков требуется резистор 1 МОм между аналоговым входом и выводом заземления. Фотоэлемент отлично работает без резистора, но если вы не хотите его перезаряжать, вам следует использовать резистор 10 кОм и подключить его между аналоговым входом и выводом 5 В.
Шаг 9: Код Arduino
Оригинальный код был написан Эваном Кейлом, но он был отредактирован и изменен мной. Он содержит некоторые испанские концепции, поэтому, если у вас есть какие-либо вопросы, пожалуйста, дайте мне знать.
Смотрите оригинальную работу Эвана Кейла:
Шаг 10: Структура и другие вещи
Если вы хотите построить самодельную конструкцию, я рекомендую вам использовать ПВХ. Тем не менее, вы сэкономите много времени и работы, если получите структуру барабана с секундной стрелкой. Таким образом, вам нужно будет только адаптировать ваши колодки к крючку этой структуры.
Что касается подключения к компьютеру / мобильному устройству, вам придется купить интерфейс MIDI или кабель MIDI-USB. Вы можете найти их на Amazon, Aliexpress …
Вторая премия в
Конкурс автодромов 2016
2 человека сделали этот проект!
Cardcathouse сделал это!
RhaegarTargaryen сделал это!
Вы сделали этот проект? Поделитесь этим с нами!
рекомендации
Образцы кода Mash Up Arduino
Открытый прототип Ornithopter. Arduino с питанием и дистанционным управлением.
Интернет вещей
Конкурс классной науки
Конкурс садоводства
Arduino Contest 2019
119 обсуждений
Не могли бы вы объяснить подробнее, как / где поместить пьезодатчики в барабанные колодки? Спасибо
Привет! Отличный проект, и я хочу сделать его, но у меня есть Windows PC. Есть ли какое-нибудь программное обеспечение для Windows?
Спасибо
Ответить 24 дня назад
Привет! Прежде всего, спасибо за ваш отзыв! Нет абсолютно никаких проблем, если у вас есть Windows PC, на самом деле, я бы сказал, что это даже лучше! Вы можете найти множество программ, если вы ищете их в Интернете.
(Я использовал Ezdrummer, если вам понравился этот)
Привет, Виктор, хорошая работа.
Вопрос 2 месяца назад
Я прошу прощения за все эти вопросы, но вы должны подключить MIDI-выход или MIDI-вход с женским разъемом MIDI
Ответить 2 месяца назад
Вопрос 2 месяца назад
Привет еще раз, вы также знаете диаметр пьезо, который вы использовали. Кроме того, что вы имели в виду под фотоэлементом 300 Ом.
Ответить 2 месяца назад
Вопрос 2 месяца назад
Привет, возможно, вы знаете, каков был диапазон сопротивления резистора фотоэлемента?
Ответить 2 месяца назад
Привет! Я попробовал несколько, но в итоге думаю, что это был 300 Ом!
Ответить 2 месяца назад
Вопрос 5 месяцев назад на Шаге 8
Ответить 2 месяца назад
Я скачал ezdrummer 2, чтобы получить сами звуки.
В коде вы можете выбрать звук, который вы хотите применить к каждому из пэдов (смена миди ноты)!
Вопрос 7 месяцев назад
Я сделал это с помощью Arduino Uno с 5 колодками. Проблема в том, что между «HIT» и «Output Sound» есть небольшая задержка. Я использовал безволосо-мидиесериал, loopMIDI и FL Studio. Есть ли решение, чтобы решить эту задержку?
Ответить 7 месяцев назад
У меня тоже была такая же проблема. Это может быть связано с процессором вашего ПК … Попробуйте разные ноутбуки / компьютеры!
Вопрос 10 месяцев назад на Шаге 8
Извините, если я задаю хромой вопрос (я полный нуб в этом); но значит ли это, что теперь мне просто нужно подключить Arduino через кабель MIDI к ноутбуку (или ПК), а затем к динамику?
Ответить 7 месяцев назад
Это в основном это!
7 месяцев назад на шаге 10
Эй … быстрый вопрос … должен ли резистор фотоэлемента быть подключен между gnd и аналоговым выводом или аналоговым выводом и 5 В?
Ответить 7 месяцев назад
Вы должны подключить его к земле и аналоговый вход
8 месяцев назад на шаге 10
Я люблю это, я хочу сделать с Ardino Uno, но я не могу сделать программу, не могли бы вы прислать мне учебник, пожалуйста. Спасибо
Источник






















































