สารบัญ:
- ขั้นตอนที่ 1: หลักการทำงาน
- ขั้นตอนที่ 2: การสร้าง
- ขั้นตอนที่ 3: การประกอบ
- ขั้นตอนที่ 4: ออกแบบ Line Track ของคุณ
- ขั้นตอนที่ 5: ตั้งโปรแกรมรหัสของคุณ
- ขั้นตอนที่ 6: เสร็จสิ้น !
วีดีโอ: หุ่นยนต์ติดตามสาย PID พร้อมอาร์เรย์เซ็นเซอร์ POLOLU QTR 8RC: 6 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
สวัสดี!
นี่เป็นครั้งแรกที่ฉันเขียนเกี่ยวกับ 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 ชั่วโมงในการปรับแต่งหุ่นยนต์ของฉันให้สมบูรณ์แบบ แทนที่จะใส่ค่าแบบสุ่ม ฉันพบวิธีที่ง่ายกว่าในการพิจารณาสิ่งนี้
- เริ่มต้นด้วย kp และ Kd เท่ากับ 0 และเริ่มด้วย Kp ขั้นแรกให้ลองตั้งค่า Kp เป็น 1 และสังเกตหุ่นยนต์ เป้าหมายของเราคือทำตามเส้นแม้ว่าจะสั่นก็ตาม ถ้าหุ่นยนต์ยิงเกินและเสียเส้นจะลดค่า kp.ถ้าหุ่นยนต์ไม่สามารถนำทางเลี้ยวและเฉื่อยเพิ่มค่า Kp
- เมื่อหุ่นยนต์ดูเหมือนว่าจะไปตามเส้นบ้าง ให้ปรับค่า Kd (ค่า Kd >ค่า Kp) เริ่มจาก 1 และเพิ่มค่าจนกว่าคุณจะเห็นการขับที่ราบรื่นและมีการโยกเยกน้อยลง
- เมื่อหุ่นยนต์เริ่มเดินตามเส้น ให้เพิ่มความเร็วและดูว่าหุ่นยนต์สามารถรักษาและเดินตามเส้นได้หรือไม่
โปรดทราบว่าความเร็วมีผลโดยตรงต่อการปรับแต่ง PID และบางครั้งคุณอาจต้องปรับใหม่เพื่อให้ตรงกับความเร็วของหุ่นยนต์ของคุณ
ตอนนี้เราสามารถลงไปสร้างหุ่นยนต์ของเราได้แล้ว
ขั้นตอนที่ 2: การสร้าง
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 ของคุณ
ตอนนี้โปรเจ็กต์ของคุณใกล้จะจบลงแล้ว สำหรับขั้นตอนสุดท้าย คุณต้องมีเวทีเล็ก ๆ เพื่อทดสอบหุ่นยนต์ของคุณ ฉันใช้เส้นสุ่มเส้นสีขาวกว้าง 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: เสร็จสิ้น !
ตอนนี้คุณมีหุ่นยนต์ติดตามบรรทัดที่สร้างขึ้นเองแล้ว
หวังว่าบทช่วยสอนนี้จะเป็นประโยชน์ อย่าลังเลที่จะติดต่อฉันทาง [email protected] หากคุณมีปัญหาใดๆ
แล้วพบกันใหม่กับโครงการใหม่
สนุกกับการสร้าง!!
แนะนำ:
หุ่นยนต์ติดตามสาย Siebe Deetens: 4 ขั้นตอน
Line Follower Robot Siebe Deetens: หุ่นยนต์ที่ทำงานด้วยไฟฟ้า Elektromechanica การทำงานอัตโนมัติของ HOGENT (3e ปริญญาตรี), hebben we vanuit het vak Syntheseproject de opdracht gekregen om een line follower robot te maken.Hier kan je het hele bouwuitproces lezen met jean สลา
Hexapod Arduino Pololu Maestro Servo Controll: 11 ขั้นตอน
Hexapod Arduino Pololu Maestro Servo Controll: Nach dem mein erster Versuch mit einem Hexapod, daran gescheitert war das die servos zu schwach waren jetzt ein neuer Versuch mit mit 10Kg Servos aus HK. Ausserdem habe ich mich für ein neuen Sevocontroller von Pololu entschieden
หุ่นยนต์ติดตามสาย: 5 ขั้นตอน
Line Follower Robot : หุ่นยนต์ Line Follower โดยใช้ L293D IC..ง่ายมาก….ทำ
Ball Balancer และ PID Fiddler: 7 ขั้นตอน (พร้อมรูปภาพ)
Ball Balancer และ PID Fiddler: โครงการนี้นำเสนอสำหรับผู้ที่มีประสบการณ์ในการใช้ Arduino ความรู้เดิมเกี่ยวกับการใช้เซอร์โว, จอแสดงผล OLED, หม้อ, ปุ่ม, การบัดกรีจะเป็นประโยชน์ โปรเจ็กต์นี้ใช้ชิ้นส่วนที่พิมพ์ 3 มิติ Ball Balancer เป็นอุปกรณ์ทดสอบ PID สำหรับนักเ
การควบคุมความเร็วของมอเตอร์กระแสตรงโดยใช้อัลกอริทึม PID (STM32F4): 8 ขั้นตอน (พร้อมรูปภาพ)
การควบคุมความเร็วของ DC Motor โดยใช้ PID Algorithm (STM32F4): สวัสดีทุกคน นี่คือ tahir ul haq กับโครงการอื่น คราวนี้เป็น STM32F407 เป็น MC เป็นโครงการปิดภาคเรียนกลาง หวังว่าคุณจะชอบมัน มันต้องใช้แนวคิดและทฤษฎีมากมาย เราจึงขอเข้าไปก่อน กับการถือกำเนิดของคอมพิวเตอร์และ