โปรเจค นี้จะเป็นการนำ Arduino UNO R3 + L298P Motor Shield และ เซ็นเซอร์ 1 Channel TCRT5000 Tracker Sensor มาทำเป็น หุ่นยนต์เดินตามเส้น 2 เซ็นเซอร์ โดยให้หุ่นยนต์ตัดสินใจ เดินตามเส้น โดยอัตโนมัติ ด้วยการตรวจจับ เส้นสีดํา พื้นสีขาว
อุปกรณ์ที่ใช้
1. 2WD Smart Car Robot Chassis Kits
2. Arduino UNO R3 - Made in italy
3. L298P Motor Shield Board
4. Jumper (M2M) cable 20cm Male to Male
5. Jumper (F2M) cable 30cm Female to Female
6. สกรูหัวกลม+น็อตตัวเมีย ยาว 12 มม.
7. รางถ่าน 18650 แบบ 2 ก้อน
8. ถ่านชาร์จ 18650 Panasonic NCR18650B 3.7v จำนวน 2 ก้อน
9. 1 Channel TCRT5000 Tracker Sensor จำนวน 2 ตัว
10. เสารองแผ่นพีซีบีแบบโลหะ ยาว 25 มม.
หลักการทํางานหุ่นยนต์เดินตามเส้น
หุ่นยนต์และมนุษย์มีหลักการทำงานที่เหมือนกัน คือ หน่วยรับข้อมูลเข้า (Input Unit) หน่วยประมวลผล (Process Unit) และหน่วยแสดงผล (Output Unit) ดังนั้นการที่หุ่นยนต์จะเคลื่อนที่ไปให้ตรงเป้าหมาย หุ่นยนต์จะต้องมีอุปกรณ์ที่จะตรวจสอบตำแหน่งและส่งข้อมูลที่ได้ไปยังหน่วยประมวลผล เพื่อให้มอเตอร์ทำการแสดงผลโดยการไปยังเป้าหมายต่อไป อุปกรณ์พื้นฐานที่ใช้ในการตรวจสอบตำแหน่งนั้น คือ โมดูลเซ็นเซอร์แสง TCRT5000 Tracker Sensor
โปรเจค หุ่นยนต์เดินตามเส้น 2 เซ็นเซอร์ Arduino + L298P นี้ เราจะใช้ 2 เซ็นเซอร์ คือด้านซ้ายและด้านขวา โดย เมื่อเซ็นเซอร์ ทั้งด้านซ้ายและด้านขวา ตรวจสอบแล้วเป็นพื้นสีขาว ลำแสง สามารถสะท้อนกลับมาได้ทั้งคู่ ( 1 , 1 ) ให้หุ่นยนต์เคลื่อนที่ไปข้างหน้า
หากเซ็นเซอร์ซ้ายมาพบพื้นสีดำ และ เซ็นเซอร์ขวาพบพื้นสีขาว ( 0 , 1 ) ให้หุ่นยนต์เลี้ยวไปทางด้านซ้าย
หากเซ็นเซอร์ขวามาพบพื้นสีดำ และ เซ็นเซอร์ซ้ายพบพื้นสีขาว ( 1 , 0 ) ให้หุ่นยนต์เลี้ยวไปทางด้านขวา
ประกอบ เซ็นเซอร์ 1 Channel TCRT5000
ใช้ จั้มเปอร์ เมีย-เมีย 30cm เชื่อมต่อ เซ็นเซอร์ ทั้ง 2 ตัว เข้ากับ L298P ตามรูปด้านล่าง
ใช้ จั้มเปอร์ เมีย-เมีย 30cm เชื่อมต่อ เซ็นเซอร์ ทั้ง 2 ตัว เข้ากับ L298P ตามรูปด้านล่าง
เซ็นเซอร์ (ซ้าย) <-> L298P
GND <-> GND
VCC <-> +5
OUT <-> A0
เซ็นเซอร์ (ขวา) <-> L298P
GND <-> GND
VCC <-> +5
OUT <-> A1
ภาพรวมการเชื่อมต่อระหว่าง L298P กับ เซ็นเซอร์ ด้านซ้ายและด้านขวา
การเชื่อมต่อสายที่ A0 และ A1
ด้านขวาของหุ่นยนต์
ด้านหน้าของหุ่นยนต์
จากนั้นใช้สาย USB เชื่อมต่อระหว่าง คอมพิวเตอร์ กับ Arduino UNO R3
เปิดโปรแกรม Arduino (IDE) และ Upload โค้ดนี้ ไปยัง บอร์ด Arduino UNO R3
/*
read analog data from A0-A1 and send to PC via Serial port
*/
int sensor_L , sensor_R ; //optical sensor values
String tmp ;
int ADC_stabilize = 5 ;
void setup ( ) {
// initialize the serial communication:
Serial . begin ( 9600 ) ;
}
void loop ( ) {
//take a snapshot
sensor_L = digitalRead ( A0 ) ;
delay ( ADC_stabilize ) ; //stabilize
sensor_L = digitalRead ( A0 ) ;
delay ( ADC_stabilize ) ;
sensor_R = digitalRead ( A1 ) ;
delay ( ADC_stabilize ) ;
sensor_R = digitalRead ( A1 ) ;
delay ( ADC_stabilize ) ;
tmp = "L=" + String ( sensor_L ) + " R=" + String ( sensor_R ) ;
// send the value of analog inputs:
Serial . println ( tmp ) ;
// wait a bit for next reading
delay ( 1000 ) ; //1000=1 sec
}
เปิดโปรแกรม Arduino (IDE) และ Upload โค้ดนี้ ไปยัง บอร์ด Arduino UNO R3
ไม่มีความคิดเห็น:
แสดงความคิดเห็น