กลับไปหน้ารวมไฟล์
autonomous-controllable-lego-car-4c16b3.md

Autonomous Controllable LEGO Car

จากโปรเจกต์รถ Autonomous พื้นฐาน ได้พัฒนาไปสู่หุ่นยนต์อัจฉริยะที่สามารถทำงานได้หลายโหมดที่หลากหลาย รวมถึงการหลีกเลี่ยงสิ่งกีดขวางอัตโนมัติ และการควบคุมระยะไกลผ่านรีโมต IR (infrared) โปรเจกต์นี้เป็นการรวมชุดตัวต่อ LEGO Mindstorms ที่ยืดหยุ่นสูงเข้ากับความสามารถในการควบคุมเชิงลึกอันทรงพลังของไมโครคอนโทรลเลอร์ Arduino Uno

Demonstration Videos

โหมดขับเคลื่อนอัตโนมัติ (Autonomous Driving Mode): ในโหมดนี้ หุ่นยนต์จะใช้ระบบเซ็นเซอร์ในการตัดสินใจเลือกเส้นทางด้วยตนเอง Watch Autonomous Operation Demo

โหมดควบคุมระยะไกล (Remote Control Mode (Manual IR Control)): คำสั่งแบบเรียลไทม์เพื่อควบคุมทิศทางและฟังก์ชันเสริมต่างๆ Watch Remote Control Demo


Mechanical Design

โครงสร้างหลักของรถสร้างขึ้นทั้งหมดจากชิ้นส่วน LEGO Mindstorms NXT โดยอ้างอิงการออกแบบ 3-motor chassis พื้นฐาน ซึ่งให้ความแข็งแรงและสมดุลที่ดี

Arduino Uno ถูกติดตั้งในตำแหน่งเดิมของชุดแบตเตอรี่ NXT เพื่อรักษาสมดุลจุดศูนย์ถ่วง (Center of Gravity) ของรถ การติดตั้ง Servo Motor, Stepper Motor และแบตเตอรี่เสริมผ่านการทดสอบการออกแบบเชิงทดลองเพื่อให้แน่ใจว่ามีการติดตั้งที่มั่นคงที่สุด แม้ในระหว่างการเคลื่อนที่ของรถอย่างรวดเร็ว

มุมมองด้านหน้า: แสดงการติดตั้ง Stepper Motor และกันชนหน้า
มุมมองด้านหลัง: การจัดวางชุดแบตเตอรี่เพื่อจ่ายพลังงานให้กับระบบ

Sensing & Scanning

หัวใจสำคัญของการรับรู้สภาพแวดล้อมคือ Ultrasonic Sensor ซึ่งติดตั้งอยู่บน Stepper Motor สูงจากพื้นประมาณ 5 นิ้ว การใช้ Stepper Motor แทนการติดตั้งแบบตายตัวทำให้หุ่นยนต์มีรัศมีวิสัยทัศน์ที่กว้างขึ้น

  • ตรรกะการสแกน: ในโหมดอัตโนมัติ Stepper Motor จะทำการสแกนมุมกว้างอย่างต่อเนื่อง หากตรวจพบสิ่งกีดขวางภายในระยะที่กำหนด โปรแกรมจะสั่งให้ Stepper ทำการสแกน 360 องศาโดยละเอียดแบบองศาต่อองศารอบตัว เพื่อคำนวณเส้นทางที่ปลอดภัยที่สุด
  • การป้องกันทางกายภาพ: นอกจากระบบ Ultrasonic แล้ว ยังมีการติดตั้ง Push Button ทั้งที่กันชนหน้าและหลัง เพื่อทำหน้าที่เป็น fail-safe ในกรณีที่วัตถุมีขนาดเล็กเกินไป หรืออยู่ในตำแหน่งที่คลื่น Ultrasonic ไม่สามารถตรวจจับได้
ชุดสแกนเนอร์: Stepper Motor หมุน Ultrasonic Sensor เพื่อสร้างแผนที่ระยะห่าง

Actuation & Features

ฟังก์ชันที่น่าสนใจอย่างหนึ่งคือ ระบบ "Kicker" ซึ่งเป็นกลไกการเตะที่ขับเคลื่อนด้วย Servo Motor ที่ติดตั้งอยู่ด้านขวาของรถ พร้อมด้วยตรรกะที่ตั้งโปรแกรมไว้ดังนี้:

  1. โหมดโจมตี (Attack Mode): หาก Ultrasonic sensor ตรวจจับวัตถุในระยะใกล้ (น้อยกว่า 15 ซม.) หุ่นยนต์จะสั่งให้ Servo ปล่อยกลไกการเตะออกไปทันที และถอยหลังเพื่อรักษาระยะห่าง ฟังก์ชันนี้สามารถปรับใช้เพื่อสร้างหุ่นยนต์เล่นฟุตบอลในอนาคตได้
  2. โหมดหลีกเลี่ยง (Avoidance Mode): หากตรวจพบวัตถุภายในระยะ 15 - 50 ซม. หุ่นยนต์จะคำนวณทิศทางเพื่อเลี้ยวและหลีกเลี่ยงโดยอัตโนมัติ
  3. โหมดลาดตระเวน (Cruising Mode): หากไม่มีวัตถุขวางเส้นทางภายในระยะ 50 ซม. รถจะขับตรงไปข้างหน้าและหยุดเป็นระยะเพื่อสแกนหาเส้นทางใหม่ ทำให้สามารถสำรวจแบบสุ่มได้
กลไก Kicker ที่เชื่อมต่อกับ Servo Motor สำหรับการโต้ตอบกับวัตถุ

Motor Control & IR Logic

สำหรับการขับเคลื่อน ผมเลือกใช้มอเตอร์จากชุด LEGO NXT ดั้งเดิม เนื่องจากมี Torque สูง อย่างไรก็ตาม เพื่อให้สามารถใช้งานร่วมกับ Arduino ได้ จำเป็นต้องมีการปรับแต่งสายสัญญาณ:

  • อินเทอร์เฟซฮาร์ดแวร์: สายมอเตอร์ NXT ถูกถอดฉนวน โดยใช้เพียงสองเส้น (สีดำและสีขาว) เพื่อรับสัญญาณไฟ DC
  • Motor Driver: สายทั้งสองเส้นเชื่อมต่อกับ L9110 Dual Motor Driver ทำให้ Arduino สามารถควบคุมทิศทางการหมุนและความเร็วได้อย่างแม่นยำผ่านสัญญาณ PWM (Pulse Width Modulation)

สำหรับระบบควบคุมระยะไกล ผมได้ติดตั้ง IR Receiver เพื่อรับสัญญาณจากรีโมตทีวี

  • การถอดรหัส IR: การทำงานอาศัยไลบรารี IRremote.h เราจำเป็นต้องจับคู่ค่าเลขฐานสิบหกของแต่ละปุ่มบนรีโมตเข้ากับฟังก์ชันที่ต้องการ ตัวอย่างเช่น ปุ่มเพิ่มเสียงอาจสั่งให้รถเคลื่อนที่ไปข้างหน้า หรือปุ่มเปลี่ยนช่องอาจสั่งให้รถเลี้ยว
  • ความหลากหลาย: ผู้ใช้สามารถสลับโหมดการทำงานได้ทันทีจากรีโมต ไม่ว่าจะเป็นการควบคุมด้วยตนเอง การสั่งให้มอเตอร์สแกนเนอร์ทำงาน หรือการเข้าสู่ "Bumper Mode" (การทำงานอัตโนมัติโดยใช้เฉพาะ Push Button ที่กันชน)
IR Receiver ติดตั้งในตำแหน่งที่สามารถรับสัญญาณได้ทุกทิศทาง
แผนภาพการกำหนดฟังก์ชันสำหรับแต่ละปุ่มบนรีโมตควบคุม

โปรเจกต์นี้แสดงให้เห็นถึงศักยภาพของการรวมเทคโนโลยี Microcontroller สมัยใหม่อย่าง Arduino เข้ากับลักษณะคลาสสิกของ LEGO เพื่อสร้างระบบฝังตัว (embedded system) ที่ทั้งสนุกและให้ความรู้เชิงวิศวกรรมอย่างแท้จริง

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

title: "Autonomous Controllable LEGO Car"
description: "Autonomous car, built from a LEGO frame, which responds to nearby objects and can also be manually controlled via remote control."
author: "achyutayadunandan"
category: ""
tags:
  - "autonomous"
  - "cars"
  - "remote control"
views: 3260
likes: 1
price: 2450
difficulty: "Intermediate"
components:
  - "1x Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires"
  - "2x Through Hole Resistor, 470 ohm"
  - "1x High Brightness LED, White"
  - "2x Custom PCB"
  - "1x L9110S H Bridge Stepper Motor Dual DC Driver"
  - "1x Mastech MS8217 Autorange Digital Multimeter"
  - "4x Tactile Switch, Top Actuated"
  - "6x Alligator Clips"
  - "1x Arduino UNO"
  - "1x Soldering iron (generic)"
  - "1x Solder Wire, Lead Free"
  - "1x 5 mm LED: Red"
  - "1x SG90 Micro-servo motor"
  - "1x Rotary potentiometer (generic)"
  - "1x HX1838 Universal IR Infrared Remote Control Receiver Module"
  - "1x Ultrasonic Sensor - HC-SR04 (Generic)"
  - "1x Mindstorms NXT Programming Brick / Kit"
  - "1x Multitool, Screwdriver"
  - "20x Jumper wires (generic)"
  - "4x Resistor 10k ohm"
  - "1x 28YBJ-48 DC 5V 4 Phase 5 Wire Stepper Motor With ULN2003 Driver Board"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "ea5658765e76e1bbd71cbf7f3f7550364c75c047a3242d839af7f57658040a30"
encryptedPayload: "U2FsdGVkX19IQZ/PQ2rpYPhXwZL+wqlphQObMGVG8WtS0fAOceo1sEoJDsMUOIG73C2wa3tGZhWxqg/XQfM+lE51PjDydHotQSsDS1aC6No="
seoDescription: "Build an Autonomous LEGO Car that responds to nearby objects and supports manual remote control."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/autonomous-controllable-lego-car-4c16b3_cover.jpg"
lang: "th"