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

ระบบกันเบี้ยวด้วย Stepper (แบบฉบับพี่สอนน้อง)

พี่จัดโปรเจกต์นี้มาเพราะต้องแก้ปัญหาไอ้เครื่องทำ Stencil ตัวเก่าที่บ้านมันงอแง เดินไม่ตรงทางซะที งานนี้เลยต้องออกโรงแก้บัคซะหน่อย โดยหลักการทำงานของมันคือ:

พอ [Sensor](https://s.shopee.co.th/7VBG2rX65j) ตรวจเจอว่าแผ่น Stencil มันเริ่มเบี้ยวหรือขยับออกจากแนวเล็กน้อย Stepper มอเตอร์ก็จะหมุนคันโยกเพื่อตบแผ่น Stencil ให้กลับมาเข้าที่เข้าทางตามแนวที่ถูกต้อง หล่อเท่เลยงานนี้

อ้อ ถ้าอยากสลับการทำงานให้เป็นตรงกันข้าม ก็แค่ไปเอาเครื่องหมาย ! ตรงบรรทัด if (detect != HIGH) ออกนะน้อง ง่ายๆ อย่าไปคิดเยอะ
void setup() {
Serial.begin(9600);
pinMode(3, INPUT); //IR Sensor
pinMode(8, OUTPUT); // Stepper Direction
pinMode(9, OUTPUT); // Stepper Step
digitalWrite(8, LOW);
digitalWrite(9, LOW);
}
void loop() {
int detect = digitalRead (3);
if (detect != HIGH){
digitalWrite(9, HIGH);
delayMicroseconds(500);
digitalWrite(9, LOW);
delayMicroseconds(500);
}
else{
if(detect == LOW)
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(500);
}
}

*พี่ตั้งความเร็ว (Speed) ไว้ที่ 500ms นะ สู้งานนะน้อง

รายละเอียดทางเทคนิคแบบจัดเต็ม (Expanded Technical Details)

ระบบนำทางหุ่นยนต์หลบสิ่งกีดขวางแบบแม่นยำสูง

โปรเจกต์นี้เลือกใช้ Stepper มอเตอร์แทนมอเตอร์ DC กิ๊กก๊อกทั่วไปสำหรับหุ่นยนต์ Rover เพื่อให้ได้ความแม่นยำระดับต่ำกว่ามิลลิเมตร (Sub-millimeter) ในการเคลื่อนที่หลบสิ่งกีดขวาง

  • คำนวณมุมเลี้ยวแบบเนียนๆ (Calculated Angular Maneuvers): ใช้ 28BYJ-48 Stepper Motor สองตัวคู่กับ Driver ULN2003 ตัว Arduino จะคำนวณจำนวน Step ที่ต้องใช้เพื่อให้เลี้ยวได้ 90 หรือ 180 องศาแบบเป๊ะๆ หุ่นยนต์แกจะได้ไม่เดินเบี้ยวเดินเซไปชนขาตู้
  • ระบบสแกนด้วย Ultrasonic แบบ Differential: เมื่อเจอสิ่งกีดขวาง Arduino จะสั่งรัน "Scanning Routine" โดยให้ Stepper ค่อยๆ ขยับทีละ Step เพื่อหาช่องว่างที่กว้างที่สุดก่อนจะตัดสินใจพุ่งตัวออกไป

ความแม่นยำ (Accuracy)

  • ระบบแก้ระยะฟรี (Zero-Backlash Navigation): ใน Firmware พี่ใส่ Algorithm "Backlash Compensation" ไว้ให้ด้วย เพื่อชดเชยระยะฟรีของเฟืองเกียร์ใน Stepper ราคาถูกๆ ทำให้การเคลื่อนที่ออกมาดูโปรระดับ Professional เลยล่ะวัยรุ่น!

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

title: "Obstacle Avoidance Stepper"
description: "When sensor detects movement the stepper motor activates. Can be reversed by removing the ! in if cycle."
author: "ivanmih99"
category: ""
tags:
  - "stepper"
  - "arduino"
  - "easydriver"
  - "uno"
  - "bipolar"
  - "obstacle avoidance sensor"
views: 2270
likes: 0
price: 1499
difficulty: "Intermediate"
components: []
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "fed90a3533d21a1812ebd77530e1ba10bd068dc6c42fd756eff20ba5009eac91"
encryptedPayload: "U2FsdGVkX1/kYZoCyeA+PmPsAWPMBDXoUotUqBpPu/hNv2b4edOyITr3dykwkuqvC3iWaHnb+5YlfgQrk3FTXGyRPuRZW1MnfmG/JuWy2xk="
seoDescription: "Arduino project using a Sensor to trigger a Stepper Motor. Includes instructions to reverse motor direction in the code."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/obstacle-avoidance-stepper-509ffd_cover.jpg"
lang: "th"