กลับไปหน้ารวมไฟล์
autonomous-line-follower-with-seeed-shield-bot-12-and-arte-1ed934.md

ชื่อโปรเจกต์: หุ่นยนต์ติดตามเส้นอัตโนมัติด้วย Seeed Shield Bot 1.2 และ ARTe

หุ่นยนต์แบบเรียลไทม์: เหนือกว่าลูปมาตรฐาน

การเขียนโปรแกรม Arduino แบบดั้งเดิมอาศัยฟังก์ชัน loop() เพียงฟังก์ชันเดียว เมื่อสร้างหุ่นยนต์ที่ต้องอ่านค่าจากเซ็นเซอร์ห้าตัว ขับเคลื่อนมอเตอร์สองตัว และรับคำสั่ง Serial พร้อมกัน วิธีการแบบ "ทีละอย่าง" นี้อาจทำให้การเคลื่อนไหวกระตุกและพลาดการอัปเดตเส้นทางได้ โปรเจกต์นี้ใช้ Shield Bot 1.2 และ ARTe (Arduino Real-Time eXtension) เพื่อใช้งานระบบ Multithreaded Navigation ที่ซับซ้อนบน Arduino Due

ขีดความสามารถ Multi-Tasking ของ ARTe

ARTe พัฒนาโดย ReTiS Lab และเปลี่ยน Arduino Due ให้เป็นสภาพแวดล้อมการทำงานแบบเรียลไทม์

  • การจัดกำหนดการแบบ Preemptive: แตกต่างจากลูปมาตรฐานที่ทุกงานต้องรอให้งานก่อนหน้าเสร็จสิ้น ARTe อนุญาตให้งานที่มีลำดับความสำคัญสูง (เช่น การแก้ไขเส้นทาง) "Preempt" หรือขัดจังหวะงานที่มีลำดับความสำคัญต่ำกว่า (เช่น การบันทึกข้อมูล Serial) ได้
  • ลูปที่ทำงานพร้อมกัน: หุ่นยนต์ตัวนี้รันหลายลูปด้วยอัตราที่แตกต่างกัน ตัวอย่างเช่น IR Sensor Loop อาจทำงานทุก 10ms เพื่อให้แน่ใจว่าจะไม่พลาดเส้น ในขณะที่ Telemetry Loop ทำงานทุก 500ms เพื่อส่งสถานะแบตเตอรี่ไปยังคอมพิวเตอร์
  • การซิงโครไนซ์: ARTe มีกลไกในการแบ่งปันข้อมูลระหว่างลูปเหล่านี้ได้อย่างปลอดภัย ทำให้มั่นใจได้ว่างานควบคุม Motor มีข้อมูลเซ็นเซอร์ล่าสุดอยู่เสมอโดยไม่ก่อให้เกิด "Race Conditions"

ฮาร์ดแวร์: Shield Bot 1.2 Rover

Shield Bot 1.2 เป็นแพลตฟอร์มหุ่นยนต์ขนาดกะทัดรัดแบบรวมที่ออกแบบมาสำหรับระบบนิเวศของ Arduino:

  1. เซ็นเซอร์ IR Reflectance 5 ตัว: การตรวจจับเส้นทำได้โดยใช้อาร์เรย์เซ็นเซอร์ห้าตัว สิ่งนี้ช่วยให้หุ่นยนต์ไม่เพียงแค่เห็น "Line" หรือ "No Line" แต่ยังสามารถคำนวณ Error Offset ได้อีกด้วย หากเซ็นเซอร์ซ้ายสุดเพียงตัวเดียวเห็นเส้น หุ่นยนต์จะรู้ว่าต้องเลี้ยวซ้ายอย่างรวดเร็ว
  2. Motor Driver แบบรวม: Shield Bot ช่วยลดความยุ่งเหยิงของการเดินสายไฟด้วยการรวมวงจร H-Bridge เข้ากับ PCB โดยตรง ทำให้ Arduino Due สามารถควบคุมความเร็วและทิศทางของมอเตอร์ผ่านขา Digital อย่างง่ายดาย
  3. พลังของ Arduino Due: ด้วยการใช้ Due (ARM Cortex-M3) โปรเจกต์นี้ได้รับพลังการประมวลผลและหน่วยความจำที่สูงขึ้นอย่างมากเมื่อเทียบกับ Uno ซึ่งจำเป็นสำหรับการจัดการค่าใช้จ่ายเพิ่มเติมของ OS แบบเรียลไทม์อย่าง ARTe

โหมดควบคุมด้วยตนเองและโหมดอัตโนมัติ

การใช้งานซอฟต์แวร์ประกอบด้วยสวิตช์ควบคุมสองโหมด:

  • การติดตามเส้นทางอัตโนมัติ: โหมดหลักที่ ARTe scheduler จัดการลูป feedback จากเซ็นเซอร์ไปยังมอเตอร์เพื่อติดตามเส้นทางบนพื้นด้วยความแม่นยำสูง
  • โหมดคำสั่ง Serial: การควบคุมด้วยตนเองนี้ช่วยให้ผู้ใช้สามารถส่งคำสั่งทิศทางผ่าน Serial Monitor ได้ ด้วยความสามารถของ multitasking ทำให้หุ่นยนต์สามารถรักษา "Safety Sensors" ไว้ได้แม้ในขณะที่ถูกขับเคลื่อนด้วยตนเอง เพื่อป้องกันการชนหากผู้ใช้ขับออกนอกเส้นทาง

เป้าหมายของโปรเจกต์นี้คือการสร้าง rover ที่สามารถติดตามเส้นทางที่วาดบนพื้นได้ด้วยตนเอง การระบุเส้นทางทำได้โดยเซ็นเซอร์ทั้งห้าตัวที่รวมอยู่ใน Shield Bot 1.2 rover นอกจากนี้ ยังมีการนำโหมดควบคุมด้วยตนเองมาใช้ เพื่อขับเคลื่อนตามคำสั่งของผู้ใช้ที่ได้รับผ่าน Serial line

โปรเจกต์นี้ได้รับการพัฒนาโดยใช้ ARTe Arduino Real-Time extension จาก ReTiS Lab, Scuola Superiore Sant'Anna Pisa ARTe เป็นส่วนเสริมของ Arduino framework ที่รองรับ multitasking และ real-time preemptive scheduling ด้วย ARTe ผู้ใช้สามารถกำหนดและรัน concurrent loops หลายรายการด้วยอัตราที่แตกต่างกันได้อย่างง่ายดาย นอกเหนือจากรอบการทำงานแบบ single execution cycle ที่จัดหาโดย standard Arduino framework ARTe ได้รับการพัฒนาเพื่อรองรับ concurrent real-time periodic activities โดยยังคงรักษาความเรียบง่ายของ programming paradigm ที่เป็นแบบฉบับของ Arduino framework ไว้ ข้อมูลเพิ่มเติมเกี่ยวกับ ARTe สามารถดูได้ที่ ARTe Website หรือใน Getting Started with ARTe project.

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

title: "Autonomous Line Follower with Seeed Shield Bot 1.2 and ARTe"
description: "A simple rover for line following made exploiting the ARTe Arduino REal-Time eXtension."
author: "stefano_maugeri"
category: "Motors & Robotics"
tags:
  - "multithreading"
  - "rover"
  - "arte"
  - "robots"
  - "real-time"
  - "due"
views: 4177
likes: 0
price: 2450
difficulty: "Intermediate"
components:
  - "1x Seeed Studio Shield Bot 1.2"
  - "1x Arduino Due"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles:
  - "https://projects.arduinocontent.cc/750aca61-cff4-4395-b055-1d81ac07a43f.h"
documentationLinks: []
passwordHash: "283458fb601c63631796e0b7d83a36c5f7222820d4a73e2c67bd2c39a2c99b97"
encryptedPayload: "U2FsdGVkX1/LyvxS0uSjR3dLWrPML++tcvLc24JKM5TakPUH1keB0NUqRaG9uK7FTkcRchqTIcGpoO4MFGXhKdaXAOGwlGqF8rmglpv0vVs="
seoDescription: "Build an Autonomous Line Follower with Seeed Shield Bot 1.2 and ARTe Arduino REal-Time eXtension for multi-tasking and real-time robotics."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/autonomous-line-follower-with-seeed-shield-bot-12-and-arte-1ed934_cover.jpg"
lang: "th"