คีย์บอร์ดดนตรี RaspPi

ที่เก็บ GitHub ของโครงการ

การสาธิต/คำอธิบาย

ผู้สร้าง/บทบาท

  • 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) เท่านั้น โดยต้องตั้งค่าข้อกำหนดด้านล่างอย่างถูกต้อง

ข้อกำหนด

ข้อมูล

  • โหมด:
    • 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 และโปรแกรมทั้งหมด

ภาพวงจร

ภาพ_GUI
ภาพ_GUI
ภาพ_GUI