Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Uvod
Nakon što sam eksperimentirao s konstrukcijom različitih sintisajzera, krenuo sam u izradu audio uzorkivača, koji je lako repliciran i jeftin.
Za dobru kvalitetu zvuka (44,1 kHz) i dovoljan kapacitet pohrane korišten je DFPlayer modul koji koristi mikro SD memorijske kartice za pohranu do 32 gigabajta informacija. Ovaj modul može reproducirati samo jedan zvuk odjednom, pa ćemo koristiti dva.
Drugi zahtjev za projekt je da se krug može prilagoditi različitim sučeljima, zbog čega smo odabrali kapacitivne senzore umjesto tipki.
Kapacitivni senzori mogu se aktivirati samo dodirom ruke sa bilo kojom metalnom površinom spojenom na senzor.
Za očitavanje senzora koristit ćemo Arduino nano, zbog njegovih mogućnosti i male veličine.
karakteristike
6 različitih zvukova
Aktivira se kapacitivnim senzorima.
Polifonija od 2 zvuka odjednom.
Korak 1: Materijali i alati
Materijali
Arduino Nano
2x DFPlayer
2x mikro SD
3.5 Audio priključak
2.1 DC utičnica
10x10 bakrena ploča
Željezni klorid
Lemna žica
Papir za prijenos PCB-a
Alati
Lemljeno gvožđe
Komponentni rezač olova
Computer
Gvožđe
Softver
Arduino Ide
Kicad
ADTouch biblioteka
Brza biblioteka DFPlayer
Korak 2: Kako to funkcionira?
Sempler radi na sljedeći način, pomoću ADTouch biblioteke pretvaramo 6 analognih portova Arduino Nano u kapacitivne senzore.
Kao senzor možemo koristiti bilo koji komad metala spojen na jedan od ovih pinova pomoću kabela.
Više o biblioteci i kapacitivnim senzorima možete pročitati na sljedećoj poveznici
Kada se dodirne jedan od ovih senzora, arduino detektira promjenu kapacitivnosti i nakon toga šalje naredbu za izvođenje zvuka koji odgovara tom senzoru do modula DFPlayer.
Svaki DFPlayer modul može reproducirati samo jedan zvuk odjednom, tako da za mogućnost izvođenja 2 zvuka odjednom instrument koristi 2 modula.
Korak 3: Shema
Na dijagramu možemo vidjeti kako su arduino i dva DFPlayer modula povezani
R1 i R2 (1 k) povezuju module s DFPlayerima.
R 3 4 5 i 6 (10k) služe za miješanje izlaza kanala l i r modula.
R 7 (330) je zaštitni otpor LED koji će se koristiti kao pokazatelj da je arduino pod naponom.
Korak 4: Izgradite PCB
Zatim ćemo ploču proizvoditi metodom prijenosa topline, koja je objašnjena u ovom uputstvu:
Na ploču je postavljeno 6 jastučića koji omogućuju upotrebu uzorkivača bez potrebe za vanjskim senzorima.
Korak 5: Lemljenje komponenti
Zatim ćemo lemiti komponente.
Prvo otpornici.
Preporučuje se korištenje zaglavlja za montiranje Arduina i modula bez njihovog direktnog lemljenja.
Za lemljenje zaglavlja počnite iglom, zatim provjerite da li je dobro postavljena, a zatim lemite ostale pinove.
Na kraju ćemo lemiti konektore
Korak 6: Instalirajte biblioteke
U ovom projektu koristit ćemo tri biblioteke koje moramo instalirati:
SoftwareSerial.h
DFPlayerMini_Fast.h
ADCTouch.h
Na sljedećoj vezi možete detaljno vidjeti kako instalirati biblioteke u Arduinu
www.arduino.cc/en/guide/libraries
Korak 7: Kodirajte
Sada možemo učitati kôd na Arduino ploču.
Za to moramo odabrati Arduino Nano ploču.
#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 () {{100} {101}
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);
ukupno1 -= ref0; ukupno2 -= ref1; ukupno3 -= ref2; ukupno4 -= ref3; ukupno5 -= ref4; ukupno6 -= 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 (ukupno1); // Serial.print ("\ t"); // Serial.print (ukupno2); // Serial.print ("\ t"); // Serial.print (ukupno3); // Serial.print ("\ t"); // Serial.print (ukupno4); // Serial.print ("\ t"); // Serial.print (ukupno5); // Serial.print ("\ t"); // Serial.println (ukupno6); if (ukupno1> 100 && ukupno1> t) {myMP32.play (1); // Serial.println ("o1"); }
if (total2> 100 && total2> th) {myMP32.play (2); //Serial.println("o2 "); }
if (ukupno3> 100 && ukupno3> th) {
myMP32.play (3); //Serial.println("o3 ");
}
if (ukupno4> 100 && ukupno4> t) {
myMP3.play (1); //Serial.println("o4 ");
}
if (ukupno5> 100 && ukupno5> th) {
myMP3.play (2); //Serial.println("o5 ");
}
if (ukupno6> 100 && ukupno6> th) {
myMP3.play (3); //Serial.println("o6 ");
} // ne radi ništa delay (1); }
Korak 8: Umetnite zvukove u memorijske kartice
Sada možete staviti svoje zvukove na mikro SD kartice
Format mora biti 44,1 kHz i 16 bitni wav
Morate postaviti 3 zvuka na svaku SD karticu.
Korak 9: Interfejs
U ovom trenutku već možete pokrenuti svoj uzorak sa jastučićima na PCB -u, ali još uvijek imate mogućnost da ga prilagodite, odabirom kućišta i različitih predmeta ili metalnih površina koje ćete koristiti kao senzore.
U ovom slučaju koristio sam 3 glave ručnih zglobova na koje sam stavio metalne vijke kao metalni zvuk kontakta.
U tu svrhu vijcima spojite vijke na pinove ploče pomoću kabela.
Možete koristiti bilo koji metalni predmet, provodljivu traku ili eksperimentirati s provodljivom tintom.