- วัสดุที่ต้องการ:
- แนวคิดของ Line Follower
- แผนภาพวงจรและคำอธิบาย:
- การเขียนโปรแกรมไมโครคอนโทรลเลอร์ PIC:
- PIC Line Follower ในการดำเนินการ:
Line Follower Robot เป็นหุ่นยนต์ที่เรียบง่าย แต่น่าสนใจสำหรับนักเรียน / มือสมัครเล่นส่วนใหญ่ในการสร้าง ในการกวดวิชานี้เราจะได้เรียนรู้วิธีการสายติดตามหุ่นยนต์ธิการและวิธีที่เราสามารถสร้างหนึ่งใช้PIC ไมโครคอนโทรลเลอร์ PIC16F877A PIC16F877A เป็น MCU อเนกประสงค์ 40 พินจากไมโครชิปเราได้ใช้ IC นี้ในซีรีย์การสอน PIC ที่สมบูรณ์ของเรา หากคุณเป็นมือใหม่คุณอาจต้องการดูบทช่วยสอน PIC เหล่านี้เพื่อเรียนรู้พื้นฐานของ IC นี้และวิธีอัปโหลดโปรแกรมไปยังไมโครคอนโทรลเลอร์ เนื่องจากเราได้กล่าวถึงข้อมูลนี้แล้วในบทช่วยสอนของเราเราจะข้ามไปในคำอธิบายด้านล่าง
หากคุณสนใจหุ่นยนต์คุณน่าจะคุ้นเคยกับชื่อ“ Line Follower Robot ” เป็นอย่างดี หุ่นยนต์นี้สามารถเดินตามเส้นได้เพียงแค่ใช้เซ็นเซอร์และมอเตอร์คู่กัน หุ่นยนต์ตัวนี้ช่วยให้คุณมีพื้นที่สำหรับการพัฒนาที่ไม่สิ้นสุดและหุ่นยนต์เช่น Kiva (หุ่นยนต์คลังสินค้าของ Amazon) เป็นตัวอย่างสำหรับสิ่งนี้ คุณยังสามารถตรวจสอบ Line Follower Robots อื่น ๆ ของเราได้:
- Line Follower Robot โดยใช้ไมโครคอนโทรลเลอร์ 8051
- Line Follower Robot โดยใช้ Arduino
- Line Follower Robot โดยใช้ Raspberry Pi
วัสดุที่ต้องการ:
- PIC16F877A
- เซ็นเซอร์ IR (2Nos)
- มอเตอร์เกียร์ DC (2Nos)
- L293D ขับมอเตอร์
- Chaises (คุณสามารถสร้างของคุณเองโดยใช้กระดาษแข็ง)
- แบตสำรอง (แหล่งจ่ายไฟที่มี)
แนวคิดของ Line Follower
Line Follower Robot สามารถติดตามเส้นได้โดยใช้เซ็นเซอร์ IR เซ็นเซอร์นี้มีตัวส่งสัญญาณ IR และตัวรับสัญญาณ IR เครื่องส่งสัญญาณ IR (IR LED) จะส่งแสงและตัวรับ (โฟโตไดโอด) จะรอให้แสงที่ส่งกลับมา แสง IR จะย้อนกลับก็ต่อเมื่อสะท้อนจากพื้นผิวเท่านั้น ในขณะที่พื้นผิวทั้งหมดไม่สะท้อนแสง IR มีเพียงพื้นผิวสีขาวเท่านั้นที่สามารถสะท้อนแสงได้อย่างสมบูรณ์และพื้นผิวสีดำจะสังเกตได้อย่างสมบูรณ์ดังแสดงในรูปด้านล่าง เรียนรู้เพิ่มเติมเกี่ยวกับโมดูลเซ็นเซอร์ IR ที่นี่
ตอนนี้เราจะใช้เซ็นเซอร์ IR สองตัวเพื่อตรวจสอบว่าหุ่นยนต์อยู่ในแนวเดียวกันหรือไม่และมอเตอร์สองตัวเพื่อแก้ไขหุ่นยนต์หากเคลื่อนที่ออกจากแทร็ก มอเตอร์เหล่านี้ต้องการกระแสไฟฟ้าสูงและควรเป็นแบบสองทิศทาง ด้วยเหตุนี้เราจึงใช้โมดูลไดรเวอร์มอเตอร์เช่น L293D เราจะต้องมีไมโครคอนโทรลเลอร์เช่นPICเพื่อสั่งการมอเตอร์ตามค่าจากเซ็นเซอร์ IR แผนภาพบล็อกแบบง่ายที่เหมือนกันแสดงอยู่ด้านล่าง
เซ็นเซอร์ IR สองตัวนี้จะถูกวางไว้ที่ด้านใดด้านหนึ่งของเส้น หากไม่มีเซ็นเซอร์ตรวจจับเส้นสีดำได้ไมโครคอนโทรลเลอร์ PIC จะสั่งให้มอเตอร์เคลื่อนที่ไปข้างหน้าดังที่แสดงด้านล่าง
หากเซ็นเซอร์ด้านซ้ายเป็นเส้นสีดำไมโครคอนโทรลเลอร์จะสั่งให้หุ่นยนต์เลี้ยวซ้ายโดยหมุนล้อขวาเพียงอย่างเดียว
หากเซ็นเซอร์ด้านขวาเป็นเส้นสีดำไมโครคอนโทรลเลอร์จะสั่งให้หุ่นยนต์เลี้ยวขวาโดยหมุนล้อซ้ายเพียงอย่างเดียว
หากเซ็นเซอร์ทั้งสองอยู่บนเส้นสีดำหุ่นยนต์จะหยุดทำงาน
วิธีนี้หุ่นยนต์จะสามารถติดตามเส้นได้โดยไม่ต้องออกนอกเส้นทาง ตอนนี้ให้เราดูว่าวงจรและรหัสมีลักษณะอย่างไร
แผนภาพวงจรและคำอธิบาย:
แผนภาพวงจรที่สมบูรณ์สำหรับ Line Follower Robot ที่ใช้ PIC นี้แสดงไว้ด้านล่าง
วงจรนี้ใช้เซ็นเซอร์ IR สองตัวและมอเตอร์เกียร์ DC คู่หนึ่งพร้อมกับโมดูลไดรเวอร์มอเตอร์ดังที่แสดงด้านบน โมดูลไดรเวอร์มอเตอร์ที่ใช้ในโครงการนี้คือ L293D เราจำเป็นต้องมีไดรเวอร์มอเตอร์เนื่องจากขาเอาต์พุตของไมโครคอนโทรลเลอร์ PIC ไม่สามารถจ่ายกระแสไฟฟ้าได้เพียงพอสำหรับมอเตอร์ที่จะขับเคลื่อน โมดูลนี้จะถูกขับเคลื่อนโดยตรงจากแหล่งจ่ายไฟ (5V) ดังที่แสดงในวงจร โมดูลมีหมุดสี่ขา (สองตัวสำหรับมอเตอร์แต่ละตัว) ซึ่งเชื่อมต่อกับ PIC เพื่อควบคุมทิศทางของมอเตอร์ นอกจากนี้เรายังมีเซ็นเซอร์ IR สองตัวซึ่งทำหน้าที่เป็นอินพุตไปยังไมโครคอนโทรลเลอร์ PIC เซ็นเซอร์เหล่านี้จะสูง (1) หากอยู่เหนือพื้นผิวสีขาวและจะลดลงต่ำ (0) เมื่ออยู่เหนือพื้นผิวสีดำ การเชื่อมต่อพินทั้งหมดแสดงอยู่ในตารางด้านล่าง
ส. เลขที่ |
เชื่อมต่อจาก |
เชื่อมต่อกับ |
1 |
เซ็นเซอร์ IR ขาออกซ้าย |
RD2 (พิน 21) |
2 |
เซ็นเซอร์ IR ขาออกขวา |
RD3 (พิน 22) |
4 |
มอเตอร์ 1 ช่องพิน |
RC4 (พิน 23) |
5 |
ขามอเตอร์ 1 ช่อง B |
RC5 (พิน 25) |
6 |
ขามอเตอร์ 2 ช่อง A |
RC6 (พิน 26) |
7 |
ขามอเตอร์ 2 ช่อง B |
RC7 (พิน 27) |
ในฮาร์ดแวร์จริงฉันใช้แบตสำรองซึ่งจะให้เอาต์พุต + 5V โดยตรงผ่านพอร์ต USB ดังนั้นฉันจึงข้ามตัวควบคุมแรงดันไฟฟ้า 7805 และขับเคลื่อน PIC เซ็นเซอร์และมอเตอร์โดยใช้สิ่งเดียวกัน คุณสามารถทำได้เช่นเดียวกันกับการใช้แบตเตอรี่ 12V พร้อมกับตัวควบคุมดังที่แสดงในวงจร
การเขียนโปรแกรมไมโครคอนโทรลเลอร์ PIC:
เมื่อคุณพร้อมกับฮาร์ดแวร์แล้วก็ถึงเวลาเริ่มการเขียนโปรแกรม โปรแกรมที่สมบูรณ์ของโครงการ PIC สายติดตามหุ่นยนต์นี้จะได้รับในตอนท้ายของหน้านี้ อย่างไรก็ตามส่วนที่สำคัญจะอธิบายไว้ด้านล่าง
เริ่มต้นพิน I / O ตามบรรทัดต่อไปนี้ หมุดเซ็นเซอร์ IR 2 ตัวทำหน้าที่เป็นอินพุตและหมุดมอเตอร์ทั้งสี่ทำหน้าที่เป็นขาออก
TRISD2 = 1; TRISD3 = 1; // Bath หมุดเซ็นเซอร์ IR ถูกประกาศเป็นอินพุต TRISC4 = 0; TRISC5 = 0; // มอเตอร์ 1 พินประกาศเป็นเอาต์พุต TRISC6 = 0; TRISC7 = 0; // มอเตอร์ 2 พินประกาศเป็นเอาต์พุต
ตอนนี้เราต้องอ่านสถานะของเซ็นเซอร์ IR และควบคุมมอเตอร์ให้เหมาะสม ตัวอย่างเช่นถ้าเซ็นเซอร์ทั้งสองอยู่สูง (ไม่อยู่ภายใต้เส้นสีดำ) เราจะเลื่อนมอเตอร์ทั้งสองไปข้างหน้าดังที่แสดงในโปรแกรมด้านล่าง
ถ้า (RD2 == 1 && RD3 == 1) // เซ็นเซอร์ทั้งสองไม่เกินแนว balck {RC4 = 0; RC5 = 1; // มอเตอร์ 1 ไปข้างหน้า RC6 = 1; RC7 = 0; // มอเตอร์ 2 ไปข้างหน้า}
หากเซ็นเซอร์ด้านซ้ายมาทับเส้นสีดำ เราจะทำการเลี้ยวขวาโดยจับมอเตอร์ 1 นิ่งและหมุนมอเตอร์ 2 ไปข้างหน้า การกลึงแบบนี้เรียกว่าการกลึงแบบดิฟเฟอเรนเชียล
อื่นถ้า (RD2 == 0 && RD3 == 1) // เซ็นเซอร์ด้านซ้ายอยู่เหนือเส้นสีดำ {RC4 = 1; RC5 = 1; // มอเตอร์ 1 หยุด RC6 = 1; RC7 = 0; // มอเตอร์ 2 ไปข้างหน้า}
ในทำนองเดียวกันหากเซ็นเซอร์ด้านขวามาทับเส้นสีดำ บอทจะทำการเลี้ยวซ้ายโดยจับมอเตอร์ตัวที่สองให้นิ่งและหมุนมอเตอร์ตัวแรกไปในทิศทางเดียวตามที่แสดงด้านล่าง
อื่นถ้า (RD2 == 1 && RD3 == 0) // เซ็นเซอร์ด้านขวาอยู่เหนือเส้นสีดำ {RC4 = 0; RC5 = 1; // มอเตอร์ 1 ไปข้างหน้า RC6 = 1; RC7 = 1; // มอเตอร์ 2 หยุด}
สุดท้ายถ้าทั้งสองเซ็นเซอร์มาภายใต้เส้นสีดำจากนั้นถึงเวลาที่จะหยุดบอทซึ่งสามารถทำได้โดยทำให้หมุดทั้งหมดของมอเตอร์ทั้งสองตัวสูง รหัสในการทำเช่นเดียวกันแสดงอยู่ด้านล่าง
else // เซ็นเซอร์ทั้งสองตัวทับเส้นสีดำ {RC4 = 1; RC5 = 1; // มอเตอร์ 1 หยุด RC6 = 1; RC7 = 1; // มอเตอร์ 2 หยุด}
นั่นคือโปรแกรมพร้อมและสามารถอัปโหลดไปยัง PIC โดยใช้โปรแกรมเมอร์เช่น PicKit
PIC Line Follower ในการดำเนินการ:
เมื่อฮาร์ดแวร์และรหัสพร้อมแล้วก็ถึงเวลาดำเนินการบางอย่าง ดังที่ได้กล่าวไว้ก่อนหน้านี้ฉันได้ใช้ Power bank เพื่อจ่ายพลังงานให้กับบอทดังนั้นสิ่งที่ฉันต้องทำก็เพียงแค่เชื่อมต่อพาวเวอร์แบงค์กับบอทที่มีการตั้งค่าฮาร์ดแวร์และอัปโหลดโค้ดแล้ว
บอร์ด PIC Perf สร้างขึ้นสำหรับซีรีย์การสอน PIC ของเราซึ่งเราได้เรียนรู้วิธีใช้ไมโครคอนโทรลเลอร์ PIC คุณอาจต้องการกลับไปที่บทเรียนไมโครคอนโทรลเลอร์ PIC เหล่านั้นโดยใช้ MPLABX และ XC8 หากคุณไม่ทราบวิธีเบิร์นโปรแกรมโดยใช้ Pickit 3 เนื่องจากฉันจะข้ามข้อมูลพื้นฐานเหล่านั้นทั้งหมด
ตอนนี้เพียงแค่เปิดบอทบนเส้นสีดำและคุณควรดูมันตามเส้น
คุณอาจประสบปัญหาในการเริ่มต้นในกรณีนั้นโปรดอ่านเพิ่มเติม หากล้อหมุนตรงกันข้ามเพียงแค่เปลี่ยนขั้วของมอเตอร์ที่ล้อหมุนไปในทิศทางตรงกันข้าม หากบอทเบี่ยงเบนไปจากเส้นให้เปลี่ยนเซ็นเซอร์ IR ทั้งหมดก็น่าจะดี
การทำงานที่สมบูรณ์ของบอทที่สามารถพบได้ใน วิดีโอได้รับด้านล่างหวังว่าคุณจะชอบโครงการนี้และสนุกกับการสร้างสิ่งที่คล้ายกัน หากคุณมีปัญหาในการทำให้สิ่งนี้ใช้งานได้คุณสามารถโพสต์ไว้ในส่วนความคิดเห็นด้านล่างเพื่อแก้ไขหรือใช้ฟอรัมของเราเพื่อพูดคุยเกี่ยวกับเนื้อหาทางเทคนิค