Cách chế tạo radio dựa trên Raspberry Pi
Radio có vẻ là một công nghệ “cũ”, nhưng chính điều đó lại tạo nên sức hấp dẫn của nó: đơn giản, đáng tin cậy và vẫn rất hữu ích cho cả mục đích giải trí và giáo dục. Với Raspberry Pi, bạn có thể tạo ra một chiếc radio hiện đại, linh hoạt – nó có thể là radio phát trực tuyến trên internet, máy phát nhạc cục bộ, hoặc thậm chí (với một mô-đun bổ sung) là radio FM. Bài viết này sẽ hướng dẫn cách xây dựng một chiếc radio dựa trên Raspberry Pi một cách thực tế, từ thiết lập phần cứng đến cấu hình phần mềm.
-
1. Khái niệm radio dựa trên Raspberry Pi
Nhìn chung, có hai phương pháp chính:
1. Đài phát thanh Internet (Truyền phát trực tuyến)
Raspberry Pi phát các chương trình phát thanh từ internet qua Wi-Fi/Ethernet. Đây là phương pháp dễ nhất và phổ biến nhất, vì nó không yêu cầu bất kỳ thiết bị RF đặc biệt nào.
2. Đài FM/AM (với thiết bị tùy chọn)
Cần có mô-đun dò sóng (ví dụ: bộ thu FM qua giao diện I2C/SPI) hoặc thiết bị radio định nghĩa bằng phần mềm (SDR). Cấu hình phức tạp hơn và thường phụ thuộc vào thiết bị được sử dụng.
Bài viết này tập trung chủ yếu vào đài phát thanh Internet vì đây là hình thức thân thiện với người mới bắt đầu nhất và phù hợp để tạo ra trong thời gian ngắn.
-
2. Trang thiết bị cần thiết
Dưới đây là danh sách các thành phần được đề xuất:
– Raspberry Pi (khuyến nghị sử dụng Pi 3/4/Zero 2W)
– Thẻ MicroSD tối thiểu 8–16 GB
– Nguồn điện ổn định (5V, dòng điện theo model Pi)
– Kết nối Internet (Wi-Fi hoặc cáp mạng LAN)
– Đầu ra âm thanh:
– Loa chủ động thông qua jack cắm 3.5mm (trên các mẫu máy được hỗ trợ), hoặc
– Loa/amp USB, hoặc
– DAC audio HAT (tùy chọn, chất lượng tốt hơn)
– Màn hình và bàn phím (để thiết lập ban đầu) hoặc truy cập SSH
– Vỏ/hộp đựng sản phẩm (tùy chọn, để gọn gàng hơn)
Nếu bạn muốn một chiếc radio có các nút điều khiển vật lý, bạn có thể thêm:
– Nút bấm, bộ mã hóa xoay hoặc màn hình OLED/LCD.
-
3. Cài đặt hệ điều hành Raspberry Pi
1. Tải xuống và cài đặt Raspberry Pi Imager trên máy tính/laptop của bạn.
2. Lắp thẻ microSD, sau đó cài đặt Raspberry Pi OS Lite (phiên bản không có giao diện đồ họa) để tiết kiệm tài nguyên, hoặc phiên bản Desktop nếu bạn muốn có giao diện đồ họa.
3. Trước khi ghi hình ảnh, bạn có thể thiết lập:
– Wi-Fi (SSID & mật khẩu)
– Tên người dùng và mật khẩu
– Kích hoạt SSH
4. Khởi động Raspberry Pi và đảm bảo kết nối internet hoạt động.
Sau khi đăng nhập vào hệ thống, hãy cập nhật các gói phần mềm:
“`đánh đập
sudo apt update
sudo apt nâng cấp -y
“
-
4. Thiết lập âm thanh trên Raspberry Pi
Kiểm tra các thiết bị âm thanh đã được phát hiện:
“`đánh đập
chơi -l
“
Nếu bạn sử dụng âm thanh qua HDMI hoặc giắc cắm (tùy thuộc vào kiểu máy), bạn có thể chọn đầu ra mặc định. Một số phiên bản Raspberry Pi OS tự động cấu hình âm thanh, nhưng bạn có thể kiểm tra đầu ra bằng cách:
“`đánh đập
speaker-test -t wav -c 2
“
Nếu bạn đang sử dụng card âm thanh USB hoặc DAC HAT, nó thường sẽ xuất hiện như một thiết bị mới. Hãy đảm bảo đầu ra của bạn chính xác để nghe được radio.
-
5. Cài đặt Trình phát Radio Internet (MPD + MPC)
Một trong những cách ổn định nhất là sử dụng MPD (Music Player Daemon) để phát âm thanh và MPC làm bộ điều khiển từ thiết bị đầu cuối.
Cài đặt gói phần mềm:
“`đánh đập
sudo apt install -y mpd mpc
“
Hãy đảm bảo MPD đang chạy:
“`đánh đập
sudo systemctl enable mpd
sudo systemctl start mpd
“
Kiểm tra trạng thái:
“`đánh đập
systemctl status mpd
“
-
6. Thêm danh sách các đài phát thanh
MPD có thể phát các luồng URL. Bạn có thể thêm các đài phát thanh vào danh sách phát của MPD.
Ví dụ về cách thêm một luồng phát thanh:
“`đánh đập
mpc add http://streamurl-radio-anda:8000/stream
“
Sau đó hãy chơi:
“`đánh đập
mpc play
“
Để xem danh sách:
“`đánh đập
danh sách phát mpc
“
Tạo danh sách phát đài yêu thích
Bạn có thể tạo một tệp danh sách phát `.m3u`:
1. Tạo thư mục danh sách phát (nếu chưa có):
“`đánh đập
mkdir -p ~/playlists
“
2. Tạo một tập tin:
“`đánh đập
nano ~/playlists/radio.m3u
“
3. Điền một số URL phát trực tuyến, ví dụ:
“
http://example.com/stream1
http://example.com/stream2
http://example.com/stream3
“
Thêm chúng vào MPD bằng cách tải từng cái một hoặc thiết lập thư mục nhạc/danh sách phát của MPD. Cách nhanh: thêm trực tiếp từ tệp (tùy chọn, tùy thuộc vào cấu hình MPD của bạn), hoặc sao chép danh sách phát vào thư mục danh sách phát của MPD (thường là `/var/lib/mpd/playlists/`).
-
7. Cấu hình MPD để phù hợp hơn với radio
Chỉnh sửa cấu hình MPD:
“`đánh đập
sudo nano /etc/mpd.conf
“
Một số phần quan trọng:
– Hãy đảm bảo đầu ra âm thanh chính xác. Ví dụ thường gặp:
“`conf
đầu ra âm thanh {
gõ “alsa”
Tên “ALSA Output”
mixer_type “software”
}
“
– Bạn có thể thiết lập bộ đệm để giúp quá trình phát trực tuyến ổn định hơn (tùy chọn, tùy thuộc vào điều kiện mạng).
Sau khi hoàn tất, hãy khởi động lại MPD:
“`đánh đập
sudo systemctl restart mpd
“
-
8. Cài đặt để radio tự động bật khi khởi động.
Để Raspberry Pi phát radio ngay khi bật nguồn:
1. Hãy tạo một đoạn mã đơn giản, ví dụ:
“`đánh đập
nano ~/start-radio.sh
“
Nội dung:
“`đánh đập
!/bin/bash
ngủ 5
mpc rõ ràng
mpc add http://streamurl-radio-anda:8000/stream
mpc volume 70
mpc play
“
Lưu lại rồi cấp quyền thực thi:
“`đánh đập
chmod +x ~/start-radio.sh
“
2. Tạo dịch vụ systemd:
“`đánh đập
sudo nano /etc/systemd/system/radio.service
“
Nội dung:
“`tôi
[Đơn vị]
Mô tả=Tự động phát radio
Sau khi=network-online.target mpd.service
Mong muốn=network-online.target
[Dịch vụ]
Người dùng=pi
ExecStart=/home/pi/start-radio.sh
Khởi động lại = khi thất bại
[Tải về]
WantedBy = multi-user.target
“
Cho phép:
“`đánh đập
sudo systemctl daemon-reload
sudo systemctl enable radio.service
sudo systemctl start radio.service
“
Lưu ý: nếu tên người dùng không phải là `pi`, hãy điều chỉnh đường dẫn và `User=`.
-
9. Thêm các nút điều khiển (Tùy chọn)
Để tạo cảm giác giống như một chiếc radio thực thụ, bạn có thể thêm các nút điều khiển vật lý:
– Nút Tiếp theo/Trước đó để chuyển kênh:
– `mpc next`
– `mpc prev`
– Nút Phát/Dừng:
– `mpc toggle`
– `mpc stop`
– Bộ mã hóa quay dùng cho điều chỉnh âm lượng:
– `mpc volume +5`
– `mpc volume -5`
Để lập trình các nút bấm, bạn có thể sử dụng Python (GPIO) và gọi lệnh `mpc`. Sự kết hợp này rất phổ biến vì nó đơn giản và dễ phát triển.
-
10. Mẹo phát triển và khắc phục sự cố
Một số vấn đề thường gặp và giải pháp của chúng:
1. Không có âm thanh
– Hãy đảm bảo đầu ra âm thanh chính xác (thiết bị ALSA).
– Hãy thử thay loa/card âm thanh USB.
– Hãy đảm bảo âm lượng không phải là 0: `mpc volume 80`
2. Việc phát trực tuyến bị gián đoạn
– Nên sử dụng kết nối mạng LAN nếu có thể.
– Thêm độ trễ trước khi phát khi khởi động (`sleep 5` hoặc `sleep 10`).
– Chọn luồng có tốc độ bit thấp hơn.
3. MPD không thể phát URL
– Hãy đảm bảo URL chính xác và có thể mở được từ cùng một mạng.
– Hãy đảm bảo các gói hỗ trợ đã có sẵn (thường là đủ trên hệ điều hành Raspberry Pi OS mới nhất).
4. Muốn giao diện giống "radio" hơn
– Cài đặt giao diện người dùng như ncmpcpp (giao diện dòng lệnh), hoặc tạo một giao diện web đơn giản.
-
Đóng cửa
Xây dựng một chiếc radio dựa trên Raspberry Pi là một dự án vừa thú vị vừa bổ ích. Bằng cách kết hợp MPD và MPC, bạn có thể tạo ra một chiếc radio internet ổn định, tự động khởi động khi bật máy và dễ dàng mở rộng để bao gồm các thiết bị có nút bấm vật lý, màn hình nhỏ, và thậm chí cả vỏ máy tùy chỉnh. Sau khi có phiên bản cơ bản, bạn có thể tiến thêm một bước nữa: thêm màn hình OLED để hiển thị tên đài, tạo menu cài đặt sẵn, hoặc thậm chí thêm mô-đun dò đài FM.
Nếu bạn muốn, tôi có thể tiếp tục với các phiên bản cụ thể hơn: ví dụ như danh sách các đài phát thanh Indonesia sẵn sàng sử dụng (URL), ví dụ mã Python cho công tắc GPIO, hoặc hướng dẫn sử dụng DAC HAT để có chất lượng âm thanh tốt hơn nhiều.