ทำไมต้อง Bosco test?
ถึงแม้ว่าจะมีผลิตภัณฑ์คล้ายๆ กันวางขายอยู่แล้วในตลาด แต่ราคามันมักจะสูงเวอร์จนตลกร้ายสำหรับชมรมกีฬาที่แค่อยากทำแบบทดสอบสมรรถภาพง่ายๆ นี่แหละ พวกเราในฐานะนักเรียนมัธยมที่เล่นกีฬาหลังเลิกเรียน เลยตัดสินใจทำอะไรสักอย่างเพื่อแก้ไขมัน
หลังจากค้นคว้าในเน็ตนิดหน่อย เราก็ตาสว่างว่าเซนเซอร์และข้อมูลส่วนใหญ่ที่ระบบพวกนั้นโฆษณาเนี่ย นักกีฬาทั่วไปอย่างเราๆ ไม่ได้สนใจหรือนำไปใช้ด้วยซ้ำ เป้าหมายใหม่ของพวกเราคือ: เริ่มตัดทอนทุกอย่างที่ไม่จำเป็นออกไปให้หมด
มันทำงานยังไง?
อุปกรณ์กั้นแสงเลเซอร์จะตรวจจับว่านักกีฬากำลังแตะพื้นอยู่หรือเปล่า สำหรับทุกการกระโดด ช่วงเวลาหน่วง (delay) ระหว่างสองช่วงเวลาที่ "แตะพื้น" จะถูกบันทึกเป็น ToF (time of flight) สำหรับการกระโดดนั้นๆ สุดท้ายข้อมูลนี้จะถูกส่งผ่านบลูทูธไปยังอุปกรณ์ Android ที่เชื่อมต่ออยู่ ซึ่งจะคำนวณความสูงการกระโดด (JH) โดยใช้สูตรง่ายๆ (g คือความเร่งโน้มถ่วง):
JH = (ToF ^ 2 * g) / 8
การลงมือทำจริง: อุปกรณ์กั้นแสงเลเซอร์และฟิสิกส์ของ ToF
โปรเจคนี้เผยให้เห็นชั้นต่างๆ ที่ซ่อนอยู่เบื้องหลังการเปลี่ยนการเคลื่อนไหวให้เป็นข้อมูล:
- ชั้นตรวจจับ: เลเซอร์ KY-008 และ LDR (ตัวต้านทานตามแสง) ทำหน้าที่เป็นดวงตาออปติคัลความละเอียดสูง คอยตรวจจับทุกจุดที่เท้าของคุณบังลำแสงหรือปล่อยให้ลำแสงผ่าน
- ชั้นแปลงสัญญาณ: Arduino Mega ใช้พินดิจิทัล I/O รับการเปลี่ยนแปลงสถานะของเลเซอร์ที่ความเร็วสูง และประสานงานงานจับเวลาในระดับไมโครวินาที
- ชั้นประมวลผล: โค้ด Arduino ใช้กลยุทธ์ "ถอดรหัสตามลำดับ" แบบเฉพาะทาง: มันจะเริ่มจับเวลาเมื่อลำแสงเลเซอร์กลับมา (เริ่มกระโดด) และหยุดจับเวลาเมื่อลำแสงถูกบัง (ลงพื้น)
- ชั้นคำนวณฟิสิกส์: Arduino จะทำการคำนวณ (JH = ToF^2 * g / 8) เพื่อหาความสูงสุดท้ายของการกระโดดเป็นเซนติเมตร
- ชั้นเชื่อมต่อไร้สาย: ข้อมูลจะถูกส่งเป็นจังหวะไปยังโมดูลบลูทูธ HC-05 เพื่อประสานสถานะการกระโดดแบบเรียลไทม์กับแอป Android
โครงสร้างพื้นฐานฮาร์ดแวร์
- Arduino Mega 2560: "สมอง" ของโปรเจค จัดการจับเวลาไมโครวินาทีความเร็วสูงและประสานงานงานส่งข้อมูลบลูทูธ
- เลเซอร์ KY-008 & LDR: ให้การตรวจสอบการเคลื่อนไหวแบบไม่สัมผัสและน่าเชื่อถือสำหรับทุกการกระโดดของคุณ
- โมดูลบลูทูธ HC-05: ให้การส่งข้อมูลความเร็วสูงและน่าเชื่อถือไปยังอุปกรณ์ Android
- จอแสดงผล OLED (128x64): ให้ผลตอบรับภาพความละเอียดสูงของความสูงกระโดดและสถิติล่าสุด แสดงผลแบบโลคอล
- เบรดบอร์ด: วิธีที่สะดวกสำหรับการทำวงจรต้นแบบวิทยาศาสตร์การกีฬาชิ้นแรก และเชื่อมต่อทุกองค์ประกอบโดยไม่ต้องบัดกรี
- สาย Micro-USB: ใช้โปรแกรม Arduino ของคุณและเป็นแหล่งจ่ายไฟหลักให้กับตัวควบคุมเซนเซอร์
ประกอบวงจรของคุณ
สำหรับคนที่ขี้เกียจดาวน์โหลดไฟล์ .fzz ใดๆ นี่คือวิธีเชื่อมต่อองค์ประกอบต่างๆ ที่ใช้ในโปรเจค:
ขั้นตอนการตรวจสอบและโต้ตอบแบบทีละขั้น
กระบวนการ Bosco test ออกแบบมาให้ใช้ง่ายสุดๆ:
- ตั้งค่าฮาร์ดแวร์: วางเลเซอร์และ LDR ให้ถูกต้องในระดับพื้นดิน และเชื่อมต่อกับ Arduino Mega ตามที่แสดงในภาพวงจรด้านบน
- ตั้งค่า Output Sync: ในฟังก์ชัน
setup()ให้เริ่มต้นพอร์ต Serial (สำหรับ BT) และกำหนดขาเลเซอร์เป็นOUTPUTกันก่อน - วงวนแห่งการคิด (Internal Dialogue Loop): Arduino ของเราจะคอยตรวจสอบเลเซอร์แบบสุดประสิทธิภาพ และอัปเดตแดชบอร์ดบน Android ด้วยคะแนนกระโดดแบบเรียลไทม์เลย
- รวม Visual Feedback: ดูให้ดีนะ น้องจะเห็นว่าแอป Android กับ OLED จะกลายเป็นสัญญาณภาพที่เต้นเป็นจังหวะ พลุ้งพัลส์ตามการตั้งค่ากระโดดของน้องเลยล่ะ
อัพโหลดสเก็ตช์กันเถอะ
ทำตามขั้นตอนง่ายๆ เหล่านี้เพื่ออัพโหลดสเก็ตช์ของน้อง:
- สร้างโฟลเดอร์ชื่อ "test_di_bosco" ในโฟลเดอร์ sketchbook ของน้อง
- ดาวน์โหลดไฟล์ทั้งหกที่ฝังไว้ด้านล่าง ไปไว้ในโฟลเดอร์ "test_di_bosco" ใหม่ของน้อง
- เปิดไฟล์ "test_di_bosco.ino" ด้วย Arduino IDE: จะมีหน้าต่างเดียวเปิดขึ้นมา พร้อมกับไฟล์ ".ino" ทั้งหมดอยู่ในนั้น
- แค่นั้นแหละ! ตอนนี้น้องพร้อมที่จะอัพโหลดสเก็ตช์ทั้งหมดแล้ว แค่คลิกที่ปุ่ม "upload" สักครั้งเดียวก็จบ
ตัวอย่างแอปพลิเคชัน Android
เราเลือกใช้ MIT App Inventor 2 ในการพัฒนาแอปตัวอย่างของเรา (ซึ่งมีให้ใช้ฟรี)
ทดลองใช้งานกันเลย
[!NOTE] การจัดตำแหน่งเลเซอร์ให้แม่นยำคือหัวใจสำคัญ เพื่อหลีกเลี่ยง "False Triggers" เวลาซ้อมกระโดดแบบหนักๆ นะตัวนี้!
แผนขยายในอนาคต (จัดไปวัยรุ่น)
- รวม OLED Identity Dashboard: เพิ่มจอ OLED ขนาดเล็กเข้าไปในกล่องเลเซอร์ เพื่อแสดง "คะแนนสูงสุด" และ "ค่าเฉลี่ย 5 ครั้งล่าสุด"
- ซิงค์เซ็นเซอร์หลายตัว (Multi-sensor Sync): ต่อ "เซ็นเซอร์วัดน้ำหนัก (Load Cell)" พิเศษ เพื่อคำนวณ "กำลังส่งออก (Power Output)" แบบความแม่นยำสูงควบคู่ไปกับการกระโดด
- สนับสนุน Cloud Interface: เพิ่มแดชบอร์ด WiFi/ESP32 เพื่อติดตามและบันทึกประวัติการกระโดดจากสมาร์ทโฟนได้ทุกที่ในยิม
- โปรไฟล์ความเร็วขั้นสูง (Advanced Velocity Profile): เพิ่ม "Reactive Strength Index (RSI)" พิเศษลงในโค้ด เพื่อวัดเวลาที่เท้าสัมผัสพื้นก่อนกระโดดครั้งต่อไป
กำลังพัฒนาอยู่ (หรืออาจจะ)
- เวลาที่เท้าสัมผัสพื้น (ground contact time)
- กำลังที่พัฒนาขึ้นระหว่างกระโดด (power developed during the jump)
- ความถี่ในการกระโดด (jump frequency)
- RSI (Reactive Strength Index)