สถาปัตยกรรม Game Loop แบบฉบับเซียน
เซ็ตอัพตัวนี้คือการจำลองเกมปิงปองแบบ Digital สุดจ๊าบ โดยใช้แถวไฟ LED วิ่งเป็นเส้นตรง (Photon Matrix) หลักๆ คือตัว Code จะรัน Algorithm ให้ไฟวิ่งสลับ Pin I/O รัวๆ เพื่อจำลองความเร็วของลูกปิงปองให้ดูสมจริง
พอไฟวิ่งเข้าโซนทำแต้ม (ไอ้ตรงไฟ LED สีน้ำเงินท้ายแถวนั่นแหละ) น้องต้องกดปุ่มโต้กลับให้ทัน ซึ่งตัว Microcontroller จะคอยดักจับ Routine ของ Hardware เพื่อเช็ค Timing ในการกด ถ้าดันไปกดนอก "Green Zones" (ไฟสีเขียว-แดงข้างๆ) ตัว Logic จะถือว่าน้องพลาด และบันทึกค่าลง Variable สถานะความผิดพลาดทันที ในหนึ่งเกมพี่เซ็ตไว้ให้แค่ 3 ชีวิตนะวัยรุ่น ถ้าพลาดจนครบ ตัวนับ Fault-counter จะทำงาน แล้วยิงข้อมูล Telemetry ขึ้นจอ LCD ผ่านระบบ I2C พร้อมส่งเสียงด่า เอ๊ย เสียงเตือนผ่าน Piezo buzzer ให้แสบหูเล่นๆ
การประกอบร่างและวางวงจร (Assembly Forensics)
- จุดรับ Input หลัก: ต่อปุ่ม Switch 1 ขนานกับสาย 5V และ GND แล้วยิงสัญญาณเข้า Digital Pin 3 อย่าลืมใส่ Pull-down Resistor ไว้ด้วยนะเว้ย เพื่อดึงให้สถานะ Logic นิ่งอยู่ที่
0ตลอดเวลาถ้าไม่ได้กด ห้ามลืมเด็ดขาดไม่งั้นค่ารวน - แผงไฟวิ่ง (Photon Sequence Matrix): เสียบ LED เรียงกันไปเลยตั้งแต่ Digital Pin 13 ไล่ลงมาจนถึง Pin 4 วางเรียงจากซ้ายไปขวาให้ดูหล่อเท่ตามพิกัดที่วางไว้
- จุดรับ Input ฝั่งตรงข้าม: ต่อปุ่มที่สองด้วยโครงสร้างแบบเดียวกันเป๊ะ แต่คราวนี้ยิงเข้า Pin 2 นะน้อง
- ชุดส่งสัญญาณเสียง: เอา Piezo buzzer ไปจิ้มที่ Pin 1 เพื่อสร้างเสียงเตือนแบบ PWM (คำเตือน: Pin 1 มันแชร์กับขา UART TX บนบอร์ด Uno นะ เวลาจะอัปโหลด Code หรือใช้งาน Serial ระวังเอ๋อด้วยล่ะ)
- จอรายงานผล: เชื่อมจอ LCD ผ่านขา 5V, GND และสาย SDA/SCL ตามมาตรฐาน I2C เป๊ะๆ ตามสเปก Protocol
เช็คสายไฟให้ดี อย่าให้ช็อตนะไอ้น้อง โดยเฉพาะจังหวะกดปุ่มสองปุ่มพร้อมกัน ตัว CPU จะวน Loop ตรวจสอบไวมากระดับ Millisecond เพื่อให้ทันปฏิกิริยาตอบสนองของน้อง เพราะฉะนั้นต้องเช็คเรื่องการกวาดข้อมูล (Polling) ให้แม่น อย่าให้มีสัญญาณกวน (Bounce) มาทำให้เสียเรื่อง จัดไปวัยรุ่น!