ใจเหล็กพอไหม? รับมือกับความกดดันได้มั้ย? มาทดสอบสายตาและสมาธิกับเกม "Don't Move Me!" เกม Arduino ที่จะวัดระดับความนิ่งของมือคุณ!
ในกล่องใสนี้ มีเซ็นเซอร์ตรวจจับการสั่น (SW-420), LED สีเขียว, LED สีแดง และออดแบบแอคทีฟ (Active Buzzer) เชื่อมต่อกับบอร์ด Arduino และใช้พลังงานจากแบตเตอรี่
กฎง่ายๆ: เมื่อเกมเริ่ม LED สีเขียวจะติด แปลว่าถึงเวลาที่คุณต้องโชว์ความนิ่งของมือแล้ว! ภารกิจของคุณคือ ยกกล่องจากจุดหนึ่งไปอีกจุดหนึ่งโดยให้เซ็นเซอร์ไม่รู้สึกตัว แค่สั่นนิดเดียว เซ็นเซอร์จะจับได้ทันที แล้ว LED สีแดงจะสว่างพร้อมกับเสียงออดดังลั่น บอกว่า "จบเกม!" หลังจากนั้นระบบจะรีเซ็ตเองภายในไม่กี่วินาที
ลงลึกเรื่องเทคนิค
- กลไกของ SW-420:
- ตรวจจับด้วยสปริง: ใจกลางของเกมนี้คือโมดูล SW-420 ที่มีสปริงเล็กๆ อยู่ข้างใน ตอนเซ็นเซอร์อยู่นิ่ง สปริงจะอยู่ในสภาวะคงที่ (เปิดหรือปิดวงจร) พอมีการเคลื่อนไหว สปริงจะสั่นและทำให้เกิดการสัมผัสทางไฟฟ้าชั่วขณะ
- ปรับระดับความยากได้: เซ็นเซอร์ตัวนี้มี LM393 Voltage Comparator และโพเทนชิโอมิเตอร์สำหรับปรับค่าให้เราปรับ "ความอ่อนไหว" ของเกมได้ด้วยการหมุนปุ่มปรับค่า เพื่อตั้งเกณฑ์ว่าแรงสั่นเท่าไหร่ถึงจะส่งสัญญาณ "HIGH" ไปที่ Arduino
- การจัดการภาพและเสียง:
- ลูปประสาท: เฟิร์มแวร์ใน Arduino จะวนลูปตรวจสอบค่าจากพินที่ต่อกับ SW-420 ตลอดเวลา
- ตรรกะความสำเร็จ vs. ล้มเหลว:
- สถานะนิ่ง: LED สีเขียว จะติดค้าง แสดงว่า "ยังปลอดภัย"
- สถานะสั่น: ทันทีที่ตรวจจับการสั่นได้ Arduino จะทำงานแบบ Interrupt Logic ทันที: LED เขียวดับ, LED สีแดง ติด, และ Active Buzzer จะส่งเสียงความถี่ 2.5kHz ออกมาให้รู้ตัว
- พลังงานแบบพกพา:
- ใช้ไฟ 9V: เพราะเกมนี้ต้องขยับกล่อง การใช้สาย USB ยาวๆ จุ่มๆ ไม่เหมาะ ระบบจึงใช้ แบตเตอรี่ 9V เป็นแหล่งจ่ายไฟ แล้วให้เรกูเลเตอร์บน Arduino แปลงลงมาเป็น 5V สำหรับเซ็นเซอร์และออด
วิศวกรรมและการนำไปใช้
- ลอจิกหน่วงเวลาแบบไม่บล็อก:
- เกมนี้ใช้แนวคิด State Machine ตอนที่เล่นแพ้ ออดและ LED แดงจะทำงานต่อเนื่องเป็นเวลา 3 วินาที (ช่วงเวลา "ถูกปรับ") โดยใช้ฟังก์ชัน
millis()หรือลูปจับเวลา หลังจากนั้นระบบจะรีเซ็ตตัวเองกลับไปที่สถานะ LED เขียวเหมือนเดิม
- เกมนี้ใช้แนวคิด State Machine ตอนที่เล่นแพ้ ออดและ LED แดงจะทำงานต่อเนื่องเป็นเวลา 3 วินาที (ช่วงเวลา "ถูกปรับ") โดยใช้ฟังก์ชัน
- ความสมบูรณ์ของสัญญาณในกล่อง:
- การติดตั้งเซ็นเซอร์: เรื่องสำคัญคือต้องติดเซ็นเซอร์ให้แน่นกับตัวกล่อง กล่องอะคริลิกใส ทำให้เห็นของข้างในได้ แต่ก็อาจเป็นตัวขยายเสียงได้ด้วย ถ้าติดเซ็นเซอร์ไม่แน่น ("โยกเยก") มันอาจจะสั่นเพราะน้ำหนักของตัวเองและส่งสัญญาณผิดพลาดได้
- ส่วนติดต่อผู้ใช้ (HMI):
- LED สองสีให้ข้อมูลสถานะเกมแบบเรียลไทม์ LED สีแดงเลือกมาเพราะเห็นชัดเจน ส่วน Active Buzzer (ต่างจาก Passive Piezo) จะให้เสียงดังคงที่ ไม่ขึ้นกับความถี่การสั่น ทำให้ผู้เล่นรู้ตัวทันทีว่าแพ้แล้ว
- ปรับความไวให้เหมาะกับสภาพแวดล้อม:
- โปรเจกต์นี้สอนให้รู้จักการปรับเทียบ ก่อนเริ่มเกม ผู้เล่นควรปรับโพเทนชิโอมิเตอร์ให้เซ็นเซอร์ไม่ตื่นตัวกับเสียงรบกวนพื้นหลัง (เช่น เสียงตู้เย็น หรือเสียงเดิน) แต่ยังคงไวพอที่จะจับการสั่นจากมือมนุษย์ได้

สรุปสั้นๆ ง่ายๆ
"Don't Move Me!" โชว์ให้เห็นว่าตัวตรวจจับแบบง่ายๆ (Binary Sensors) นี่แหละ ถ้าเราจับมาประยุกต์ใช้กับ จังหวะเวลา (Timing) ที่แม่นยำ และ ตรรกะการตอบสนอง (Feedback Logic) ที่แน่นหนา ก็สามารถสร้างประสบการณ์อินเตอร์แอคทีฟที่สนุกและท้าทายได้ไม่ยากเลย