Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Introducere
După ce am experimentat construcția diferitelor sintetizatoare, mi-am propus să construiesc un eșantionator audio, care să fie ușor de reprodus și ieftin.
Pentru a avea o calitate audio bună (44,1 kHz) și o capacitate de stocare suficientă, a fost utilizat modulul DFPlayer, care utilizează carduri de memorie micro SD pentru a stoca până la 32 de gigaocteți de informații. Acest modul este capabil să redea un singur sunet odată, așa că vom folosi două.
O altă cerință pentru proiect este că circuitul poate fi adaptabil la diferite interfețe, motiv pentru care am ales senzori capacitivi în loc de butoane.
Senzorii capacitivi pot fi activați doar prin contactul manual cu orice suprafață metalică conectată la senzor.
Pentru citirea senzorilor vom folosi un nano Arduino, datorită capacităților sale și dimensiunilor mici.
caracteristici
6 sunete diferite
Activat de senzori capacitivi.
Polifonie de 2 sunete simultan.
Pasul 1: Materiale și instrumente
Materiale
Arduino Nano
2x DFPlayer
2x micro SD
3.5 Jack audio
2.1 DC Jack
Placă de cupru 10x10
Clorură ferică
Sârmă de lipit
Papper de transfer PCB
Instrumente
Fier de lipit
Tăietor de plumb pentru componente
Calculator
Fier
Software
Arduino Ide
Kicad
ADTouch Librarie
Rapid DFPlayer Librarie
Pasul 2: Cum funcționează
Samplerul funcționează după cum urmează, folosind biblioteca ADTouch convertim 6 dintre porturile analogice ale Arduino Nano în senzori capacitivi.
Ca senzor putem folosi orice bucată de metal conectată la unul dintre acești pini prin intermediul unui cablu.
Puteți citi mai multe despre bibliotecă și senzori capacitivi la următorul link
Când unul dintre acești senzori este atins, arduino detectează o schimbare de capacitate și apoi trimite ordinul de a executa sunetul corespunzător acelui senzor către modulele DFPlayer.
Fiecare modul DFPlayer poate reda un singur sunet la un moment dat, astfel încât să aibă posibilitatea de a executa 2 sunete odată, instrumentul folosește 2 module.
Pasul 3: Schematic
În diagramă putem vedea cum sunt conectate arduino și cele două module DFPlayer
R1 și R2 (1 k) trebuie să conecteze modulele la DFPlayers.
R 3 4 5 și 6 (10k) sunt pentru amestecarea ieșirilor canalelor l și r ale modulelor.
R 7 (330) este rezistența de protecție a unui LED care va fi folosit ca indicator al faptului că arduino este alimentat.
Pasul 4: Construiți PCB-ul
În continuare vom fabrica placa folosind metoda de transfer de căldură, care este explicată în acest instructable:
6 plăci au fost așezate pe placă care permit prelevarea de probe fără a fi nevoie de senzori externi.
Pasul 5: lipirea componentelor
Apoi vom lipi componentele.
Mai întâi rezistențele.
Este recomandat să utilizați anteturi pentru a monta Arduino și modulele fără a le lipi direct.
Pentru a lipi anteturile începeți cu un știft, apoi verificați dacă este bine amplasat, apoi lipiți restul știfturilor.
În cele din urmă vom lipi conectorii
Pasul 6: Instalați bibliotecile
În acest proiect vom folosi trei biblioteci pe care trebuie să le instalăm:
SoftwareSerial.h
DFPlayerMini_Fast.h
ADCTouch.h
În următorul link puteți vedea în detaliu cum se instalează biblioteci în Arduino
www.arduino.cc/en/guide/libraries
Pasul 7: Cod
Acum putem încărca codul pe placa Arduino.
Pentru aceasta trebuie să selectăm 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;
void setup () {int th = 550; // Serial.begin (9600); mySerial.begin (9600); mySerial2.begin (9600); myMP3.begin (mySerial); myMP32.begin (mySerial2); volumul myMP3. (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);
}
bucla nulă () {
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 ");
} // nu face nimic întârziere (1); }
Pasul 8: Încărcați sunetele pe cardurile de memorie
Acum vă puteți încărca sunetele pe cardurile micro SD
Formatul trebuie să fie de 44,1 kHz și 16 biți wav
Trebuie să încărcați 3 sunete pe fiecare card SD.
Pasul 9: Interfața
În acest moment, puteți rula deja eșantionatorul cu tampoane în PCB, dar aveți în continuare posibilitatea de a-l personaliza, alegând o carcasă și diferite obiecte sau suprafețe metalice pe care să le folosiți ca senzori.
În acest caz am folosit 3 capete de încheietură la care am pus șuruburi metalice ca sunet de contact metalic.
Pentru aceasta, conectați șuruburile la știfturile plăcii cu ajutorul cablurilor.
Puteți utiliza orice obiect metalic, bandă conductivă sau experimentați cu cerneală conductivă.