INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Inleiding
Nadat ek met die konstruksie van verskillende sintetiseerders geëksperimenteer het, het ek besluit om 'n klankmonster te bou wat maklik herhaalbaar en goedkoop was.
Om 'n goeie klankgehalte (44,1 kHz) en voldoende bergingskapasiteit te hê, is die DFPlayer -module gebruik, wat mikro -SD -geheuekaarte gebruik om tot 32 gigabyte inligting te stoor. Hierdie module kan slegs een klank op 'n slag speel, daarom gebruik ons twee.
'N Ander vereiste vir die projek is dat die stroombaan aanpasbaar is vir verskillende koppelvlakke, en daarom het ons kapasitiewe sensors in plaas van knoppies gekies.
Kapasitiewe sensors kan geaktiveer word met net die handkontak met enige metaaloppervlak wat aan die sensor gekoppel is.
Vanweë sy vermoëns en klein grootte, sal ons 'n Arduino -nano gebruik om die sensors te lees.
eienskappe
6 verskillende klanke
Geaktiveer deur kapasitiewe sensors.
Polifonie van 2 klanke tegelyk.
Stap 1: Materiaal en gereedskap
Materiaal
Arduino Nano
2x DFPlayer
2x mikro SD
3.5 Audio Jack
2.1 DC-aansluiting
10x10 koperbord
Ferricchloride
Soldeerdraad
PCB-oordragpapier
Gereedskap
Soldeerbout
Komponent lood snyer
Rekenaar
Yster
Sagteware
Arduino Ide
Kicad
ADTouch Librarie
Vinnige DFPlayer Librarie
Stap 2: Hoe werk dit
Die monsternemer werk soos volg, met behulp van die ADTouch -biblioteek omskep ons 6 van die analoog -poorte van die Arduino Nano in kapasitiewe sensors.
As 'n sensor kan ons 'n metaalstuk gebruik wat deur middel van 'n kabel aan een van hierdie penne gekoppel is.
U kan meer lees oor die biblioteek en kapasitiewe sensors op die volgende skakel
As een van hierdie sensors aangeraak word, bespeur die arduino 'n kapasitansieverandering en stuur daarna die bevel om die klank wat ooreenstem met die sensor na die DFPlayer -modules uit te voer.
Elke DFPlayer -module kan slegs een klank op 'n slag speel, sodat die instrument 2 modules op 'n slag kan uitvoer.
Stap 3: Skematiese
In die diagram kan ons sien hoe die arduino en die twee DFPlayer -modules verbind is
R1 en R2 (1 k) is om die modules aan die DFPplayers te koppel.
R 3 4 5 en 6 (10k) is vir die vermenging van die uitsette van kanale l en r van die modules.
R 7 (330) is die beskermingsweerstand van 'n LED wat gebruik sal word as 'n aanduiding dat die arduino aangeskakel word.
Stap 4: Bou die PCB
Vervolgens vervaardig ons die plaat met behulp van die hitte-oordragmetode, wat in hierdie instruksie verduidelik word:
Daar is ses pads op die bord geplaas waarmee die monsternemer gebruik kan word sonder dat eksterne sensors nodig is.
Stap 5: Soldeer die komponente
Vervolgens sal ons die komponente soldeer.
Eerstens die weerstande.
Dit word aanbeveel om kopstukke te gebruik om die Arduino en die modules te monteer sonder om dit direk te soldeer.
Om die koppe te soldeer, begin met 'n pen, kyk dan of dit goed geleë is en soldeer dan die res van die penne.
Uiteindelik sal ons die verbindings soldeer
Stap 6: Installeer die biblioteke
In hierdie projek gebruik ons drie biblioteke wat ons moet installeer:
SoftwareSerial.h
DFPlayerMini_Fast.h
ADCTouch.h
In die volgende skakel kan u in detail sien hoe u biblioteke in Arduino installeer
www.arduino.cc/en/guide/libraries
Stap 7: Kode
Nou kan ons die kode na die Arduino -bord laai.
Hiervoor moet ons die Arduino Nano -bord kies.
#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;
ongeldige opstelling () {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);
}
leemte -lus () {
int totaal1 = ADCTouch.read (A0, 20); int total2 = ADCTouch.read (A1, 20); int total3 = ADCTouch.read (A2, 20); int total4 = ADCTouch.read (A3, 20); int totaal5 = ADCTouch.read (A4, 20); int totaal6 = ADCTouch.read (A5, 20);
totaal1 -= ref0; totaal2 -= ref1; totaal3 -= ref2; totaal4 -= ref3; totaal5 -= ref4; totaal6 -= 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 (totaal1); // Serial.print ("\ t"); // Serial.print (totaal2); // Serial.print ("\ t"); // Serial.print (totaal3); // Serial.print ("\ t"); // Serial.print (totaal4); // Serial.print ("\ t"); // Serial.print (totaal5); // Serial.print ("\ t"); // Serial.println (totaal6); as (totaal1> 100 && totaal1> de) {myMP32.play (1); // Serial.println ("o1"); }
as (total2> 100 && total2> th) {myMP32.play (2); //Serial.println("o2 "); }
as (total3> 100 && total3> de) {
myMP32.play (3); //Serial.println("o3 ");
}
as (total4> 100 && total4> de) {
myMP3.play (1); //Serial.println("o4 ");
}
as (totaal5> 100 && totaal5> de)
myMP3.play (2); //Serial.println("o5 ");
}
as (totaal6> 100 && totaal6> de)
myMP3.play (3); //Serial.println("o6 ");
} // niks vertraag nie (1); }
Stap 8: Laai die klanke op geheue kaarte
Nou kan u u geluide op die micro SD -kaarte laai
Die formaat moet 44,1 kHz en 16 bis wav wees
U moet 3 geluide op elke SD -kaart oplaai.
Stap 9: Die koppelvlak
Op die oomblik kan u u monsternemer reeds met pads in die PCB laat loop, maar u het nog steeds die moontlikheid om dit aan te pas deur 'n omhulsel en verskillende voorwerpe of metaaloppervlaktes te kies om as sensors te gebruik.
In hierdie geval gebruik ek 3 polskoppe waarop ek metaalskroewe as 'n metaalkontakgeluid sit.
Om dit te doen, verbind die skroewe met behulp van kabels aan die penne van die bord.
U kan enige metaalvoorwerp, geleidende band gebruik of met geleidende ink eksperimenteer.