- วัสดุที่จำเป็น
- แนวคิดของ Line Follower
- คำอธิบายวงจร
- การทำงานของ Line Follower Robot โดยใช้ MSP430
- แผนภูมิวงจรรวม
- คำอธิบายการเขียนโปรแกรม
หุ่นยนต์ผู้ติดตามไลน์เป็นหนึ่งในโครงการหุ่นยนต์ยอดนิยมในหมู่นักเรียนและผู้เริ่มต้นเนื่องจากความเรียบง่าย เป็นไปตามเส้นไม่ว่าจะเป็นสีดำหรือสีขาวขึ้นอยู่กับว่าคุณตั้งโปรแกรมไมโครคอนโทรลเลอร์ของคุณอย่างไร ที่นี่เราสร้างหุ่นยนต์ผู้ติดตามโดยใช้ MSP430 Launchpadจาก Texas Instruments ซึ่งเป็นไปตามเส้นสีดำ หากคุณยังใหม่กับ MSP430 Launchpad โปรดอ่านบทช่วยสอนการจ้องด้วย MSP430 ของเรา
วัสดุที่จำเป็น
- MSP430G2 LaunchPad จาก Texas Instruments
- โมดูลไดรเวอร์มอเตอร์ L298D
- การเชื่อมต่อสายไฟ
- โมดูลเซ็นเซอร์ IR
- Chasis ล้อรถไฟเหาะ
- Energia IDE
- แหล่งจ่ายไฟ (3.3v) และ 5v-12v
แนวคิดของ Line Follower
แนวคิดของผู้ติดตามสายเกี่ยวข้องกับแสง เราได้ใช้พฤติกรรมของแสงที่พื้นผิวขาวดำ เมื่อแสงตกบนพื้นผิวสีขาวมันจะสะท้อนเกือบเต็มและในกรณีที่พื้นผิวสีดำแสงจะถูกดูดซับโดยพื้นผิวสีดำ พฤติกรรมที่อธิบายของแสงนี้ใช้ใน หุ่นยนต์ผู้ติดตามสายนี้
ในหุ่นยนต์ติดตามไลน์ที่ใช้ MSP430นี้ เราได้ใช้เครื่องส่งสัญญาณ IR และตัวรับสัญญาณ IR หรือที่เรียกว่าโฟโต้ไดโอด ใช้สำหรับส่งและรับแสง IR ส่งแสงอินฟราเรด เมื่อรังสีอินฟราเรดตกลงบนพื้นผิวสีขาวจะสะท้อนกลับและจับโดยโฟโตไดโอดซึ่งทำให้เกิดการเปลี่ยนแปลงแรงดันไฟฟ้า เมื่อแสง IR ตกลงบนพื้นผิวสีดำแสงจะถูกดูดซับโดยพื้นผิวสีดำและไม่มีรังสีสะท้อนกลับดังนั้นโฟโต้ไดโอดจึงไม่ได้รับแสงหรือรังสีใด ๆ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับเซ็นเซอร์ IR ให้ไปที่ลิงค์
ที่นี่ในหุ่นยนต์ผู้ติดตามบรรทัดที่ใช้ MSP430เมื่อเซ็นเซอร์ตรวจจับพื้นผิวสีขาว MSP จะได้รับ 1 เป็นอินพุตและเมื่อตรวจจับเส้นสีดำ MSP จะได้รับ 0 เป็นอินพุต
คำอธิบายวงจร
เราสามารถแบ่งหุ่นยนต์ผู้ติดตามสายทั้งหมดออกเป็นส่วนต่างๆเช่นส่วนเซ็นเซอร์ส่วนควบคุมและส่วนคนขับ
ส่วนเซนเซอร์: ส่วนนี้ประกอบด้วย IR diodes, potentiometer, Comparator (Op-Amp) และ LED's โพเทนชิออมิเตอร์ใช้สำหรับตั้งค่าแรงดันอ้างอิงที่เทอร์มินัลเดียวของเครื่องเปรียบเทียบและเซ็นเซอร์ IR ตรวจจับเส้นและให้แรงดันไฟฟ้าที่ขั้วที่สองของเครื่องเปรียบเทียบ จากนั้นเครื่องเปรียบเทียบจะเปรียบเทียบแรงดันไฟฟ้าทั้งสองและสร้างสัญญาณดิจิตอลที่เอาต์พุต ในวงจรนี้เราใช้ตัวเปรียบเทียบสองตัวสำหรับเซ็นเซอร์สองตัว LM358 ใช้เป็นตัวเปรียบเทียบ LM358 มี Op-amp เสียงรบกวนต่ำในตัว
ส่วนควบคุม: MSP430 Launchpad ใช้สำหรับควบคุมกระบวนการทั้งหมดของหุ่นยนต์ผู้ติดตามสาย เอาต์พุตของตัวเปรียบเทียบเชื่อมต่อกับพินดิจิทัล P1_3 และ P1_4 ของ MPS430 Launchpad MSP430 Launchpad อ่านสัญญาณเหล่านี้และส่งคำสั่งไปยังวงจรไดรเวอร์เพื่อขับเคลื่อนผู้ติดตามสาย
ส่วนไดรเวอร์: ส่วน ไดรเวอร์ประกอบด้วยตัวขับมอเตอร์และมอเตอร์กระแสตรงสองตัว ตัวขับมอเตอร์ใช้สำหรับขับเคลื่อนมอเตอร์เนื่องจาก MSP430 Launchpad ไม่ได้จ่ายแรงดันและกระแสให้กับมอเตอร์เพียงพอ ดังนั้นเราจึงเพิ่มวงจรขับมอเตอร์เพื่อให้ได้แรงดันและกระแสเพียงพอสำหรับมอเตอร์ ที่นี่เราได้ใช้ไดรเวอร์ L298d ในการขับเคลื่อน DC Motors MSP430 Launchpad ส่งคำสั่งไปยังไดรเวอร์มอเตอร์นี้จากนั้นจึงขับมอเตอร์
เราได้พัฒนา Line Follower Robots โดยใช้ไมโครคอนโทรลเลอร์ที่แตกต่างกัน:
- Line Follower Robot โดยใช้ไมโครคอนโทรลเลอร์ 8051
- Line Follower Robot โดยใช้ Arduino
- Line Follower Robot โดยใช้ Raspberry Pi
- Line Follower Robot โดยใช้ไมโครคอนโทรลเลอร์ PIC
การทำงานของ Line Follower Robot โดยใช้ MSP430
การทำงานของ line follower น่าสนใจมาก หุ่นยนต์ผู้ติดตามสายตรวจจับเส้นสีดำโดยใช้เซ็นเซอร์จากนั้นส่งสัญญาณไปยัง MSP430 Launchpad จากนั้น MSP430 Launchpad จะขับเคลื่อนมอเตอร์ตามเอาต์พุตของเซ็นเซอร์
ในโครงการนี้เรากำลังใช้โมดูลเซ็นเซอร์ IR สองตัวคือเซ็นเซอร์ด้านซ้ายและเซ็นเซอร์ด้านขวา เมื่อเซ็นเซอร์ทั้งซ้ายและขวาจับได้ว่าเป็นสีขาวหุ่นยนต์จะเคลื่อนที่ไปข้างหน้า
หากเซ็นเซอร์ด้านซ้ายเป็นเส้นสีดำหุ่นยนต์จะหันไปทางซ้าย
หากเซ็นเซอร์ด้านขวารู้สึกถึงเส้นสีดำหุ่นยนต์จะหมุนไปทางขวาจนกว่าเซ็นเซอร์ทั้งสองจะมาที่พื้นผิวสีขาว เมื่อพื้นผิวสีขาวมาหุ่นยนต์เริ่มเคลื่อนที่ไปข้างหน้าอีกครั้ง
หากเซ็นเซอร์ทั้งสองอยู่บนเส้นสีดำหุ่นยนต์จะหยุดทำงาน
แผนภูมิวงจรรวม
วงจรสำหรับMSP430 Line Follower Robotนี้ง่ายมาก เอาต์พุตของตัวเปรียบเทียบเชื่อมต่อโดยตรงกับหมายเลขพินดิจิทัลของ MSP430 Launchpad p1_3 และ P1_4 และขาอินพุตของไดรเวอร์มอเตอร์ IN1, IN2, IN3 และ IN4 เชื่อมต่อที่พินดิจิทัลของ MSP430 Launchpad P1_5, P2_0, P2_1, P2_2 ตามลำดับ มอเตอร์หนึ่งตัวเชื่อมต่อที่ขาเอาต์พุตของตัวขับมอเตอร์ OUT1 และ OUT2 และมอเตอร์อีกตัวเชื่อมต่อที่ OUT3 และ OUT4 ที่นี่เราใช้แหล่งจ่ายไฟ 3.3v เพื่อจ่ายไฟให้กับวงจรทั้งหมดยกเว้นโมดูล Motor Driver เราได้จัดหาโมดูลไดรเวอร์มอเตอร์ 8v ผู้ใช้สามารถใช้ 5v-12v
คุณยังสามารถสร้างโมดูล IR ของคุณเองได้เช่นฉันสร้างบน Perf Board ด้านล่างนี้เป็นวงจรสำหรับโมดูล IR:
คำอธิบายการเขียนโปรแกรม
โปรแกรมและวิดีโอฉบับสมบูรณ์สามารถพบได้ที่ส่วนท้ายของบทความนี้
ในโปรแกรมก่อนอื่นเรากำหนดพินอินพุตและเอาต์พุตสำหรับเซ็นเซอร์และมอเตอร์ จากนั้นกำหนดมาโครสำหรับทิศทางของผู้ติดตามบรรทัดจากนั้นเขียนคำสั่งเพื่อเลือกเอาต์พุตเซ็นเซอร์
หมายเหตุ: เซนเซอร์อาจจะต่ำใช้งานหรือใช้งานสูงเพื่อให้ตรวจสอบก่อนว่าอะไรคือผลลัพธ์ของการเซ็นเซอร์จากนั้นเลือกคำสั่งโดยการแสดงความคิดเห็นหรือ uncommentingactiveLowMode สำหรับ HIGH ที่ใช้งานอยู่ให้แสดงความคิดเห็นแมโคร activeLowMode
#define l_sensor P1_3 #define r_sensor P1_4 int พิน = {P1_5, P2_0, P2_1, P2_2}; # กำหนดไปข้างหน้า 0x05 # กำหนดซ้าย 0x06 # กำหนดทางขวา 0x09 # กำหนดหยุด 0x00 // # กำหนด activeLowMode #ifdef activeLowMode int res = {ไปข้างหน้าซ้ายขวาหยุด}; #else int res = {หยุดขวาซ้ายไปข้างหน้า}; #endif
หลังจากนั้นในฟังก์ชั่น การตั้งค่า เราจะให้ทิศทางไปยังเซ็นเซอร์และขามอเตอร์ จากนั้นในฟังก์ชัน ลูป เราจะตรวจสอบอินพุตและส่งเอาต์พุตไปยังโมดูลไดรเวอร์มอเตอร์เพื่อเรียกใช้มอเตอร์
การตั้งค่าเป็นโมฆะ () { สำหรับ (int i = 0; i <4; i ++) pinMode (พิน, OUTPUT); pinMode (l_sensor, อินพุต); pinMode (r_sensor, อินพุต); } void loop () {int sense = (digitalRead (l_sensor) << 1) - digitalRead (r_sensor); สำหรับ (int i = 0; i <4; i ++) digitalWrite (พิน (res >> i) & 0x01); }
มีสี่เงื่อนไขในผู้ติดตามบรรทัดนี้ที่เราอ่านโดยใช้ MSP430 Launchpad เราใช้เซ็นเซอร์สองตัวคือเซ็นเซอร์ซ้ายและเซ็นเซอร์ขวา
เงื่อนไข: เอาต์พุตสูงที่ใช้งานอยู่
อินพุต |
เอาต์พุต |
การเคลื่อนไหว ของ Robot |
||||
เซ็นเซอร์ซ้าย |
เซ็นเซอร์ขวา |
มอเตอร์ซ้าย |
มอเตอร์ขวา |
|||
LS |
อาร์เอส |
LM1 |
LM2 |
RM1 |
RM2 |
|
0 |
0 |
0 |
0 |
0 |
0 |
หยุด |
0 |
1 |
1 |
0 |
0 |
0 |
เลี้ยวขวา |
1 |
0 |
0 |
0 |
1 |
0 |
เลี้ยวซ้าย |
1 |
1 |
1 |
0 |
1 |
0 |
ส่งต่อ |
โปรแกรมถูกเขียนขึ้นตามเงื่อนไขตารางด้านบน ตรวจสอบ โค้ดและวิดีโอสาธิต ด้านล่าง