หุ่นยนต์หลบสิ่งกีดขวางด้วย HC-SR04 และ IR Sharp บน ESP32

ทำไม ultrasonic ตัวเดียวไม่พอสำหรับหุ่นหลบสิ่งกีดขวาง และวิธีใช้ IR หันเฉียง ±35° เลือกทางเลี่ยง พร้อมวงจร ESP32 รายการชิ้นส่วน และโปรแกรมที่ลองในตัวจำลองได้

อัปเดต 2026-10-31

หุ่นหลบสิ่งกีดขวางเป็นโปรเจกต์แรกของหลายคน วิธีที่พบบ่อยคือติด HC-SR04 ไว้ด้านหน้าตัวเดียว ซึ่งใช้ได้กับกำแพงที่อยู่ตรงหน้า แต่หุ่นมักชนขอบโต๊ะ ขาเก้าอี้ หรือของที่อยู่เฉียงหน้า บทความนี้เพิ่ม IR อีกสองตัวหันเฉียงซ้ายขวา เพื่อให้หุ่นรู้ว่าควรเลี้ยวไปทางไหน

เปิดหุ่นหลบสิ่งกีดขวางในตัวจำลอง →

หุ่นยนต์หลบสิ่งกีดขวางในตัวจำลอง มีเส้นของ sonar และ IR สองตัวหันเฉียงหน้า

ทำไม sonar ตัวเดียวไม่พอ

ชุดเซนเซอร์

เซนเซอร์ตำแหน่งหน้าที่
HC-SR04หน้าตรงระยะของที่อยู่ตรงหน้า วัดได้ไกล
Sharp GP2Y0A21 × 2หน้าซ้าย −35° และหน้าขวา +35°บอกว่าฝั่งไหนโล่งกว่า และจับของที่อยู่เฉียง
Micro switchกันชนหน้าด่านสุดท้ายเมื่อชนจริง

ลำดับการตัดสินใจ

  1. วิ่งไปข้างหน้าที่กำลังมอเตอร์ 60 %
  2. ถ้า sonar วัดได้ใกล้กว่า 35 cm หรือกันชนถูกกด ให้หยุดแล้วถอยหลัง 0.4 วินาที
  3. เทียบระยะจาก IR ซ้ายกับขวา แล้วหมุน 70° ไปทางที่โล่งกว่า
  4. วิ่งต่อ
const list = Object.entries(rover.sensors());
const ir = side => list.filter(([, s]) => s.type === 'ir' && s.name.toLowerCase().includes(side)).map(([id]) => id);
const left = ir('left'), right = ir('right');

rover.drive(0.6);
while (true) {
  if ((rover.distance() ?? 999) < 35 || rover.bumped()) {
    rover.stop();
    await rover.backward(0.4);
    // หมุนไปฝั่งที่โล่งกว่า
    const l = Math.min(999, ...left.map(rover.read)), r = Math.min(999, ...right.map(rover.read));
    await rover.turn(l > r ? -70 : 70);
    rover.drive(0.6);
  }
  await wait(0.05);
}

โปรแกรมนี้คือตัวอย่าง “เดินเล่นหลบสิ่งกีดขวาง” ในหน้า Code ของตัวจำลอง ลองแก้ระยะ 35 cm หรือมุม 70° แล้วดูว่าหุ่นติดมุมน้อยลงหรือไม่

ชิ้นส่วน

ชิ้นส่วนสำหรับ ESP32 DevKit V1
ชิ้นส่วนจำนวนราคาประมาณ
ESP32 DevKit V1 (30 ขา)1฿130–฿250
TB6612FNG motor driver1฿50–฿120
Ultrasonic HC-SR041฿30–฿60
Sharp GP2Y0A21 IR 10–80 cm
ซื้อพร้อมสาย JST 3 ขา
2฿150–฿300
Micro switch แบบมีก้าน (bumper)1฿5–฿20
OLED SSD1306 0.96" I²C1฿80–฿150
ชุดแชสซี 2WD
มีมอเตอร์ TT 2 ตัว ล้อ 2 ล้อ และล้อ caster
1฿150–฿300
ถ่าน Li-ion 186502฿60–฿150
รางถ่าน 18650 แบบ 2 ก้อน (2S)1฿20–฿60
Buck converter 7.4 V → 5 V 3 A1฿30–฿90
สวิตช์เปิด-ปิด1฿5–฿20
สายจัมเปอร์ ผู้-ผู้ / ผู้-เมีย ชุด 40 เส้น1฿30–฿60
ตัวต้านทาน 1 kΩ + 2 kΩ (แบ่งแรงดัน 5 V → 3.3 V)1฿2–฿10
แนะนำเพิ่ม
ที่ชาร์จถ่าน 186501฿100–฿250
รวมโดยประมาณ฿952–฿2,040

ราคาประมาณการ ณ 2026-10-31 ยังไม่ได้ตรวจกับร้าน

การต่อขา

การต่อขาบน ESP32 DevKit V1 (จัดขาอัตโนมัติจากตัวจำลอง)
TB6612FNG
Motors
VM → แบต 7.4 V
VCC → 3V3
GND → GND
PWMA → GPIO25
AIN1 → GPIO27
AIN2 → GPIO14
PWMB → GPIO26
BIN1 → GPIO13
BIN2 → GPIO4
STBY → 3V3 (ต่อค้างไว้)
HC-SR04
Front sonar
VCC → 5V
TRIG → GPIO19
ECHO → GPIO34
GND → GND
GP2Y0A21
IR front-left
VCC → 5V
GND → GND
VO → GPIO32
GP2Y0A21
IR front-right
VCC → 5V
GND → GND
VO → GPIO33
Microswitch
Front bumper
COM → GND
NO → GPIO18
SSD1306
Face Display
GND → GND
VCC → 3V3
SCL → GPIO22
SDA → GPIO21

ข้อควรรู้เมื่อใช้ IR Sharp ของจริง

ต่อยอด

เมื่อหุ่นหลบของได้แล้ว ลองเพิ่มหัวหมุนกับ LDR ให้หุ่นมีเป้าหมาย ดู หุ่นยนต์หาแสง หรือให้ AI ตัดสินใจแทนโปรแกรม ดู ให้ AI ขับหุ่นผ่าน MCP

เปิดหุ่นตัวนี้แล้วจัดสนามทดสอบเอง →

ฝังตัวจำลองนี้ในเว็บหรือบล็อกของคุณ

คัดลอกโค้ดนี้ไปวางใน HTML ของหน้าเว็บ ผู้อ่านจะเห็นสนามจำลองพร้อมปุ่มรันโปรแกรมตัวอย่าง

<iframe src="https://ai-rover.app/app/?preset=obstacle-avoider&embed=1" title="หุ่นยนต์หลบสิ่งกีดขวาง – AI Rover Studio" width="720" height="520" style="max-width:100%;border:0;border-radius:12px" loading="lazy"></iframe>