รุ่นพี่ก็ชอบวิดพื้นเหมือนกันนะ แต่ว่าทำทีก็สัก 10 ทีเอง บางทีก็หมดแรง ทำท่าไม่ถูกต้อง ไม่ลงลึก ไม่ขึ้นสูงพอ แล้วก็ลืมนับไปว่าทำไปกี่ทีแล้ว เลยต้องสร้างตัวนับมาช่วยให้ทำตามกฎได้ รุ่นพี่เลือกใช้ Arduino เป็นวงจรควบคุม ใช้เซ็นเซอร์อัลตราโซนิค (Ultrasonic Sensor) ตรวจจับว่าตัวเราลงและขึ้นครบรอบไหม แล้วก็ใช้ 7 Segment Display แสดงผล ตัวนับนี้ก็รีเซ็ตได้ด้วยนะ จะได้เอาไปใช้อีกที
Fitness Telemetry: Ultrasonic Rep Counter
มานั่งนับเองมันเมื่อยมือว่ะ ตัวนับวิดพื้นแบบอัลตราโซนิค นี้คือเซ็นเซอร์ที่ติดตั้งกับพื้น คอยเช็คให้แน่ใจว่าน้องลงจริงขึ้นจริง ถ้าแผงอกน้องไม่ทะลุขีดจำกัดที่เราตั้งไว้ (threshold) ละก็ Arduino จะตะโกนว่า "ไม่นับ!" แล้วก็ไม่เพิ่มตัวนับให้หรอก
กลไก State-Machine (HC-SR04)
เขียนโค้ดแบบ if (distance < 10) { reps++; } เฉยๆ ไม่ได้นะน้อง!
- ถ้าน้องค้างท่าล่างไว้นาน 3 วินาที โค้ดแบบนั้นจะรัวนับเป็นร้อยครั้งในลูปเดียวเลย!
- ต้องเขียนเป็น State Machine เท่านั้น
- State 1 (สูง): เซ็นเซอร์จับตรงไปที่หน้าอกน้องพอดี
distance = 45cmน้องอยู่ในท่าวิดพื้นขึ้นสุด (rest position) - State 2 (ข้าม Threshold): น้องเริ่มลดตัวลง ระยะห่างลดเหลือ
8cmif (distance < 10cm && currentState == HIGH)... - ตอนนี้ Arduino เปลี่ยนใจแล้ว:
currentState = LOW;เราอยู่ในท่าล่างสุดแล้ว - State 3 (นับครั้งที่สำเร็จ): น้องดันตัวขึ้น ระยะห่างกลับไปที่
40cmอีกครั้งif (distance > 30cm && currentState == LOW) { reps++; currentState = HIGH; }ต้องลงลึกสุด และ ขึ้นสูงสุดครบรอบ ถึงจะนับเป็น 1 ครั้ง!
การให้ผลตอบรับด้วยภาพและเสียง
ตอนวิดพื้นตาเบลอแล้ว จะให้ไปมองจอ LCD เล็กๆ ได้ยังไง!
- ใช้ Double 7-Segment Display ขนาดใหญ่ ตัวเลข 2 นิ้ว หรือไม่ก็ใช้ริงไฟ WS2812B NeoPixel!
- ทุกครั้งที่นับสำเร็จ ไฟจะกระพริบสีเขียวสดใส พร้อมกับเสียง Piezo Buzzer "ปี๊บ!" ดังสนั่น ให้กำลังใจนักกีฬาโดยไม่ต้องละสายตา!
อุปกรณ์ที่ต้องใช้
- Arduino Nano (เพื่อสร้างพอดเล็กๆ แข็งแรง วางบนพื้นได้)
- เซ็นเซอร์วัดระยะอัลตราโซนิค HC-SR04
- 7-Segment Display ขนาดใหญ่ (โมดูล TM1637) หรือ LED array ใหญ่ๆ
- Piezo Buzzer (แบบ Active หรือ Passive ก็ได้)
- กล่องที่พิมพ์จากเครื่อง 3D Printer แข็งแรง กันไม่ให้แผ่นเหล็กทับเซ็นเซอร์แตก
หวังว่าน้องๆ จะชอบโปรเจคนี้กันนะ ใครสนใจก็ไปดูคลิปกันได้
ขอบคุณที่ติดตามกันครับ!!!