ในฐานะคนที่มีงานอดิเรกเพียบ ทั้งอิเล็กทรอนิกส์และปืนลม เลยคิดว่าเอา Arduino เก่าๆ ที่วางทิ้งไว้นานมาทำอะไรให้มันมีประโยชน์ซักที อยากรู้มานานแล้วว่าปืนลมของพี่ยิงออกไปเร็วเท่าไหร่ แต่ไม่มี Chronograph จริงๆ ซักอัน เลยตัดสินใจทำเองซะเลยด้วยเจ้า Arduino นี่แหละ
และนี่คือผลงานที่เสร็จสมบูรณ์:

หลักการทางวิศวกรรม
หัวใจของโปรเจคนี้คือการวัด "Time of Flight" (เวลาที่วัตถุใช้เดินทางในระยะทางที่กำหนด) เพื่อคำนวณความเร็วด้วยสูตรฟิสิกส์พื้นฐาน $v = s/t$
1. ระบบตรวจจับด้วยเซนเซอร์ (Optical Gate)
ดีไซน์นี้ใช้ Photodiode เป็นหลัก โดยแต่ละตัวจะไปกระตุ้นตัวเปรียบเทียบสัญญาณ LM339 เราใช้ Photodiode (แบบจีนราคาถูกๆ) 2 ตัวสำหรับเซนเซอร์ทั้งขาเข้าและขาออก โดยทำงานด้วยลอจิกแบบ Inclusive OR (หรือ) Photodiode แต่ละชุดจะถูกส่องสว่างด้วย LED อินฟราเรด 4 ดวง (รวม 8 ดวง) สร้างเป็นตาข่ายลำแสงแบบ 4x2 Beam Mesh การจัดวางแบบนี้ช่วยสร้างเครือข่ายลำแสงครอบคลุม เพื่อให้มั่นใจว่าแม้ลูกกระสุนจะผ่านแค่บางส่วนของลำแสงก็ยังตรวจจับได้อยู่
2. การประมวลผลสัญญาณด้วย LM339 Comparator
เมื่อมีความแตกต่างของแสงที่ Photodiode รับได้ มันจะส่งสัญญาณสูง (High) ไปยังขาอินพุตของ Arduino สัญญาณจาก Photodiode โดยทั่วไปเป็นสัญญาณอนาล็อกต่อเนื่อง การใช้ IC LM339 (Quad Differential Comparator) ช่วยปรับสภาพสัญญาณให้คมชัด:
- ลอจิก Inclusive OR: Photodiode แต่ละคู่ทำงานด้วยลอจิก OR หมายความว่าถ้าเซนเซอร์ใดก็ได้ในชุดเดียวกันถูกบัง สัญญาณเอาต์พุตจะถูกส่งออกทันที
- การปรับสภาพสัญญาณ: LM339 จะเปรียบเทียบแรงดันจาก Photodiode กับแรงดันอ้างอิงที่ตั้งค่าไว้ผ่านโพเทนชิออมิเตอร์ แล้วส่งสัญญาณดิจิทัล (High/Low) ที่คมชัดไปให้ Arduino เพื่อความแม่นยำในระดับไมโครวินาที

ลอจิกของซอฟต์แวร์ (Code Logic)
โปรแกรมบน Arduino ถูกเขียนโดยเน้นที่ความเร็วในการตอบสนองเป็นหลัก:
- รอเริ่มต้น: ระบบจะรอสัญญาณอินเตอร์รัปต์หรือการเปลี่ยนสถานะบนขาอินพุตแรก เมื่อลูกกระสุนผ่านเซนเซอร์แรก ฟังก์ชัน
micros()จะถูกเรียกทันทีเพื่อบันทึกเวลาเริ่มต้น - รอสิ้นสุด: ระบบจะรอสัญญาณจากเซนเซอร์ที่สอง เมื่อลูกกระสุนผ่านจุดนี้ เวลาปัจจุบันจะถูกบันทึกอีกครั้ง
- คำนวณ: ผลต่างของเวลา ($\Delta t$) จะถูกนำไปหารด้วยระยะทางคงที่ระหว่างเซนเซอร์ ผลลัพธ์ที่ได้คือความเร็ว ซึ่งสามารถแปลงเป็นเมตรต่อวินาที (m/s) หรือฟุตต่อวินาที (fps) ตามที่ต้องการได้
- แสดงผล: ผลลัพธ์จะแสดงบนหน้าจอ LCD เพื่อให้ผู้ใช้เห็นค่าทันที
ความท้าทายและการปรับเทียบ
ส่วนที่ยากที่สุดคือการปรับความไวของเซนเซอร์เพื่อให้ได้ผลลัพธ์ที่เชื่อถือได้ ทำได้โดยการปรับโพเทนชิออมิเตอร์สำหรับแต่ละ Photodiode กระบวนการนี้คือการ "ปรับแต่งความไว" ให้ไวพอที่จะตรวจจับลูกกระสุนเล็กๆ ได้ แต่ไม่ไวเกินไปจนสัญญาณรบกวนไฟฟ้าก่อให้เกิดการทริกเกอร์ผิดพลาด มันต้องใช้การลองผิดลองถูกซักพัก แต่เมื่อตั้งค่าได้แล้วก็แทบไม่ต้องมาแตะอีกเลย จนถึงตอนนี้มันทำงานได้สมบูรณ์แบบทุกครั้ง ถ้ายิงไม่หลุดศูนย์กลางไปซะจนเกินไป
ลองดูกันได้เลยน้องๆ ถ้าสนใจอยากทำอะไรแบบนี้ขึ้นมาบ้าง หรือมีปัญหาอะไรเกี่ยวกับการเลือกชิ้นส่วนและการจัดเรียงชั้นแสงอินฟราเรด พี่ยินดีให้คำปรึกษา! สู้งานนะน้อง