หุ่นยนต์หลีกเลี่ยงขอบค่อนข้างคล้ายกับโครงการ "Line Follower Robot" ก่อนหน้าของฉัน หุ่นยนต์ที่ใช้ไมโครคอนโทรลเลอร์ 8051 นี้ตรวจจับขอบและหลีกเลี่ยงโดยการหมุนหรือหยุด มาดูกันว่าเราจะออกแบบหุ่นยนต์หลีกเลี่ยงขอบได้อย่างไร
แนวคิดของ Edge Avoider Robot
แนวคิดของหุ่นยนต์ Edge Avoider นั้นเหมือนกับผู้ติดตามไลน์ ในหุ่นยนต์ประเภทนี้เรามักใช้พฤติกรรมของแสงที่พื้นผิวขาวดำ เมื่อแสงตกบนพื้นผิวสีขาวมันจะสะท้อนเกือบเต็มและในกรณีที่พื้นผิวสีดำแสงจะถูกดูดซับโดยพื้นผิวสีดำ พฤติกรรมของแสงนี้ใช้ในหุ่นยนต์ผู้ติดตามไลน์เช่นเดียวกับหุ่นยนต์หลีกเลี่ยงขอบ
ที่นี่เราได้ใช้เครื่องส่งและตัวรับสัญญาณ IR หรือที่เรียกว่าโฟโต้ไดโอดใช้สำหรับส่งและรับแสง IR ส่งแสงอินฟราเรด เมื่อรังสีอินฟราเรดตกลงบนพื้นผิวใด ๆ ยกเว้นพื้นผิวสีดำหรือสีเข้มมากแสงจะสะท้อนกลับและจับโดยโฟโตไดโอดและสร้างการเปลี่ยนแปลงแรงดันไฟฟ้าบางอย่าง เมื่อแสง IR ตกลงบนพื้นผิวสีดำแสงจะถูกดูดซับโดยพื้นผิวสีดำและไม่มีรังสีสะท้อนกลับผลลัพธ์ไดโอดภาพถ่ายจะไม่ได้รับแสงหรือรังสีใด ๆ
ที่นี่ในหุ่นยนต์ Edge Avoiderนี้เมื่อเซ็นเซอร์ตรวจจับพื้นผิวสีขาวไมโครคอนโทรลเลอร์จะได้รับ 0 เป็นอินพุตและเมื่อตัวควบคุมสายสีดำรับ 1 เป็นอินพุต
แผนภาพวงจรและคำอธิบายการทำงาน
เราสามารถแบ่งโครงการ Edge Avoider Robot ออกเป็นสามส่วนที่แตกต่างกันนั่นคือส่วนเซ็นเซอร์ส่วนควบคุมและส่วนไดรเวอร์
ส่วนเซนเซอร์: ส่วนนี้ประกอบด้วยไดโอด IR, โพเทนชิออมิเตอร์, ตัวเปรียบเทียบ (Op-Amp) และ LED โพเทนชิออมิเตอร์ใช้สำหรับการตั้งค่าแรงดันอ้างอิงที่เทอร์มินัลเดียวของเครื่องเปรียบเทียบและเซ็นเซอร์ IR ใช้เพื่อตรวจจับเส้นและให้แรงดันไฟฟ้าที่ขั้วที่สองของเครื่องเปรียบเทียบ จากนั้นเครื่องเปรียบเทียบจะเปรียบเทียบแรงดันไฟฟ้าทั้งสองและสร้างสัญญาณดิจิตอลที่เอาต์พุต ในวงจรนี้เราใช้ตัวเปรียบเทียบสองตัวสำหรับเซ็นเซอร์สองตัว LM 358 ใช้เป็นตัวเปรียบเทียบ LM358 มี Op-amp เสียงรบกวนต่ำในตัว
ส่วนควบคุม:ไมโครคอนโทรลเลอร์ 8051 ใช้สำหรับควบคุมกระบวนการทั้งหมดของหุ่นยนต์ผู้ติดตามสาย เอาท์พุตของเครื่องเปรียบเทียบเชื่อมต่อกับหมายเลขพิน P0.0 และ P0.1 ของ 8051 8051 อ่านสัญญาณเหล่านี้และส่งคำสั่งไปยังวงจรขับเพื่อขับตามสาย
ส่วนไดรเวอร์: ส่วน ไดรเวอร์ประกอบด้วยตัวขับมอเตอร์และมอเตอร์กระแสตรงสองตัว ตัวขับมอเตอร์ใช้สำหรับขับเคลื่อนมอเตอร์เนื่องจากไมโครคอนโทรลเลอร์ไม่ได้จ่ายแรงดันและกระแสเพียงพอที่จะขับเคลื่อนมอเตอร์ ดังนั้นเราจึงเพิ่มวงจรขับมอเตอร์เพื่อให้ได้แรงดันและกระแสเพียงพอสำหรับมอเตอร์ ไมโครคอนโทรลเลอร์ส่งคำสั่งไปยังไดรเวอร์มอเตอร์จากนั้นจึงขับมอเตอร์
กำลังทำงาน
การทำงานของหุ่นยนต์หลีกเลี่ยงขอบนี้ค่อนข้างน่าสนใจและเหมือนกับ line follower แต่ความแตกต่างในการทำงานหลังจากการตรวจจับอินพุต ในหุ่นยนต์นี้เมื่อตรวจจับพื้นผิวสีขาวมันจะเดินไปข้างหน้าและเมื่อเซ็นเซอร์ตัวใดตัวหนึ่งหรือเซ็นเซอร์ทั้งสองตัวไม่รู้สึกว่าไม่มีสัญญาณหรือพื้นผิวสีดำมันจะหยุดและเคลื่อนที่ไปข้างหลังและเปลี่ยนทิศทางและหากตรวจจับพื้นผิวสีขาวอีกครั้งแทนที่จะเดินไปข้างหน้า
แผนภาพวงจรแสดงสำหรับหุ่นยนต์หลีกเลี่ยงขอบนี้ เอาต์พุตของเครื่องเปรียบเทียบเชื่อมต่อโดยตรงกับหมายเลขพิน P0.0 และ P0.1 ของไมโครคอนโทรลเลอร์ และขาอินพุตของมอเตอร์ขับ 2, 7, 10 และ 15 เชื่อมต่อที่หมายเลขพิน P2.3, P2.2, P2.1 และ P2.4 ตามลำดับ และมอเตอร์หนึ่งตัวเชื่อมต่อที่ขาเอาต์พุตของตัวขับมอเตอร์ 3 และ 6 และมอเตอร์อีกตัวเชื่อมต่อที่ 11 และ 14
ในการเขียนโปรแกรมก่อนอื่นเราได้กำหนดพินอินพุตและเอาต์พุต จากนั้นในฟังก์ชั่นหลักเราตรวจสอบอินพุตและส่งเอาต์พุตตามพินเอาต์พุตสำหรับมอเตอร์ขับเคลื่อน มีสี่เงื่อนไขในการหลีกเลี่ยงขอบนี้ที่เราอ่านโดยใช้ไมโครคอนโทรลเลอร์ 8051 เราใช้เซ็นเซอร์สองตัวคือเซ็นเซอร์ซ้ายและเซ็นเซอร์ขวา
เงื่อนไข:
อินพุต |
เอาต์พุต |
การเคลื่อนไหวของหุ่นยนต์ |
||||
เซ็นเซอร์ซ้าย |
เซ็นเซอร์ขวา |
มอเตอร์ซ้าย |
มอเตอร์ขวา |
|||
LS |
อาร์เอส |
LM1 |
LM2 |
RM1 |
RM2 |
|
0 |
0 |
1 |
0 |
1 |
0 |
ส่งต่อ |
0 |
1 |
1 |
0 |
0 |
0 |
หยุด / ถอยหลัง / เลี้ยวขวา |
1 |
0 |
0 |
0 |
1 |
0 |
หยุด / ถอยหลัง / เลี้ยวซ้าย |
1 |
1 |
0 |
0 |
0 |
0 |
หยุด / ถอยหลัง / เลี้ยวซ้าย |
เราได้เขียนโปรแกรมตามเงื่อนไขตารางด้านบน
เค้าโครง PCB