HưngUS gửi vào
- 67737 lượt xem
I. Giới thiệu
Hôm nay, chúng ta cùng tìm hiểu về SDcard breakout board (mạch ghi đọc thẻ SD) và ứng dụng của nó trong các dự án sử dụng đến âm thanh như phát nhạc, âm thanh cảnh báo, giọng nói...
II. Phần cứng
- Arduino Uno
- 01 SDcard breakout board
- 01 thẻ micro SD + adapter
- dây cắm breadboard
- 01 Mạch khuếch đại âm 6W
- 01 Tụ điện 4700uF
III. Lắp mạch
1. SDcard breakout board
Thông số kỹ thuật:
- Tương thích với cả nguồn 5V và 3.3V
- Hỗ trợ khe cắm mở rộng
- SD Card hỗ trợ định dạng FAT16 và FAT32 (các định dạng khác như NTFS, ext1-4,... không chơi được ). Tốt nhất là bỏ vào máy windows format lại theo định dạng FAT16 hoặc FAT32.
- Hỗ trợ việc recording và playback cho lượng âm thanh lớn.
- Giao tiếp thông qua chuẩn SPI (4 Pin): MOSI, SCK, MISO và CS.
2. Kết nối với Arduino
3. Mạch khuếch đại âm 6W
Mạch khuếch đại âm thanh có thứ tự nối dây như sau:
R+ | nối với cực + loa bên trái |
R- | nối với cực - loa bên trái |
L- | nối với cực - loa bên phải |
L+ | nối với cực + loa bên phải |
Gnd | nối với cực âm của nguồn |
5V | nối với cực dương của nguồn 3.3V - 5.5V |
SW | được sử dung như 1 công tắc của mạch, SW nối Gnd mạch ngưng hoạt động |
Gnd | để nối với SW khi tắt mạch |
Lin | nối với dây jack phone 3.5mm kênh LEFT |
Gnd | nối với phần chung của dây jack phone 3.5mm |
Rin | nối với dây jack phone 3.5mm kênh RIGHT |
Mạch khuếch đại âm thanh chống chập mạch
Mạch sẽ ngưng hoạt động ngay khi các dây nối ra loa (R+ R- L+ L-) chập nhau hoặc bị nối với Gnd. Sau khi hết bị chập, mạch hoạt động lại bình thường. Very cool ha!
Lưu ý: mạch không có chế độ bảo vệ khi bạn đấu ngược nguồn (Gnd và 5V), cần lưu ý nối đúng cực nguồn vào mạch! Chỉ cần một chút lơ đễnh là bạn sẽ tiền đưa em nó về sọt rác đó, ko có sửa được đâu!
Mạch khuếch đại cho công suất tối ưu
Mạch hoạt động với độ nhiễu cực thấp, công suất khuếch đại lên đến 6W (3W mỗi loa đầu ra).
Để mạch hoạt động ổn định, bạn cần hàn thêm 1 tụ 4700uF vào vị trí tụ C7. (xem hình ở trên ý)
IV. Lập trình
- Trước tiên các bạn download các thư viện hỗ trợ: thư viện SD, thư viện SPI và thư viện TRMpcm (dự phòng).
- Chúng ta sẽ bắt đầu bằng cách đọc và phát file âm thanh từ thẻ SD thông qua Arduino. Các bạn phải đảm bảo trong thẻ SD đã có sẵn file âm thanh cần phát.
- Ở đây, các bạn có thể sử dụng 2 file âm thanh có sẵn của mình cho bài ví dụ này (tải tại đây - dự phòng). Sau đó bỏ chúng vào thẻ SD của bạn.
Ngoài ra có thể chạy các file âm thanh khác (lưu ý chúng ta chỉ play được nhạc .wav được lưu ở dạng 8-bit). Vì sao?
Vì nó là file âm thanh RAW, nghĩa là âm thanh được lưu ở dạng dữ liệu thô. Hay nói một cách khác, nó chưa được nén và chỉ cần đọc từng byte là ta sẽ có được mảng giá trị các nốt nhạc. Vì sao lại đọc từng byte mà không phải đọc từng word hay dài hơn? Bởi vì, Arduino dùng vi điều khiển ATmega328 - vi điều khiển 8 bit vì vậy xử lý 8 bit sẽ cực nhanh và đã có sẵn thư viện hỗ trợ :3. Muốn play được nhạc được nén như MP3 thì bạn cần phải có mạch giải mã nữa, nói chung là thêm mạch thêm lúa ra đi.
#include <SD.h> //#define SD_ChipSelectPin 53 //sử dụng SS Pin 53 trên Mega2560 #define SD_ChipSelectPin 4 //thường sử dụng digital pin 4 trên arduino nano 328, hoặc chân tùy ý #include <TMRpcm.h> #include <SPI.h> TMRpcm tmrpcm; unsigned long time = 0; void setup() { tmrpcm.speakerPin = 9; //5,6,11 hoặc 46 trên Mega, 9 trên Uno, Nano. Vì sao, xem bài viết cứng của anh NTP_PRO http://arduino.vn/bai-viet/411-timercounter-tren-avrarduino Serial.begin(9600); //bật serial monitor ở mức baudrate 9600 :) if (!SD.begin(SD_ChipSelectPin)) { Serial.println("SD fail"); return; } else { Serial.println("OK"); } tmrpcm.play("xinchao.wav"); delay(3000); time = millis(); } void loop() { tmrpcm.play("tambiet.wav"); delay(5500); digitalWrite(9, LOW); if(millis() - time > 50) { if (!tmrpcm.isPlaying()) digitalWrite(9, LOW); time = millis(); } }
V. Phần mềm hỗ trợ
Để file âm thanh của bạn được đảm bảo chơi thành công, chất lượng bạn nên làm theo các bước sau đây.
1. Phần mềm Audacity: (nếu bạn muốn ghi âm âm thanh riêng)
Phần mềm này cho phép các bạn ghi âm, xử lí âm thanh theo ý muốn như cắt, ghép, chỉnh sửa âm thanh. (Tham khảo tại đây)
2. Phần mềm Total Audio Converte: (nếu bạn đã có sẵn file âm thanh) là một trong những phần mềm chuyển đuôi đơn giản và hiệu quả. (tải tại đây / pass: khopm.com).
Bước 1: Chọn file âm thanh cần định dạnh và chọn loại định dạng là .wav
Bước 2: Chọn thông số như hình
Bước 3: Nhấn Start.
VI. Kết luận
Rất đơn giản phải không nào! Qua cách tiếp cận như thế này, bạn hoàn toàn có thể thực hiện các dự án kết hợp phát âm thanh. Bookmark lại sau này dễ tìm bạn nhé ;).