Оглавление:
- Шаг 1. Материалы и инструменты
- Шаг 2: как это работает
- Шаг 3: Схема
- Шаг 4: соберите печатную плату
- Шаг 5: Пайка компонентов
- Шаг 6: Установите библиотеки
- Шаг 7: Код
- Шаг 8: Загрузите звуки на карты памяти
- Шаг 9: Интерфейс
Видео: Аудиосэмплер на основе DFPlayer с емкостными датчиками: 9 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
Вступление
Поэкспериментировав с конструкцией различных синтезаторов, я решил создать аудиосэмплер, который можно было легко воспроизводить и недорого.
Для обеспечения хорошего качества звука (44,1 кГц) и достаточного объема памяти использовался модуль DFPlayer, который использует карты памяти micro SD для хранения до 32 гигабайт информации. Этот модуль может воспроизводить только один звук за раз, поэтому мы будем использовать два.
Еще одно требование к проекту - возможность адаптации схемы к различным интерфейсам, поэтому мы выбрали емкостные датчики вместо кнопок.
Емкостные датчики можно активировать простым прикосновением руки к любой металлической поверхности, присоединенной к датчику.
Для считывания показаний датчиков мы будем использовать Arduino nano из-за его возможностей и небольшого размера.
характеристики
6 разных звуков
Активируется емкостными датчиками.
Полифония сразу 2 звуков.
Шаг 1. Материалы и инструменты
Материалы
Arduino Nano
2x DFPlayer
2x micro SD
3.5 Аудиоразъем
2.1 Разъем постоянного тока
Медная плата 10x10
Хлорид железа
Паяльная проволока
Бумага для переноса печатной платы
Инструменты
Припой
Резак для компонентов
Компьютер
Железо
Программное обеспечение
Arduino Ide
Kicad
Библиотека ADTouch
Быстрая библиотека DFPlayer
Шаг 2: как это работает
Сэмплер работает следующим образом: с помощью библиотеки ADTouch мы преобразуем 6 аналоговых портов Arduino Nano в емкостные датчики.
В качестве датчика мы можем использовать любой кусок металла, подключенный к одному из этих контактов с помощью кабеля.
Вы можете узнать больше о библиотеке и емкостных датчиках по следующей ссылке
При прикосновении к одному из этих датчиков Arduino обнаруживает изменение емкости и после этого отправляет команду на выполнение звука, соответствующего этому датчику, модулям DFPlayer.
Каждый модуль DFPlayer может воспроизводить только один звук за раз, поэтому, чтобы иметь возможность воспроизводить 2 звука одновременно, инструмент использует 2 модуля.
Шаг 3: Схема
На схеме мы можем увидеть, как подключены arduino и два модуля DFPlayer.
R1 и R2 (1 k) предназначены для подключения модулей к DFPlayers.
R 3, 4, 5 и 6 (10k) предназначены для микширования выходов каналов l и r модулей.
R 7 (330) - это защитное сопротивление светодиода, который будет использоваться как индикатор того, что Arduino находится под напряжением.
Шаг 4: соберите печатную плату
Затем мы изготовим пластину, используя метод теплопередачи, который объясняется в этом руководстве:
На плате размещено 6 контактных площадок, что позволяет использовать пробоотборник без внешних датчиков.
Шаг 5: Пайка компонентов
Далее спаяем компоненты.
Сначала резисторы.
Рекомендуется использовать заголовки для монтажа Arduino и модулей без их непосредственной пайки.
Чтобы припаять разъемы, начните со штыря, затем убедитесь, что он хорошо расположен, а затем припаяйте остальные штыри.
Напоследок припаяем разъемы
Шаг 6: Установите библиотеки
В этом проекте мы будем использовать три библиотеки, которые нам нужно установить:
SoftwareSerial.h
DFPlayerMini_Fast.h
ADCTouch.h
По следующей ссылке вы можете подробно увидеть, как установить библиотеки в Arduino.
www.arduino.cc/en/guide/libraries
Шаг 7: Код
Теперь мы можем загрузить код на плату Arduino.
Для этого мы должны выбрать плату Arduino Nano.
#include #include #include
int ref0, ref1, ref2, ref3, ref4, ref5; int th;
SoftwareSerial mySerial (8, 9); // RX, TX DFPlayerMini_Fast myMP3;
SoftwareSerial mySerial2 (10, 11); // RX, TX DFPlayerMini_Fast myMP32;
void setup () {int th = 550; // Serial.begin (9600); mySerial.begin (9600); mySerial2.begin (9600); myMP3.begin (mySerial); myMP32.begin (mySerial2); myMP3.volume (18); ref0 = ADCTouch.read (A0, 500); ref1 = ADCTouch.read (A1, 500); ref2 = ADCTouch.read (A2, 500); ref3 = ADCTouch.read (A3, 500); ref4 = ADCTouch.read (A4, 500); ref5 = ADCTouch.read (A5, 500);
}
void loop () {
int total1 = ADCTouch.read (A0, 20); int total2 = ADCTouch.read (A1, 20); int total3 = ADCTouch.read (A2, 20); int total4 = ADCTouch.read (A3, 20); int total5 = ADCTouch.read (A4, 20); int total6 = ADCTouch.read (A5, 20);
total1 - = ref0; total2 - = ref1; total3 - = ref2; total4 - = ref3; total5 - = ref4; total6 - = ref5; // // Serial.print (total1> th); // Serial.print (total2> th); // Serial.print (total3> th); // Serial.print (total4> th); // Serial.print (total5> th); // Serial.println (total6> th);
// Serial.print (total1); // Serial.print ("\ t"); // Serial.print (total2); // Serial.print ("\ t"); // Serial.print (total3); // Serial.print ("\ t"); // Serial.print (total4); // Serial.print ("\ t"); // Serial.print (total5); // Serial.print ("\ t"); // Serial.println (total6); если (total1> 100 && total1> th) {myMP32.play (1); // Serial.println ("o1"); }
если (total2> 100 && total2> th) {myMP32.play (2); //Serial.println("o2 "); }
if (total3> 100 && total3> th) {
myMP32.play (3); //Serial.println("o3 ");
}
if (total4> 100 && total4> th) {
myMP3.play (1); //Serial.println("o4 ");
}
if (total5> 100 && total5> th) {
myMP3.play (2); //Serial.println("o5 ");
}
if (total6> 100 && total6> th) {
myMP3.play (3); //Serial.println("o6 ");
} // ничего не делаем delay (1); }
Шаг 8: Загрузите звуки на карты памяти
Теперь вы можете загружать свои звуки на карты micro SD.
Формат должен быть 44,1 кГц и 16 бит wav.
Вы должны загрузить по 3 звука на каждую SD-карту.
Шаг 9: Интерфейс
В настоящее время вы уже можете запустить свой пробоотборник с контактными площадками на печатной плате, но у вас все еще есть возможность настроить его, выбрав корпус и различные объекты или металлические поверхности для использования в качестве датчиков.
В этом случае я использовал 3 головки для запястий, к которым я прикрепил металлические винты в качестве металлического контактного звука.
Для этого соедините винты с контактами платы с помощью кабелей.
Вы можете использовать любой металлический предмет, токопроводящую ленту или поэкспериментировать с токопроводящими чернилами.
Рекомендуемые:
Начало работы с беспроводными датчиками температуры и вибрации большого радиуса действия: 7 шагов
Начало работы с беспроводными датчиками температуры и вибрации с большим радиусом действия. Иногда вибрация является причиной серьезных проблем во многих приложениях. От валов и подшипников машин до производительности жесткого диска - вибрация вызывает повреждение машины, преждевременную замену, низкую производительность и существенно снижает точность. Мониторинг
Робот с несколькими датчиками, управляемый Wi-Fi: 6 шагов
Робот с несколькими датчиками, управляемый Wi-Fi: в этом уроке я покажу вам, как построить интеллектуальный ровер, управляемый Wi-Fi, с использованием nodemcu. С помощью этого ровера вы можете наблюдать за параметрами окружающей среды робота (свет, температура, влажность) в реальном времени. время со смартфоном. первые часы
Как сделать домашнюю автоматизацию на основе Интернета вещей с помощью реле управления датчиками NodeMCU: 14 шагов (с изображениями)
Как сделать домашнюю автоматизацию на основе IoT с помощью реле управления датчиками NodeMCU: в этом проекте на основе Интернета вещей я сделал домашнюю автоматизацию с помощью Blynk и модуля реле управления NodeMCU с обратной связью в реальном времени. В ручном режиме этим релейным модулем можно управлять с мобильного телефона или смартфона, а также с помощью ручного переключателя. В автоматическом режиме этот умный
Робот для обхода препятствий с ИК-датчиками без микроконтроллера: 6 шагов
Робот для обхода препятствий с ИК-датчиками без микроконтроллера: Ну, это старый проект, я сделал его в 2014 году в июле или августе, подумал поделиться им с вами, ребята. Это простой робот, избегающий препятствий, который использует ИК-датчики и работает без микроконтроллера. В ИК-датчиках используется микросхема операционного усилителя i
Генератор музыки на основе погоды (генератор MIDI на основе ESP8266): 4 шага (с изображениями)
Музыкальный генератор на основе погоды (Midi-генератор на основе ESP8266): Привет, сегодня я объясню, как сделать свой собственный небольшой музыкальный генератор на основе погоды. Он основан на ESP8266, который похож на Arduino, и он реагирует на температуру, дождь. и яркость света. Не ожидайте, что он сделает целые песни или аккордовые программы