Съдържание:
- Стъпка 1: Материали и инструменти
- Стъпка 2: Как работи
- Стъпка 3: Схематично
- Стъпка 4: Изградете печатната платка
- Стъпка 5: Запояване на компонентите
- Стъпка 6: Инсталирайте библиотеките
- Стъпка 7: Код
- Стъпка 8: Заредете звуците в картите с памет
- Стъпка 9: Интерфейсът
Видео: Аудио семплер, базиран на DFPlayer с капацитивни сензори: 9 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Въведение
След като експериментирах с конструирането на различни синтезатори, се заех да създам аудио семплер, който беше лесно възпроизвеждан и евтин.
За да има добро качество на звука (44,1 kHz) и достатъчен капацитет за съхранение, беше използван модулът DFPlayer, който използва micro SD карти с памет за съхраняване на до 32 гигабайта информация. Този модул може да възпроизвежда само един звук наведнъж, така че ще използваме два.
Друго изискване към проекта е, че веригата може да бъде адаптирана към различни интерфейси, поради което избрахме капацитивни сензори вместо бутони.
Капацитивните сензори могат да се активират само с ръчния контакт с всяка метална повърхност, свързана със сензора.
За отчитане на сензорите ще използваме Arduino nano, поради неговите възможности и малки размери.
характеристики
6 различни звука
Задейства се от капацитивни сензори.
Полифония от 2 звука едновременно.
Стъпка 1: Материали и инструменти
Материали
Arduino Nano
2x DFPlayer
2x micro SD
3.5 Аудио жак
2.1 DC жак
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.
#включи #включи #включи
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);
общо1 -= ref0; общо2 -= ref1; общо3 -= ref2; общо4 -= ref3; общо5 -= ref4; общо6 -= 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 (общо1); // Serial.print ("\ t"); // Serial.print (общо2); // Serial.print ("\ t"); // Serial.print (общо3); // Serial.print ("\ t"); // Serial.print (общо4); // Serial.print ("\ t"); // Serial.print (общо5); // Serial.print ("\ t"); // Serial.println (общо6); if (total1> 100 && total1> th) {myMP32.play (1); // Serial.println ("o1"); }
if (total2> 100 && total2> th) {myMP32.play (2); //Serial.println("o2 "); }
if (общо3> 100 && общо3> th) {
myMP32.play (3); //Serial.println("o3 ");
}
if (общо4> 100 && общо4> th) {
myMP3.play (1); //Serial.println("o4 ");
}
if (общо5> 100 && общо5> th) {
myMP3.play (2); //Serial.println("o5 ");
}
if (общо6> 100 && общо6> th) {
myMP3.play (3); //Serial.println("o6 ");
} // не правете нищо забавяне (1); }
Стъпка 8: Заредете звуците в картите с памет
Сега можете да зареждате звуците си в micro SD картите
Форматът трябва да бъде 44,1 kHz и 16 битов wav
Трябва да качите 3 звука на всяка SD карта.
Стъпка 9: Интерфейсът
Понастоящем вече можете да стартирате своя семплер с подложки в печатната платка, но все още имате възможност да го персонализирате, като изберете корпус и различни предмети или метални повърхности, които да използвате като сензори.
В този случай използвах 3 глави за китки, към които поставих метални винтове като метален контакт.
За целта свържете винтовете към щифтовете на платката с помощта на кабели.
Можете да използвате всеки метален предмет, проводима лента или да експериментирате с проводимо мастило.
Препоръчано:
Проектиране на осцилатор, базиран на текущ режим за аудио усилватели от клас D: 6 стъпки
Проектиране на осцилатор, базиран на текущ режим за аудио усилватели от клас D: През последните години аудио усилвателите от клас D се превърнаха в предпочитаното решение за преносими аудио системи като MP3 и мобилни телефони поради тяхната висока ефективност и ниска консумация на енергия. Осцилаторът е важна част от клас D au
Аудио визуализатор на Kylo Ren, базиран на светлинен меч: 5 стъпки
Аудио визуализатор, базиран на светлинния меч на Kylo Ren: Вдъхновен от светлинната сабя на Kylo Ren, реших да направя аудио визуализатор, използвайки светодиоди, свързани към arduino, и след това използвам обработка, за да пулсирам светодиодите въз основа на песента … познахте правилно Imperial March
Музикален генератор, базиран на времето (ESP8266 базиран midi генератор): 4 стъпки (със снимки)
Метеорологичен генератор, базиран на времето (ESP8266 базиран Midi генератор): Здравейте, днес ще ви обясня как да направите свой собствен малък музикален генератор, базиран на времето. Той е базиран на ESP8266, който е нещо като Arduino и реагира на температура, дъжд и интензивността на светлината. Не очаквайте това да прави цели песни или акорди
ESP8266 DfPlayer аудио плейър: 8 стъпки
ESP8266 DfPlayer аудио плейър: Това е mp3 аудио плейър, изграден от wifi модул esp8266 и mp3 модул dfPlayer. Той възпроизвежда файлове от SD карта. Сложих го в стар високоговорител на компютъра и го накарах да работи с батерии, но може да бъде вграден във всеки корпус на високоговорителите
Продължаващ PID базиран робот с масив от сензори POLOLU QTR 8RC: 6 стъпки (със снимки)
PID базиран линеен робот с POLOLU QTR 8RC сензорен масив: Здравейте! Това е първото ми писане на инструкции и днес ще ви отведа по пътя и ще ви обясня как да укрепите PID базирана линия след робот с помощта на QTR-8RC сензорен масив. Преди да преминем към сградата на робота, трябва да разберем