Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Úvod
Po experimentování s konstrukcí různých syntezátorů jsem se rozhodl postavit zvukový sampler, který byl snadno replikovatelný a levný.
Aby měl dobrou kvalitu zvuku (44,1 kHz) a dostatečnou kapacitu úložiště, byl použit modul DFPlayer, který pomocí paměťových karet micro SD ukládá až 32 gigabajtů informací. Tento modul je schopen přehrávat pouze jeden zvuk najednou, takže použijeme dva.
Dalším požadavkem projektu je, aby byl obvod přizpůsobitelný různým rozhraním, proto jsme místo tlačítek zvolili kapacitní snímače.
Kapacitní senzory lze aktivovat pouhým ručním kontaktem s jakýmkoli kovovým povrchem připojeným k senzoru.
Ke čtení senzorů použijeme Arduino nano, vzhledem k jeho schopnostem a malým rozměrům.
vlastnosti
6 různých zvuků
Aktivováno kapacitními senzory.
Polyfonie 2 zvuků najednou.
Krok 1: Materiály a nástroje
Materiály
Arduino Nano
2x DFPlayer
2x micro SD
3,5 zvukový konektor
2.1 DC konektor
Měděná deska 10x10
Chlorid železitý
Pájecí drát
Papír pro přenos PCB
Nástroje
Páječka
Řezačka součástí
Počítač
Žehlička
Software
Arduino Ide
Kicad
ADTouch Librarie
Rychlá knihovna DFPlayer
Krok 2: Jak to funguje
Sampler funguje následovně, pomocí knihovny ADTouch převádíme 6 analogových portů Arduino Nano na kapacitní senzory.
Jako senzor můžeme použít jakýkoli kus kovu připojený k jednomu z těchto kolíků pomocí kabelu.
Více o knihovně a kapacitních čidlech si můžete přečíst na následujícím odkazu
Když se dotknete jednoho z těchto senzorů, arduino detekuje změnu kapacity a poté odešle příkaz k provedení zvuku odpovídajícího tomuto senzoru do modulů DFPlayer.
Každý modul DFPlayer může přehrávat pouze jeden zvuk najednou, takže aby bylo možné provádět 2 zvuky najednou, nástroj používá 2 moduly.
Krok 3: Schéma
Na diagramu vidíme, jak jsou arduino a dva moduly DFPlayer propojeny
R1 a R2 (1 k) mají připojit moduly k přehrávačům DFPlayers.
R 3 4 5 a 6 (10k) jsou pro míchání výstupů kanálů l a r modulů.
R 7 (330) je ochranný odpor diody LED, která bude použita jako indikátor, že arduino je pod napětím.
Krok 4: Sestavte desku plošných spojů
Dále vyrobíme desku pomocí metody přenosu tepla, která je vysvětlena v tomto návodu:
Na desku bylo umístěno 6 podložek, které umožňují použití vzorkovače bez potřeby externích senzorů.
Krok 5: Pájení součástí
Dále budeme pájet součásti.
Nejprve odpory.
K montáži Arduina a modulů se doporučuje použít záhlaví, aniž byste je přímo pájili.
Chcete -li pájet záhlaví, začněte kolíkem, poté zkontrolujte, zda je dobře umístěn, a poté pájejte zbytek pinů.
Nakonec konektory připájíme
Krok 6: Nainstalujte si knihovny
V tomto projektu použijeme tři knihovny, které potřebujeme nainstalovat:
SoftwareSerial.h
DFPlayerMini_Fast.h
ADCTouch.h
V následujícím odkazu se můžete podrobně podívat, jak instalovat knihovny v Arduinu
www.arduino.cc/en/guide/libraries
Krok 7: Kód
Nyní můžeme nahrát kód na desku Arduino.
K tomu musíme vybrat desku 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;
neplatné nastavení () {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);
}
prázdná smyčka () {
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 ");
} // nic nezdržovat (1); }
Krok 8: Načtěte zvuky na paměťové karty
Nyní můžete své zvuky načíst na karty micro SD
Formát musí být 44,1 kHz a 16 bitů wav
Na každou kartu SD musíte nahrát 3 zvuky.
Krok 9: Rozhraní
V tuto chvíli již můžete svůj vzorkovník provozovat s podložkami na desce plošných spojů, ale stále máte možnost jej přizpůsobit, vybrat si pouzdro a různé předměty nebo kovové povrchy, které použijete jako senzory.
V tomto případě jsem použil 3 zápěstní hlavy, ke kterým jsem nasadil kovové šrouby jako zvuk kovového kontaktu.
Za tímto účelem připojte šrouby ke kolíkům desky pomocí kabelů.
Můžete použít jakýkoli kovový předmět, vodivou pásku nebo experimentovat s vodivým inkoustem.