กลับไปหน้ารวมไฟล์
probability-autonomous-rover-aac9b0.md

วิดีโอล่าสุดของ Probability

ตัวอย่างของ Test 2

วิดีโอแรกของ Probability

สวัสดีจ้า ทุกคน!

เป้าหมายของพี่ในโปรเจคนี้คือการสร้างโรเวอร์อัตโนมัติที่สามารถทำงานสารพัดประโยชน์รอบๆ บ้านน้องได้เลย

ไอเดียนี่มันมาจากตอนที่พี่เรียนเรื่องโรเวอร์บนดาวอังคารอย่าง Curiosity แล้วก็สงสัยว่ามันทำงานยังไง พี่เลยคิดว่าเออ... สร้างโรเวอร์เล็กๆ ของตัวเองขึ้นมาคงสนุกและมีประโยชน์ดี เริ่มแรกพี่อยากได้หุ่นยนต์ที่มันไม่ชนอะไรตอนพี่ไม่อยู่บ้าน มันเริ่มมาตั้งแต่ปี 2017 แล้วล่ะ ตอนนี้เป้าหมายเราพัฒนามาเป็นสร้างโรเวอร์อัตโนมัติเต็มตัวแล้ว

Visit my Youtube channel!!!!!!
UniverseRobotics

การค้นหาแบบอัลกอริทึม: Probability Rover

หุ่นยนต์หลบหลีกแบบธรรมดาทั่วไปเนี่ย มันทำงานเหมือนลูกบอลเด้งไปเด้งมา คือวิ่งตรงไปเรื่อยๆ จนเจอผนัง แล้วก็หัน 90 องศา แล้วก็วิ่งตรงใหม่ Probability Autonomous Rover ของเราจะใช้ซอฟต์แวร์ขั้นสูงเพื่อจำลองพฤติกรรม "การค้นหา" แบบเป็นธรรมชาติ เหมือนสัตว์หาอาหาร หรือ Roomba ทำแผนที่บ้าน

ความสุ่มและการให้น้ำหนัก

แทนที่จะกำหนดมุมหันแบบตายตัว หุ่นยนต์จะใช้หลักความน่าจะเป็นแบบให้น้ำหนัก

  1. The Array: ถ้าหุ่นยนต์ตรวจจับสิ่งกีดขวางได้ที่ระยะ 30 ซม. ด้านหน้า มันจะหยุด
  2. มันจะสุ่มตัวเลขตั้งแต่ 1 ถึง 100
  3. การให้น้ำหนัก:
    • If (num < 10): ถอยหลัง 2 วินาที (โอกาสเกิด 10%)
    • If (num > 10 && num < 40): หันซ้าย 45 องศา (โอกาสเกิด 30%)
    • If (num >= 40): หันขวา 45 องศา (โอกาสเกิด 60%) ด้วยการปรับน้ำหนักความน่าจะเป็นแบบนี้ หุ่นยนต์จะมีแนวโน้มที่จะวนไปในทิศทางใดทิศหนึ่ง แต่ก็ยังมีความไม่แน่นอนพอที่จะไม่ไปติดอยู่ซอกมุมตลอดกาล! จัดไปวัยรุ่น!

อัลกอริทึมเดินเพ่นพ่าน (Perlin Noise)

แทนที่จะให้มันวิ่งเป็นเส้นตรงเป๊ะๆ น้องสามารถใช้สมการคณิตศาสตร์ (เช่น sine wave ง่ายๆ หรือการประมาณค่า Perlin noise) มาควบคุมความเร็ว PWM ของมอเตอร์ล้อซ้ายและขวาได้

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

ส่วนแรก: โครงสร้างและมอเตอร์

โครงสร้าง (Chassis)

โครงสร้างของ Probability rover นี้ทำจากชุด Bogie Runt Rover จาก Servo City พี่ทำตาม tutorial ที่เค้ามีให้ ชุดนี้มาพร้อมมอเตอร์และโครงสร้างครบ แต่ไม่มีชิ้นส่วนอิเล็กทรอนิกส์มาให้นะ

มอเตอร์

โรเวอร์ตัวนี้ใช้มอเตอร์ DC 6 ตัวในการขับเคลื่อนล้อ สายไฟจากมอเตอร์ทุกตัวจะถูกดึงขึ้นมาด้านบนผ่านรูบนโครงสร้าง แล้วไปต่อกับไดรเวอร์มอเตอร์ L298N ด้วยมอเตอร์พลังดีแบบนี้ Probability ของเราสามารถทำความเร็วได้สูงสุดถึง 4 ไมล์ต่อชั่วโมงเลยทีเดียว! จัดไปวัยรุ่น!

ส่วนที่สอง: อิเล็กทรอนิกส์

ไดรเวอร์มอเตอร์ (Motor Driver)

มอเตอร์ทั้งหกตัวถูกขับด้วยชิปไดรเวอร์มอเตอร์ L298N dual bridge สายมอเตอร์ทั้งหมดจะต่อเข้ากับด้านซ้ายและขวาของชิป เพื่อจ่ายไฟให้ Arduino เราจะต่อจากขา 5V และ GND บนชิป L298N นี้ไปยังขา 5V และ GND บน Arduino เพื่อให้มอเตอร์ทุกตัวทำงาน ชิป L298N ต้องเชื่อมต่อกับ Arduino ผ่านขา ENA, IN1, IN2, IN3, IN4 และ ENB แล้วต่อสายเหล่านี้เข้ากับขา digital pin ใดก็ได้ 6 ขาบน Arduino

เซนเซอร์วัดระยะไกลสุดขั้ว (Ultra Long distance sensor)

HC-SR04 หรือเซนเซอร์วัดระยะไกลสุดขั้วนี้คืออุปกรณ์ที่ใช้ตรวจจับวัตถุข้างหน้าและหลบหลีก มันทำงานโดยส่งเสียงความถี่สูงออกทางขา echo และรับเสียงที่สะท้อนกลับมาทางขา trig พี่ติดเซนเซอร์โดยตัดคลิปหนีบกระดาษครึ่งหนึ่ง อุ่นให้ร้อนแดง แล้วใช้เจาะรูเล็กๆ บนพลาสติก ABS จากนั้นก็วางเซนเซอร์ลงไปแล้วงอคลิปหนีบกระดาซรอบๆ รูสกรูเล็กๆ บนตัวเซนเซอร์ ขา VCC ต่อกับขา 5V ของ Arduino และขา GND ต่อกับ GND ของ Arduino ส่วนขา Trig และ Echo ต่อกับ digital pin ใดก็ได้บน Arduino เวลาเขียนโค้ด อย่าลืมกำหนดด้วยนะว่าต่อขาไหนไว้กับ Trig และ Echo ห้ามช็อตนะตัวนี้!

เซอร์โว (Servo)

เซอร์โวบน Probability นี้มีไว้สำหรับหัน "หัว" เพื่อใช้กับเซนเซอร์วัดระยะไกลสุดขั้ว สายสีแดงต่อกับขา 5V บน Arduino สายสีดำหรือน้ำตาลต่อกับขา GND ส่วนสายที่เหลือต่อกับ digital I/O pin ใดก็ได้ ถ้าน้องจะใช้เซอร์โว อย่าเอาคลิปหนีบกระดาษไปยัดใส่โครงสร้างนะ ถ้าไม่เข้าใจ ให้กลับไปอ่านย่อหน้าที่เกี่ยวกับเซนเซอร์วัดระยะอีกที เวลาเขียนโค้ด จำไว้เสมอว่าต้องใส่เลข digital pin ที่น้องใช้ให้ถูกต้อง

บัซเซอร์ (Buzzer)

บัซเซอร์อยู่บน Probability เพื่อให้มันส่งเสียงได้ ถ้าน้องไม่อยากให้โรเวอร์ส่งเสียง ก็ไม่ต้องติดบัซเซอร์ไว้ ด้านบนของบัซเซอร์ ข้างหนึ่งจะมีเครื่องหมายบวก (+) สายที่อยู่ใต้ขานั้นคือสายที่ต้องต่อกับ digital pin ใดก็ได้บน Arduino ส่วนสายอีกเส้นต่อกับขา GND บน Arduino อย่าลืมประกาศด้วยนะว่าใช้ digital pin ขาไหน การจะให้มันเล่นเสียงได้ น้องต้องเขียนโค้ดส่วนที่กำหนดโทน (tone) ลงไป ใน Probability software เวอร์ชัน 1.9 จะแสดงโค้ดโทนที่จำเป็นต้องใช้ไว้ให้แล้ว สู้งานนะน้อง!

ฮาร์ดแวร์ของระบบ

  • Arduino Uno/Mega: ตัวสมองหลักของหุ่นยนต์ ไว้ประมวลผลทุกอย่าง (คิดซะว่าเป็น CPU ของเราแหละ)
  • บอร์ดควบคุมมอเตอร์ (L298N หรือ Motor Shield V2): ตัวแปลงคำสั่งจากสมองให้มอเตอร์ขยับได้ตามใจ เปรียบเสมือนระบบประสาทสั่งการ
  • ชุดโครงหุ่นยนต์อะคริลิค 2WD หรือ 4WD: ตัวโครงสร้างหรือร่างกายของหุ่นยนต์นั่นเอง เลือกตามงบและความต้องการเลย
  • เซ็นเซอร์วัดระยะอัลตราโซนิค HC-SR04 (จำนวน 3 ตัว): ติดตั้งไว้ด้านหน้า, ซ้าย, และขวา หน้าที่คือส่งข้อมูลสภาพแวดล้อมรอบตัวเข้าไปให้ "สมอง" คำนวณความน่าจะเป็นตลอดเวลา (ห้ามช็อตนะตัวนี้)

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

apps:
  - "1x Arduino IDE"
author: "UniverseRobotics"
category: "Motors & Robotics"
components:
  - "1x LED (generic)"
  - "1x Jumper wires (generic)"
  - "1x Hot glue gun (generic)"
  - "1x Buzzer"
  - "1x Arduino Nano R3"
  - "2x Breadboard (generic)"
  - "1x Ultrasonic Sensor - HC-SR04 (Generic)"
  - "1x TTP223B Touch Sensor"
  - "1x Soldering iron (generic)"
  - "1x Arduino UNO"
  - "6x DC motor (generic)"
  - "1x Dual H-Bridge motor drivers L298"
description: "เจ้าโรเวอร์ดำตัวน้อยนี้มันเทพมาก! มันวิ่งทำงานในบ้านให้เราได้สารพัด โดยที่ไม่ชนอะไรเลยแม้แต่ครั้งเดียว ใช้เซนเซอร์และความน่าจะเป็นแบบตึงๆ ในการตัดสินใจ วัยรุ่นสายช่างต้องจัดไป!"
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles: []
encryptedPayload: "U2FsdGVkX18vqVg9s66Vm30trOudX2D5IfiPIc5cnOEw/g2LQB9J06UB9Dg+b2mnNxzEKXIPe+YLUNAE0E4M9/EWbQZeczSZm2J8f6i+T98="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/probability-autonomous-rover-aac9b0_cover.jpg"
lang: "en"
likes: 72
passwordHash: "481eb08d2e350b8b9b16d90c2c0688a21fcb45d39395974e22c94e8361abb85e"
price: 1499
seoDescription: "Build a smart Autonomous Rover that navigates and performs tasks in your home without collisions."
tags:
  - "probability"
  - "arduino rover"
  - "rover"
  - "robot"
  - "home automation"
  - "electronic"
  - "autonomous"
  - "arduino"
title: "โรเวอร์อัจฉริยะ | งานง่ายแต่หล่อ ไม่มีชนแม้แต่ครั้งเดียว!"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/41zFLcQbsqg"
  - "https://www.youtube.com/embed/wWYqMw_J758"
  - "https://www.youtube.com/embed/67GixPlcoZU"
views: 64524