Arduino Buzzer coffin dance!(ตลก)
เสียงดนตรีที่แพร่หลาย: Arduino Coffin Dance
มีม "Coffin Dance" (Astronomia) ได้ครองโลกอินเทอร์เน็ต และการแปลจังหวะ EDM ที่ติดหูนั้นให้กลายเป็นเสียงจาก Piezo buzzer ขนาด 5 โวลต์ ถือเป็นพิธีกรรมอย่างหนึ่งในงาน hardware hacking โปรเจกต์นี้จะตัด MP3s และ external modules ออกไป บังคับให้นักพัฒนาโปรแกรมต้องสร้างโครงสร้าง array ที่ซับซ้อนเพื่อเลียนแบบเพลงอิเล็กทรอนิกส์ด้วยหลักคณิตศาสตร์

Arrays ซ้อน Arrays: จังหวะและความถี่ (Tempo และ Pitch)
เพลงทั้งหมดจะต้องถูกแปลงเป็นข้อมูลตัวเลขดิบ (raw numbers)
- The Frequencies (ความถี่): เมโลดี้ของเพลงต้องใช้โน้ตที่แตกต่างกันหลายร้อยตัว คุณจะต้องรวม
#include "pitches.h"library ขนาดใหญ่เข้ามาด้วยint astronomia_melody[] = { NOTE_G4, NOTE_G4, NOTE_C5, NOTE_B4, NOTE_A4, NOTE_G4... }; - The BPM (Beats Per Minute) Calculation (การคำนวณ BPM): เพลง EDM พึ่งพาจังหวะ staccato ที่แม่นยำและรวดเร็วเป็นอย่างมาก โดยมี integer array มาตรฐานสำหรับกำหนดความยาวดังนี้:
int astronomia_durations[] = { 4, 4, 8, 8... }; - ส่วนสำคัญของ logic คือ "Staccato Gap" หากคุณไม่ใส่ delay 10-millisecond ระหว่างสองพัลส์
NOTE_G4Arduino จะรวมเสียงเหล่านั้นให้กลายเป็นเสียงบี๊บยาว 2 วินาทีที่ต่อเนื่องกัน!
การทำงานของ LED ที่ซิงค์กัน
เพลงที่แพร่หลายก็ควรมีลูกเล่นทางภาพด้วย
- ภายใน
forloop หลักที่เรียงลำดับtone(buzzerPin, melody[i])ผู้ใช้สามารถฝังคำสั่งanalogWrite()ได้ - ตัวความถี่ของ tone เอง (เช่น
392สำหรับ G4) สามารถปรับขนาดทางคณิตศาสตร์เพื่อควบคุม LED ได้! int brightness = map(melody[i], 200, 1000, 0, 255);analogWrite(LED_PIN, brightness);- ขณะที่ดนตรีดังขึ้น LED จะกระพริบอย่างรุนแรงและมีชีวิตชีวาไปทั่วห้อง โดยซิงค์กับความถี่ของมีมได้อย่างสมบูรณ์แบบ!
อุปกรณ์สำหรับการสร้างมีม
- Arduino Uno/Nano
- Passive Piezo Buzzer (ต้องเป็นแบบ passive เท่านั้น Active buzzer จะไม่สามารถเล่นโน้ตดนตรีได้ จะส่งเสียงเตือนเท่านั้น!)
- 100-Ohm Resistor เพื่อป้องกันขา Arduino จากการกระตุกกลับของขดลวด (coil kickback) ของ buzzer
- ความอดทนอันมหาศาล ในการ copy-paste integer หลายร้อยตัวด้วยตนเองที่จำเป็นต่อการแมปเพลงทั้งเพลง 3 นาที!