กลับไปหน้ารวมไฟล์
passive-buzzer-rickroll-system.md

ปฏิบัติการกวนประสาท: Passive Buzzer Rickroll

โปรเจกต์ Passive Buzzer Rickroll นี่คืออาวุธลับสายเกรียนแบบฉบับย่อส่วน! มันคือการเอาฟังก์ชัน tone() ใน Arduino มาฟีเจอริ่งกับ Sensor วัดแสง เพื่อรอเวลาเงียบเชียบที่สุด... จนกว่าจะมีเหยื่อมาเปิดลิ้นชักหรือเปิดไฟนั่นแหละ เพลงมาแน่นอน!

arduino_memory_game_piezo_macro_1772681197420.png

ทฤษฎีความถี่และจังหวะฉบับ C++

จะเปลี่ยนเสียง "ติ๊ดๆ" แข็งๆ ให้เป็นเพลงฮิตระดับตำนาน มันต้องพึ่งคณิตศาสตร์หน่อยนะน้อง:

  1. Header File: เราต้องมีไฟล์ pitches.h ใน Sketch ของเราก่อน ข้างในจะรวมโน้ตดนตรีที่ map กับความถี่ Hertz ไว้ให้หมดแล้ว (เช่น #define NOTE_D4 294) จะได้ไม่ต้องมานั่งคำนวณเองให้ปวดหัว
  2. Melody Array: จัดลำดับโน้ตเพลงลงใน Variable แบบ Array เช่น int melody[] = {NOTE_C4, NOTE_D4, NOTE_F4, NOTE_D4...}; อยากได้ท่อนฮุคเทพแค่ไหนก็จัดไปวัยรุ่น
  3. Duration Array: ระบุจังหวะด้วยว่าแต่ละโน้ตจะลากยาวแค่ไหน ตัวดำ ตัวเขบ็ตหนึ่งชั้น (1/4, 1/8) ใส่ไปให้ครบ เดี๋ยวจังหวะเพี้ยนแล้วเสียของ
  4. Trigger Loop: เขียน Loop รอเงื่อนไขที่ใช่ (เช่น analogRead(lightSensor) > 500) เมื่อไหร่ที่แสงเข้าตาปั๊บ ให้ for loop ทำงานสั่งเล่น Array ผ่านฟังก์ชัน tone(pin, pitch, duration) ทันที หล่อเท่เลยงานนี้!

อุปกรณ์สายซุ่ม (ยัดลงกล่องห้ามให้ใครเห็น)

  • ATtiny85 Microcontroller: เล็กกว่าคือชนะ! จะใช้ Arduino Uno บอร์ดเบ้อเร่อไปซ่อนก็คงโดนจับได้พอดี ใช้ ATtiny85 แบบ 8 ขาเนี่ยแหละ จิ๋วแต่แจ๋ว (เราใช้ Board Uno โปรแกรมลงไปได้นะน้อง)
  • Passive Piezo Buzzer: ตัวเอกของงาน ห้ามสลับกับแบบ Active เด็ดขาดนะเว้ย เพราะแบบ Active มันร้องได้แค่เสียง "ปี๊ด" เดียวโง่ๆ แต่แบบ Passive นี่แหละที่จะทำให้เราร้องเพลงได้
  • LDR (Photoresistor): ตัว Sensor รับแสง กลไกจุดชนวนความฮา
  • ถ่านกระดุม (CR2032): แหล่งพลังงานตัวจิ๋ว ซ่อนง่าย ห้ามช็อตนะตัวนี้

จัดการเอาเทปกาวแปะไว้ใต้ลิ้นชักโต๊ะทำงานรูมเมท แล้วก็นั่งรอความบันเทิงตอนมันเปิดลิ้นชักได้เลย... สู้งานนะน้อง อย่าโดนจับได้ล่ะ!

ข้อมูล Frontmatter ดั้งเดิม

title: "Passive Buzzer Rickroll System"
description: "Prank your friends! Program an Arduino to play the internet's most famous song, 'Never Gonna Give You Up', using a basic piezo buzzer."
category: "Audio & Sound"
difficulty: "Easy"