เกี่ยวกับโปรเจคนี้
เราเรียกมันว่า RobotO นี่เป็นเวอร์ชัน 3 เลยได้ชื่อว่า RobotO.3 มาแนะนำให้รู้จักกันดีกว่า RobotO.3 คือ หุ่นยนต์หลบหลีกสิ่งกีดขวางและตรวจจับขอบโต๊ะ (ป้องกันตก) ที่ใช้ Arduino UNO เป็นฐาน โดยใช้เซ็นเซอร์อัลตราโซนิค HC-SR04 เพื่อตรวจจับสิ่งกีดขวาง และใช้ โมดูลเซ็นเซอร์อินฟราเรด (IR Sensor Module) เพื่อตรวจจับขอบโต๊ะ ป้องกันไม่ให้มันร่วงลงไป
RobotO.3 เป็นตัวที่สาม ของซีรี่ส์ RobotO เลยมีฟีเจอร์เพียบ หลักๆ แล้วมันสามารถทำงานได้สองโหมด โหมดแรกคือโหมดอัตโนมัติ และโหมดที่สองคือโหมดควบคุมด้วยมือผ่านมือถือ Android ทางบลูทูธ โดยใช้โมดูล HC-05 Bluetooth สำหรับการสื่อสาร
โหมดควบคุมด้วยมือ (Manual Mode):
ค่าเริ่มต้นคือโหมดควบคุมด้วยมือ หรือเราสามารถส่งคำสั่ง mo:0 ผ่านมือถือด้วยแอป RobotO หรือแอปควบคุม Arduino ตัวไหนก็ได้เพื่อตั้งให้มันเป็นโหมดนี้ ในโหมดนี้ เราสามารถควบคุมมันผ่านแอป RobotO ได้ เช่น เดินหน้า เลี้ยวซ้าย เลี้ยวขวา ถอยหลัง เราสามารถควบคุมความเร็ว ทิศทาง และยังเล่นเสียงเมโลดี้/แตรได้อีกด้วย
โหมดอัตโนมัติ (Automatic Mode):
โดยการส่งคำสั่ง mo:1 เราจะตั้งให้มันเป็นโหมดอัตโนมัติ ในโหมดนี้ มันจะตัดสินใจเองอัตโนมัติจากข้อมูลเซ็นเซอร์ ถ้าตรวจพบสิ่งกีดขวางในเส้นทาง มันจะส่งเสียงแตร ถ้าสิ่งกีดขวางหายไป มันจะเคลื่อนที่ต่อในทิศทางเดิม ถ้าไม่หาย มันจะเลี้ยวซ้ายหรือขวาโดยตรวจสอบทางซ้ายและขวาด้วยเซอร์โวมอเตอร์ 9g และเซ็นเซอร์อัลตราโซนิค ถ้าทุกทิศทางถูกสิ่งกีดขวางปิดกั้นหมด มันจะหยุดและเล่นเสียงเมโลดี้!
ฟีเจอร์หลัก:
โหมดการทำงาน: อัตโนมัติ และควบคุมจากระยะไกล
ความสามารถในการตรวจจับสิ่งกีดขวาง
ป้องกันการตกหรือตรวจจับขอบโต๊ะ
เล่นเสียงแตรและเมโลดี้
ควบคุมความเร็วได้
ลิสต์คำสั่ง:
โหมดอัตโนมัติ: mo:1
โหมดควบคุมด้วยมือ: mo:0
เล่นเมโลดี้: ml
ความเร็ว: sp:255 (0-255)
เซอร์โว: sr:180 (0-180)
แตร: tn:500 (เวลาเป็นมิลลิวินาที)
Kinematic Survival: สถาปัตยกรรมโรเวอร์ตรวจจับขอบโต๊ะแบบจัดเต็ม!
โรบอตหลบหลีกสิ่งกีดขวางที่ใช้แค่เซ็นเซอร์อัลตราโซนิก (Ultrasonic) อย่างเดียวเนี่ย มันคือการ "ขับรถตาบอด" แบบสุดๆ! มันอาจจะชนกำแพงไม่เป็นท่า แต่ลองวางมันบนโต๊ะสิ เซ็นเซอร์อัลตราโซนิกยิงคลื่นไปในอากาศโล่งๆ แล้วก็ตอบกลับมาว่า "ปลอดภัยจ้า" ผลลัพธ์? โรบอตของเราก็จะพุ่งทะยานออกจากขอบโต๊ะแบบไม่คิดชีวิต แล้วมอเตอร์ก็กระจายเป็นชิ้นๆ กับพื้นคอนกรีต! โรบอตตรวจจับขอบโต๊ะ ตัวนี้แหละที่จะมาแก้ปัญหากลศาสตร์ฝันร้ายนี้ให้หมดไป! ด้วยการติดตั้ง เซ็นเซอร์อินฟราเรด (IR) ตรวจจับระยะใกล้ ที่ไฮเปอร์เซนซิทีฟไว้ใต้ตัวรถชิดพื้น พร้อมยิงลำแสงอินฟราเรดจ่อลงไปที่พื้น Arduino ของเราก็จะคอยเช็คสถานะ "พื้น" อยู่ตลอด ทันทีที่ลำแสง IR ส่องลงไปแล้วไม่สะท้อนกลับมา มันจะคำนวณได้ทันทีว่ามี "เหว" อยู่ข้างหน้า และจะสั่งงานโปรโตคอลฉุกเฉิน ถอยหลัง (REVERSE) แบบด่วนพิเศษทันที!

เมทริกซ์ฮาร์ดแวร์ "เซ็นเซอร์เหว" IR แบบลึก
เซ็นเซอร์ตรวจจับสิ่งกีดขวางอินฟราเรด (เช่น TCRT5000 หรือโมดูล IR Proximity) จะยิงโฟตอนอินฟราเรดที่มองไม่เห็นลงไปตรงๆ
- ถ้ามีพื้นผิว (เช่น โต๊ะ) อยู่ด้านล่างทันที (เช่น
< 2 นิ้ว) โฟตอนจะสะท้อนกลับมาที่โฟโตไดโอดอย่างรุนแรง ขาพินดิจิตอลของเซ็นเซอร์จะส่งค่าLOW (0V)ออกมา ซึ่งแปลว่า "พื้นปลอดภัย!" - ทันทีที่ล้อของโรเวอร์โผล่พ้นขอบโต๊ะ โฟตอนทั้งหมดจะหายไปในอากาศโล่งๆ ของห้อง! สัญญาณเอาต์พุตของเซ็นเซอร์จะกระโดดขึ้นเป็น
HIGH (5V)ทันที ซึ่งเป็นสัญญาณอันน่าสะพรึงกลัวว่า "ตรวจพบเหว!"
int cliffSensorLeft = 4;
int cliffSensorRight = 5;
void loop() {
int groundStatusLeft = digitalRead(cliffSensorLeft);
int groundStatusRight = digitalRead(cliffSensorRight);
// ถ้าเซ็นเซอร์ตัวใดตัวหนึ่งตรวจจับพื้นไม่ได้!
if (groundStatusLeft == HIGH || groundStatusRight == HIGH) {
// หยุดการเคลื่อนที่ไปข้างหน้าทันที!
ReverseMotorsViolently();
delay(500); // ถอยหลังแบบจัดเต็ม 500ms เพื่อปกป้องตัวถัง!
SpinRight180Degrees(); // หมุนตัวหนีเหวแบบสุดเหวี่ยง!
delay(400);
} else {
// อัลกอริทึมหลบหลีกสิ่งกีดขวางหลักด้วย HC-SR04 ทำงานปกติ
executeStandardUltrasonicAlgorithm();
}
}
ความสำคัญของการแยกแหล่งจ่ายไฟของ L298N!
การสั่งงาน ReverseMotorsViolently() แบบรุนแรงนั้น ต้องการให้ ไดรเวอร์มอเตอร์ L298N H-Bridge เปลี่ยนขั้วไฟฟ้าให้กับมอเตอร์เกียร์ TT ทันที!
- สิ่งนี้ทำให้เกิดสไปก์แรงดัน "แบ็ก EMF" ที่น่ากลัวไหลย้อนกลับเข้าสู่แหล่งจ่ายไฟ 5V!
- ถ้า Arduino และ L298N ใช้แบตเตอรี่ก้อนเดียวกันเป๊ะๆ โปรเซสเซอร์มักจะรีเซ็ตตัวเองทันทีที่เจอขอบโต๊ะ ผลก็คือโรบอตตกโต๊ะอยู่ดี!
- คุณ ต้อง ใช้แหล่งจ่ายไฟแยกกันโดยสิ้นเชิง หรือต้องมั่นใจว่า L298N ได้รับไฟจากแบตเตอรี่แรงดันสูง (เช่น 7.4V/12V) ที่แยกออกมาจากวงจรลอจิก 5V ของ Arduino อย่างชัดเจน! อย่าลืมนะ ห้ามช็อตนะตัวนี้!
อุปกรณ์ขั้นเทพสำหรับ Rover สุดแกร่ง
- Arduino Uno Rev3 (สมองกลหลักสำหรับตัดสินใจเรื่องการเคลื่อนไหว)
- โมดูลขับมอเตอร์ L298N (ตัวนี้ต้องมี! ไว้จ่ายกระแส PWM สุดโหดให้มอเตอร์ล้อหมุนปรื๊ด)
- เซ็นเซอร์วัดระยะอัลตราโซนิค HC-SR04 ติดตั้งบน Servo SG90 (เหมือนป้อมปืนสแกน 360 องศา คอยตรวจจับสิ่งกีดขวางรอบตัวแบบเรียลไทม์)
- เซ็นเซอร์วัดระยะอินฟราเรด (IR) หันหน้าลงพื้น 2 ตัว (เมทริกซ์เซ็นเซอร์ป้องกันตกเหว ช่วยชีวิตโรเวอร์! ปรับค่า Potentiometer บนบอร์ดให้ตรวจจับขอบโต๊ะที่
< 5cmแม่นยำปรี๊ด)