วันพุธที่ 8 กุมภาพันธ์ พ.ศ. 2560

วิธีทำให้ USB Audio ใช้งานได้กับ Raspberry Pi 3

เคยบ่นเรื่องคุณภาพเสียงที่ออกมาทางช่อง 3.5mm audio jack ของ Raspberry Pi 3 ไปตั้งแต่ตอนเขียนเรื่องการติดตั้ง Raspbian แล้ว คราวนี้ถึงเวลากำจัดจุดอ่อนซะที :)

** บทความนี้น่าจะใช้ได้ทั้ง Raspbian และ RetroPie

เตรียมตัว

  • Raspberry Pi 3 ที่ลง Raspbian หรือ RetroPie แล้ว
  • จัดการเสียบ USB Audio (บ้านเราเรียก USB Sound Card) เข้ากับ Raspberry Pi ซะ ผมซื้อมาจากในเน็ตราคา 90 บาท ยังไม่รวมส่ง หน้าตาประมาณนี้ (ภาพประกอบจาก Internet)
    • จริงๆ จะใช้รุ่นอื่นก็น่าจะไม่มีปัญหาอะไร (แบบว่าอันนี้มันถูกสุดแล้วไงเลยจิ้มเอามาลอง)
    • ข้อดี คือมันกินไฟน้อย ราคาถูกมาก และเห็น review บน youtube ไปในแนวทางที่ดี 
    • ข้อเสีย ของรุ่นนี้คือ มันใหญ่เทอะทะ พอเสียบเข้าช่อง USB ด้านหลัง Raspberry Pi แล้วจะไปขวางช่อง USB อันอื่นๆ หมด โชคดีที่บ้านมีสายพ่วงมาต่ออีกที เลยรอดไม่ต้องออกเงินเพิ่ม - -"
  • เสียบๆ นู้นนี้นั้นครบแล้วก็ Boot Raspberry Pi ขึ้นมาเลย จากนั้นจะทำหน้าเครื่องหรือ ssh ก็แล้วแต่เลย

Setup

  • ลองตรวจสอบว่า Raspberry Pi ของเรามองเห็น USB Audio ที่เราเสียบเข้าไปแล้วหรือยังด้วย 

    • $ lsusb
  • หลังจากนั้นก็เช็คให้แน่ใจว่า USB Audio เราได้รับการ detected จาก os แล้ว
    • $ cat /proc/asound/modules
    • หน้าตา output น่าจะออกมาประมาณนี้
      • 0 snd_bcm2835
        1 snd_usb_audio 
    • เจ้า snd_bcm2835 ก็คือ built-in sound card นั้นเอง
  • ต่อมาจัดการบอก OS ให้มาใช้งาน snd_usb_audio โดยการสร้าง config file ดังนี้
    • $ sudo vim /etc/modprobe.d/alsa-base.conf
      จากนั้นก็ใส่ code พวกนี้ลงไป
      options snd_usb_audio index=0
      options snd_bcm2835 index=1
      options snd slots=snd-usb-audio,snd-bcm2835
  • เสร็จแล้วก็ Save และ reboot Raspberry Pi ซะก่อน
  • หลังจาก Reboot เสร็จแล้วลองตรวจสอบดูว่าตอนนี้ OS ใช้ Device ตัวไหนอยู่
    • $ cat /proc/asound/modules
    • หน้าตา output จะต้องออกมาประมาณนี้
      • 0 snd_usb_audio
        1 snd_bcm2835
  • จากนั้นก็ลองทดสอบดู
    • เปิด youtube เสียงต้องออกและคุณภาพเสียงต้องดีกว่าเดิม
    • สำหรับ omxplayer ต้อง redirect output ไปที่ alsa
      • $ omxplayer -o alsa video.mp4

จบ. :D

ไม่มีความคิดเห็น:

แสดงความคิดเห็น