หน้าแรก ดูโปรเจกต์ทั้งหมด
Expert

โปรเจกต์ เล่น Polyphonic Tones!

โปรเจกต์นี้ใช้งาน Library MusicWithoutDelay เพื่อเล่นหลายเสียงพร้อมกัน

โปรเจกต์ เล่น Polyphonic Tones!

รายการอุปกรณ์และเครื่องมือ

1x Speaker: 0.25W, 8 ohms
🛒 สั่งซื้อ
1x vibrating motor
-
3x Pushbutton switch 12mm
🛒 สั่งซื้อ
1x Jumper wires (generic)
🛒 สั่งซื้อ
1x Breadboard (generic)
🛒 สั่งซื้อ
1x RGB Diffused Common Cathode
🛒 สั่งซื้อ
}

รายละเอียดและวิธีทำ

วิดีโอ

ดาวน์โหลด Library

โปรเจกต์นี้เป็นการสาธิตการใช้งาน MusicWithoutDelay Library ของผม ซึ่งสามารถดาวน์โหลดได้ที่นี่.

คุณจำเป็นต้องใช้ Tone Library อันโด่งดังของ Bhagman ด้วยเช่นกัน

ทำไมถึงต้องมีสิ่งนี้?

  • ผมสร้าง Library นี้ขึ้นมาเพราะไม่มีวิธีที่จะเล่นเพลง 8-bit สุดคลาสสิก ในขณะที่ Sketch หลักของคุณกำลังทำงานอยู่ อีกทั้งการอ่านไฟล์เพลงของคนอื่นก็ทำได้ยากและไม่เป็นระเบียบ
  • ผมต้องการเล่นโน้ตมากกว่าหนึ่งตัวพร้อมกัน หลังจากค้นคว้าอยู่นาน ผมก็ได้ความสามารถนี้มาโดยใช้ Tone Library ของ Bhagman แต่น่าเสียดายที่จำนวนโน้ตที่สามารถเล่นพร้อมกันได้นั้นขึ้นอยู่กับจำนวน Timer ที่ Board ของคุณมี (ไม่สามารถใช้ Timer0 ได้เพราะ millis() ใช้งานอยู่) ดังนั้น Arduino Uno จึงสามารถเล่นโน้ตพร้อมกันได้สูงสุดเพียง 2 ตัวเท่านั้น

เนื่องจากยังไม่มีใครสร้าง Library ที่ช่วยให้การเล่นและอ่านเพลงทำได้ง่ายขึ้น ผมจึงตัดสินใจสร้าง Library ของตัวเองขึ้นมา

มันทำงานอย่างไร?

ไฟล์เพลงจะถูกเก็บไว้ใน char *song

มันใช้ MusicWithoutDelay Library ของผมในการแปลงเพลงให้กลายเป็นระยะเวลาที่ Tone Library ของ Bhagman สามารถอ่านและเล่นได้

ไฟล์เพลงจะใช้รูปแบบ RTTL (Ring Tone Transfer Language) อันโด่งดัง ซึ่งเป็นรูปแบบที่โทรศัพท์ Nokia รุ่นเก่าใช้สำหรับเสียงเรียกเข้า

  • RTTL เป็นภาษาที่เข้าใจได้ง่ายมากสำหรับนักดนตรีและมือใหม่

ไฟล์เพลงเหล่านี้จะถูกเก็บไว้ใน char pointers ที่คุณเขียนไว้ก่อนฟังก์ชัน setup() จากนั้น Library ของผมจะนำไฟล์เพลงมาแปลงเป็นหน่วย milliseconds จำ Sketch BlinkWithoutDelay ได้ไหม? Library ของผมใช้เทคนิคที่คล้ายกันในการเล่นโน้ตเหล่านั้น

ข้อดี

  • เล่นโน้ตได้มากกว่าหนึ่งตัวพร้อมกัน
  • รันโปรแกรมอื่นๆ เช่น Serial monitor ได้ในเบื้องหลัง
  • เล่นเพลงย้อนกลับและไปข้างหน้าได้
  • หยุด/เล่น เพลง
  • ข้ามไปยังท่อนที่ต้องการในเพลง
  • เลือกเพลงใหม่
  • และจะมีตามมาอีกเพียบ :D

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: play-polyphonic-tones-c65443
299 บาท
PromptPay QR Code