Module âm thanh WTV020 - Module âm thanh kết hợp với thẻ nhớ micro SD - Một giải pháp thông minh cho túi tiền của bạn

Bài viết này mình xin giới thiệu tới các bạn 1 loại module âm thanh khá dễ sử dụng tuy nhiên lại ít phổ biến trong cộng đồng Arduino VN. Đó là Module WTV-020. Bạn đã từng xem những con robot có thể phát ra tiếng nói và thậm chí xử lý được các tình huống và phát ra tiếng nói theo từng trường hợp. Ngoài việc xử dụng modul Micro SD Card ra, Module WTV-020 là 1 sự lựa chọn đáng để các bạn quan tâm khi các bạn có ý định khởi động 1 dự án có liên quan đến âm thanh.

P/S: mình đã hoàn thành được 1 dự án có sử dụng module này và khá hài lòng về kết quả mà nó mang lại cho mình (kể cả về kinh tế) heart

Đây là loại module có thể sử dụng trong các hệ thống định vị GPS, hệ thống nhà thông minh, các thiết bị y tế, thiết bị gia dụng (bếp, nồi cơm điện, lò vi sóng), máy chơi game, các thiết bị học tập và các công cụ như "sách nói", các dạng phương tiện giao thông thông minh (trạm thu phí, bãi đậu xe), thiết bị thông tin liên lạc (điện thoại), công nghiệp kiểm soát (thang máy), đồ chơi có phát ra âm thanh..v..v..

1. GIỚI THIỆU VỀ MODULE WTV-020

Có thể nói module WTV-020 là module tuyệt vời trong các dự án xử dụng đến âm thanh, với kích thước tương đối nhỏ gọn, khả năng xử lý nhanh, tốc độ lấy mẫu của các file âm thanh lên đến 32000Hz. Và điều đặc biệt đó là nó hoàn toàn có thể hoạt động được khi có vi điều khiển hoặc không có vi điều khiển. Điều đó có nghĩa là bạn có thể sử dụng Arduino để điều khiển WTV-020 hoặc bạn có thể để WTV-020 tự hoạt động mà không cần Arduino. Tuyệt không nào! wink

Dự án của mình thuộc lĩnh vực quân sự nên không thể share cho các bạn xem tuy nhiên để các bạn rõ hơn mình xin dẫn lại 1 video sử dụng WTV-020 (nguồn youtube)

Có 1 số điều cần lưu ý khi làm việc với module này

Hỗ trợ thẻ nhớ tối đa là  2GB

Hoạt động với định dạng âm thanh ad4 (việc chuyển đổi từ mp3, wav sang ad4 rất đơn giản mình sẽ hướng dẫn bên dưới)

Nguồn cấp là 3.3V

OK! Cùng xem sơ đồ chân của em này nào:

  • 1: Chân reset
  • 2: Chân audio, chân này có thể nối tới bộ khuyếch đại
  • 4,5: nối trực tiếp tới loa công suất nhỏ (tối đa 3W)
  • 7: Chân CLK
  • 8: Chân GND
  • 10: chân DATA giao tiêp với vi điều khiển
  • 15: chân Busy
  • 16: chân nguồn 3,3V
  • Các chân 3,6,11,14 không có tác dụng nhé
  • Chân 12, 13 sử dụng trong trường hợp không có arduino. các bạn có thể tham khảo hình bên dưới

Hãy để ý vùng khoanh tròn màu đỏ trên hình, đó chính là điểm chuẩn để bạn xác định các chân

Các bạn lưu ý, Module này chỉ hoạt động ở mức điện áp 3,3v vì vậy khi  sử dụng, hãy chắc chắn là mình cắm đúng nguồn 3,3v nếu không thẻ nhớ của bạn sẽ hỏng.

Các bạn có thể tham khảo datasheet của WTV020 tại đây (Có khá nhiều phiên bản khác nhau, tuy nhiên các chân cơ bản giống nhau)

2. KẾT NỐI VỚI ARDUINO THẾ NÀO?

Như mình đã nói ở phần đầu, Module WTV-020 có thể hoạt động ở 2 chế độ: có hoặc không có Arrduino. Ở mục này mình sẽ hướng dẫn các bạn kết nối Module WTV-020 với arduino

Có lẽ sơ đồ trên đã quá dễ dàng để kết nối rồi đúng không? Nếu bạn nào gặp khó khăn có thể liên hệ trực tiếp với mình qua mục tin nhắn hoặc bình luận nhé! heart

3. CHUYỂN ĐỔI ĐỊNH DẠNG ÂM mp3, wav  SANG *ad4

Nhiều bạn đọc đến đoạn này sẽ cảm thấy ngán vì lại mất công rườm rà chuyển đổi âm thanh mới sử dụng được.

Nhưng các bạn hãy tin mình đi, rất đơn giản thôi!!! laugh

Các bạn cần down phần mềm chuyển đổi định dạng tại đây cài đặt xong sau đó chạy chương trình có tên là USBRecorder ver 1.3, bạn sẽ thấy giao diện như sau

Bước 1. chọn file âm thanh định dạng *mp3 hoặc *wav

Bước 2. Chọn loại định dạng

Bước 3. Encode âm thanh

Bước 4. Các file âm thanh của bạn đã được convert sang dạng *ad4. Các bạn đổi tên file thành dạng 0000.ad4, 0001.ad4, 0002.ad4....v..v.. sau đó copy vào thẻ nhớ, lắp thẻ nhớ vào module.

Nếu các bạn muốn test luôn thì mình có 1 số file ad4 mẫu, các bạn có thể copy vào thẻ luôn và test thử nhé. Các bạn có thể down tại đây HOẶC tại đây.

OK vậy là xong!

4. CODE ARDUINO

Thư viện hỗ trợ cho module WTV-020 Các bạn có thể down tại đây giải nén và copy vào thư mục C:\Program Files\Arduino\libraries

#include <Wtv020sd16p.h>
int resetPin = 2;  // Chân số 2 được kết nối với chân Reset(1) trên Module
int clockPin = 3;  // Chân số 3 được kết nối với chân CLK(7) trên Module
int dataPin = 4;  //Chân số 4 được kết nối với chân data(10) trên Module
int busyPin = 5;  //Chân số 5 được kết nối với chân busy(15) trên Module
Wtv020sd16p wtv020sd16p(resetPin,clockPin,dataPin,busyPin);

void setup() {
  //Khởi tạo module
  wtv020sd16p.reset();
}

void loop() {
  //Chạy file âm thanh đồng bộ. Busy pin được sử dụng ở phương pháp này.
  wtv020sd16p.playVoice(0);
  //chạy âm thanh không đồng bộ
  wtv020sd16p.asyncPlayVoice(1);
  //Chạy tệp âm thanh số 1 trong 5 giây
  delay(5000);
  //tạm dừng tệp số 1 trong 5 giây
  wtv020sd16p.pauseVoice();
  delay(5000);
  //tiếp tục chạy tệp trong 5 giây
  wtv020sd16p.pauseVoice();
  delay(5000);  
  //dừng chạy âm thanh
  wtv020sd16p.stopVoice();
  wtv020sd16p.asyncPlayVoice(2);
  delay(2000);   
// tắt âm
  wtv020sd16p.mute();
  delay(2000);
  //bật âm
  wtv020sd16p.unmute();
  delay(2000);    
  //dừng chạy
  wtv020sd16p.stopVoice();
}

Các bạn có thể nạp chương trình và thử nghiệm tác dụng của từng câu lệnh nhé

Ứng dụng gì với đoạn code này?

Căn cứ vào tính năng của module, bạn hoàn toàn có thể nạp các đoạn âm thanh giọng nói vào thẻ nhớ, sử dụng có các chú robot tự chế có thể phản ứng bằng giọng nói với các trường hợp mà mình định sẵn với các điều kiện từ các cảm biến. Tất cả nằm ở sự sáng tạo của các bạn nhé! yes

Kinh nghiệm của mình khi sử dụng WTV020 cho thấy đây là một trong những module khá thú vị. Trên các trang web khác nhau và các diễn đàn nước ngoài các bạn sẽ tìm thấy các cuộc thảo luận về các phương pháp khác nhau để làm cho nó làm việc. Một số người nói rằng nó không làm việc với thẻ 2GB và một số nói rằng nó không chơi được file * .mp3 / *. Wav.

Trong thực tế, có một số vấn đề cần phải được giải quyết để module có thể hoạt động nhịp nhàng. Trong bài viết này, mình xin đưa ra những kinh nghiệm và mình nghĩ rằng nếu các bạn làm theo các bước này thì thiết bị của bạn sẽ làm việc.

Hãy format thẻ nhớ trước khi copy file âm thanh vào

Sử dụng thẻ nhớ chuẩn, thường là KingSton 2GB

Đặt tên các file âm thanh đúng thứ tự và nguyên tắc: 0000.ad4.... tối đa là 512 file

Nếu vẫn chưa được, hãy format lại thẻ bằng phần mềm chuyên dụng

 Một số module dòng WTV-020-M01 bị 1 lỗi phần cứng rất khó chịu, tuy nhiên cách khắc phục như sau

CHÚC CÁC BẠN THÀNH CÔNG!!! yes

Những hình ảnh về dự án: 
lên
21 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Nghiên cứu về tín hiệu hồng ngoại của Remote điều hòa, ứng dụng trong các dự án nhà thông minh <Phần 2>

Ở bài viết trước mình đã hướng dẫn các bạn cách cấu hình lại thư viện để nhận được tín hiệu điều khiển hồng ngoại có độ dài lớn hơn 100 rawbuff. Tuy nhiên thực tế các biến trong thư viện đang sử dụng dạng 8bit cho rawbuff, điều đó đồng nghĩa với giá trị rawbuff chúng ta có thể tăng tối đa là 255. Mình đã nghiên cứu rất nhiều các bài viết, các câu trả lời trên các diễn đàn quốc tế chuyên về arduino tuy nhiên chưa tìm được câu trả lời thỏa đáng cho các vấn đề mình gặp phải. Việc giải mã tín hiệu là vô cùng khó khăn và phức tạp. Thậm chí mình đã phải bỏ ra 10$ để thanh toán cho 1 phần mềm để phân tích, giải mã tín hiệu hồng ngoại.Đây chính là rào cản lớn đối với các bạn muốn nghiên cứu về tín hiệu hồng ngoại của điều hòa. Bài viết này mình sẽ hướng dẫn các bạn cách nhận giá trị điều khiển hồng ngoại có kích thước tín hiệu lớn. Và đưa ra các vấn đề mà các bạn thường mắc phải khi nghiên cứu tín hiệu hồng ngoại.

lên
21 thành viên đã đánh giá bài viết này hữu ích.

Giao tiếp giữa 2 boad Arduino ở cự li xa 1000m bằng chuẩn giao tiếp RS-485

Mình đã có 1 bài viết hướng dẫn về cách giao tiếp giữa 2 arduino bằng i2c, 1 câu hỏi đặt ra "Đối với trường hợp 2 arduino cách xa nhau 50-100m thì sẽ thế nào?", Tất nhiên đối với cự ly như vậy, giao tiếp i2c vẫn có thể thực hiện được nhưng với yêu cầu sử dụng cáp kết nối và nhiều vấn đề phức tạp khác để đối phó với vấn đề sụt giảm điện áp trên đường truyền tải tín hiệu.

Bài viết này mình xin đề cập đến chuẩn giao tiếp RS-485,giúp giao tiếp 2 boad arduino ở cự ly 1000m thậm chí có thể lên tới 1200m (4000feet)

lên
23 thành viên đã đánh giá bài viết này hữu ích.