กลับไปหน้ารวมไฟล์
obstacle-avoidance-robot-f436fc.md

ชื่อโปรเจกต์: Obstacle Avoidance Robot

ในบทความก่อนหน้านี้ พี่สอนเรื่องพื้นฐานการคุม L298N Motor Driver ไปแล้วนะ คราวนี้มาดูกันหน่อยว่าไอ้เจ้าบอร์ดตัวนี้มันจะมีประโยชน์แค่ไหนในงานสาย Robotics

เวลาเราจะปั้นหรือออกแบบระบบหุ่นยนต์สักตัวเนี่ย เราต้องเช็กให้ชัวร์ว่าเราเก็บครบ 5 หัวข้อหลักนี้หรือยัง :

อย่างแรก, โจทย์และหน้าที่ของมัน (The Task & functionality), ในตัวอย่างนี้ โจทย์ของเราคือการทำหุ่นยนต์ **ดูดฝุ่น** และหน้าที่ที่ต้องมีเพื่อให้งานสำเร็จก็คือ **การหลบหลีกสิ่งกีดขวาง (Avoiding obstacles)** เพราะงั้นโฟกัสที่จุดนี้แล้วทำออกมาให้เนียนนะน้อง

อย่างที่สอง, ค่า Input และ [Sensor](https://s.shopee.co.th/7VBG2rX65j) ที่ใช้เก็บข้อมูล, เราต้องรู้ก่อนว่าค่าที่เราสนใจคืออะไร แล้วค่อยไปถอย Sensor ที่เหมาะสมมาใช้ ในโปรเจกต์นี้สิ่งที่เราอยากรู้คือ **สิ่งกีดขวาง** ดังนั้น Sensor ที่ตอบโจทย์ที่สุดก็คือ **Ultrasonic range finder** ที่พี่เคยเหลาพื้นฐานให้ฟังไปแล้วในบทความแรกไงล่ะ

อย่างที่สาม, สมองกล! (The brain) พอได้ข้อมูลมาแล้ว มันก็ต้องมีการ **ประมวลผล (Data processing)** ซึ่งการจะเลือกเทคโนโลยีสมองกลให้เป๊ะบางทีมันก็แอบเขี้ยวอยู่นะ แต่สำหรับงานนี้ เราใช้แค่ **Micro-controller** มาสั่งงานอย่างเดียวก็พอ เช่นบอร์ดพิมพ์นิยมอย่าง **[Arduino](https://s.shopee.co.th/7fUgFAWSki) Uno** จัดไปวัยรุ่น!

อย่างที่สี่, ภาคเอาต์พุต (The actuators), เคสนี้นอนมาเลยก็คือ **Motors** นั่นเอง หลังจากที่ **Micro-controller** ประมวลผลข้อมูลจาก **Sensor** เสร็จแล้ว ก็ถึงเวลาสั่งการให้ Actuators "ขยับ" ตามที่เราเขียนโปรแกรมไว้... แหม การได้เป็น Programmer สั่งการทุกอย่างได้เนี่ยมันหล่อเท่จริงๆ ว่าไหม?

อย่างที่ห้า , ขุมพลัง!!! (Power!!!) จุดนี้แหละที่จะบังคับให้เราต้องเปิด Datasheet เพื่อคำนวณว่าต้องใช้แรงดันไฟเท่าไหร่ถึงจะรอด สำหรับงานนี้ แบตเตอรี่ **9V** ถือว่ากำลังสวย เมื่อเทียบกับค่า Voltage drop ของบอร์ด **L298N** และ **Arduino Uno** ส่วนหลักการทำงานของ **L298N** พี่เคยอธิบายไว้แล้วในบทความก่อนๆ ไปย้อนดูได้

สุดท้ายนะไอ้น้อง ทุกอย่างที่ว่ามาต้องจับมายัดลงบน **Chassis** หุ่นยนต์ให้เรียบร้อย! เอาล่ะ เลิกกลัวมือเลอะแล้วลงมือทำได้แล้ว!

รายละเอียดเทคนิคเพิ่มเติม (ฉบับจัดเต็ม)

Ultrasonic Rangefinding

หุ่นยนต์ตัวนี้มันเดินเองได้เพราะใช้หลักการ "สะท้อนเสียง" เหมือนพวกค้างคาวเลยนะน้อง

  • HC-SR04 Sensor: เจ้า Arduino จะส่งสัญญาณ Trigger ขนาด 10µs ไปที่ตัวเซนเซอร์ จากนั้นก็นับเวลาที่สัญญาณสะท้อนกลับมาที่พิน Echo แล้วเราก็เอาความเร็วเสียง (343 เมตร/วินาที) มาคำนวณหาระยะทางจนถึงวัตถุที่ใกล้ที่สุด ห้ามลืมสูตรนะเว้ย!
  • Sweep Logic: ในหลายๆ เวอร์ชั่น พี่จะเอา Sensor ไปติดไว้บน Micro Servo ทำให้หุ่นยนต์มัน "ส่ายหัว" มองซ้ายมองขวาก่อนจะตัดสินใจเลี้ยวได้ด้วย โคตรล้ำ!

Navigational Algorithms (อัลกอริทึมการเดิน)

  • Threshold Detection: ถ้าเจอวัตถุในระยะ 20cm หุ่นยนต์จะหยุดกึก! แล้วถอยหลังนิดนึง จากนั้นมันจะสแกนหาทางออกทั้งซ้ายและขวา แล้วเลือกเลี้ยวไปทางที่ไม่มีอะไรขวาง หรือทางที่ทางสะดวกที่สุดนั่นเอง
  • Motor Control: เราคุมผ่าน L298N หรือ L293D H-Bridge เพื่อให้ Arduino สั่งแยกความเร็วและทิศทางของล้อซ้าย-ขวาได้อิสระ จะหมุนตัวแบบวงแคบ (Zero-radius turns) ก็ทำได้สบายๆ สู้งานนะน้อง!

ข้อมูล Frontmatter ดั้งเดิม

title: "Obstacle Avoidance Robot"
description: "Have you ever seen a vacuum cleaner robot? Have you been wondering what was its main functionality? Then check out this tutorial!"
author: "Fouad_Roboticist"
category: ""
tags:
  - "embedded"
  - "robots"
views: 3564
likes: 0
price: 699
difficulty: "Intermediate"
components:
  - "1x Arduino UNO"
  - "1x 9V battery (generic)"
  - "1x Premium Male/Male Jumper Wires, 40 x 3\" (75mm)"
  - "1x Premium Female/Male Extension Jumper Wires, 40 x 6\" (150mm)"
  - "1x 9V Battery Clip"
  - "1x Dual H-Bridge motor drivers L298"
  - "1x Ultrasonic Sensor - HC-SR04 (Generic)"
  - "1x Toggle Switch, Toggle"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles:
  - "https://projects.arduinocontent.cc/1b2e6045-c9a5-42ad-b708-5cd233be080e.ino"
  - "https://projects.arduinocontent.cc/1b2e6045-c9a5-42ad-b708-5cd233be080e.ino"
documentationLinks: []
passwordHash: "61d5aefb99439d8a189c25278ba3e330f980c207dc5cff523a192735f77d0d48"
encryptedPayload: "U2FsdGVkX181D7MWBFeqGt25w5/5RU5sjSQMMYqpds0ubO2JEQs4d7jwUnjislOb3Wqp05flNrdScykkH7H9uUf4tsWcYPTrFMii4EWOG/w="
seoDescription: "Learn to build an Obstacle Avoidance Robot with Arduino. Discover its core functionality in this easy-to-follow tutorial."
videoLinks:
  - "https://www.youtube.com/embed/E4GMPTPF0GI"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/obstacle-avoidance-robot-f436fc_cover.jpg"
lang: "th"