Search Code

บทเรียนที่ 9 จาก 10: การหลบหลีกสิ่งกีดขวางโดยใช้รถยนต์อัจฉริยะ 4WD Raspberry Pi Pico

บทเรียนนี้เป็นส่วนหนึ่งของ: Raspberry Pi Pico 4WD รถอัจฉริยะ

บทเรียนที่ 9 จาก 10: การหลบหลีกสิ่งกีดขวางโดยใช้รถยนต์อัจฉริยะ 4WD Raspberry Pi Pico

บทนำ

คู่มือนี้ อ้างอิงจากบทเรียนที่ 9 จากทั้งหมด 10 ของคอร์ส Robojax สาธิตวิธีการสร้างหุ่นยนต์หลบหลีกสิ่งกีดขวางโดยใช้ชุดรถอัจฉริยะ 4WD Raspberry Pi Pico ของ SunFounder โปรเจกต์นี้ผสมผสานเซนเซอร์อัลตราโซนิกที่ขับเคลื่อนด้วยเซอร์โวเข้ากับการควบคุมมอเตอร์ เพื่อสร้างหุ่นยนต์ที่สามารถนำทางในสภาพแวดล้อมได้อย่างอัตโนมัติ ด้วยการกวาดเซนเซอร์เหมือนเรดาร์ รถจะตรวจจับสิ่งกีดขวางและเลือกเส้นทางที่ปลอดภัยที่สุดเพื่อเดินหน้าต่อไปอย่างชาญฉลาด ทำให้เป็นบทนำที่สมบูรณ์แบบสำหรับวิทยาการหุ่นยนต์ การบูรณาการเซนเซอร์ และการนำทางอัตโนมัติ

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

  • หุ่นยนต์สำรวจอัตโนมัติ: สร้างหุ่นยนต์ที่สามารถแผนที่และสำรวจห้องหรือพื้นที่กลางแจ้งได้โดยไม่ต้องมีมนุษย์ควบคุม
  • เครื่องดูดฝุ่นอัจฉริยะ: ใช้หลักการเดียวกันเพื่อสร้างหุ่นยนต์ที่นำทางในห้อง หลบหลีกเฟอร์นิเจอร์และผนังขณะทำความสะอาด
  • หุ่นยนต์ลาดตระเวนรักษาความปลอดภัย: ตั้งโปรแกรมให้รถลาดตระเวนรอบปริมณฑล และใช้เซนเซอร์อัลตราโซนิกเพื่อตรวจจับและรายงานสิ่งกีดขวางหรือการบุกรุกที่ไม่คาดคิด
  • แพลตฟอร์มการศึกษาสำหรับ AI: ใช้โปรเจกต์นี้เป็นก้าวแรกในการเรียนรู้เกี่ยวกับอัลกอริทึมที่ซับซ้อนมากขึ้น เช่น การค้นหาเส้นทาง และการระบุตำแหน่งและการสร้างแผนที่พร้อมกัน (SLAM)

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

ฮาร์ดแวร์/ส่วนประกอบ

โปรเจกต์นี้อ้างอิงจากชุดรถอัจฉริยะ 4WD Raspberry Pi Pico ของ SunFounder ส่วนประกอบสำคัญที่ใช้ในบทเรียนนี้ ได้แก่:

  • บอร์ดไมโครคอนโทรลเลอร์ Raspberry Pi Pico
  • โครงรถอัจฉริยะ 4WD ของ SunFounder พร้อมมอเตอร์สี่ตัว
  • บอร์ดขับมอเตอร์
  • เซนเซอร์วัดระยะอัลตราโซนิก (ชนิด HC-SR04)
  • มอเตอร์เซอร์โว (สำหรับหมุนเซนเซอร์อัลตราโซนิก)
  • แหล่งจ่ายไฟ (แบตเตอรี่สำหรับรถ)

คู่มือการเดินสายไฟ

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

การเชื่อมต่อหลักเกี่ยวข้องกับพิน trigger และ echo ของเซนเซอร์อัลตราโซนิก และพินสัญญาณของมอเตอร์เซอร์โว ซึ่งทั้งหมดเชื่อมต่อกับพิน GPIO เฉพาะบน Raspberry Pi Pico ตัวขับมอเตอร์ยังเชื่อมต่อกับ Pico เพื่อควบคุมมอเตอร์ขับเคลื่อนทั้งสี่ตัว วิดีโอกล่าวถึงว่าเอกสารฉบับเต็ม รวมถึงแผนผังการเดินสายไฟ มีให้ดาวน์โหลดพร้อมกับชุดอุปกรณ์

คำอธิบายโค้ด

บทเรียนนี้มุ่งเน้นไปที่ตรรกะภายในตัวอย่าง `obstacle_avoid` โค้ดเขียนด้วย MicroPython แม้ว่าโปรแกรมเต็มรูปแบบจะพร้อมให้ดาวน์โหลด แต่เราจะมุ่งเน้นไปที่พารามิเตอร์หลักที่ผู้ใช้สามารถกำหนดค่าได้ ซึ่งควบคุมพฤติกรรมของรถ โดยทั่วไปจะอยู่ที่ด้านบนของสคริปต์

นี่คือตัวแปรหลักที่คุณสามารถปรับเพื่อปรับแต่งประสิทธิภาพของหุ่นยนต์ของคุณ:


# พารามิเตอร์เรดาร์และการเคลื่อนที่
radar_reference = 20  # ระยะห่างขั้นต่ำในหน่วยเซนติเมตรที่ถือว่าปลอดภัย
step_angle = 10       # การเพิ่มมุมสำหรับแต่ละขั้นตอนการสแกนเรดาร์
forward_speed = 30    # ความเร็วมอเตอร์สำหรับการเคลื่อนไปข้างหน้า (0-100)
turn_speed = 50       # ความเร็วมอเตอร์สำหรับการเลี้ยว (0-100)
forward_scan_angle = 50  # มุมที่เซอร์โวสแกนเมื่อไม่พบสิ่งกีดขวาง
  • radar_reference: นี่คือระยะปลอดภัยที่สำคัญในหน่วยเซนติเมตร หากตรวจพบสิ่งกีดขวางใกล้กว่าระยะนี้ รถจะถือว่าเป็น "อันตราย" และเริ่มการหลบหลีก ในวิดีโอนี้ตั้งไว้ที่ 20 ซม.
  • step_angle: ค่านี้กำหนดความละเอียดของการสแกนเรดาร์ ค่าที่เล็กลง (เช่น 10 องศา) หมายถึงการสแกนที่ละเอียดมากขึ้นแต่ใช้เวลานานขึ้น ค่าที่ใหญ่ขึ้นจะเร็วขึ้นแต่อาจพลาดสิ่งกีดขวางที่แคบได้
  • forward_speed และ turn_speed: ค่าเหล่านี้ควบคุมกำลังที่ส่งไปยังมอเตอร์ คุณสามารถปรับเพื่อเปลี่ยนความเร็วโดยรวมและความคล่องตัวของรถได้ ความเร็วในการเลี้ยวมักตั้งให้สูงขึ้นเพื่อให้แน่ใจว่ารถสามารถหมุนตัวได้อย่างมีประสิทธิภาพ
  • forward_scan_angle: เมื่อไม่มีอันตรายทันทีข้างหน้า รถจะจำกัดการสแกนให้แคบลงที่มุมนี้ (โดยให้กึ่งกลางอยู่ด้านหน้า) เพื่อตรวจสอบสิ่งกีดขวางในเส้นทางตรงบ่อยขึ้น ทำให้การเคลื่อนที่ไปข้างหน้าราบรื่นยิ่งขึ้น

วิดีโอยังอธิบายตรรกะการตัดสินใจหลักด้วย ฟังก์ชัน `get_direction()` วิเคราะห์ชุดข้อมูลการวัดระยะทาง (แปลงเป็น 1 และ 0 สำหรับปลอดภัย/ไม่ปลอดภัย) เพื่อหาเส้นทางต่อเนื่องที่กว้างที่สุดของ "1" โดยอิงจากตำแหน่งของเส้นทางที่กว้างที่สุดนี้ ฟังก์ชันจะส่งคืนทิศทาง: "forward" (ไปข้างหน้า), "left" (ซ้าย) หรือ "right" (ขวา) จากนั้นลูปหลักจะดำเนินการตามนั้น โดยหมุนรถและสแกนซ้ำจนกว่าเส้นทางข้างหน้าจะชัดเจน

โปรเจกต์สด/การสาธิต

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

บทของวิดีโอ

  • [00:00] บทนำสู่การหลบหลีกสิ่งกีดขวาง
  • [01:31] ภาพรวมของชุดรถอัจฉริยะ SunFounder และคุณสมบัติต่างๆ
  • [02:47] ฟีเจอร์การหลบหลีกสิ่งกีดขวางทำงานอย่างไร
  • [03:34] การทดสอบเซนเซอร์อัลตราโซนิก
  • [07:45] การอธิบายอัลกอริทึมและผังงานการหลบหลีกสิ่งกีดขวาง
  • [12:49] การวิเคราะห์โค้ดหลักสำหรับการหลบหลีกสิ่งกีดขวาง
  • [15:43] การสาธิตสดของตรรกะการหลบหลีกสิ่งกีดขวาง
  • [22:53] การสาธิตครั้งสุดท้ายกับเขาวงกตของสิ่งกีดขวาง
  • [24:35] บทสรุปและขั้นตอนถัดไป
ไม่มีรหัสแนบมา

แหล่งข้อมูลและเอกสารอ้างอิง

ยังไม่มีทรัพยากรเลย

ไฟล์📁

ไม่มีไฟล์ที่พร้อมใช้งาน