Phát nhạc với Raspberry Pi - USB Audio - Card âm thanh và Raspberry Pi

Mô tả dự án: 

Arduino đã phát nhạc nhưng lại rất vất vả. Mình muốn Raspberry Pi sẽ đảm nhận việc này để việc này đơn giản hơn. Mình sẽ hướng dẫn các bạn chơi các nhạc ở local (thẻ nhớ) và các bài nhạc ở trên Internet! Một cái hay nữa là, các package mà mình hướng dẫn các bạn đều có thư viện cho nodejs!

Chuẩn bị phần cứng

  • Loa có giắc cắm 3.5mm như hình (cái này tầm 50k)
  • Một usb audio (card âm thanh) (nếu muốn phát nhạc từ mạng) (cái này rẻ tầm 20k)

Phát nhạc từ thẻ nhớ (local)

Các bạn hãy đăng nhập bằng account pi và chạy các lệnh sau nhé.

Hãy chuẩn bị một file mp3 để test! Mình sẽ một file mp3 miễn phí từ http://download.wavetlan.com/SVV/Media/HTTP/http-mp3.htm để test nhé.

sudo wget http://download.wavetlan.com/SVV/Media/HTTP/MP3/Helix_Mobile_Producer/HelixMobileProducer_test1_MPEG2_Mono_CBR_40kbps_16000Hz.mp3 -O test.mp3

Dòng trên sẽ download file tại http://download.wavetlan.com/SVV/Media/HTTP/MP3/Helix_Mobile_Producer/HelixMobileProducer_test1_MPEG2_Mono_CBR_40kbps_16000Hz.mp3 và lưu lại với tên test.mp3.

Gắn loa vô raspberry vào jack 3.5mm như hình dưới

Và phát nhạc thôi

omxplayer test.mp3

Nếu bạn thích chơi màn hình HDMI và không có loa để test thì bạn cũng có thể test bằng màn hình đó bằng cách chuyển output âm thanh vào hdmi

omxplayer -o hdmi test.mp3

Nhược điểm của cách tiếp cận mặc định của Raspberry Pi đó là:

  • Không sử dụng ALSA
  • Chỉ chơi được ở local (thẻ nhớ)

 

Phát nhạc từ Internet

Nếu là một người ưa thích mạng thì bạn chẳng thể nào hài lòng với những hạn chế của omxplayer. Vì vậy, mình xin chia sẻ với các bạn cách sử dụng mpg123 để phát stream hoặc một file audio trên mạng!

Cài gói mpg123

sudo apt-get install -y mpg123

Bạn chạy thử với file test.mp3 vừa rồi! Nếu để ý kỹ thì bạn thấy âm lượng chỉ còn 50% trong khi bạn không làm gì khác ngoài việc cài gói này!

mpg123 http://download.wavetlan.com/SVV/Media/HTTP/MP3/Helix_Mobile_Producer/HelixMobileProducer_test1_MPEG2_Mono_CBR_40kbps_16000Hz.mp3

Mình đã thử với các gói khác như mplayer, mpg321 thì đều cho kết quả tương tự. Như vậy, nếu các gói được xây dựng trên thư viện ALSA thì bạn buộc phải dùng một usb audio để phát!

Nhưng vấn đề nãy sinh đó là, bạn phải biết cách để phát nhạc vào usb driver này!

Card âm thanh và Raspberry Pi

Mặc định, Raspberry Pi sẽ sử dụng card âm thanh 0,0 để phát nhạc. Vậy card âm thanh 0,0 là gì?

Để biết được, đang có những card âm thanh nào đang kết nối vào raspi, ta chạy lệnh

arecord -l

Trong đó, ta thấy có 2 card, card 0 là card usb audio mà mình đang gắn, card 1 là card của webcam c170 logitech mà bài viết trước mình đã giới thiệu!

Card 0 có 1 subdevice có id là 0. Card 1 cũng có 1 subdevice với id là 0. 

Để xác định nơi sẽ phát âm thanh, bạn cần xác định subdevice mà raspi sẽ phát. Vì vậy, để phát nhạc, ta dùng subdevice 0 thuộc card 0, ký hiệu là

hw:0,0

Như vậy, ta chỉ cần chạy lệnh

mpg123 -a hw:0,0 http://download.wavetlan.com/SVV/Media/HTTP/MP3/Helix_Mobile_Producer/HelixMobileProducer_test1_MPEG2_Mono_CBR_40kbps_16000Hz.mp3

... là đã có nhạc rock để nghe!

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

Xe điều khiển bằng tay game Dual Shock3 thông qua Bluetooth

Vừa bắt đầu với arduino được hơn 1 tuần, có tham khảo qua các nguồn từ "trung ương đến địa phương", nắm được 1 số kiến thức cơ bản nên mình bắt đầu thực hiện 1 sản phẩm để đúc kết kinh nghiệm. Trong số đó thì xe điều khiển là dễ nhất. Kết hợp với cái tay game ps3 nằm lăn lóc ở góc nhà. Thế là có 1 chiếc xe điều khiển từ xa. Bắt đầu nhé.

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

Làm xe điều khiển từ xa bằng Bluetooth - Điều khiển bằng Android với App Inventor

Mình rất thích điện tử nhưng không học về ngành điện tử. Rất may là có Adruino, rồi có cộng đồng Adruino Việt Nam, đặc biệt là sự nhiệt tình của tất cả các bạn trong cộng đồng, mình đã làm được 1 chiếc xe điều khiển từ xa. Cho con chơi là lí do phụ thôi, còn tìm hiểu, học tập là chính. Hôm nay chia sẻ cùng các bạn, cùng gửi lời cảm ơn đến tất cả các bạn trong cộng đồng. Có bạn thì giúp đỡ trực tiếp, có bạn thì viết bài, rồi có bạn thì bình luận, nêu câu hỏi. Tất cả đều có giá trị đối với mình.

Ngại viết bài nên mình đăng dưới dạng ảnh.

lên
26 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Cài đặt Raspbian trên Raspberry PI - KHÔNG CẦN MÀN HÌNH và KHÔNG CẦN BIẾT ĐỊA CHỈ IP

Nếu đã chọn theo hướng một nhà phát triển Raspberry Pi, thì tôi nghĩ, bạn buộc phải dùng Raspbian vì hệ điều hành mà nó dựa trên là Debian, mà Debian trong thế giới Linux lại vô cùng lớn và rất nhiều tài liệu phong phú. Còn đối với các hệ điều hành khác thì cũng khá nhiều tài liệu, nhưng các loạt bài viết của mình, mình sẽ hướng dẫn và xem như các bạn đã cài Raspbian. Vì vậy, hãy sử dụng Raspbian cho cậu Raspberry Pi của mình nhé.
Ở bài viết trước về việc cài Raspbian, mình đã trình bày về việc phải biết địa chỉ IP mới cài được Raspbian. Nhưng hôm nay, mình đã tìm ra cách không cần biết địa chỉ IP luôn. Cảm ơn @ksp đã giúp mình một phương pháp hay.

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

Cài đặt Raspbian trên Raspberry PI - Hệ điều hành dành cho developer dựa trên nền Debian - Cài Raspbian không cần màn hình LCD

Nếu đã chọn theo hướng một nhà phát triển Raspberry Pi, thì tôi nghĩ, bạn buộc phải dùng Raspbian vì hệ điều hành mà nó dựa trên là Debian, mà Debian trong thế giới Linux lại vô cùng lớn và rất nhiều tài liệu phong phú. Còn đối với các hệ điều hành khác thì cũng khá nhiều tài liệu, nhưng các loạt bài viết của mình, mình sẽ hướng dẫn và xem như các bạn đã cài Raspbian. Vì vậy, hãy sử dụng Raspbian cho cậu Raspberry Pi của mình nhé.

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