Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Įvadas
Eksperimentuodamas su skirtingų sintezatorių konstrukcija, nusprendžiau sukurti garso mėginių ėmiklį, kuris būtų lengvai atkartojamas ir nebrangus.
Norint turėti gerą garso kokybę (44,1 kHz) ir pakankamą atminties talpą, buvo naudojamas „DFPlayer“modulis, kuris naudoja „micro SD“atminties korteles iki 32 gigabaitų informacijos saugojimui. Šis modulis vienu metu gali leisti tik vieną garsą, todėl naudosime du.
Kitas projekto reikalavimas yra tas, kad grandinę galima pritaikyti skirtingoms sąsajoms, todėl vietoj mygtukų pasirinkome talpinius jutiklius.
Talpinius jutiklius galima suaktyvinti tiesiog ranka prisilietus prie bet kurio prie jutiklio prijungto metalinio paviršiaus.
Jutiklių skaitymui naudosime „Arduino nano“dėl jo galimybių ir mažo dydžio.
charakteristikas
6 skirtingi garsai
Aktyvuojamas talpiniais jutikliais.
2 garsų polifonija vienu metu.
1 žingsnis: medžiagos ir įrankiai
Medžiagos
„Arduino Nano“https://www.taydaelectronics.com/nano-3-0-control…
2x „DFPlayer“https://www.ebay.com/itm/DFPlayer-Mini-TF-Card-U-…
2x „micro SD“https://www.ebay.com/itm/New-8GB-Micro-SD-High-Sp…
3.5 Garso lizdas
2.1 „DC Jack“https://www.taydaelectronics.com/dc-power-jack-2-1mm-barrel-type-pcb-mount.html
10x10 vario plokštė
Geležies chloridas
Lituoklio viela
PCB perdavimo paketas
Įrankiai
Lituoklis
Komponentinis švino pjaustytuvas
Kompiuteris
Geležis
Programinė įranga
„Arduino Ide“https://www.arduino.cc/en/Main/Software
„Kicad“https://kicad-pcb.org/download/
„ADTouch Librarie“https://playground.arduino.cc/Code/ADCTouch/
Greita „DFPlayer Librarie“https://github.com/PowerBroker2/DFPlayerMini_Fast
2 žingsnis: kaip tai veikia
Mėginių ėmiklis veikia taip, naudojant ADTouch biblioteką, mes konvertuojame 6 analoginius „Arduino Nano“prievadus į talpinius jutiklius.
Kaip jutiklį galime naudoti bet kurį metalo gabalą, prijungtą prie vieno iš šių kaiščių kabeliu.
Daugiau apie biblioteką ir talpinius jutiklius galite perskaityti šioje nuorodoje
Palietus vieną iš šių jutiklių, arduino aptinka talpos pokytį ir po to siunčia nurodymą vykdyti garsą, atitinkantį tą jutiklį, į DFPlayer modulius.
Kiekvienas „DFPlayer“modulis vienu metu gali atkurti tik vieną garsą, kad būtų galima vienu metu atlikti 2 garsus, instrumentas naudoja 2 modulius.
3 žingsnis: schema
Diagramoje matome, kaip prijungti „arduino“ir du „DFPlayer“moduliai
R1 ir R2 (1 k) turi prijungti modulius prie DFPlayers.
R 3 4 5 ir 6 (10k) yra skirti modulių l ir r kanalų išėjimams maišyti.
R 7 (330) yra šviesos diodo, kuris bus naudojamas kaip indikatorius, rodantis, kad arduino yra įjungtas, apsaugos varža.
4 žingsnis: sukurkite PCB
Toliau gaminsime plokštę, naudodami šilumos perdavimo metodą, kuris paaiškinamas šioje instrukcijoje:
Ant plokštės buvo įdėtos 6 pagalvėlės, leidžiančios naudoti mėginių ėmiklį be išorinių jutiklių.
5 žingsnis: komponentų litavimas
Toliau lituosime komponentus.
Pirmiausia rezistoriai.
Rekomenduojama naudoti antraštes „Arduino“ir moduliams montuoti be jų litavimo.
Norėdami lituoti antraštes, pradėkite nuo kaiščio, tada patikrinkite, ar jis yra gerai, ir lituokite likusias kaiščius.
Galiausiai lituosime jungtis
6 veiksmas: įdiekite bibliotekas
Šiame projekte naudosime tris bibliotekas, kurias turime įdiegti:
SoftwareSerial.h
DFPlayerMini_Fast.h
ADCTouch.h
Šioje nuorodoje galite išsamiai pamatyti, kaip įdiegti bibliotekas „Arduino“
www.arduino.cc/en/guide/libraries
7 žingsnis: kodas
Dabar galime įkelti kodą į „Arduino“lentą.
Tam turime pasirinkti „Arduino Nano“plokštę.
#įtraukti #įtraukti #įtraukti
int ref0, ref1, ref2, ref3, ref4, ref5; int;
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.tomas (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);
iš viso1 -= ref0; iš viso2 -= ref1; iš viso3 -= ref2; iš viso4 -= ref3; iš viso5 -= ref4; iš viso6 -= 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 (iš viso1> 100 ir & iš viso1> tūkst.) {myMP32.play (1); // Serial.println ("o1"); }
if (total2> 100 && total2> th) {myMP32.play (2); //Serial.println("o2 "); }
jei (iš viso3> 100 && iš viso3> tūkst.) {
myMP32.play (3); //Serial.println("o3 ");
}
jei (iš viso4> 100 && iš viso4> tūkst.) {
myMP3.play (1); //Serial.println("o4 ");
}
if (iš viso5> 100 &&5 iš viso>>) {
myMP3.play (2); //Serial.println("o5 ");
}
jei (iš viso6> 100 &&6 iš viso>>) {
myMP3.play (3); //Serial.println("o6 ");
} // nieko nedaryti delsimas (1); }
8 veiksmas: įdėkite garsus į atminties korteles
Dabar galite įkelti savo garsus į „micro SD“korteles
Formatas turi būti 44,1 kHz ir 16 bitų wav
Į kiekvieną SD kortelę turite įkelti 3 garsus.
9 žingsnis: sąsaja
Šiuo metu savo mėginių ėmiklį jau galite paleisti su trinkelėmis PCB, tačiau vis tiek turite galimybę jį pritaikyti, pasirinkdami dėklą ir įvairius objektus ar metalinius paviršius, kuriuos naudosite kaip jutiklius.
Šiuo atveju aš naudoju 3 riešo galvutes, prie kurių uždėjau metalinius varžtus kaip metalinį kontaktinį garsą.
Norėdami tai padaryti, kabeliais prijunkite varžtus prie plokštės kaiščių.
Galite naudoti bet kokį metalinį daiktą, laidžią juostą arba eksperimentuoti su laidžiu rašalu.