สารบัญ:
- ขั้นตอนที่ 1: เปลี่ยนตำแหน่งการสอน
- ขั้นตอนที่ 2: สร้าง SnappyXO Differential Drive Robot
- ขั้นตอนที่ 3: เชื่อมต่ออุปกรณ์อิเล็กทรอนิกส์
- ขั้นตอนที่ 4: ติดตั้ง PreciseMovement Arduino Library
- ขั้นตอนที่ 5: รหัส
- ขั้นตอนที่ 6: มันทำงานอย่างไร
วีดีโอ: SnappyXO หุ่นยนต์ผู้เสนอญัตติที่แม่นยำ: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
ทำให้หุ่นยนต์ Arduino ของคุณเดินตรงไปยังระยะทางที่กำหนดหรือบิดเป็นมุมที่กำหนดโดยใช้ไลบรารี PreciseMovement Arduino
หุ่นยนต์ต้องการลูกกลิ้งลูกกลิ้งหรือเทียบเท่าเพื่อลดแรงเสียดทานขณะบิด
www.pololu.com/product/954
คุณสามารถบอกให้หุ่นยนต์เดินหน้าไปยังระยะทางที่กำหนดหรือบิดไปยังมุมที่กำหนดได้ โปรแกรมกำหนดตำแหน่งโดยใช้การคำนวณแบบตายตัว เนื่องจากการประมาณตำแหน่งขึ้นอยู่กับความเร็วของล้อเท่านั้น การเลื่อนหลุดจะทำให้เกิดข้อผิดพลาดอย่างมาก ผู้ออกแบบหุ่นยนต์ควรระมัดระวังเพื่อลดความเสี่ยงของการเลื่อนหลุด
สิ่งนี้ได้รับการทดสอบเพื่อทำงานกับหุ่นยนต์ SnappyXO
ขั้นตอนที่ 1: เปลี่ยนตำแหน่งการสอน
กวดวิชาถูกย้ายไปที่หน้าด้านล่าง บทแนะนำนี้ไม่ได้รับการดูแลอีกต่อไป
sites.google.com/stonybrook.edu/premo
ขั้นตอนที่ 2: สร้าง SnappyXO Differential Drive Robot
ไลบรารี PreciseMovement ที่เราจะใช้นั้นเข้ากันได้กับหุ่นยนต์ขับเคลื่อนส่วนต่างเท่านั้น คุณสามารถเลือกใช้หุ่นยนต์ขับเคลื่อน 2 ล้อตัวอื่นๆ ได้
ขั้นตอนที่ 3: เชื่อมต่ออุปกรณ์อิเล็กทรอนิกส์
สำหรับตัวเข้ารหัสออปติคัล SnappyXO มาตรฐาน:
D0 (เอาต์พุตตัวเข้ารหัส) -> Arduino Digital Pin
VCC -> Arduino 5V
GND -> GND
กำลังมอเตอร์และ Arduino:
แหล่งพลังงานของมอเตอร์ควรเพียงพอสำหรับมอเตอร์ที่คุณใช้งาน สำหรับชุด SnappyXO นั้นจะใช้แบตเตอรี่ 4AA สำหรับกำลังมอเตอร์และแบตเตอรี่ 9V สำหรับพลังงาน Arduino ตรวจสอบให้แน่ใจว่าพวกเขาทั้งหมดมี GND ร่วมกัน
ขั้นตอนที่ 4: ติดตั้ง PreciseMovement Arduino Library
ดาวน์โหลด:
github.com/jaean123/PreciseMovement-library/releases
วิธีการติดตั้ง Arduino Library:
wiki.seeedstudio.com/How_to_install_Arduino_Library/
ขั้นตอนที่ 5: รหัส
รหัส Arduino:
create.arduino.cc/editor/whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview
พารามิเตอร์เหล่านี้ต้องมีการปรับ พารามิเตอร์อื่นๆ ที่แนะนำบนโค้ดสามารถปรับเปลี่ยนได้เพื่อประสิทธิภาพที่ดีขึ้น
- ตรวจสอบและตั้งหมุดมอเตอร์ภายใต้ ARDUINO PINS
-
ตั้งค่า LENGTH และ RADIUS
- LENGTH คือระยะทางจากล้อซ้ายไปล้อขวา
- RADIUS คือรัศมีของวงล้อ
-
ตั้งค่า PULSES_PER_REV ซึ่งเป็นจำนวนพัลส์ที่เอาต์พุตตัวเข้ารหัสสำหรับการหมุนวงล้อเดียว
- โปรดทราบว่าสิ่งนี้แตกต่างจากจำนวนพัลส์ที่เอาท์พุตของตัวเข้ารหัสสำหรับการหมุนเพลามอเตอร์หนึ่งครั้ง เว้นแต่ว่าตัวเข้ารหัสจะเชื่อมต่อเพื่ออ่านโดยตรงจากเพลาล้อ
- PULSES_PER_REV = (พัลส์ต่อหนึ่งรอบการหมุนของเพลามอเตอร์) x (อัตราทดเกียร์)
-
ตั้งค่า STOP_LENGTH หากคุณเห็นว่าหุ่นยนต์กำลังยิงเกินหลังจากเคลื่อนที่ไปข้างหน้า
หุ่นยนต์จะหยุดเมื่อตำแหน่งโดยประมาณอยู่ห่างจากเป้าหมาย STOP_LENGTH ดังนั้น STOP_LENGTH คือระยะทางโดยประมาณที่จำเป็นสำหรับหุ่นยนต์ในการหยุด
-
พารามิเตอร์ PID
KP_FW: นี่คือองค์ประกอบตามสัดส่วนของการเคลื่อนที่ไปข้างหน้า เพิ่มสิ่งนี้จนกว่าหุ่นยนต์จะตรงไป หากคุณไม่สามารถทำให้มันตรงโดยการปรับแต่งนี้ แสดงว่าฮาร์ดแวร์น่าจะมีปัญหา (เช่น ล้อไม่ตรง ฯลฯ)
KP_TW: นี่คือองค์ประกอบตามสัดส่วนของ PID การเคลื่อนที่แบบบิด เพียงเริ่มจากค่าต่ำและเพิ่มความเร็วนี้จนกว่าความเร็วบิดหรือความเร็วเชิงมุมของหุ่นยนต์ขณะบิดจะเร็วพอ แต่ไม่ทำให้เกิดการโอเวอร์โหลด ในการสังเกตการณ์ คุณสามารถให้หุ่นยนต์สลับจาก 0 ถึง 90 และย้อนกลับโดยใส่สิ่งต่อไปนี้ในฟังก์ชันวนรอบ
วางสิ่งนี้ในลูปเพื่อปรับแต่ง KP_FW:
ผู้เสนอญัตติไปข้างหน้า (99999);
วางสิ่งนี้ในลูปเพื่อสลับจาก 0 ถึง 90 เพื่อปรับแต่ง KP_TW:
ผู้เสนอญัตติบิด (90); // บิด 90 CW
ล่าช้า (2000);
ผู้เสนอญัตติบิด (-90) // บิด 90 CCW
ล่าช้า (2000);
โปรดทราบว่าในการบิดความเร็วเชิงมุมที่ TARGET_TWIST_OMEGA นั้น KI_TW จำเป็นต้องได้รับการปรับแต่งด้วย เนื่องจากตัวควบคุมตามสัดส่วนจะไม่ปรับให้เข้ากับเป้าหมายที่แน่นอน อย่างไรก็ตาม ไม่จำเป็นต้องบิดด้วยความเร็วเชิงมุมที่แน่นอน ความเร็วเชิงมุมต้องช้าพอ
ขั้นตอนที่ 6: มันทำงานอย่างไร
หากคุณอยากรู้ว่ามันทำงานอย่างไรอ่านต่อ
การเคลื่อนที่ไปข้างหน้าจะคงเส้นตรงโดยใช้อัลกอริธึมการไล่ตามที่แท้จริงบนเส้นทางเส้นตรง ข้อมูลเพิ่มเติมเกี่ยวกับ Pure Pursuit:
ตัวควบคุม twist PID จะพยายามรักษาความเร็วเชิงมุมของการหมุนไว้ที่ TARGET_TWIST_OMEGA โปรดทราบว่าความเร็วเชิงมุมนี้เป็นความเร็วเชิงมุมของหุ่นยนต์ทั้งหมด ไม่ใช่ล้อ ใช้คอนโทรลเลอร์ PID เพียงตัวเดียวและเอาต์พุตคือความเร็วในการเขียน PWM ของมอเตอร์ทั้งซ้ายและขวา การคำนวณที่ตายแล้วจะทำเพื่อคำนวณมุม เมื่อมุมถึงเกณฑ์ข้อผิดพลาด หุ่นยนต์จะหยุด
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง