สารบัญ:

หุ่นยนต์ติดตามสาย PID พร้อมอาร์เรย์เซ็นเซอร์ POLOLU QTR 8RC: 6 ขั้นตอน (พร้อมรูปภาพ)
หุ่นยนต์ติดตามสาย PID พร้อมอาร์เรย์เซ็นเซอร์ POLOLU QTR 8RC: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: หุ่นยนต์ติดตามสาย PID พร้อมอาร์เรย์เซ็นเซอร์ POLOLU QTR 8RC: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: หุ่นยนต์ติดตามสาย PID พร้อมอาร์เรย์เซ็นเซอร์ POLOLU QTR 8RC: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Gobbit v2.0 Line Follower Assembly and Wiring 2024, พฤศจิกายน
Anonim
หุ่นยนต์ติดตามสาย PID พร้อม POLOLU QTR 8RC-sensor Array
หุ่นยนต์ติดตามสาย PID พร้อม POLOLU QTR 8RC-sensor Array

สวัสดี!

นี่เป็นครั้งแรกที่ฉันเขียนเกี่ยวกับ Instrucables และวันนี้ฉันจะพาคุณไป และอธิบายเกี่ยวกับวิธีการสร้างสายตาม PID ตามหุ่นยนต์โดยใช้อาร์เรย์เซ็นเซอร์ QTR-8RC

ก่อนจะไปสร้างหุ่นยนต์ เราต้องเข้าใจก่อนว่า PID คืออะไร

ขั้นตอนที่ 1: หลักการทำงาน

PID คืออะไร??

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

คำสำคัญตามที่ระบุไว้ในเอกสาร polalu

ค่าตามสัดส่วนเป็นสัดส่วนโดยประมาณกับตำแหน่งของหุ่นยนต์ของคุณเทียบกับเส้น นั่นคือ หากหุ่นยนต์ของคุณมีศูนย์กลางที่เส้นตรงอย่างแม่นยำ เราคาดว่าค่าตามสัดส่วนจะเป็น 0 อย่างแน่นอน

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

อนุพันธ์คืออัตราการเปลี่ยนแปลงของมูลค่าตามสัดส่วน

ในบทช่วยสอนนี้ เราจะพูดถึงเฉพาะคำศัพท์ Kp และ Kd เท่านั้น อย่างไรก็ตาม ผลลัพธ์สามารถทำได้โดยใช้คำศัพท์ Ki เช่นกัน การอ่านที่เราได้รับจากเซ็นเซอร์ไม่ได้เป็นเพียงการอ่านแบบแอนะล็อกเท่านั้น แต่ยังรวมถึงการอ่านตำแหน่งของหุ่นยนต์ด้วย.โดยพื้นฐานแล้ว เซ็นเซอร์จะให้ค่าตั้งแต่ 0 ถึง 2500 ตั้งแต่การสะท้อนแสงสูงสุดไปจนถึงการสะท้อนแสงต่ำสุด แต่ในขณะเดียวกันก็ยังให้ข้อมูลว่าหุ่นยนต์อยู่ไกลจากเส้นมากเพียงใด)

ตอนนี้เราต้องพิจารณาข้อผิดพลาด, นี่คือความแตกต่างของค่า setpoint สองค่าและค่าปัจจุบัน ค่าคือค่าที่อ่านได้ทันทีของเซ็นเซอร์ ตัวอย่างเช่น หากคุณใช้เซ็นเซอร์อาร์เรย์นี้และใช้งานเซ็นเซอร์ 8 ตัว คุณจะได้รับค่าการอ่านตำแหน่ง 3500 หากคุณอยู่ตรงจุด ประมาณ 0 ถ้าคุณอยู่ไกลจาก เส้นและประมาณ 7000 ถ้าคุณอยู่ไกลเกินไป) เป้าหมายของเราคือทำให้ข้อผิดพลาดเป็นศูนย์ จากนั้นหุ่นยนต์เท่านั้นที่สามารถทำตามเส้นได้อย่างราบรื่น

แล้วก็มาถึงส่วนการคำนวณ.

1) คำนวณข้อผิดพลาด

ข้อผิดพลาด = ค่าที่ตั้งไว้ - ค่าปัจจุบัน = 3500 - ตำแหน่ง

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

2) กำหนดความเร็วที่ปรับของมอเตอร์

MotorSpeed = Kp * ข้อผิดพลาด + Kd * (ข้อผิดพลาด - LastError);

LastError = ข้อผิดพลาด;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - ความเร็วมอเตอร์;

ในทางตรรกะ ข้อผิดพลาด 0 หมายความว่าหุ่นยนต์ของเราออกไปทางซ้าย ซึ่งหมายความว่าหุ่นยนต์ของเราต้องไปทางขวาเล็กน้อย ซึ่งหมายความว่ามอเตอร์ด้านขวาต้องช้าลงและมอเตอร์ด้านซ้ายต้องเร่งความเร็ว นี่คือ PID!

ค่า MotorSpeed ถูกกำหนดจากสมการเอง RightBaseSpeed และ LeftBaseSpeed คือความเร็ว (ค่าใดๆ ของ PWM 0-255) ที่หุ่นยนต์ทำงานเมื่อข้อผิดพลาดเป็นศูนย์

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

หากคุณประสบปัญหาในการใช้งานหุ่นยนต์ ให้ตรวจสอบดูว่าโดยการเปลี่ยนสัญลักษณ์ของสมการหรือไม่ !!!

และตอนนี้ส่วนที่ยากที่สุดในการค้นหา Kp และ Kd ฉันต้องใช้เวลามากกว่า 1 ชั่วโมงในการปรับแต่งหุ่นยนต์ของฉันให้สมบูรณ์แบบ แทนที่จะใส่ค่าแบบสุ่ม ฉันพบวิธีที่ง่ายกว่าในการพิจารณาสิ่งนี้

  1. เริ่มต้นด้วย kp และ Kd เท่ากับ 0 และเริ่มด้วย Kp ขั้นแรกให้ลองตั้งค่า Kp เป็น 1 และสังเกตหุ่นยนต์ เป้าหมายของเราคือทำตามเส้นแม้ว่าจะสั่นก็ตาม ถ้าหุ่นยนต์ยิงเกินและเสียเส้นจะลดค่า kp.ถ้าหุ่นยนต์ไม่สามารถนำทางเลี้ยวและเฉื่อยเพิ่มค่า Kp
  2. เมื่อหุ่นยนต์ดูเหมือนว่าจะไปตามเส้นบ้าง ให้ปรับค่า Kd (ค่า Kd >ค่า Kp) เริ่มจาก 1 และเพิ่มค่าจนกว่าคุณจะเห็นการขับที่ราบรื่นและมีการโยกเยกน้อยลง
  3. เมื่อหุ่นยนต์เริ่มเดินตามเส้น ให้เพิ่มความเร็วและดูว่าหุ่นยนต์สามารถรักษาและเดินตามเส้นได้หรือไม่

โปรดทราบว่าความเร็วมีผลโดยตรงต่อการปรับแต่ง PID และบางครั้งคุณอาจต้องปรับใหม่เพื่อให้ตรงกับความเร็วของหุ่นยนต์ของคุณ

ตอนนี้เราสามารถลงไปสร้างหุ่นยนต์ของเราได้แล้ว

ขั้นตอนที่ 2: การสร้าง

The Build
The Build
The Build
The Build
The Build
The Build

Arduino atmega 2560 พร้อมสาย USB – นี่คือไมโครคอนโทรลเลอร์หลักที่ใช้

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

www.ebay.com/itm/2WD-DIY-2-Wheel-Drive-Rou…

มอเตอร์เกียร์แบบไมโครเมทัล- หุ่นยนต์ต้องการมอเตอร์ที่หมุนเร็วเพื่อรับมือกับกิจวัตร PID เพราะผมใช้มอเตอร์ที่มีอัตราความเร็ว 6V 400rpm และล้อที่ยึดเกาะได้ดี

www.ebay.com/itm/12mm-6V-400RPM-Torque-Gea…

www.ebay.com/itm/HOT-N20-Micro-Gear-Motor-…

อาร์เรย์เซ็นเซอร์ QTR 8Rc – สามารถใช้สำหรับการติดตามสายตามที่กล่าวไว้ก่อนหน้านี้ ฉันคิดว่าตอนนี้คุณมีความเข้าใจที่ชัดเจนเกี่ยวกับวิธีการใช้งานอาร์เรย์เซ็นเซอร์ด้วย PID โค้ดนี้ง่ายมากและการใช้ไลบรารี Arduino ที่มีอยู่ คุณจะทำได้ เพื่อสร้างผู้ติดตามสายด่วน

www.ebay.com/itm/Pololu-QTR-8RC-Reflectanc…

TB6612FNG ไดรเวอร์มอเตอร์-ฉันต้องการใช้ตัวขับมอเตอร์ที่สามารถจัดการกับการเลี้ยวและเปลี่ยนทิศทางได้ในพริบตา ซึ่งสามารถเบรกมอเตอร์ได้อย่างมีประสิทธิภาพเมื่อสัญญาณ PWM เหลือน้อย

www.ebay.com/itm/Pololu-Dual-DC-Motor-Driv…

แบตเตอรี่ Lipo - แบตเตอรี่ lipo 11.1V ใช้เพื่อให้พลังงานแก่หุ่นยนต์ แม้ว่าฉันจะใช้แบตเตอรี่ lipo 11.1 V ความจุนี้มากกว่าที่จำเป็นสำหรับ Arduino และมอเตอร์ หากคุณพบ 7.4V ที่มีน้ำหนักเบา แบตเตอรี่ lipo หรือก้อนแบตเตอรี่ Ni-MH 6V มันจะสมบูรณ์แบบ ด้วยเหตุนี้ฉันจึงต้องใช้ตัวแปลงบั๊กเพื่อแปลงแรงดันไฟฟ้าเป็น 6V

11.1V-

7.4 V-

โมดูลแปลงบั๊ก-

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

ขั้นตอนที่ 3: การประกอบ

การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ

ติดมอเตอร์และล้อลูกล้อขนาดเล็กเข้ากับจานโดยใช้น็อตและสกรู จากนั้นจึงติดตั้งเซ็นเซอร์ QTR, ไดรเวอร์มอเตอร์, บอร์ด Arduino และสุดท้ายใส่แบตเตอรี่เข้ากับแชสซี

นี่คือไดอะแกรมที่สมบูรณ์แบบที่ฉันพบบนอินเทอร์เน็ต ซึ่งจะบอกคุณว่าควรทำการเชื่อมต่ออย่างไร

ขั้นตอนที่ 4: ออกแบบ Line Track ของคุณ

ออกแบบ Line Track ของคุณ
ออกแบบ Line Track ของคุณ

ตอนนี้โปรเจ็กต์ของคุณใกล้จะจบลงแล้ว สำหรับขั้นตอนสุดท้าย คุณต้องมีเวทีเล็ก ๆ เพื่อทดสอบหุ่นยนต์ของคุณ ฉันใช้เส้นสุ่มเส้นสีขาวกว้าง 3 ซม. บนพื้นหลังสีดำ ตรวจสอบให้แน่ใจว่าคุณวางทุกอย่างไว้อย่างดีและในขณะนี้ให้หลีกเลี่ยงมุมตัดและหน้าตัด 90 องศา เนื่องจากเป็นกรณีที่ซับซ้อนในจุดของการเข้ารหัส

ขั้นตอนที่ 5: ตั้งโปรแกรมรหัสของคุณ

1. ดาวน์โหลดและติดตั้ง Arduino

IDE เดสก์ท็อป

· windows -

· Mac OS X -

· ลินุกซ์ -

2. ดาวน์โหลดและวางไฟล์อาร์เรย์เซ็นเซอร์ QTR 8 RC ลงในโฟลเดอร์ไลบรารี Arduino

·

· วางไฟล์ลงในพาธ - C:\Arduino\libraries

3. ดาวน์โหลดและเปิดLINEFOLLOWING.ino

4. อัปโหลดรหัสไปยังบอร์ด Arduino ผ่านสาย USB

ขั้นตอนที่ 6: เสร็จสิ้น !

Image
Image

ตอนนี้คุณมีหุ่นยนต์ติดตามบรรทัดที่สร้างขึ้นเองแล้ว

หวังว่าบทช่วยสอนนี้จะเป็นประโยชน์ อย่าลังเลที่จะติดต่อฉันทาง [email protected] หากคุณมีปัญหาใดๆ

แล้วพบกันใหม่กับโครงการใหม่

สนุกกับการสร้าง!!

แนะนำ: