สารบัญ:

ตู้เพลงสำหรับเด็ก Aka Raspi-Music-Box: 5 Steps
ตู้เพลงสำหรับเด็ก Aka Raspi-Music-Box: 5 Steps

วีดีโอ: ตู้เพลงสำหรับเด็ก Aka Raspi-Music-Box: 5 Steps

วีดีโอ: ตู้เพลงสำหรับเด็ก Aka Raspi-Music-Box: 5 Steps
วีดีโอ: อยากเห็นเรามุมไหนก็เลือกเอา [ aobaob.pratna25 ] 2024, กรกฎาคม
Anonim
ตู้เพลงสำหรับเด็ก… Aka Raspi-Music-Box
ตู้เพลงสำหรับเด็ก… Aka Raspi-Music-Box

แรงบันดาลใจจาก "Raspberry-Pi-based-RFID-Music-Robot" ที่สอนได้ซึ่งอธิบายเครื่องเล่นเพลง ROALDH ที่สร้างขึ้นสำหรับเด็กอายุ 3 ขวบของเขา ฉันตัดสินใจสร้างตู้เพลงสำหรับลูกที่อายุน้อยกว่าของฉัน โดยทั่วไปจะเป็นกล่องที่มีปุ่ม 16 ปุ่มและ Raspi 2 ซึ่งเล่นเพลงผ่านสเตอริโอที่แนบมาทุกครั้งที่กดปุ่มใดๆ

สิ่งที่คุณต้องการ:

  • Raspberry Pi พร้อมพาวเวอร์ซัพพลาย
  • ปุ่ม 16 ปุ่ม - แบบที่ปิดชั่วคราวเมื่อกด (หรือกี่ปุ่มก็ได้ที่คุณต้องการ - คำแนะนำ: ไม่เกินที่คุณมีพินอินพุต…;)) ฉันใช้ปุ่มนี้: ปุ่มราคา 0.50 ยูโร
  • ลวดบางๆ
  • ตัวต้านทาน 10kOhm หนึ่งตัวและตัวต้านทาน 1kOhm หนึ่งตัวต่อปุ่ม (ยกเว้นกรณีที่คุณต้องการพึ่งพาตัวต้านทานแบบดึงขึ้น/ลงภายในของ Raspi คุณสามารถข้ามได้)
  • แผ่นกระดาน
  • ส่วนหัวของตัวเมีย (2x20 พิน)
  • ไม้บาง ๆ เพื่อสร้างกล่อง (ฉันใช้ 2 แผ่น 5x400x400 มม. สำหรับด้านหน้าและด้านหลังพร้อมแถบ 2000x50x5 มม. เพื่อตัดด้านข้าง)
  • สกรู 24 ตัวและกาวเล็กน้อยเพื่อประกอบกล่อง
  • ลงสีบ้างเพื่อให้มีสีสัน
  • สายสัญญาณเสียงเพื่อเชื่อมต่อ Raspi กับสเตอริโอหรือลำโพงที่ใช้งาน (แจ็คกับสิ่งที่คุณต้องการจากอีกด้านหนึ่ง)
  • เครื่องมือ: หัวแร้ง, ปัตตาเลี่ยน, เครื่องปอกสายไฟ, เลื่อย, สว่าน, ไขควงปากแบน, พู่กัน…
  • ทางเลือก: การ์ดเสียง USB หากคุณต้องการให้เพลงมีเสียงที่ดี
  • ตัวเลือก: การ์ด wifi หากคุณต้องการเชื่อมต่อกับ Raspi เก่าโดยไม่ต้องเปิดกล่อง

โปรดทราบว่านี่เป็นคำสั่งแรกของฉันและฉันได้ทำโครงการนี้มาระยะหนึ่งแล้ว … ฉันกำลังทำมันในขณะที่ถูกถามเกี่ยวกับวิธีการเล่นเพลงของ VLC ในส่วนความคิดเห็นของคำแนะนำที่กล่าวถึงข้างต้น (mplayer ใช้ที่นั่น ไม่ได้รับการสนับสนุนอีกต่อไปเท่าที่ฉันรู้) ฉันรู้ว่าคำแนะนำเหล่านี้ไม่ค่อยดีนัก แต่หวังว่าคุณจะปฏิบัติตามได้… ถ้าไม่ โปรดดูคำแนะนำต้นฉบับด้วยและโปรดแสดงความคิดเห็นด้านล่างโดยบอกว่าคุณติดขัดตรงไหน… ฉันจะพยายามปรับปรุง…

ขั้นตอนที่ 1: สร้างกล่อง…

สร้างกล่อง…
สร้างกล่อง…
สร้างกล่อง…
สร้างกล่อง…

สิ่งแรกที่คุณต้องทำคือสร้างกล่อง… ฉันทำของฉันค่อนข้างใหญ่เพราะฉันเหลือที่ว่างไว้ใต้ปุ่มแต่ละปุ่มสำหรับป้ายกำกับ… ฉันวางแผนที่จะพิมพ์ภาพสำหรับแต่ละเพลง เคลือบมันบางทีและแท็กสีน้ำเงินไว้ใต้ ปุ่ม… เรียนรู้บทเรียน: เมื่อคุณพิมพ์ฉลาก เด็กๆ ของคุณรู้จักเพลงทั้งหมดอย่างยากลำบากและต้องการให้คุณเปลี่ยนเพลงบางเพลง… ครั้งต่อไปฉันจะสร้างกล่องที่เล็กลงและใส่ปุ่มให้ชิดกันมากขึ้น…

กลับไปที่กล่องของฉัน… ฉันซื้อไม้อัดสองแผ่น 400 x 400 x 5 มม. และแถบ 2000 x 50 x 5 มม.…จากนั้น ขั้นตอนแรกที่สำคัญที่สุด: ลูกสาวของฉันได้รับอนุญาตให้ทาสีแผงด้านหน้าตามที่เธอเลือก สี…:) ขณะที่เธอกำลังทาสี ฉันตัดดอกยาวออกเป็น 5 เส้น - ยาว 400 มม. สองอัน ยาว 390 มม. สองอัน และด้านซ้าย…;) ฉันติดกาวที่ด้านหลังของแผ่นที่ทาสีใหม่… จากนั้นฉันก็เจาะ 12 รู จากด้านนอกและขันสกรู 12 ตัว… จากนั้นฉันก็จัดแผ่นอีกแผ่นที่ด้านหลังอย่างระมัดระวัง เจาะอีก 12 รูสำหรับสกรูอีก 12 ตัวเพื่อปิดกล่องเมื่อฉันทำเสร็จ (ฉันรู้ว่าสกรู 12 ตัวอาจจะเกินกำลังไปหน่อย แต่เด็กๆ แข็งแกร่ง…:))

ด้านหนึ่งฉันใช้ไฟล์ (คุณสามารถใช้ dremel เพื่อเร่งความเร็ว) เพื่อตัดไม้เล็กน้อยเพื่อผ่านสายเคเบิล จากนั้นฉันก็เจาะรูสำหรับปุ่ม 16 ปุ่มและติดตั้ง

ขั้นตอนที่ 2: ต่อปุ่ม

วางสายปุ่ม
วางสายปุ่ม

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

ปุ่มไหนต่อพินไหน? ปุ่ม 1-16 ตามลำดับนี้: GPIO 18. 27, 17, 04, 23, 24, 22, 05, 16, 12, 06, 13, 21, 20, 19, 26. โปรดตรวจสอบ "เหตุการณ์กดปุ่มจับ" ส่วน" ในรหัสในภายหลัง

(โปรดอย่าถามฉันว่าม้วนสายไฟไว้เพื่ออะไร… ฉันจำไม่ได้)

ขั้นตอนที่ 3: ตัวเลือก: การสร้างบอร์ดด้วยตัวต้านทานแบบดึงขึ้นและแบบดึงลง

ทางเลือก: การสร้างบอร์ดด้วยตัวต้านทานแบบดึงขึ้นและแบบดึงลง
ทางเลือก: การสร้างบอร์ดด้วยตัวต้านทานแบบดึงขึ้นและแบบดึงลง
ทางเลือก: การสร้างบอร์ดด้วยตัวต้านทานแบบดึงขึ้นและแบบดึงลง
ทางเลือก: การสร้างบอร์ดด้วยตัวต้านทานแบบดึงขึ้นและแบบดึงลง

หากคุณไม่แน่ใจว่าตัวต้านทานแบบดึงขึ้นและแบบดึงลงคืออะไร คุณควรหาข้อมูลมากมายทางออนไลน์ raspi มีบางตัวในตัวหรือคุณสามารถทำสิ่งภายนอกได้เหมือนที่ฉันทำที่นี่ ขั้นตอนนี้เป็นทางเลือก เนื่องจากฉันคิดว่าคุณไม่จำเป็นต้องทำจริงๆ

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

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

ขั้นตอนที่ 4: รหัส Python

คุณจะพบรหัส (ในหลาม) ที่จัดการกล่องดนตรีที่แนบมาที่นี่ ฉันได้เพิ่มความคิดเห็นเล็กน้อยดังนั้นหวังว่าจะเป็นการอธิบายตนเอง ในกรณีที่นี่เป็นคำอธิบายอย่างรวดเร็ว ทางที่ดีควรเริ่มอ่านส่วนตัวแปรที่ด้านบนแล้วข้ามไปด้านล่างสุด

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

เหนือลูปหลัก คุณจะพบกับการตรวจจับเหตุการณ์ ซึ่งจะดำเนินการหากกดปุ่มใดปุ่มหนึ่ง แต่ละปุ่มเรียกใช้ฟังก์ชัน ButtonPress ผ่านตัวระบุ

แล้วทำยังไงให้มันเล่นดนตรีได้? เพื่อให้ง่าย ฉันเพิ่งสร้างหนึ่งโฟลเดอร์สำหรับแต่ละปุ่ม ไม่ว่าคุณจะใส่ mp3 อะไรในโฟลเดอร์เหล่านี้ ฟังก์ชันนี้จะเพิ่มในรายการเล่น

โปรดทราบว่า หากคุณไม่ได้ใช้ตัวต้านทานแบบดึงขึ้นทางกายภาพ คุณจะต้องเปลี่ยนส่วนที่มีการกำหนดหมายเลข BCM เป็นดังนี้:

# การตั้งค่าโดยใช้หมายเลข BCMGPIO.setmode (GPIO. BCM) GPIO.setup (04, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (17, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (27, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (22, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup(05, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (06, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (13, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup(19, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (26, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (18, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (23, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (24, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (12, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (16, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (20, GPIO. IN, pull_up_down = GPIO PUD_UP) GPIO.setup (21, GPIO. IN, pull_up_down = GPIO. PUD_UP)

ขั้นตอนที่ 5: การตั้งค่า Rapsi. ของคุณ

คุณจะต้องตั้งค่า raspi แน่นอน… ฉันเพิ่งใช้การติดตั้ง Noop มาตรฐาน ฉันแน่ใจว่าคุณจะพบคำแนะนำมากมายเกี่ยวกับวิธีการทำเช่นนั้น …

ในการใช้ python คุณจะต้อง "sudo apt-get install python-dev"

โปรแกรมของฉันใช้ VLC เพื่อเล่นเพลง:

  • ฉันได้รับการเชื่อมต่อ Python จากที่นี่ (หวังว่านี่จะยังเป็นปัจจุบัน):
  • จากนั้นฉันก็ติดตั้งโดยใช้ "sudo python setup.py install"
  • จากนั้นติดตั้ง VLC "sudo apt-get install vlc"
  • ติดไฟล์ vlc.py และ vlc.pyc ลงในไดเร็กทอรีเดียวกันกับโปรแกรมของคุณ
  • ข้อมูลเพิ่มเติมได้ที่

บันทึกย่อของฉันบอกว่าคุณต้องติดตั้งสิ่งต่อไปนี้เพื่อเข้าถึง GPIO Pins จาก python (แต่อาจล้าสมัย):

  • wget https://www.airspayce.com/mikem/bcm2835/bcm2835-1…. zxvf bcm2835-1.xx.tar.gz
  • cd bcm2835-1.xx
  • ./configure
  • ทำ
  • sudo ทำการตรวจสอบ
  • sudo ทำการติดตั้ง

เพื่อให้โปรแกรมของคุณทำงาน คุณจะต้องเรียก "sudo python yourfilename.py"

แนะนำ: