[ขอโทษที่ภาษาอังกฤษไม่ค่อยดีนะน้อง]
พี่ชอบการเซ็ตอัพ [2 servos arduino insects] ที่ฮิตๆ ในยูทูปมากเลย เวลาดูทีไรพี่ก็นึกถึงสิ่งที่พวกนักเล่น BEAM robotics เขาทำกันมาตั้งนานก่อนที่เซ็ตอัพนี้จะดังซะอีก พวกบ้าอะนาล็อกโรบอทเนี่ย เขาทำเรื่องการเดิน (gait) ได้ดีกว่าเพราะมุมระหว่างมอเตอร์สองตัวมันดีกว่า (อย่าง [microcore / bicore walker] อะไรแบบนี้)
แต่สำหรับพี่นะ ไม่มีตัวไหนที่ดูมีชีวิตชีวามากไปกว่า [VBug1.5] (หรือที่รู้จักกันในชื่อ Walkman) ที่สร้างโดย Mark Tilden ผู้ก่อตั้งวงการ beam robotics เลย มันใช้มอเตอร์ 5 ตัว เลยมีความคล่องตัวมากกว่า
การทำ BEAM robot ง่ายๆ ไม่ใช่เรื่องยาก แต่การจะสร้างอะไรที่ซับซ้อนแบบ VBug1.5 นี่อาจจะทำให้เด็กอิเล็กฯ มือใหม่อย่างพี่ท้อได้เลย (ฮา) พอพี่ตัดสินใจจะทำอะไรแบบแมลงของ Tilden บ้าง พี่ก็เลยต้องยอมใช้แพลตฟอร์ม Arduino นี่แหละ ตัวเลือกที่ง่ายที่สุดสำหรับคนไม่ใช่วิศวะ (หรือในกรณีของพี่ ที่น่าอายหน่อย คือคนที่อยากเป็นวิศวะ)
ผลลัพธ์ก็คือ [Walter] หุ่นยนต์แมลง Arduino 4 ขา 5 เซอร์โว น้องอาจจะสงสัย ถ้าพี่อยากได้หุ่นแมลงที่ดูมีชีวิต ทำไมไม่ใช้ 8 หรือ 12 เซอร์โวไปเลยล่ะ? คำตอบคือ พี่คิดถึงสิ่งที่ง่ายที่สุดที่พี่ทำได้ เพื่อให้ได้ความคล่องตัวมากที่สุดที่พี่จะมีได้ พี่กำลังพูดถึงการใช้กาวร้อนเยอะๆ แทนการทำโครงสร้างนั่นเอง
ล้วงลึกเทคนิคแบบจัดเต็ม
- การเดิน 5 เซอร์โว & จังหวะการเคลื่อนไหว:
- วิศวกรรมย้อนรอยแรงขับแบบ VBug: ไม่เหมือนกับหุ่นสี่ขา 4 เซอร์โวทั่วไป WALTER ใช้เซอร์โวตัวที่ 5 เป็น "กระดูกสันหลัง" หรือตัวสร้างสัญญาณสั่นสำหรับเลี้ยว กระบวนการคือการประสานการกวาดขากับการงอของกระดูกสันหลังเพื่อให้ได้การเดินที่ลื่นไหลเหมือนแมลงมากๆ ระบบวินิจฉัยจะจัดการกับสถานะการเดินหลักสองแบบ: Tripod-Gait สำหรับความมั่นคง และ Crawl-Gait สำหรับการเคลื่อนที่ด้วยความเร็วที่ต่างกัน $(3 \text{ ระดับความเร็ว})$
- การวินิจฉัยโครงสร้างด้วยกาวร้อน: เพื่อกำจัดน้ำหนักของโครงสร้างแข็ง เซอร์โวถูกยึดติดกันโดยตรงด้วยกาวร้อน วิธีนี้สร้างโครงกระดูกที่ยืดหยุ่นและลดแรงสั่นสะเทือน โดยที่ตัวเซอร์โวทำหน้าที่เป็นทั้งโครงสร้างและตัวขับเคลื่อน
- การนำทางด้วยแสงและเสียง:
- การวิเคราะห์สัญญาณแสง: พฤติกรรมการไล่แสงถูกควบคุมผ่านโฟโตไดโอด 4 ตัวที่จัดวางเป็นอาร์เรย์สี่ส่วน กระบวนการคือการวัดแรงดันไฟฟ้าต่างกันคร่อมตัวต้านทาน $100\text{k}\Omega$ pull-down ระบบวินิจฉัยจะระบุเวกเตอร์ของแสง $(\vec{L})$ และกระตุ้นจังหวะการเคลื่อนไหวเพื่อให้หุ่นยนต์เลี้ยวไปทางที่มีความเข้มแสงสูงสุด
- การตรวจจับสิ่งกีดขวางด้วยเซ็นเซอร์ 3 ตัว: เพื่อป้องกันการชน อาร์เรย์อัลตราโซนิก 3 ตัวจะให้มุมมอง $180^{\circ}$ กระบวนการคือการคำนวณ Time-of-Flight $(\mu\text{s})$ สำหรับแต่ละเซ็นเซอร์แยกกัน ถ้าตรวจพบเวกเตอร์การชน $(d < 20\text{cm})$ พฤติกรรมสุ่ม $(q)$ จะถูกกระตุ้น ทำให้หุ่นยนต์ถอยหลังหรือหมุน $90^{\circ}$
วิศวกรรมและการลงมือทำ
- ตรรกะการทำงานและการจัดการสายไฟ (Power-Rail Forensics):
- การวินิจฉัยด้วยเครื่องสถานะแบบเดินสุ่ม (Random-Walk State-Machine Diagnostics): เพื่อให้เหมือนสิ่งมีชีวิตมากขึ้น Arduino Pro Mini จะรันตัวสร้างการเดินสุ่ม การตรวจสอบ (Forensics) จะมีรอบ "พัก (Rest-Cycles)" และการสลับท่าเดินเป็นระยะๆ เพื่อให้แน่ใจว่ารอบไม่ติดลูปเมื่อเจอมุมแปลกๆ
- การจัดการแบตเตอรี่แบบจ่ายกระแสสูง (High-Current Power-Bank Orchestration): การควบคุมเซอร์โวมอเตอร์เกียร์โลหะ 5 ตัวต้องการกระแสที่มั่นคง การตรวจสอบใช้พาวเวอร์แบงค์สมาร์ทโฟน $2.1\text{A}$ มาป้อนสายไฟ VCC เพื่อให้แน่ใจว่า กระแสสตอลล์ (stall-currents) สูงๆ ของเซอร์โว MG90S จะไม่ทำให้ Arduino Pro Mini $16\text{MHz}$ ดับเพราะไฟตก (logic-brownouts)
- ข้อจำกัดในการตรวจจับพื้นผิว:
- ในเวอร์ชันแรกพยายามใช้เซ็นเซอร์สัมผัสที่เท้า การตรวจสอบพบว่า น้ำหนักตัวที่เบา $(\approx 300g)$ ของโครงสร้างที่ไม่มีตัวถัง (chassis-less frame) มันไม่พอที่จะกดปุ่มสวิตช์แบบกด (tact-switches) ให้ทำงานได้ (activation force $(N)$) การตรวจสอบในอนาคตจะอัพเกรดไปใช้การรับรู้แบบ capacitive หรือโพเทนชิโอมิเตอร์อนาล็อกแบบ "เขย่งเท้า (Tip-Toe)" แทน
พฤติกรรม (BEHAVIORS)
เหมือนหุ่นยนต์ Arduino ทั่วไป วอลเตอร์สามารถหลบสิ่งกีดขวางได้โดยใช้เซ็นเซอร์อัลตราโซนิค HC-SR04 เพื่อเพิ่มความเป็นแมลงให้มีตัวตน วอลเตอร์ยังเป็น "โฟโตวอร์ (photovore)" ด้วย แปลว่ามันถูกดึงดูดด้วยแสง โดยใช้โฟโตไดโอดในการตรวจจับแสง มีการสุ่มค่าในสเก็ตช์ Arduino เพื่อให้วอลเตอร์ตัดสินใจว่าจะหยุดพักเมื่อไหร่ และยังสุ่มเปลี่ยนความเร็วการเดินของมันด้วย (3 ความเร็ว)
ตอนเริ่มต้นทำ พี่ตั้งใจจะติดปุ่มแบบกด (tact buttons) ไว้ใต้เท้าทุกข้างของวอลเตอร์เพื่อให้มันมีเซ็นเซอร์ตรวจจับพื้นผิว แต่แบตเตอรี่ (พาวเวอร์แบงค์สมาร์ทโฟน) และเซอร์โวมันหนักไปหน่อย พี่รู้ว่าปุ่มพวกนี้หนักนิดเดียวแทบไม่ต่าง แต่ตลกดีที่น้ำหนักของหุ่นยนต์มันเบาเกินกว่าจะกดปุ่มที่ติดกลับหัวไว้ได้
พี่วางแผนจะทำวอลเตอร์เวอร์ชัน 2 ด้วยเซอร์โวที่ใหญ่ขึ้น แล้วค่อยใส่ปุ่มพวกนี้เป็นเซ็นเซอร์ตรวจจับพื้นผิว