สารบัญ:
- ขั้นตอนที่ 1: สร้างกล่อง…
- ขั้นตอนที่ 2: ต่อปุ่ม
- ขั้นตอนที่ 3: ตัวเลือก: การสร้างบอร์ดด้วยตัวต้านทานแบบดึงขึ้นและแบบดึงลง
- ขั้นตอนที่ 4: รหัส Python
- ขั้นตอนที่ 5: การตั้งค่า Rapsi. ของคุณ
วีดีโอ: ตู้เพลงสำหรับเด็ก Aka Raspi-Music-Box: 5 Steps
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
แรงบันดาลใจจาก "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"
แนะนำ:
Mega RasPi - Raspberry Pi ใน Sega Mega Drive / Genesis: 13 ขั้นตอน (พร้อมรูปภาพ)
Mega RasPi - Raspberry Pi ใน Sega Mega Drive / Genesis: คู่มือนี้จะนำคุณผ่านการแปลง Sega Mega Drive เก่าไปเป็นคอนโซลเกมย้อนยุค โดยใช้ Raspberry Pi ฉันใช้เวลาในวัยเด็กของฉันในการเล่นวิดีโอเกมนับไม่ถ้วน Sega Mega Drive ของฉัน เพื่อนของฉันส่วนใหญ่ก็มีเหมือนกัน ดังนั้นเราจะ
Rave Bag Aka Pa ในแบ็คแพ็ค [sRc]: 5 Steps
Rave Bag Aka Pa in a Back Pack [sRc]: นี่คือวิธีทำกระเป๋าที่มีแอมป์มินิ pa และลำโพงชั้นวางหนังสือ 2 อันในแบ็คแพ็ค
นาฬิกาสภาพอากาศ Raspi-Nextion: 7 ขั้นตอน
Raspi-Nextion Weather Clock: การได้เห็นนาฬิกาที่แตกต่างกันมากมายที่สร้างด้วย Arduino และ Raspberry Pi เป็นแรงบันดาลใจให้ฉัน ฉันก็อยากทำเหมือนกัน ฉันเริ่มต้นด้วยการใช้ Arduino mega กับ ESP8266 แต่พบว่า 8266 wifi มีอาการสะอึกมากเกินไป ฉันตัดสินใจใช้ Pi สำรองที่ฉันมี (Raspb
ผู้ตั้งถิ่นฐานของ Raspi - ผู้ตั้งถิ่นฐานของ Catan Clone ด้วยอุปกรณ์อิเล็กทรอนิกส์: 5 ขั้นตอน
Settlers of Raspi - ผู้ตั้งถิ่นฐานของ Catan Clone With Electronics: คำแนะนำนี้จะแนะนำคุณตลอดขั้นตอนในการสร้าง "Settlers of Raspi" เกม Settlers of Catan พร้อมอุปกรณ์อิเล็กทรอนิกส์และเว็บอินเตอร์เฟส
ด้ายนำไฟฟ้าภายในท่ออคติผ้า Aka Tubes of conductiveness: 10 Steps
ด้ายนำไฟฟ้าภายในท่ออคติผ้า หรือที่เรียกว่าท่อนำไฟฟ้า: วิธีการติดด้ายนำไฟฟ้ากับผ้า ใช้งานได้ดีเมื่อคุณไม่สามารถหรือไม่ต้องการเย็บด้ายนำไฟฟ้าเข้ากับเสื้อผ้าของคุณ ต้องการเพิ่มเติม eTextile How-To DIY eTextile วิดีโอ บทแนะนำ และโครงการต่างๆ หรือไม่ จากนั้นเยี่ยมชม The eTextile Loun