Bài 12: Phát Nhạc Bằng Arduino Với Một Cái Loa Hoặc Buzzer
Nội dung chính, cần nắm
Với Arduino, bạn có thể phát ra được nhạc. Nhạc được phát ra dưới dạng các sóng có tần số khác nhau, chúng tôi đã tập hợp các tần số dưới dạng tên các nốt nhạc. Và qua ví dụ này, bận sẽ biết cách phát nhạc từ Arduino và làm ra nhạc cho Arduino!
Phần cứng
- Arduino Uno
- 1 x Loa (bạn có thể lấy từ thùng loa cũ hoặc từ đồ chơi có nhạc, loại nào cũng được) hoặc 1 buzzer (mua ngoài tiệm khoảng 5k)
- 1 điện trở 100 ohm
Lắp mạch

Giải thích và lập trình
Đoạn code sau đây bao gồm thêm một file khác tên là pitch.h, tập tin này bao gồm một số ghi chú nhất định mà bạn thường sử dụng. Nó rất hữu ích cho việc sử dụng tạo nhạc sau này. Để tạo ra file mới, kích vào nút "New Tab"
. Bạn hãy kích vào nút đó và tạo một file mới tên pitch.h có nội dung như sau:
Bây giờ trong file chính, bạn dán đoạn code sau, trong code đã có hướng dẫn rất cụ thể, bạn tham khảo nhé!
#include "pitch.h" int speakerPin = 12;//Chân được nối với loa hoặc buzzer // danh sách các nốt nhạc int melody[] = { NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4}; // thời gina các nốt nhạc: 4 = 1/4 nốt nhạc, 8 = 1/8nốt nhạc, ...: int noteDurations[] = { 4, 8, 8, 4,4,4,4,4 }; void setup() { //không cần phải pinMode cho speakerPin for (int thisNote = 0; thisNote < 8; thisNote++) { // bây giờ ta đặt một nốt nhạc là 1 giây = 1000 mili giây // thì ta chia cho các thành phần noteDurations thì sẽ // được thời gian chơi các nốt nhạc // ví dụ: 4 => 1000/4; 8 ==> 1000/8 int noteDuration = 1000/noteDurations[thisNote]; tone(speakerPin, melody[thisNote],noteDuration); // để phân biệt các nốt nhạc hãy delay giữa các nốt nhạc // một khoảng thời gian vừa phải. Ví dụ sau đây thực hiện tốt // điều đó: Ta sẽ cộng 30% và thời lượng của một nốt int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); //Ngừng phát nhạc để sau đó chơi nhạc tiếp! noTone(speakerPin); } } void loop() { //không cần thiết phải thực hiện lệnh gì ở đây. // Bạn dán đoạn code ở void setup xuống thì đoạn nhạc // sẽ được lặp liên tục ==> đau đầu! }Phần quan trọng nhất, chuyển một file mp3 thành danh sách các nốt nhạc có thể chạy được trên Arduino
Nếu bạn dùng MacOS thì bạn dùng iTunes, nếu dùng Windows thì bạn dùng phần mềm winLAME, còn nếu dùng Linux thì bạn dùng các phần mềm tương tự để encode lại MP3, ngoài ra bạn có thể dùng các phần mềm khác tương tự, bằng cách tìm kiếm với từ khóa, MP3 encoder software.
Bạn chỉ cần làm theo các bước sau để có thể làm được một bài nhạc trên Arduino.
- File âm thanh phải là một file MP3, nên bạn hãy chuyển nó về MP3 trước khi làm các bước tiếp theo. Bạn có thể download một file mp3 để test chẳng hạn như file này.
- Sau đó bạn dùng phần mềm MP3 encoder mà bạn vừa tải về chọn file MP3 mà bạn muốn encode rồi encode với các thông số sau (với winLAME bạn chọn mục Custom settings tại bảng Preset nhé):
- Bit rate = 8 hoặc 16
- Mono encoding
- Bây giờ bạn cần tải về thư viện PCM (bạn tải về sau đó giải nén vào thư mục libraries trong thư mục cài đặt phần mềm lập trình Arduino)
- Trong Arduino IDE bạn chọn, File / Example / PCM / playback
- Gắn chân dương của loa vào chân digital 11 (lưu ý chỉ mỗi chân này hoạt động được thôi nhé)
- Bạn download phần mềm EncodeAudio để chuyển file mp3 vừa được encode này thành những con số dùng cho chương trình Arduino
- Dành cho Windows
- Dành cho MacOS
- Dành cho Linux
- Bạn mở chương trình EncodeAudio lên rồi tìm đến file MP3 mà bạn đã encode. Đợi đến khi nhận được thông báo như thế này là được!
- Bây giờ bạn chỉ cần vào thay toàn bộ đoạn trong code bên trong mảng const unsigned char sample[] PROGMEM = { là ok. Bạn bôi đen hết rồi nhấn Ctrl + V là xong!
- Upload và thưởng thức thôi! Nếu sketch quá lớn thì bạn xóa bớt vài số cuối trong mảng là đươc. Bạn có thể download ngay bản thử nghiệm tại đây!
Từ khóa » Dùng Arduino Nghe Nhạc
-
Thí Nghiệm Cho Arduino Nghe Nhạc: Thú Vị Hay điên Rồ
-
Bài 6: Tạo âm Thanh (Còi) Bằng Arduino
-
Cau Tao Arduino-May Nghe Nhac Va Xe Dieu Khien Qua Wifi Su ...
-
Hướng Dẫn Sử Dụng Thư Viện Phát Nhạc Cho Arduino đọc Thẻ Nhớ ...
-
Mạch Tạo điều Chỉnh âm Nhạc Arduino
-
Phát Nhạc Bằng Arduino - Nông Trại Vui Vẻ
-
Lập Trình STM32 DFPlayer Phát Nhạc Từ Thẻ Nhớ - Khuê Nguyễn
-
Cách Xây Dựng Máy Nghe Nhạc MP3 Di động Di động Của Riêng Bạn
-
Phát Tập Tin định Dạng Wav Sử Dụng Mạch Arduino - Tự Tay Làm
-
Mô Đun Máy Nghe Nhạc Mp3 Mini Dfplayer Mp3 Dành Cho Arduino
-
Mô Đun Máy Nghe Nhạc Mp3 Mini Dfplayer Df Chất Lượng Cao ...
-
Thiết Kế Hệ Thống Nhúng Máy Nghe Nhạc Tự Chế - Tài Liệu Text - 123doc
-
Thoại Mới Phát Mô Đun Ban MP3 Nghe Nhạc SD/Thẻ TF Cho Arduino
-
Module MP3 Shield VS1053 Ghi âm, Choi Nhạc Dùng Với Arduino ...
