คีย์บอร์ดดนตรี RaspPi
การสาธิต/คำอธิบาย
ผู้สร้าง/บทบาท
- Andrew Darling
- เขียนโครงสร้างและตรรกะการเขียนโปรแกรมเชิงวัตถุสำหรับโค้ด
- Riley Royall
- สร้างวงจรสำหรับ RPBP
- Mehmet Yilmaz
- เขียนองค์ประกอบ GUI และตัวสร้างโน้ตเพลงสำหรับโค้ด
เกี่ยวกับ
โครงการ Raspberry Pi Buzzer Piano (RPBP) เป็นโครงการสุดท้ายสำหรับวิชา Python Sensor Systems (CSCI-250) ซึ่งเป็นชั้นเรียนระดับปริญญาตรีที่จัดสอนโดย Colorado School of Mines ในภาคการศึกษาฤดูใบไม้ร่วง ปี 2019 โครงการนี้เป็นโครงการกลุ่มที่ประกอบด้วย Andrew Darling, Riley Royall และ Mehmet Yilmaz โครงการเสร็จสมบูรณ์อย่างเป็นทางการในช่วงปลายเดือนพฤศจิกายน 2019 ถึงต้นเดือนธันวาคม 2019
โครงการของเราคือ Raspberry Pi Buzzer Piano (RPBP) แนวคิดของ RPBP นี้คือคีย์บอร์ดดนตรีที่มีปุ่มจำนวน 13 ปุ่ม โดยปุ่มเหล่านี้เป็นเพียงปุ่มกดที่สามารถทำหน้าที่เหมือนปุ่มเปียโนได้ เมื่อกดปุ่ม ปุ่มนั้นจะทำให้บัซเซอร์หนึ่งตัวหรือมากกว่านั้นส่งเสียงที่ความถี่แตกต่างกัน ขึ้นอยู่กับว่ากดปุ่มใด นอกจากนี้ยังมีโพเทนชิโอมิเตอร์สองตัว โดยตัวหนึ่งใช้เปลี่ยนระหว่าง 3 โหมดของ RPBP และอีกตัวใช้เปลี่ยนระดับอ็อกเทฟของบัซเซอร์ โหมดทั้ง 3 ของ RPBP ได้แก่ Free-Play, Record และ Play-Back โหมด Free-Play อนุญาตให้ผู้ใช้เล่น RPBP และได้ยินเพียงเสียงของปุ่มที่กด โหมด Record อนุญาตให้ผู้ใช้เล่น RPBP ในโหมด Free-Play และบันทึกการเล่นลงในไฟล์ npy พร้อมทั้งสร้างโน้ตเพลงในรูปแบบ PDF สำหรับการบันทึกนั้น โหมด Play-Back อนุญาตให้ผู้ใช้ป้อนชื่อไฟล์ที่บันทึกไว้ และวงจรจะเล่นไฟล์ที่บันทึกนั้นผ่านบัซเซอร์ โน้ตเพลงทั้งหมดจะถูกบันทึกไว้ในไดเรกทอรีเดียวกัน เพื่อให้ผู้ใช้สามารถย้อนกลับไปดูโน้ตเพลงของตนได้เสมอหากต้องการ ปุ่มแต่ละปุ่มมี LED เพื่อแสดงให้ผู้ใช้ทราบเมื่อมีการกดปุ่ม โครงการนี้ได้รับการพิสูจน์แล้วว่าสามารถทำงานได้บน Rasbian (Raspberry Pi OS) เท่านั้น โดยต้องตั้งค่าข้อกำหนดด้านล่างอย่างถูกต้อง
ข้อกำหนด
- LilyPond
- Python3
- Raspberry Pi B 3+
- Raspberry Pi OS (ISO)
- ทำให้ LillyPond ทำงานร่วมกับ ARM (Raspberry Pi)
- NumPy
- Bash
- แผงวงจร
ข้อมูล
- โหมด:
- Free-play: อนุญาตให้ผู้ใช้เล่น RPBP ได้ตามต้องการ
- Record: อนุญาตให้ผู้ใช้บันทึกสิ่งที่เล่น บันทึกการบันทึกนั้น และสร้างโน้ตเพลงจากสิ่งที่บันทึก
- Play-Back: อนุญาตให้ผู้ใช้เล่นการบันทึกใด ๆ ที่ดาวน์โหลดหรือสร้างไว้
- Mute: ปิดเสียงบัซเซอร์ทั้งหมดบน RPBP
- วิธีอัปเดตระหว่างโหมด:
- เปลี่ยนการตั้งค่า/ค่าต่าง ๆ บน GUI แล้วกดปุ่ม Submit
- หมายเหตุอื่น ๆ:
- หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ RPBP จาก GUI ให้กดปุ่ม README แล้ว README นี้จะเปิดขึ้น
วงจร
- คุณสามารถดูภาพของแผงวงจรที่ใช้สำหรับโครงการนี้ได้ในส่วน ภาพวงจร
- Pi Wedge เชื่อมต่อกับ Raspberry Pi 3 B+ ผ่านสายแพ
- Raspberry Pi เรียกใช้โค้ดที่ให้ไว้ใน repo นี้พร้อมไดรเวอร์ที่ระบุไว้ใน README นี้
- ขออภัยสำหรับการจัดวางวงจรที่ดูยุ่งเหยิงมาก น่าเสียดายที่เราไม่ได้จัดทำเอกสารเกี่ยวกับส่วนนี้ไว้อย่างดีนัก
วิธีใช้งาน:
- ขั้นแรก ตรวจสอบให้แน่ใจว่าข้อกำหนดทั้งหมดครบถ้วน จากนั้นเรียกใช้สคริปต์ bash start.sh แล้ว GUI จะปรากฏขึ้น
- ขั้นที่สอง เลือกโหมดที่ต้องการใช้ภายใต้ป้ายกำกับ “Modes”
- [ขั้นตอนเหล่านี้มีไว้สำหรับผู้ที่เลือกโหมด “Free-Play”]
- Third_10: กดปุ่ม Submit และเริ่มเล่นบน RPBP
- [ขั้นตอนเหล่านี้มีไว้สำหรับผู้ที่เลือกโหมด “Record”]
- Third_20, เขียนชื่อที่ต้องการตั้งให้ไฟล์ที่บันทึกไว้ใต้ป้ายกำกับ “Record Name”
- Third_21, กดปุ่มที่ชื่อ Submit แล้ว LED สีแดงจะติดขึ้น
- Third_22, เล่นบน RPBP และเมื่อเล่นเสร็จแล้ว ให้กดปุ่ม Stop บน GUI
- Third_23, หลังจากกดปุ่ม Stop การบันทึกของคุณจะถูกบันทึก และโน้ตเพลงของคุณจะถูกสร้างขึ้นและเปิดเป็น PDF ให้คุณดู พร้อมทั้งบันทึกไว้ในไดเรกทอรี SHEETS
- [ขั้นตอนเหล่านี้มีไว้สำหรับผู้ที่เลือกโหมด “Play-Back”]
- Third_30, เลือกไฟล์เพลงที่ต้องการเล่นภายใต้ป้ายกำกับ “Send It”
- Third_31, กดปุ่ม submit และเริ่มฟังไฟล์เพลงที่คุณเลือก
- [ขั้นตอนเหล่านี้มีไว้สำหรับผู้ที่เลือกโหมด “Mute”]
- Third_40, เพียงกดปุ่ม Submit แล้วบัซเซอร์ทั้งหมดจะถูกปิดเสียงจนกว่าคุณจะเปลี่ยนไปใช้โหมดอื่น
- ขั้นที่สี่ หลังจากใช้งาน RPBP เสร็จแล้ว ให้กดปุ่ม Exit เพื่อปิด GUI และโปรแกรมทั้งหมด
ภาพวงจร