Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Introdução
Depois de experimentar a construção de diferentes sintetizadores, comecei a construir um sampler de áudio, que fosse facilmente replicável e barato.
Para ter boa qualidade de áudio (44,1 kHz) e capacidade de armazenamento suficiente, foi utilizado o módulo DFPlayer, que utiliza cartões de memória micro SD para armazenar até 32 gigabytes de informações. Este módulo só é capaz de reproduzir um som por vez, então usaremos dois.
Outro requisito para o projeto é que o circuito possa ser adaptado a diferentes interfaces, por isso escolhemos sensores capacitivos em vez de botões.
Os sensores capacitivos podem ser ativados apenas com o contato da mão com qualquer superfície metálica conectada ao sensor.
Para a leitura dos sensores utilizaremos um Arduino nano, devido às suas capacidades e tamanho reduzido.
características
6 sons diferentes
Ativado por sensores capacitivos.
Polifonia de 2 sons ao mesmo tempo.
Etapa 1: Materiais e Ferramentas
Materiais
Arduino Nano
2x DFPlayer
2x micro SD
3.5 Audio Jack
2.1 DC Jack
Placa de cobre 10x10
Cloreto férrico
Fio de solda
Papel de transferência de PCB
Ferramentas
Ferro de solda
Cortador de chumbo de componente
Computador
Ferro
Programas
Arduino Ide
Kicad
ADTouch Librarie
Librarie Fast DFPlayer
Etapa 2: como funciona
O sampler funciona da seguinte maneira, usando a biblioteca ADTouch, convertemos 6 das portas analógicas do Arduino Nano em sensores capacitivos.
Como sensor, podemos utilizar qualquer pedaço de metal conectado a um desses pinos por meio de um cabo.
Você pode ler mais sobre a biblioteca e os sensores capacitivos no seguinte link
Quando um desses sensores é tocado, o arduino detecta uma mudança de capacitância e, a partir daí, envia a ordem de execução do som correspondente a esse sensor para os módulos DFPlayer.
Cada módulo DFPlayer pode reproduzir apenas um som por vez, portanto, para ter a possibilidade de executar 2 sons por vez, o instrumento usa 2 módulos.
Etapa 3: esquemático
No diagrama, podemos ver como o arduino e os dois módulos DFPlayer estão conectados
R1 e R2 (1 k) são para conectar os módulos aos DFPlayers.
R 3 4 5 e 6 (10k) são para misturar as saídas dos canais le r dos módulos.
R 7 (330) é a resistência de proteção de um LED que será usado como um indicador de que o arduino está sendo energizado.
Etapa 4: construir o PCB
Em seguida, iremos fabricar a placa usando o método de transferência de calor, que é explicado neste instrutível:
6 almofadas foram colocadas na placa que permitem que o amostrador seja usado sem a necessidade de sensores externos.
Etapa 5: soldando os componentes
Em seguida, soldaremos os componentes.
Primeiro os resistores.
Recomenda-se usar cabeçalhos para montar o Arduino e os módulos sem soldá-los diretamente.
Para soldar os cabeçotes, comece com um pino, verifique se ele está bem localizado e solde o restante dos pinos.
Finalmente, iremos soldar os conectores
Etapa 6: instalar as bibliotecas
Neste projeto, usaremos três bibliotecas que precisamos instalar:
SoftwareSerial.h
DFPlayerMini_Fast.h
ADCTouch.h
No link a seguir você pode ver em detalhes como instalar bibliotecas no Arduino
www.arduino.cc/en/guide/libraries
Etapa 7: Código
Agora podemos fazer upload do código para a placa Arduino.
Para isso devemos selecionar a placa 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;
configuração vazia () {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); if (total1> 100 && total1> th) {myMP32.play (1); // Serial.println ("o1"); }
if (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 ");
} // não fazer nada delay (1); }
Etapa 8: Coloque os sons nos cartões de memória
Agora você pode carregar seus sons nos cartões micro SD
O formato deve ser 44,1 kHz e 16 bits wav
Você deve carregar 3 sons em cada cartão SD.
Etapa 9: a interface
Neste momento você já pode rodar seu sampler com pads no PCB, mas ainda tem a possibilidade de customizá-lo, escolhendo uma caixa e diferentes objetos ou superfícies metálicas para usar como sensores.
Neste caso, usei 3 cabeças de pulso nas quais coloquei parafusos de metal como um som de contato de metal.
Para isso, conecte os parafusos aos pinos da placa por meio de cabos.
Você pode usar qualquer objeto metálico, fita condutora ou experimentar com tinta condutora.