( บล็อกที่ 2 )โปรเจค หุ่นยนต์เดินตามเส้น 4 เซ็นเซอร์ Arduino + L298P



โปรเจค หุ่นยนต์เดินตามเส้น 4 เซ็นเซอร์ Arduino + L298P


โปรเจค นี้จะเป็นการนำ Arduino UNO R3 + L298P Motor Shield และ เซ็นเซอร์ 4 Channel Infrared Detector Tracing Sensor มาทำเป็น หุ่นยนต์เดินตามเส้น 4 เซ็นเซอร์  โดยให้หุ่นยนต์ตัดสินใจ เดินตามเส้น โดยอัตโนมัติ ด้วยการตรวจจับ เส้นสีดํา พื้นสีขาว



อุปกรณ์ที่ใช้




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. 4 Channel Infrared Detector Tracing Sensor


10. พลาสติกเจาะรูแนวตั้ง รูปตัว L ขนาด 10 x 20 mm จำนวน 4 ชิ้น

.





1. ประกอบหุ่นยนต์



เริ่มต้นด้วยการ ประกอบ หุ่นยนต์ Arduino UNO + L298P และ ทดสอบการเคลื่อนที่ของหุ่นยนต์ ตามลิงค์ บทความด้านล่าง


https://robotsiam.blogspot.com/2017/12/arduino-uno-l298p.html




2. ประกอบ เซ็นเซอร์ 4 Channel Infrared Detector 


ยึด Mounting Bracket เข้ากับตัวหุ่นยนต์




ยึด 4 Channel Infrared Detector Tracing Sensor



ใช้ จั้มเปอร์ เมีย-เมีย 
30cm เชื่อมต่อ เซ็นเซอร์  เข้ากับ L298P ตามรูปด้านล่าง 


เซ็นเซอร์ <-> L298P


VCC   <-> +5

GND  <-> GND

OUT1 <-> A1
OUT2 <-> A2
   

OUT3 <-> A3

OUT4 <-> A4


ภาพรวมการเชื่อมต่อระหว่าง L298P กับ เซ็นเซอร์ 
4 Channel Infrared Detector Tracing Sensor






จากนั้นใช้สาย USB เชื่อมต่อระหว่าง คอมพิวเตอร์ กับ Arduino UNO R3




 เปิดโปรแกรม Arduino (IDE) และ Upload โค้ดนี้ ไปยัง บอร์ด Arduino UNO R3





/*
read analog data from A1-A3 and send to PC via Serial port
*/

int sensor_L , sensor_C , 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 ( A1 ) ;
  delay ( ADC_stabilize ) ; //stabilize
  sensor_L = digitalRead ( A1 ) ;
  delay ( ADC_stabilize ) ;

  sensor_C = digitalRead ( A2 ) ;
  delay ( ADC_stabilize ) ;
  sensor_C = digitalRead ( A2 ) ;
  delay ( ADC_stabilize ) ;

  sensor_R = digitalRead ( A3 ) ;
  delay ( ADC_stabilize ) ;
  sensor_R = digitalRead ( A3 ) ;
  delay ( ADC_stabilize ) ;

  tmp = "L=" + String ( sensor_L ) + " C=" + String ( sensor_C ) + " R=" + String ( sensor_R ) ;

  // send the value of analog inputs:
  Serial . println ( tmp ) ;

  // wait a bit for next reading
  delay ( 1000 ) ; //1000=1 sec

}





นำเทปพันสายไฟสีดำ แปะที่พื้นสีขาว ให้ เซ็นเซอร์ ทั้ง 3 ตัว ของหุ่นยนต์อยู่บริเวณ พื้นสีขาว
ให้ ไฟ LED สีแดงทั้ง 3 ตัว ติด




แล้วไปที่ Tools -> Serial Monitor

เลือก Both NL & CR และ เลือก 9600 baud





Serial Monitor จะแสดง L=0 C=0 R=0




และเมื่อ เซ็นเซอร์ซ้ายของหุ่นยนต์  อยู่บริเวณเทปสีดำ

และ 
เซ็นเซอร์ขวา และ  เซ็นเซอร์กลาง อยู่บริเวณพื้นสีขาว




ไฟ LED สีแดง ของ 
เซ็นเซอร์ซ้าย จะดับ และ Serial Monitor จะแสดง L=1 C=0 R=0





และเมื่อ เซ็นเซอร์กลางของหุ่นยนต์  อยู่บริเวณเทปสีดำ

และ 
เซ็นเซอร์ซ้าย และ  เซ็นเซอร์ขวา อยู่บริเวณพื้นสีขาว





ไฟ LED สีแดง ของ เซ็นเซอร์ตัวกลาง จะดับ และ Serial Monitor จะแสดง L=0 C=1 R=0



 และเมื่อ เซ็นเซอร์ขวาของหุ่นยนต์  อยู่บริเวณเทปสีดำ

และ 
เซ็นเซอร์ซ้าย และ  เซ็นเซอร์กลาง อยู่บริเวณพื้นสีขาว




ไฟ LED สีแดง ของ เซ็นเซอร์ขวา จะดับ และ Serial Monitor จะแสดง L=0 C=0 R=1




แสดงว่า การเชื่อมต่อ เซ็นเซอร์ ทั้ง 3 ตัว นั้นถูกต้อง และ พร้อมใช้งานแล้ว


*** ถ้าไม่ถูกต้อง ให้ตรวจสอบการเชื่อมต่อสาย และ ทดลอง ปรับค่าการรับแสง โดย ใช้
ไขควงหมุน ตัว R ปรับค่าได้ แบบ trimpot สี่เหลี่ยมสีฟ้า ***


3. ทดสอบการทำงาน


Upload โค้ดนี้ ไปยัง บอร์ด Arduino UNO R3






/*

    Line Following Robot 3 Sensors with Arduino UNO + L298P
    For more details visit:
    https://robotsiam.blogspot.com/2018/01/3-arduino-l298p.html

*/



ใส่ถ่าน แบบ 18650 จำนวน 2 ก้อน เข้าที่รางถ่าน เปิดเพาเวอร์สวิตซ์สำหรับเปิดปิด (ON / OFF ) ทดสอบการทำงาน กับ สนาม เส้นสีดํา พื้นสีขาว  ตาม วีดีโอผลลัพธ์การทำงานของ หุ่นยนต์เดินตามเส้น 4 เซ็นเซอร์  Arduino + L298P

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

(บล็อกที่ 9). code รถบังคับจากแผ่นซีดี ควบคุมด้วยแอพแอนดรอยด์

โครงงานเรื่อง ล้อวัดระยะทางด้วย Encoder (งานที่ 17)

โครงงานเครื่องรดน้ำต้นไม้อัตโนมัติ (งานที่ 6)