Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Uvod
Po eksperimentiranju z izdelavo različnih sintetizatorjev sem se lotil izdelave vzorčevalnika zvoka, ki ga je bilo enostavno ponoviti in je poceni.
Za dobro kakovost zvoka (44,1 kHz) in zadostno zmogljivost shranjevanja je bil uporabljen modul DFPlayer, ki uporablja pomnilniške kartice micro SD za shranjevanje do 32 gigabajtov informacij. Ta modul lahko predvaja le en zvok hkrati, zato bomo uporabili dva.
Druga zahteva za projekt je, da je vezje mogoče prilagoditi različnim vmesnikom, zato smo namesto gumbov izbrali kapacitivne senzorje.
Kapacitivni senzorji se lahko aktivirajo samo z ročnim stikom s katero koli kovinsko površino, povezano s senzorjem.
Za branje senzorjev bomo zaradi njegovih zmogljivosti in majhnosti uporabili Arduino nano.
značilnosti
6 različnih zvokov
Aktivirajo kapacitivni senzorji.
Polifonija dveh zvokov hkrati.
Korak: Materiali in orodja
Materiali
Arduino Nano
2x DFPlayer
2x mikro SD
3.5 Avdio priključek
2.1 DC priključek
10x10 bakrena plošča
Železov klorid
Spajkalna žica
Papir za prenos tiskanih vezij
Orodja
Spajkalno železo
Sestavni rezalnik svinca
Računalnik
Železo
Programska oprema
Arduino Ide
Kicad
Knjižnica ADTouch
Hitra knjižnica DFPlayer
2. korak: Kako deluje
Vzorčevalnik deluje na naslednji način: s pomočjo knjižnice ADTouch 6 analognih vrat Arduino Nano pretvorimo v kapacitivne senzorje.
Kot senzor lahko uporabimo kateri koli kos kovine, priključen na enega od teh zatičev s kablom.
Več o knjižnici in kapacitivnih senzorjih si lahko preberete na naslednji povezavi
Ko se dotaknete enega od teh senzorjev, arduino zazna spremembo kapacitivnosti in nato pošlje ukaz za izvedbo zvoka, ki ustreza temu senzorju, v module DFPlayer.
Vsak modul DFPlayer lahko predvaja le en zvok hkrati, tako da ima instrument možnost izvajanja 2 zvokov hkrati, uporablja dva modula.
3. korak: Shema
Na diagramu lahko vidimo, kako sta arduino in dva modula DFPlayer povezana
R1 in R2 (1 k) povezujeta module z igralci DFPlayers.
R 3 4 5 in 6 (10k) sta za mešanje izhodov kanalov l in r modulov.
R 7 (330) je zaščitna odpornost LED, ki bo uporabljena kot indikator, da je arduino pod napetostjo.
4. korak: Zgradite tiskano vezje
Nato bomo ploščo izdelali po metodi prenosa toplote, ki je razložena v tem navodilu:
Na ploščo je bilo postavljenih 6 blazinic, ki omogočajo uporabo vzorčevalnika brez potrebe po zunanjih senzorjih.
5. korak: Spajkanje komponent
Nato bomo spajkali komponente.
Najprej upori.
Priporočljivo je, da za montažo Arduina in modulov uporabite glave, ne da bi jih neposredno spajkali.
Če želite spajkati glave, začnite s čepom, nato preverite, ali je dobro nameščen, nato pa spajkajte preostale zatiče.
Na koncu bomo spajkali priključke
6. korak: Namestite knjižnice
V tem projektu bomo uporabili tri knjižnice, ki jih moramo namestiti:
SoftwareSerial.h
DFPlayerMini_Fast.h
ADCTouch.h
Na naslednji povezavi si lahko podrobno ogledate, kako namestiti knjižnice v Arduino
www.arduino.cc/en/guide/libraries
7. korak: Koda
Zdaj lahko kodo naložimo na ploščo Arduino.
Za to moramo izbrati ploščo 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);
skupaj1 -= ref0; skupaj2 -= ref1; skupaj3 -= ref2; skupaj4 -= ref3; skupaj5 -= ref4; skupaj6 -= ref5; // // Serial.print (skupaj1> th); // Serial.print (skupaj2> th); // Serial.print (skupaj3> th); // Serial.print (skupaj4> th); // Serial.print (skupaj5> th); // Serial.println (skupaj6> th);
// Serial.print (skupaj1); // Serial.print ("\ t"); // Serial.print (skupaj2); // Serial.print ("\ t"); // Serial.print (skupaj3); // Serial.print ("\ t"); // Serial.print (skupaj4); // Serial.print ("\ t"); // Serial.print (skupaj5); // Serial.print ("\ t"); // Serial.println (skupaj6); if (skupaj1> 100 && skupaj1> th) {myMP32.play (1); // Serial.println ("o1"); }
if (skupaj2> 100 && skupaj2> th) {myMP32.play (2); //Serial.println("o2 "); }
if (skupaj3> 100 && skupaj3> th) {
myMP32.play (3); //Serial.println("o3 ");
}
if (skupaj4> 100 && skupaj4> th) {
myMP3.play (1); //Serial.println("o4 ");
}
if (skupaj5> 100 && skupaj5> th) {
myMP3.play (2); //Serial.println("o5 ");
}
if (skupaj6> 100 && skupaj6> th) {
myMP3.play (3); //Serial.println("o6 ");
} // nič ne zamuja (1); }
8. korak: Zvoke naložite v pomnilniške kartice
Zdaj lahko svoje zvoke naložite na kartice micro SD
Oblika mora biti 44,1 kHz in 16 -bitni wav
Na vsako kartico SD morate naložiti 3 zvoke.
9. korak: Vmesnik
Trenutno lahko vzorčevalnik že zaženete s ploščicami v tiskanem vezju, vendar ga še vedno lahko prilagodite, tako da izberete ohišje in različne predmete ali kovinske površine, ki jih boste uporabili kot senzorje.
V tem primeru sem uporabil 3 zapestne glave, na katere sem kot kovinski zvok vstavil kovinske vijake.
V ta namen s pomočjo kablov privijte vijake na zatiče plošče.
Uporabite lahko kateri koli kovinski predmet, prevodni trak ali poskusite s prevodnim črnilom.