หุ่นยนต์เดินตามเส้น ESP8266 หุ่นยนต์ที่สามารถเดินตามเส้นด้วยการใช้เซ็นเซอร์ 2 ตัวและ ESP8266 เป็นหนึ่งในโครงการที่น่าสนใจอย่างมากในโลกของหุ่นยนต์ที่ทำงานตามคำสั่ง. การสร้างหุ่นยนต์ที่สามารถเดินตามเส้นนั้นเป็นทักษะที่สำคัญที่นักพัฒนาหุ่นยนต์ต้องมีเพื่อให้หุ่นยนต์สามารถเคลื่อนที่ได้ในสิ่งแวดล้อมได้อย่างมีประสิทธิภาพและปลอดภัย.

การสร้างหุ่นยนต์เดินตามเส้นด้วย ESP8266 และเซ็นเซอร์ 2 ตัวนั้น เริ่มต้นด้วยการเตรียมวัสดุและอุปกรณ์ที่จำเป็นต่อการสร้าง. วัสดุหลักๆ ประกอบด้วยอะไรบ้าง? ลองคิดถึงชิ้นส่วนของหุ่นยนต์เช่น เฟรม, ล้อ, มอเตอร์, และเซ็นเซอร์

เมื่อโปรแกรมได้รับการเขียนและอัพโหลดลงใน ESP8266, การทดสอบและปรับแต่งหุ่นยนต์เป็นขั้นตอนต่อไป. การทดสอบหุ่นยนต์ในสภาวะจริงจะช่วยให้ผู้พัฒนาสามารถพบปัญหาและปรับปรุงระบบได้อย่างมีประสิทธิภาพ.

ในกระบวนการสร้างหุ่นยนต์เดินตามเส้น การใช้เซ็นเซอร์ 2 ตัวมีความสำคัญอย่างมาก. เซ็นเซอร์เหล่านี้จะช่วยให้หุ่นยนต์สามารถติดตามเส้นได้อย่างแม่นยำ. การโปรแกรมเซ็นเซอร์เพื่อตรวจจับเส้นทางและส่งสัญญาณไปยัง ESP8266 เป็นส่วนสำคัญในการทำให้หุ่นยนต์เคลื่อนที่ได้ตามเส้น.


หลักการทำงานของ หุ่นยนต์เดินตามเส้น ESP8266

เซ็นเซอร์ที่ตรวจจับเส้นทางและส่งสัญญาณไปยัง ESP8266 เซ็นเซอร์แบบนี้จะมีช่วงในการทำงาน หรือ ระยะในการตรวจจับจะได้ใกล้กว่าแบบ Opposed mode ซึ่งในสภาวะการทำงานปกติ พื้นเเป็นสีขาว ตัวรับ Receiver จะสามารถรับสัญญาณแสงจากตัวส่ง  Emitter ได้ตลอดเวลา เนื่องจากลำแสง สะท้อนกลับมาได้ จะแสดงค่า เป็น 0



และ เมื่อพื้นเป็นสีดำ แสงสะท้อนกลับมาไม่ได้   จึงทำให้ตัวรับ Receiver ไม่สามารถรับลำแสงที่จะสะท้อนกลับมาได้ จะแสดงค่า เป็น 1


เซ็นเซอร์ตรวจสอบการสะท้อนแสงกลับมา ได้หรือไม่ แล้วส่งสัญญาณไปยัง ESP8266 แล้ว ESP8266 จึงไปสั่งให้มอเตอร์ทำงาน โดย Motor Drive Module L298N ให้เป็นไปตามการส่งค่ามาของเซ็นเซอร์

โปรเจค หุ่นยนต์เดินตามเส้น 2 เซ็นเซอร์ ESP8266  นี้ เราจะใช้ 2 เซ็นเซอร์อินฟราเรด คือด้านซ้ายและด้านขวา  โดย เมื่อเซ็นเซอร์ ทั้งด้านซ้ายและด้านขวา ตรวจสอบแล้วเป็นพื้นสีขาว ลำแสง สามารถสะท้อนกลับมาได้ทั้งคู่  ( 0 , 0 ) ให้หุ่นยนต์เคลื่อนที่ไปข้างหน้า


หากเซ็นเซอร์ซ้ายมาพบพื้นสีดำ  และ เซ็นเซอร์ขวาพบพื้นสีขาว ( 1 , 0 ) ให้หุ่นยนต์เลี้ยวไปทางด้านซ้าย


หากเซ็นเซอร์ขวามาพบพื้นสีดำ  และ เซ็นเซอร์ซ้ายพบพื้นสีขาว ( 0 , 1 ) ให้หุ่นยนต์เลี้ยวไปทางด้านขวา


หากเซ็นเซอร์ทั้งสองมาอยู่บนเส้นสีดำทั้งคู่ ( 1 , 1 ) ให้หุ่นยนต์หยุด




ขั้นตอนการทำงาน


  • ติดตั้ง Arduino IDE: ดาวน์โหลดและติดตั้ง Arduino IDE จากเว็บไซต์ทางการของ Arduino และตั้งค่าให้สามารถใช้งานกับ ESP8266 ได้โดยเพิ่มบอร์ด ESP8266 ลงใน Arduino IDE ผ่านเมนู Preferences > Additional Board Manager URLs และเลือกเวอร์ชันล่าสุดของ ESP8266 จาก Board Manager.

  • เชื่อมต่อ ESP8266 กับ Arduino IDE: เชื่อมต่อ ESP8266 กับคอมพิวเตอร์ผ่าน USB to Serial Converter และเปิด Arduino IDE เลือกเลือกบอร์ด ESP8266 และตั้งค่าพอร์ตที่ใช้งานในเมนู Tools.

  • เขียนโปรแกรม: เขียนโปรแกรมด้วยภาษา C/C++ ใน Arduino IDE เพื่อควบคุมการทำงานของ ESP8266 ตามที่ต้องการ เช่น การเคลื่อนที่ของหุ่นยนต์ การตรวจจับเซนเซอร์ หรือการประมวลผลข้อมูล

  • อัปโหลดโปรแกรม: หลังจากเขียนโปรแกรมเสร็จสิ้น ให้กดปุ่มอัปโหลดเพื่ออัปโหลดโปรแกรมลงใน ESP8266 ผ่านทางพอร์ต USB และรอให้กระบวนการเสร็จสมบูรณ์

  • ทดสอบและปรับแก้ไข: ทดสอบการทำงานของโปรแกรมบน ESP8266 เพื่อควบคุมหุ่นยนต์ตามที่ต้องการ และปรับแก้ไขโปรแกรมตามความต้องการของโปรเจ็คหุ่นยนต์เดินตามเส้น


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


1. RB-0023 2WD Smart Robot Car Chassis Kits
2. RB-0108 NodeMCU V3 CH340G Lua WIFI ESP8266 ESP-12E
3. RB-0109 NodeMcu Breadboard for NodeMCU V3
4. RB-0106 Micro USB Cable Wire 1m for NodeMCU
5. RB-0003 Motor Driver Module L298N
6. RB-0016 Jumper (F2M) cable wire 20cm Female to Male
7. RB-0017 Jumper (F2F) cable wire 20cm Female to Female
8. RB-0019 รางถ่าน 18650 – 2 ก้อน
9. RB-0021 ถ่านชาร์จ 18650 NCR18650B 3.7v 3400mAh 2 ก้อน
10. RB-0049 แจ๊กขั้วถ่าน 9 โวลต์ สำหรับ Ardiuno
11. RB-0025 4เสารองแผ่นพีซีบีโลหะแบบเหลี่ยม 8 mm
12. RB-0288 TCRT5000 Tracing Infrared Reflectance Sensor 2 ตัว


การสร้าง หุ่นยนต์เดินตามเส้น 2 เซ็นเซอร์ ด้วย ESP8266


1.ประกอบหุ่นยนต์และเชื่อมต่อวงจร


ยึด Breadboard เข้ากับโครงหุ่นยนต์



เสียบ บอร์ด ESP8266 V3 ลงไปที่ Breadboard



ยึด Motor Driver เข้ากับโครงหุ่นยนต์



ใช้กาวร้อน ยึดรางถ่านเข้ากับโครงหุ่นยนต์



การต่อวงจร


  • ตัดแจ๊กขั้วถ่าน ด้าน 9V ออก แล้วเชื่อมต่อสายสีดำเข้ากับสายสีดำของรางถ่าน และสายสีแดงเข้ากับสวิตช์ปิดเปิด
  • สายสีแดงของรางถ่านเชื่อมต่อเข้ากับสวิตช์ปิดเปิดอีกด้าน
  • ใช้สาย Jumper (F2M) ผู้-เมีย สีแดง เชื่อมต่อจากสวิตช์ปิดเปิด จุดเดียวกันกับสายสีแดงของแจ๊กขั้วถ่าน ไปที่ Power Supply ของ Motor Driver
  • ใช้สาย Jumper (F2M) ผู้-เมีย สีดำ เชื่อมต่อระหว่าง กราวด์ (GND) ของ Motor Driver กับ GND ของ Breadboard ESP8266



จากนั้น ใช้สาย Jumper (F2F) เมีย-เมีย เชื่อมต่อวงจร ระหว่าง Breadboard ESP8266 กับ Motor Driver ตามรูป

มี Jumper อยู่ที่ขา ENA และ ENB ของ บอร์ด Motor Driver ให้ถอดออก



เมื่อ เปิดสวิตช์ ต้องมีไฟเข้า โดยสังเกตไฟ LED สีฟ้า ที่ Breadboard ESP8266 และ ไฟ LED สีแดงที่ Motor Driver จะมีไฟติด



เชื่อมต่อสายสีแดง – ดำ เข้ากับมอเตอร์ ทั้ง 2 ตัว โดยให้สายสีแดงอยู่ด้านบน และ สายสีดำอยู่ด้านล่าง



ยึดมอเตอร์ ทั่ง 2 ตัว เข้ากับ โครงหุ่นยนต์



ยึด ล้อหน้า เข้ากับ โครงหุ่นยนต์




ภาพรวมการต่อหุ่นยนต์ ณ ขณะนี้



เชื่อมต่อ สายมอเตอร์ทั้ง 2 ด้าน เข้ากับ Motor Driver (ตรวจสอบสีของสายไฟให้ถูกต้องตามรูป)





2.ติดตั้ง Arduino IDE และการ Upload Code


สิ่งแรกคือการติดตั้ง Arduino IDE เพื่อให้คุณสามารถค้นหา Arduino IDE ใน Google

จากนั้นคุณมีสองทางเลือก

หนึ่งคือการติดตั้งเวอร์ชัน1 หรือเพื่อติดตั้งเวอร์ชัน 2

เราจะติดตั้งเวอร์ชัน 2 เพราะมีคุณสมบัติเพิ่มเติมบางอย่าง แต่ไม่ว่าคุณจะเลือกอะไรมันจะทำงานเช่นกัน ดังนั้นคุณสามารถเลือกอย่างใดอย่างหนึ่ง

ดาวน์โหลด Arduino IDE จากที่นี่

https://www.arduino.cc/en/software

This image has an empty alt attribute; its file name is e1-1024x573.png




กำหนดค่าให้ รองรับบอร์ด ES8266


ไปที่ File > Preferences

This image has an empty alt attribute; its file name is e2-1024x633.png


คัดลอกและวางบรรทัดต่อไปนี้ลงในฟิลด์ Boards Manager URLs -> OK

https://arduino.esp8266.com/stable/package_esp8266com_index.json



จากนั้นไปที่ตัวจัดการบอร์ดโดยไปที่ Tools -> Board: -> Boards Manager…




ที่ช่องค้นหา พิมพ์ esp8266  จะพบ esp8266 by ESP8266 Community  แล้วคลิก INSTALL




แสดงการติดตั้งสำเร็จ 



เมื่อไปที่ Tools -> Board: อีกครั้ง จะพบ บอร์ด esp8266 เพิ่มเข้ามาแล้ว



3. ทดสอบ การเคลื่อนที่ของหุ่นยนต์


การทดสอบนี้ เป็นการตรวจสอบการต่อสายต่างๆ เช่น การเชื่อมต่อสายของมอเตอร์ ทั้ง 2 ตัว รวมทั้งสายอื่นๆ ของหุ่นยนต์ที่เราสร้าง ว่าถูกต้องหรือไม่ ถ้าถูกต้องหุ่นยนต์จะดำเนินการดังนี้

คือ เดินหน้า -> ถอยหลัง -> เลี้ยวซ้าย -> เลี้ยวขวา


และนี่คือโค้ดที่ใช้ทดสอบ


#define ENA 14 // Enable/speed motors Right GPI14(D5)
#define IN_1 0 // L298N in1 motors Right GPIO0(D3)
#define IN_2 2 // L298N in2 motors Right GPIO2(D4)
#define IN_3 12 // L298N in3 motors Left GPIO12(D6)
#define IN_4 13 // L298N in4 motors Left GPIO13(D7)
#define ENB 15 // Enable/speed motors Left GPIO15(D8)

int speedCar = 255; // 0 to 255
int speed_0 = 0;

void setup() {

pinMode(ENA, OUTPUT);
pinMode(IN_1, OUTPUT);
pinMode(IN_2, OUTPUT);
pinMode(IN_3, OUTPUT);
pinMode(IN_4, OUTPUT);
pinMode(ENB, OUTPUT);
}

void loop() {

goForword();
delay(1000);
goBack();
delay(1000);
goLeft();
delay(400);
goRight();
delay(400);

}

void goForword() {

digitalWrite(IN_1, 1);
digitalWrite(IN_2, 0);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, 0);
digitalWrite(IN_4, 1);
analogWrite(ENB, speedCar);
}

void goBack() {

digitalWrite(IN_1, 0);
digitalWrite(IN_2, 1);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, 1);
digitalWrite(IN_4, 0);
analogWrite(ENB, speedCar);
}

void goRight() {

digitalWrite(IN_1, 0);
digitalWrite(IN_2, 1);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, 0);
digitalWrite(IN_4, 1);
analogWrite(ENB, speedCar);
}

void goLeft() {

digitalWrite(IN_1, 1);
digitalWrite(IN_2, 0);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, 1);
digitalWrite(IN_4, 0);
analogWrite(ENB, speedCar);
}

void goForwordRight() {

digitalWrite(IN_1, 1);
digitalWrite(IN_2, 0);
analogWrite(ENA, speedCar - speed_0);

digitalWrite(IN_3, 0);
digitalWrite(IN_4, 1);
analogWrite(ENB, speedCar);
}

void goForwordLeft() {

digitalWrite(IN_1, 1);
digitalWrite(IN_2, 0);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, 0);
digitalWrite(IN_4, 1);
analogWrite(ENB, speedCar - speed_0);
}

void goBackRight() {

digitalWrite(IN_1, 0);
digitalWrite(IN_2, 1);
analogWrite(ENA, speedCar - speed_0);

digitalWrite(IN_3, 1);
digitalWrite(IN_4, 0);
analogWrite(ENB, speedCar);
}

void goBackLeft() {

digitalWrite(IN_1, 0);
digitalWrite(IN_2, 1);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, 1);
digitalWrite(IN_4, 0);
analogWrite(ENB, speedCar - speed_0);
}

void stopRobot() {

digitalWrite(IN_1, 0);
digitalWrite(IN_2, 0);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, 0);
digitalWrite(IN_4, 0);
analogWrite(ENB, speedCar);
}


ลิงค์โค้ด https://lungmaker.com/code/test-motor-esp8266.ino


เชื่อมต่อสาย Micro USB ระหว่าง คอมพิวเตอร์ กับ ESP8266 และ ต้องเปิดสวิตช์เพื่อจ่ายไฟจากรางถ่านให้กับหุ่นยนต์ด้วย



ตรวจสอบ Port ของบอร์ด ESP8266 โดย คลิกที่ Device Manager



ที่ Ports (COM & LPT) จะพบ Port ของบอร์ด ESP8266 ในตัวอย่างเป็น USB-SERIAL CH304 (COM4)



ไปที่ Tools -> Board -> esp8266 แล้วเลือกให้ตรงกับบอร์ดที่ใช้งาน สำหรับ NodeMCU ESP8266 V3 ให้เลือกบอร์ด NodeMCU 1.0 (ESP-12 Module) 




เลือก Port โดยไปที่ Tools -> Port -> COM4
(โดย COM4 แต่ละเครื่องจะไม่เหมือนกัน ให้เลือกตามที่ปรากฎ)




คลิกที่ Upload



รอจนกระทั่งขึ้น hard resetting via RTS pin… ที่แถบด้านล่าง แสดงว่าเราอัพโหลดโปรแกรมลงบอร์ดได้สำเร็จแล้ว



วิดีโอผลลัพธ์การทำงาน การเคลื่อนที่ของหุ่นยนต์ ESP8266

ถ้ายังทำงานไม่ถูกต้อง คือ เดินหน้า -> ถอยหลัง -> เลี้ยวซ้าย -> เลี้ยวขวา ให้กลับไปแก้ไขการต่อวงจร การต่อสายต่างๆ เช่น การต่อสายมอเตอร์ จนกว่าจะทำงานถูกต้อง ถึงจะสามารถไปทำงานในขั้นตอนต่อไป


4.เชื่อมต่อ Tracing Sensor และทดสอบ


โดยใช้ เสารองแผ่นพีซีบีแบบโลหะ ยาว 8 มม. เป็นฐานและ ใช้สาย Jumper (F2F) เมีย-เมีย ในการเชื่อมต่อ





และนี่คือโค้ดที่ใช้ทดสอบ

int sensor_L, sensor_R;  //optical sensor values
int pin_L = 4 , pin_R = 5; //optical sensor values
String tmp;
int ADC_stabilize = 5;

void setup() {
// initialize the serial communication:
Serial.begin(115200);
pinMode(pin_L, INPUT);
pinMode(pin_R, INPUT);
}

void loop() {
//take a snapshot
sensor_L = digitalRead(pin_L);
delay(ADC_stabilize); //stabilize
sensor_L = digitalRead(pin_L);
delay(ADC_stabilize);

sensor_R = digitalRead(pin_R);
delay(ADC_stabilize);
sensor_R = digitalRead(pin_R);
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
}


ลิงค์โค้ด : https://lungmaker.com/code/test-line-esp8266.ino


ปรับเซ็นเซอร์ (ถ้าเซนเซอร์ไม่ทำงานตามนี้ หุ่นยนต์จะไม่เดินตามเส้น)


ให้ปรับเซ็นเซอร์ทั้ง 2 ตัว ดังนี้ ถ้าอยู่บนพื้นสีขาว ให้ไฟ LED ติด 2 ดวง


ที่ Arduino IDE ไปที่ Tools -> Serial Monitor แล้วเลือก Both NL & CR และ เลือก 115200 baud


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


ถ้าเซนเซอร์ด้านขวา เข้าไปใน บนเทปสีดำ ให้ ไฟ LED เซนเซอร์ด้านขวา ติด 1 ดวง  และถ้าอยู่บนพื้นสีขาว ให้ไฟ LED ติด 2 ดวง



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



ถ้าเซนเซอร์ด้านซ้าย เข้าไปใน บนเทปสีดำ ให้ ไฟ LED เซนเซอร์ด้านซ้าย ติด 1 ดวง  และถ้าอยู่บนพื้นสีขาว ให้ไฟ LED ติด 2 ดวง



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



ถ้าเซนเซอร์ด้านซ้าย และ เซนเซอร์ด้านขวา เข้าไปใน บนเทปสีดำ ให้ ไฟ LED เซนเซอร์ด้านซ้าย และ เซนเซอร์ด้านขวา ติด 1 ดวง



Serial Monitor จะแสดง L=1 R=1


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


5. ทดสอบ หุ่นยนต์เดินตามเส้น 2 เซ็นเซอร์ ด้วย ESP8266


โค้ดหุ่นยนต์เดินตามเส้น 2 เซ็นเซอร์ ด้วย ESP8266


#define ENA 14 // Enable/speed motors Right GPI14(D5)
#define IN_1 0 // L298N in1 motors Right GPIO0(D3)
#define IN_2 2 // L298N in2 motors Right GPIO2(D4)
#define IN_3 12 // L298N in3 motors Left GPIO12(D6)
#define IN_4 13 // L298N in4 motors Left GPIO13(D7)
#define ENB 15 // Enable/speed motors Left GPIO15(D8)

int speedCar = 140; // 0 to 255
int speed_0 = 0;
int sensor_L, sensor_R; //optical sensor values
int pin_L = 4, pin_R = 5; //Pin sensor values
String tmp;

void setup() {
Serial.begin(115200);
pinMode(ENA, OUTPUT);
pinMode(IN_1, OUTPUT);
pinMode(IN_2, OUTPUT);
pinMode(IN_3, OUTPUT);
pinMode(IN_4, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(pin_L, INPUT);
pinMode(pin_R, INPUT);
}

void loop() {

sensor_L = digitalRead(pin_L);
sensor_R = digitalRead(pin_R);

if ((sensor_L == 0) && (sensor_R == 0)) {
goForword();
delay(1);
} else if ((sensor_L == 1) && (sensor_R == 0)) {
goLeft();
delay(10);
} else if ((sensor_L == 0) && (sensor_R == 1)) {
goRight();
delay(10);
} else if ((sensor_L == 1) && (sensor_R == 1)) {
stopRobot();
delay(1000);
}

tmp = "L=" + String(sensor_L) + " R=" + String(sensor_R);
Serial.println(tmp);
}

void goForword() {

digitalWrite(IN_1, 1);
digitalWrite(IN_2, 0);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, 0);
digitalWrite(IN_4, 1);
analogWrite(ENB, speedCar);
}

void goBack() {

digitalWrite(IN_1, 0);
digitalWrite(IN_2, 1);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, 1);
digitalWrite(IN_4, 0);
analogWrite(ENB, speedCar);
}

void goRight() {

digitalWrite(IN_1, 0);
digitalWrite(IN_2, 1);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, 0);
digitalWrite(IN_4, 1);
analogWrite(ENB, speedCar);
}

void goLeft() {

digitalWrite(IN_1, 1);
digitalWrite(IN_2, 0);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, 1);
digitalWrite(IN_4, 0);
analogWrite(ENB, speedCar);
}

void goForwordRight() {

digitalWrite(IN_1, 1);
digitalWrite(IN_2, 0);
analogWrite(ENA, speedCar - speed_0);

digitalWrite(IN_3, 0);
digitalWrite(IN_4, 1);
analogWrite(ENB, speedCar);
}

void goForwordLeft() {

digitalWrite(IN_1, 1);
digitalWrite(IN_2, 0);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, 0);
digitalWrite(IN_4, 1);
analogWrite(ENB, speedCar - speed_0);
}

void goBackRight() {

digitalWrite(IN_1, 0);
digitalWrite(IN_2, 1);
analogWrite(ENA, speedCar - speed_0);

digitalWrite(IN_3, 1);
digitalWrite(IN_4, 0);
analogWrite(ENB, speedCar);
}

void goBackLeft() {

digitalWrite(IN_1, 0);
digitalWrite(IN_2, 1);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, 1);
digitalWrite(IN_4, 0);
analogWrite(ENB, speedCar - speed_0);
}

void stopRobot() {

digitalWrite(IN_1, 0);
digitalWrite(IN_2, 0);
analogWrite(ENA, speedCar);

digitalWrite(IN_3, 0);
digitalWrite(IN_4, 0);
analogWrite(ENB, speedCar);
}


ลิงค์โค้ด : https://lungmaker.com/code/2-sensor-esp8266.ino

การทดสอบ หาพื้นที่เป็นสีขาว หรือ สีอ่อนๆ และใช้ เทปพันสายไฟ สีดำ


วิดีโอผลลัพธ์การทำงาน หุ่นยนต์เดินตามเส้น 2 เซ็นเซอร์ ด้วย ESP8266


สรุป




การสร้างหุ่นยนต์เดินตามเส้นด้วยการใช้เซ็นเซอร์ 2 ตัว ESP8266 ด้วย Arduino IDE มีข้อดีหลายประการดังนี้:

  • ความสะดวกและเข้าถึงง่าย: Arduino IDE เป็นเครื่องมือที่ใช้งานง่ายและได้รับความนิยมสูงสุดในการพัฒนาโครงการอิเล็กทรอนิกส์ เป็นที่นิยมมากในการพัฒนาหุ่นยนต์และโปรเจกต์อื่น ๆ ที่เกี่ยวข้องกับการควบคุมแบบอัตโนมัติ

  • การเซ็นเซอร์ 2 ตัว: การใช้เซ็นเซอร์ 2 ตัวช่วยให้หุ่นยนต์สามารถตรวจจับเส้นทางได้อย่างแม่นยำและเชื่อถือได้ ซึ่งช่วยให้หุ่นยนต์เดินตามเส้นได้อย่างมีประสิทธิภาพและเสถียร

  • ความยืดหยุ่นในการปรับแต่ง: การใช้ Arduino IDE และ ESP8266 ช่วยให้ผู้ใช้สามารถปรับแต่งและปรับปรุงโครงการได้ตามต้องการ ซึ่งมีความยืดหยุ่นในการพัฒนาและปรับปรุงโครงการต่อไปให้สอดคล้องกับความต้องการของผู้ใช้ได้อย่างเหมาะสม
  • เรียนรู้การโปรแกรม: การสร้างหุ่นยนต์ตามเส้นต้องใช้การโปรแกรมเพื่อควบคุมพฤติกรรมของหุ่นยนต์ การเรียนรู้การเขียนโค้ดด้วย Arduino IDE และการใช้ ESP8266 จะช่วยพัฒนาทักษะการโปรแกรมอย่างมีประสิทธิภาพ

  • เรียนรู้การใช้งานเซ็นเซอร์: การสร้างหุ่นยนต์เดินตามเส้นต้องใช้เซ็นเซอร์เพื่อตรวจจับเส้นทาง ผู้เรียนจะได้เรียนรู้เกี่ยวกับการใช้งานเซ็นเซอร์และการปรับแต่งการตรวจจับให้เหมาะสมกับเงื่อนไขการทำงาน

  • เรียนรู้การปรับแต่งและการแก้ปัญหา: การสร้างหุ่นยนต์เดินตามเส้นอาจเกิดปัญหาและความไม่แม่นยำขึ้นในการทำงาน ผู้เรียนจะได้เรียนรู้การแก้ปัญหาและการปรับแต่งโค้ดเพื่อปรับปรุงประสิทธิภาพของหุ่นยนต์

  • เรียนรู้การทำงานทีม: การสร้างหุ่นยนต์เดินตามเส้นอาจเป็นโครงการที่ต้องทำงานร่วมกับผู้อื่น เช่น การแบ่งหน้าที่ในการพัฒนา การแก้ไขปัญหาร่วมกัน การสร้างและทดสอบโค้ด ซึ่งจะช่วยพัฒนาทักษะในการทำงานทีมและการสื่อสารในการทำงานร่วมกัน


Leave a Reply

Your email address will not be published. Required fields are marked *