Hải Đăng PPK gửi vào
- 31358 lượt xem
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ế)
Đâ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!
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é!
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!!!
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é!
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!!!