กลับไปหน้ารวมไฟล์
jukebox-cd23c2.md

เมื่อหลายปีก่อน พี่ได้เจอตู้เพลงจิ๋วมาอันนึง มีวิทยุ มีเล่นซีดี มีไฟประดับนิดหน่อย ใช้ได้ไม่นานก็เอามาดัดแปลงเป็น PC มัลติมีเดียซะเลย แต่มันก็ยังนอนตู้เฉยๆ อยู่ดี

พอถึงเดือนมกราคม 2020 พี่ก็ไปเจอโปรแกรม Volumio สำหรับ Raspberry Pi เลยลองลงใน RPi ของพี่ดู... ติดใจทันที! เกิดไอเดียขึ้นมาทันทีว่า เอาตู้เพลงเก่าออกมาปัดฝุ่นสร้างใหม่ดีกว่า และเพราะพี่มีประสบการณ์เล่น Arduino กับ NeoPixel มาแล้ว เลยคิดว่าไฟในตู้ต้องอัพเกรดให้ทันสมัยด้วย

ล้วงลึกเทคนิคแบบจัดเต็ม

  • โครงสร้างระบบเสียงระดับ Audiophile ของ Volumio:

    • Lossless Stream Engine: Raspberry Pi รัน Volumio ซึ่งเป็น OS แบบ headless ใช้ฐาน Debian ที่ถูกปรับแต่งให้เล่นเสียงได้เนียนๆ ลดการกระตุก (low-jitter) มันจัดการไฟล์เสียงแบบ Lossless ทั้ง FLAC, WAV และ DSD โดยดึงข้อมูลจากที่เก็บในเครื่องหรือบริการสตรีมมิ่งคุณภาพสูง
    • I2S Digital Audio: เพราะเสียงจากชิปเสียงในตัวมันเบามาก พี่เลยเพิ่ม HiFiBerry Amp2 เข้าไป ต่างจาก USB audio ทั่วไป บอร์ดนี้ต่อผ่านขา GPIO ของ Raspberry Pi โดยใช้โปรโตคอล I2S (Inter-IC Sound) ซึ่งช่วยตัดสัญญาณรบกวนภายในและรองรับการแปลงสัญญาณดิจิตอลเป็นอนาล็อกที่ระดับ 192kHz/24bit ได้เลย ตอนนี้พี่ก็ต่อลำโพงเก่าๆ ด้านนอกและฟังเพลงได้อย่างสบายใจแล้ว
  • ระบบไฟประดับแบบตอบสนอง (Arduino & NeoPixels): พี่ถอดไฟเดิมออกหมด แล้วติด NeoPixel จำนวน 31 ดวงแทน เขียนโค้ดสำหรับ Arduino ไปนิดหน่อย... ไฟก็ติดวับ!

    Jukebox - All lights on

    จากนั้นก็ค่อยๆ เพิ่มเอฟเฟกต์ใหม่ๆ เข้าไปเรื่อยๆ และแน่นอนว่ายังมีอีกเพียบที่กำลังจะตามมา

    • Timing Discipline: Arduino Uno ควบคุมจังหวะเวลา (timing) ที่แม่นยำ 800kHz ซึ่งจำเป็นสำหรับโปรโตคอล WS2812B เพื่อให้การแสดงผลลื่นไหล ไม่กระตุก
    • Spectral Analysis: ขั้นตอนสุดท้ายคือเพิ่มโหมดให้ไฟตอบสนองกับเสียงเพลง พี่เลยเพิ่ม Audio Analyzer Module จาก DFRobot เข้าไป โมดูลนี้สามารถวิเคราะห์เสียง (น่าจะใช้ IC MSGEQ7 แยกสัญญาณเสียงออกเป็น 7 ช่วงความถี่) และส่งข้อมูลไปยัง Arduino จากนั้น Arduino ก็จะอ่านค่าความดัง (amplitude) ของแต่ละแถบความถี่และแปลงเป็นค่าสีในรูปแบบ HSV (Hue-Saturation-Value) เพื่อส่งต่อไปให้ NeoPixel
  • อัพเกรดระบบควบคุมและจัดการ GPIO:

    • Legacy Control Retrofit: จากนั้นพี่ก็เริ่มต่อสายปุ่มกด 6 ปุ่มและลูกบิด 2 ตัวของตู้เพลงใหม่ โดยนำปุ่มเหล่านี้มาใช้ควบคุมระบบต่างๆ ปุ่มกดกลไกแบบวินเทจถูกแมปใหม่ให้เชื่อมกับขา GPIO ของ Raspberry Pi ใช้ลอจิก pull-up ภายในระบบ เพื่อทริกเกอร์สคริปต์ Python ในการสั่งงานซอฟต์แวร์ต่างๆ ซึ่งยังคงความรู้สึกกดแบบเดิมไว้:
      • ปิดระบบ Raspberry Pi แบบปลอดภัย (sys_shutdown)
      • เปิด/ปิด ไฟประดับ (toggle_lights)
      • เลือกเอฟเฟกต์ไฟ
      • ... และอีกมากที่จะตามมา (เช่น next_track)

วิศวกรรมและการลงมือทำ

  • การจัดการเรื่องไฟ (Power Stage Integration):

    • บอร์ด HiFiBerry AMP2 ตัวนี้มันจ่ายไฟได้สูงสุดถึง 60W โครงการนี้เลยใช้แหล่งจ่ายไฟกระแสสูงตัวเดียวเลี้ยง AMP2 ไปเลย แล้วเจ้า AMP2 ก็จะจ่ายไฟ 5V ที่มันควบคุมแล้วกลับไปเลี้ยง Raspberry Pi อีกที งานนี้จัดไปวัยรุ่น เรื่องไฟในตัวตู้มันเลยง่ายขึ้นเยอะ
  • โครงสร้างและเสียงรบกวน (Structural Acoustics):

    • ไหนๆ ก็ทำแล้ว อยากให้ด้านหลังมันดูดีด้วย เลยออกแบบแผ่นหลังใหม่ แล้วเอาไปตัดด้วยเลเซอร์คัตเตอร์เลยไอ้หนู แผ่นหลังที่ ตัดด้วยเลเซอร์ นี้ ออกแบบใหม่ใน CAD ให้มีช่องลมที่เหมาะสมและแข็งแรงขึ้น ช่วยป้องกันไม่ให้ตู้สั่นพึมพำ (cabinet resonance) ไปกับเสียงเพลง
  • การสลับเส้นทางสัญญาณเสียง (Audio Routing Logic):

    • ขั้นต่อไปก็คือติดตั้งลำโพงใหม่ 2 ตัวเข้าไปในตัวตู้ เพื่อให้เปิดใช้งานตัวเครื่องได้แบบสแตนด์อโลนเลยจ้า แล้วก็ทำสวิตช์เลือกทางกายภาพขึ้นมาเองด้วย จะได้เลือกได้ว่าจะเปิดเสียงออกลำโพงในตู้ หรือจะส่งออกไปยังลำโพงภายนอก งานนี้จัดเต็ม แสดงให้เห็นแนวทางระดับโปรในการจัดการเอาต์พุตเสียงหลายโซน

สรุปสั้นๆ

โปรเจกต์นี้พิสูจน์ให้เห็นว่า การออกแบบคลาสสิกกับเทคโนโลยีสมัยใหม่สามารถไปด้วยกันได้ สู้งานนะน้อง ด้วยการเข้าใจและประยุกต์ใช้ โปรโตคอล I2S และ การวิเคราะห์สเปกตรัมความถี่ (Frequency Spectral Analysis) มันจึงเป็นโครงสร้างพื้นฐานระดับมืออาชีพ ที่พร้อมจะนำไปใช้ทั้งในการฟื้นฟูเสียงคุณภาพสูง และการเชื่อมต่อกับระบบสมาร์ทโฮม


Acoustic Heritage: เชื่อมโยงโลกอนาล็อกในอดีต เข้ากับความคมชัดระดับสูงในอนาคต

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "Volumio (Audiophile Music Player OS)"
  - "Arduino IDE"
author: "flyingangel"
category: "Lights & LEDs"
components:
  - "1x Raspberry Pi 3 Model B (Media Gateway)"
  - "1x HiFiBerry AMP2 (Class-D DAC & Amplifier)"
  - "1x Arduino Uno R3 (Lighting Sub-Processor)"
  - "31x WS2812B NeoPixel LEDs (Visualizer Array)"
  - "1x MSGEQ7-based Audio Analyzer Module"
  - "2x Two-Way High-Performance Ceiling Speakers"
  - "1x Gravity Analog Sound Sensor"
description: "A comprehensive multimedia restoration that transforms a vintage desktop jukebox into a high-fidelity network audio streamer using a Raspberry Pi, Volumio, and a reactive NeoPixel lighting array."
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles:
  - "https://create.arduino.cc/editor/flyingangel/d67d3f38-57b0-4d76-bf87-b00a8ce36c59/preview"
encryptedPayload: "U2FsdGVkX1/X+MAqZ/7eOYz83ddLs+C3sgoIyyRnQu8+b5jf8txyuUHgiWhv4CQbZuW/tcj6Cy8SacNdVDzQmw=="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/jukebox-cd23c2_cover.jpg"
lang: "en"
likes: 4
passwordHash: "6c6ecde99505a069a80fb03d578d10b1b8341868a8fbd7a242021238b04ed819"
price: 2450
seoDescription: "Upgrade an old retro desktop Jukebox with new sound and light effects using Arduino and modern electronics."
tags:
  - "multimedia-restoration"
  - "raspberry-pi"
  - "volumio"
  - "neopixel-hmi"
  - "audio-analysis"
  - "hifi-audio"
title: "Sonic-Archive: Hi-Fi Retro Jukebox Retrofit"
tools:
  - "Laser Cutter (for rear panel fabrication)"
  - "Soldering Station"
videoLinks:
  - "https://www.youtube.com/embed/El3Prb491OA"
views: 16116