สารบัญ:

PAB: กล่องเครื่องเสียงส่วนบุคคล: 5 ขั้นตอน
PAB: กล่องเครื่องเสียงส่วนบุคคล: 5 ขั้นตอน

วีดีโอ: PAB: กล่องเครื่องเสียงส่วนบุคคล: 5 ขั้นตอน

วีดีโอ: PAB: กล่องเครื่องเสียงส่วนบุคคล: 5 ขั้นตอน
วีดีโอ: เจาะลึกทุกฟังก์ชั่นใน AVATAR percussion pad PD-705 2024, กรกฎาคม
Anonim
PAB: กล่องเครื่องเสียงส่วนบุคคล
PAB: กล่องเครื่องเสียงส่วนบุคคล

แนวคิดสำหรับโครงการนี้เกิดจากความจำเป็นในการขูดส่วนประกอบขนาดใหญ่สามส่วนของระบบไฮไฟ ซึ่งขณะนี้ได้สิ้นสุดอายุขัยแล้ว นอกจากนี้ ฉันต้องการพื้นที่มากขึ้นในชั้นวางสำหรับสิ่งของอื่นๆ ดังนั้นฉันจึงใช้โอกาสนี้เริ่มเรียนที่ Personal Audio Box เพื่อแทนที่ฟังก์ชันทั้งหมดของ "ยักษ์" โบราณทั้งสามตัว

Raspberry Pi3B+ ดูเหมือนจะเป็นตัวเลือกที่ดีที่สุดด้วยเหตุผลเหล่านี้:

  • ฟอร์มแฟกเตอร์ขนาดเล็กและใช้พลังงานต่ำ
  • เอาต์พุตเสียง PCM ที่มีคุณภาพที่ยอมรับได้
  • ความพร้อมใช้งานของ mopidy ซึ่งเป็นเซิร์ฟเวอร์เพลงที่ขยายได้ซึ่งใช้โปรโตคอล mpd
  • แหล่งรวมสูง: เพลงท้องถิ่น, CDROM, สตรีมวิทยุ, Spotify, Tunein ฯลฯ

เมื่อรวมเข้ากับส่วนประกอบอื่นๆ ไม่กี่อย่าง ฉันสามารถสร้างระบบที่สมบูรณ์และไร้สมอง สามารถเล่นเพลงจากซีดี ไฟล์ในเครื่อง วิทยุออนไลน์ เพลย์ลิสต์ Spotify และพอดแคสต์ และด้วยการใช้ส่วนหน้า ตอนนี้ฉันสามารถจัดการการทำงานทั้งหมดจากอุปกรณ์ใดๆ ที่เชื่อมต่อกับ LAN (สมาร์ทโฟน คอมพิวเตอร์ แท็บเล็ต)

เสบียง

  • ราสเบอร์รี่ PI3B+
  • กล่องดีวีดีเก่า
  • เครื่องอ่านซีดีรอม
  • แหล่งจ่ายไฟ 5v-5A
  • ตัวเก็บประจุยิ่งยวด
  • ส่วนประกอบต่างๆ (ทรานซิสเตอร์, LED, รีเลย์, Op-Amp): ดูรายละเอียดโครงการ

ขั้นตอนที่ 1: กรณีและเค้าโครงของส่วนประกอบ

กรณีและเค้าโครงของส่วนประกอบ
กรณีและเค้าโครงของส่วนประกอบ
กรณีและเค้าโครงของส่วนประกอบ
กรณีและเค้าโครงของส่วนประกอบ
กรณีและเค้าโครงของส่วนประกอบ
กรณีและเค้าโครงของส่วนประกอบ
กรณีและเค้าโครงของส่วนประกอบ
กรณีและเค้าโครงของส่วนประกอบ

ปัญหาแรกที่ฉันพบคือการเลือกและค้นหากรณีที่เหมาะสม ไม่พบอะไรเลยที่บ้าน ฉันพบเครื่องเล่นดีวีดีราคาถูกใน Amazon ในราคาไม่กี่ดอลลาร์ แต่สิ่งที่คล้ายกันจะดีพอ ขนาดตัวเรือน 27 ซม. x 20 ซม. x 3.5 ซม.

ฉันลบเนื้อหาทั้งหมดออกโดยสมบูรณ์ โดยเหลือไว้เพียงบอร์ดขนาดเล็กสำหรับจัดการไฟ LED ด้านหน้า ปุ่มเปิดปิด และอินพุต USB จากนั้นฉันวางแผนเค้าโครงภายในสำหรับส่วนประกอบใหม่ (ดูรูป)

ขั้นตอนที่ 2: สวิตช์ตรวจจับเสียงสเตอริโอ

สวิตช์ตรวจจับเสียงสเตอริโอ
สวิตช์ตรวจจับเสียงสเตอริโอ
สวิตช์ตรวจจับเสียงสเตอริโอ
สวิตช์ตรวจจับเสียงสเตอริโอ
สวิตช์ตรวจจับเสียงสเตอริโอ
สวิตช์ตรวจจับเสียงสเตอริโอ

ทำไมต้องเปลี่ยนเสียงอัตโนมัติ? ความต้องการเกิดขึ้นจากการที่ฉันมักจะฟังทีวีผ่านเครื่องขยายเสียงไฮไฟ แต่ฉันไม่ต้องการเลือกสวิตช์แหล่งสัญญาณบนเครื่องขยายเสียงทุกครั้ง ด้วยวงจรนี้ อินพุตของเครื่องขยายเสียงจะเหมือนกันเสมอ และแหล่งสัญญาณจะถูกเลือกโดยอัตโนมัติโดยสวิตช์ Audio Stereo Sensing

แผนผังเป็นแบบตรงไปตรงมา เมื่อไม่ได้เล่น PAB แหล่งกำเนิดเสียงไปยังไฮไฟจะมาจากทีวี หาก PAB เล่น รีเลย์จะเลือกเสียงจาก Raspberry

ขั้นตอนที่ 3: กล่องซุปเปอร์ตัวเก็บประจุ

กล่องซุปเปอร์คาปาซิเตอร์
กล่องซุปเปอร์คาปาซิเตอร์
กล่องซุปเปอร์คาปาซิเตอร์
กล่องซุปเปอร์คาปาซิเตอร์

ดังที่ทราบกันดีอยู่แล้วว่าการหยุดจ่ายไฟของ Raspberry อย่างกะทันหันทำให้ Raspberry ปิดเครื่องทันทีโดยไม่ต้องดำเนินการตามขั้นตอนการปิดเครื่อง เสี่ยงต่อการประนีประนอมระบบปฏิบัติการและฟังก์ชันการทำงานทั้งหมด supercapacitor แตกต่างจากตัวเก็บประจุแบบเดิมในสองลักษณะสำคัญ: แผ่นของมันมีพื้นที่ขนาดใหญ่กว่าจริง ๆ และระยะห่างระหว่างพวกมันน้อยกว่ามาก เนื่องจากฉนวนแบบสอดทำงานแตกต่างจากไดอิเล็กตริกทั่วไป ด้วยเทคนิคเหล่านี้ ตัวเก็บประจุที่มีความจุสูงมาก (ตามลำดับหลายสิบ Farads) สามารถสร้างได้ในขณะที่ยังคงรักษาขนาดเล็กไว้ แนวคิดคือการสร้าง "บัฟเฟอร์" 5v ผ่าน supercapacitors และเพื่อเปิดใช้งานการปิดระบบเมื่อตรวจพบว่าไม่มีแรงดันไฟฟ้า ด้วยวิธีนี้ คุณไม่จำเป็นต้องเข้าไปยุ่งเกี่ยวกับการเริ่มต้นการปิดระบบด้วยตนเองอีกต่อไป แต่เพียงแค่ถอดปลั๊ก (หรือเปิดใช้งานสวิตช์) เพื่อให้แน่ใจว่าการปิดระบบนั้นปลอดภัย

อ้างอิงจากแผนผัง แหล่งจ่ายไฟถูกนำไปใช้กับขั้วต่อด้านซ้าย และไดโอด Schottky จะป้องกันการส่งคืนกระแสไฟฟ้าไปยังแหล่งจ่ายไฟ ตัวต้านทานกำลัง 1.2Ω 5W สองตัวแบบขนานจะจำกัดกระแสประจุของตัวเก็บประจุยิ่งยวด เพื่อป้องกันแหล่งจ่ายไฟ หากไม่มีตัวต้านทานเหล่านี้ กระแสไฟสูงสุดที่ตัวเก็บประจุยิ่งยวดที่ปล่อยออกมาทั้งสองต้องการนั้นเกือบจะสามารถสร้างความเสียหายให้กับแหล่งจ่ายไฟได้อย่างแน่นอน พาวเวอร์ไดโอดจะต้องเป็นประเภท Schottky เพื่อที่จะแทรกแรงดันตกคร่อมขั้นต่ำในอนุกรมด้วยแถบ 5V

ตัวเก็บประจุยิ่งยวดสองตัวเชื่อมต่อเป็นอนุกรมเพื่อให้แน่ใจว่าแรงดันไฟสูงสุดที่ 5.4 โวลต์ที่ปลายของมัน (ตัวเก็บประจุยิ่งยวดแต่ละตัวคือ 10F, 2.7V) และตัวต้านทานสองตัวขนานกับความจุจะปรับสมดุลกระแสการชาร์จและรับประกันการคายประจุช้าเมื่อเปิด Raspberry ปิด. ตัวต้านทาน1KΩสองตัวขนานกับอินพุตแบ่ง 5V ของแหล่งจ่ายไฟออกเป็นครึ่งหนึ่งเพื่อรับสัญญาณที่จำเป็นในการตรวจจับไฟฟ้าขัดข้อง (เชื่อมต่อกับ Raspberry GPIO 7) ซึ่งแตกต่างจากเซลล์ลิเธียมสมัยใหม่ ตัวเก็บประจุยิ่งยวดรับประกันจำนวนรอบการชาร์จและการคายประจุที่แทบไม่สิ้นสุด โดยไม่สูญเสียคุณสมบัติใดๆ

วงจรจึงสามารถให้ Raspberry ขับเคลื่อนและทำงานได้ตามเวลาที่จำเป็นในการปิดระบบตามปกติ การเริ่มต้นกระบวนการปิดระบบจะตรวจพบโดยโปรแกรมที่ทำงานบน Raspberry ซึ่งจะตรวจสอบสถานะของ GPIO 7 ที่ระดับพลังงานเชื่อมต่ออยู่ เมื่อไฟถูกตัดการเชื่อมต่อ GPIO pin 7 จะส่งผ่านที่ระดับต่ำและทริกเกอร์การปิดระบบ นี่คือรหัส:

#!/usr/bin/env python

นำเข้า RPi. GPIO เป็น GPIO นำเข้ากระบวนการย่อย GPIO.setmode(GPIO. BCM) # ใช้หมายเลข GPIO GPIO.setwarnings (เท็จ) INT = 7 # ขา 26 จอภาพ พาวเวอร์ซัพพลาย # ใช้ pull_up ที่อ่อนแอเพื่อสร้าง GPIO.setup สูง (INT, GPIO. IN, pull_up_down=GPIO. PUD_UP) def main(): ในขณะที่ True: # ตั้งค่าการขัดจังหวะบนขอบที่ตกลงมาและรอให้มันเกิดขึ้น GPIO.wait_for_edge(INT, GPIO. FALLING) # ตรวจสอบระดับพินอีกครั้งหาก GPIO.input(INT) == 0: # ยังคงต่ำ ปิด Pi subprocess.call (['poweroff'], shell=True, / stdout=subprocess. PIPE, stderr=subprocess. PIPE) ถ้า _name_ == '_main_': หลัก()

ต้องบันทึกโปรแกรมใน /usr/local/bin/.py และกำหนดค่าให้ทำงานเมื่อ Raspberry เริ่มทำงาน จากการทดสอบที่ดำเนินการ ความจุของ supercapacitors สองตัวได้รับการพิสูจน์แล้วว่าเพียงพอเพื่อให้แน่ใจว่าเวลาปิดเครื่องสำหรับ Raspberry หากจำเป็นต้องใช้เวลามากกว่านี้ ก็เพียงพอที่จะแนะนำซุปเปอร์คาปาซิเตอร์อีกสองตัวควบคู่ไปกับคาปาซิเตอร์ที่มีอยู่ หรือแทนที่ด้วยความจุที่มากกว่าสองตัว

ขั้นตอนที่ 4: การประกอบและการใช้พอร์ต USB

การประกอบและการใช้พอร์ต USB
การประกอบและการใช้พอร์ต USB

Block Schematic แสดงวิธีเชื่อมต่ออุปกรณ์ต่างๆ สำหรับ PAB บนบัสหลัก 3 ตัว (+5v, USB และออดิโอสเตอริโอ)

โปรดทราบว่าแหล่งจ่ายไฟของเครื่องอ่านซีดีเชื่อมต่อโดยตรงกับแหล่งจ่ายไฟหลักผ่านสาย "Y" ในขณะที่อินพุตเสียงไปที่ Raspberry พอร์ต USB Raspberry สี่พอร์ตถูกใช้สำหรับ:

  • เครื่องอ่านซีดี;
  • ไดรฟ์ปากกา 250GB เพื่อจัดเก็บไฟล์เพลงในเครื่อง (mp3, m4a, wma, flac ฯลฯ);
  • การ์ด micro SD ขนาด 16GB (พร้อมอะแดปเตอร์ USB) เพื่อจัดเก็บข้อมูลสำรองทั้งหมดของ Raspi SD หลัก (ดูด้านล่าง)
  • การเชื่อมต่อกับพอร์ต USB ภายนอกของเคส

พอร์ต USB ภายนอกสามารถใช้เพื่อเล่นเพลงภายนอกหรือเพื่อจ่ายไฟให้กับอุปกรณ์ภายนอก ในกรณีของฉัน ฉันกำลังเปิดเครื่องส่งบลูทูธภายนอกเนื่องจากฉันทิ้งตัวภายในของ Raspi เนื่องจากช่วงต่ำและไม่เสถียร ด้วยบลูทูธภายนอก ฉันกำลังขับลำโพงสเตอริโอ 2 ตัวที่บ้าน

การ์ด micro SD ขนาด 16GB (พร้อมอะแดปเตอร์ USB) กำลังเก็บข้อมูลสำรอง Raspberry เต็มรูปแบบ ฉันใช้ rpi-clone ซึ่งเปิดเผยว่าเป็นโครงการที่ดีมากที่ช่วยให้มีการสำรองข้อมูลที่ทำงานได้เต็มรูปแบบของ Raspberry โดยไม่ต้องถอด SD ภายในออก ฉันสลับ SD นี้กับ SD ภายในหลายครั้งโดยไม่มีปัญหา ดังนั้นฉันจึงตั้งค่า cronjob สำหรับผู้ใช้รูท:

#สำรองข้อมูลใน sda - ทุกคืนวันพุธ

15 2 * * 3 /usr/sbin/rpi-clone sda -u | mail -s "การสำรองข้อมูล PAB บน SD - เสร็จสิ้น"

ฉันใช้ปุ่มเปิดปิดเดิมบนเคสอีกครั้งเพื่อปิดเครื่องและรีสตาร์ท Raspberry โดยทำตามคำแนะนำนี้:

ขั้นตอนที่ 5: ซอฟต์แวร์และระบบปฏิบัติการ

ซอฟต์แวร์และระบบปฏิบัติการ
ซอฟต์แวร์และระบบปฏิบัติการ
ซอฟต์แวร์และระบบปฏิบัติการ
ซอฟต์แวร์และระบบปฏิบัติการ
ซอฟต์แวร์และระบบปฏิบัติการ
ซอฟต์แวร์และระบบปฏิบัติการ

ระบบปฏิบัติการหลักของ PAB คือ Raspbian ขั้นต่ำ (Debian Buster) ธรรมดาที่มีการเพิ่มเติมเฉพาะหลายประการ:

  • rpi-clone สำหรับการสำรองข้อมูลหลัก
  • ssmtp ซึ่งเป็น MTA อย่างง่ายในการรับเมลออกจากระบบ
  • udevil เพื่ออนุญาตการเมาต์อัตโนมัติของไดรฟ์ USB
  • abcde เพื่อคว้าคอลเลคชันซีดีของฉันและบีบอัดเป็นรูปแบบเสียงใด ๆ
  • mopidy ซึ่งเป็น Music Player Daemon เต็มรูปแบบพร้อมปลั๊กอินมากมาย

ฉันได้เขียนแอปพลิเคชันเซิร์ฟเวอร์ PAB Scheduler แบบเต็มโดยใช้ python3 และ tornado ซึ่งรหัสอยู่นอกขอบเขตของบทความนี้ แต่ฉันสามารถให้คำแนะนำตามคำขอได้ ด้วยเครื่องมือจัดกำหนดการ คุณสามารถตั้งค่าเพลย์ลิสต์สำหรับช่วงเวลาใดก็ได้ของวัน โดยแยกวันธรรมดาออกจากวันหยุดสุดสัปดาห์

ซอฟต์แวร์หลักที่รัน PAB นั้นมีปัญหา สำหรับการติดตั้งและกำหนดค่า mopidy (ค่อนข้างกว้างขวาง) โปรดดูเอกสารประกอบที่นี่:

นี่คือปลั๊กอินที่ติดตั้ง:

  • Mopidy-Alsamixer
  • Mopidy-Internetarchive
  • Mopidy-Local-Sqlite
  • Mopidy-Podcast
  • Mopidy-Scrobbler
  • Mopidy-Soundcloud
  • Mopidy-Spotify
  • Mopidy-Spotify-Tunigo
  • Mopidy-Cd
  • โมปิดี้-ไอริส
  • Mopidy-Local-Images
  • Mopidy-TuneIn

เพื่อให้ได้การควบคุมเต็มรูปแบบของ PAB ฉันได้เลือกส่วนขยายส่วนหน้าของ Iris (ดูรูป) นี่เป็นเว็บแอปพลิเคชันที่ทรงพลังมากพร้อมคุณสมบัติดังต่อไปนี้:

  • การควบคุมอินเทอร์เฟซบนเว็บแบบเต็มสำหรับ Mopidy
  • ปรับปรุงการรองรับห้องสมุดท้องถิ่น (สนับสนุนโดย Mopidy-Local-Sqlite)
  • เรียกดูและจัดการเพลย์ลิสต์และแทร็ก
  • ค้นพบเพลงใหม่ ยอดนิยม และเกี่ยวข้อง (สนับสนุนโดย Spotify)
  • เป็นเจ้าภาพโดยอิสระ
  • บูรณาการกับ:

    • Spotify
    • LastFM
    • อัจฉริยะ
    • Snapcast
    • ไอซ์คาสท์

ด้วยวิธีนี้ ฉันมีอิสระในการควบคุมเพลงจากแทบทุกที่ (คอมพิวเตอร์ แท็บเล็ต สมาร์ทโฟน)

แนะนำ: