Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Giới thiệu
Sau khi thử nghiệm việc xây dựng các bộ tổng hợp khác nhau, tôi bắt đầu xây dựng một bộ lấy mẫu âm thanh, có thể dễ dàng sao chép và không tốn kém.
Để có chất lượng âm thanh tốt (44,1 kHz) và đủ dung lượng lưu trữ, mô-đun DFPlayer đã được sử dụng, sử dụng thẻ nhớ micro SD để lưu trữ lên đến 32 gigabyte thông tin. Mô-đun này chỉ có khả năng phát một âm thanh tại một thời điểm, vì vậy chúng tôi sẽ sử dụng hai âm thanh.
Một yêu cầu khác đối với dự án là mạch có thể thích ứng với các giao diện khác nhau, đó là lý do tại sao chúng tôi chọn cảm biến điện dung thay vì nút.
Cảm biến điện dung có thể được kích hoạt chỉ với sự tiếp xúc của tay với bất kỳ bề mặt kim loại nào được kết nối với cảm biến.
Để đọc các cảm biến, chúng tôi sẽ sử dụng Arduino nano, do khả năng và kích thước nhỏ của nó.
đặc trưng
6 âm thanh khác nhau
Kích hoạt bằng cảm biến điện dung.
Đa âm của 2 âm thanh cùng một lúc.
Bước 1: Vật liệu và công cụ
Vật liệu
Arduino Nano
2x DFPlayer
2x micro SD
Giắc cắm âm thanh 3.5
2.1 Giắc cắm DC
Bảng đồng 10x10
Ferric Chloride
Dây hàn
Bộ phân tích cú pháp chuyển PCB
Công cụ
Sắt hàn
Máy cắt chì linh kiện
Máy vi tính
Sắt
Phần mềm
Arduino Ide
Kicad
ADTouch Librarie
Nhanh chóng DFPlayer Librarie
Bước 2: Nó hoạt động như thế nào
Bộ lấy mẫu hoạt động như sau, bằng cách sử dụng thư viện ADTouch, chúng tôi chuyển đổi 6 cổng tương tự của Arduino Nano thành cảm biến điện dung.
Là một cảm biến, chúng ta có thể sử dụng bất kỳ mảnh kim loại nào được kết nối với một trong các chân này bằng cáp.
Bạn có thể đọc thêm về thư viện và cảm biến điện dung tại đường dẫn sau
Khi một trong các cảm biến này được chạm vào, arduino sẽ phát hiện ra sự thay đổi điện dung và sau đó sẽ gửi lệnh thực hiện âm thanh tương ứng với cảm biến đó đến các mô-đun DFPlayer.
Mỗi mô-đun DFPlayer chỉ có thể phát một âm thanh tại một thời điểm, do đó, để có khả năng thực hiện 2 âm thanh cùng một lúc, thiết bị sử dụng 2 mô-đun.
Bước 3: Sơ đồ
Trong sơ đồ, chúng ta có thể thấy cách arduino và hai mô-đun DFPlayer được kết nối
R1 và R2 (1 k) là để kết nối các mô-đun với DFPlayers.
R 3 4 5 và 6 (10k) là để trộn các đầu ra của kênh l và r của mô-đun.
R 7 (330) là điện trở bảo vệ của đèn LED sẽ được sử dụng làm chỉ báo rằng arduino đang được cung cấp năng lượng.
Bước 4: Xây dựng PCB
Tiếp theo, chúng tôi sẽ sản xuất tấm bằng phương pháp truyền nhiệt, được giải thích trong tài liệu hướng dẫn này:
6 miếng đệm đã được đặt trên bảng cho phép sử dụng bộ lấy mẫu mà không cần cảm biến bên ngoài.
Bước 5: Hàn các thành phần
Tiếp theo chúng ta sẽ hàn các thành phần.
Đầu tiên là các điện trở.
Bạn nên sử dụng các tiêu đề để gắn Arduino và các mô-đun mà không cần hàn chúng trực tiếp.
Để hàn các đầu cắm, hãy bắt đầu bằng một chốt, sau đó kiểm tra xem nó đã được định vị tốt chưa, sau đó hàn phần còn lại của các chân.
Cuối cùng chúng tôi sẽ hàn các đầu nối
Bước 6: Cài đặt các thư viện
Trong dự án này, chúng tôi sẽ sử dụng ba thư viện mà chúng tôi cần cài đặt:
SoftwareSerial.h
DFPlayerMini_Fast.h
ADCTouch.h
Trong liên kết sau, bạn có thể xem chi tiết cách cài đặt thư viện trong Arduino
www.arduino.cc/en/guide/libraries
Bước 7: Mã
Bây giờ chúng ta có thể tải mã lên bảng Arduino.
Đối với điều này, chúng ta phải chọn bảng 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);
tổng1 - = ref0; tổng2 - = ref1; tổng3 - = ref2; tổng4 - = ref3; tổng5 - = ref4; tổng số6 - = 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 ");
} // không làm gì delay (1); }
Bước 8: Nạp âm thanh vào thẻ nhớ
Giờ đây, bạn có thể tải âm thanh của mình vào thẻ micro SD
Định dạng phải là 44,1 kHz và 16 bit wav
Bạn phải tải lên 3 âm thanh trên mỗi thẻ SD.
Bước 9: Giao diện
Tại thời điểm này, bạn đã có thể chạy trình lấy mẫu của mình với các miếng đệm trong PCB, nhưng bạn vẫn có khả năng tùy chỉnh nó, chọn vỏ và các vật thể hoặc bề mặt kim loại khác nhau để sử dụng làm cảm biến.
Trong trường hợp này, tôi đã sử dụng 3 đầu cổ tay mà tôi đặt các vít kim loại làm âm thanh tiếp xúc với kim loại.
Đối với điều này, hãy kết nối các vít với các chân của bảng bằng dây cáp.
Bạn có thể sử dụng bất kỳ vật thể kim loại nào, băng dẫn điện hoặc thử nghiệm với mực dẫn điện.