อุปกรณ์ที่ใช้
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. แจ๊กขั้วถ่าน 9 โวลต์ สำหรับ Ardiuno
6. สกรูหัวกลม+น็อตตัวเมีย ยาว 12 มม.
7. รางถ่าน 18650 แบบ 2 ก้อน
8. ถ่านชาร์จ 18650 Panasonic NCR18650B 3.7v จำนวน 2 ก้อน
1. ประกอบหุ่นยนต์
เริ่มต้นด้วยการ ประกอบ 2WD Smart Car Robot Chassis Kits
ใช้ สกรูหัวกลม+น็อตตัวเมีย ยาว 12 มม. ยึด รางถ่านแบบ 18650 และ เชื่อมต่อ สายสีแดง ขั้วบวก เข้าที่ เพาเวอร์สวิตซ์สำหรับเปิดปิด (ON / OFF )
ยึด บอร์ด Arduino UNO R3 เข้ากับโครงหุ่นยนต์
เสียบ L298P Motor Shield Board เข้ากับ Arduino UNO R3
ใช้ จั้มเปอร์ ผู้-ผู้ สีแดง เชื่อมต่อ จาก เพาเวอร์สวิตซ์ ด้านที่เหลือ
ไปยัง ไฟ+ ของ L298P และ ใช้ จั้มเปอร์ ผู้-ผู้ สีดำ เชื่อมต่อจากสายสีดำของรางถ่านไปยัง GND กราวด์ ของ L298P
ใช้ จั้มเปอร์ ผู้-ผู้ 4 เส้น 4 สี เชื่อมต่อ จาก มอเตอร์ A และ B
ไปยัง MOTORA และ MOTORฺB ของ L298P ดังรูป
นำ แจ๊กขั้วถ่าน 9 โวลต์ สำหรับ Ardiuno ตัดส่วนที่เป็นขั้วถ่านออกไป แลัวต่อสายสีแดง เข้ากับ เพาเวอร์สวิตซ์ ด้านที่เหลือ เหมือนกับ L298P และ สายสีดำ เชื่อมต่อกับ สายสีดำของรางถ่าน เหมือนกับ GND ของ L298P ปลายแจ๊กตัวผู้ที่เหลือเสียบเข้ากับ แจ๊กตัวเมีย เพาเวอร์ซัพพลาย ของ Arduino
เก็บรัดสายให้เรียบร้อย
ภาพรวมการต่อ หุ่นยนต์ UNO + L298P
เปิดโปรแกรม Arduino (IDE) และ Upload โค้ดนี้ ไปยัง บอร์ด Arduino UNO R3
/*
Robot with Arduino UNO + L298P
For more details visit:
https://robotsiam.blogspot.com/2017/12/uno-l298p.html
*/
/*-------definning Outputs------*/
int MA1 = 12; // Motor A1
int MA2 = 3; // Motor A2
int PWM_A = 10; // Speed Motor A
int MB1 = 13; // Motor B1
int MB2 = 8; // Motor B2
int PWM_B = 11; // Speed Motor B
int SPEED = 200; // Speed PWM สามารถปรับความเร็วได้ถึง 0 - 255
void setup() {
//Setup Channel A
pinMode(12, OUTPUT); //Motor A1
pinMode(3, OUTPUT); //Motor A2
pinMode(10, OUTPUT); //Speed PWM Motor A
//Setup Channel B
pinMode(13, OUTPUT); //Motor B1
pinMode(8, OUTPUT); //Motor B2
pinMode(11, OUTPUT); //Speed PWM Motor B
}
void loop() {
Stop(2000);
Forward(400);
Stop(200);
Backward(400);
Stop(200);
turnLeft(300);
Stop(200);
turnRight(400);
}
void Forward(int time)
{
digitalWrite(MA1, LOW);
digitalWrite(MA2, HIGH);
analogWrite(PWM_A, SPEED);
digitalWrite(MB1, HIGH);
digitalWrite(MB2, LOW);
analogWrite(PWM_B, SPEED);
delay(time);
}
void Backward(int time)
{
digitalWrite(MA1, HIGH);
digitalWrite(MA2, LOW);
analogWrite(PWM_A, SPEED);
digitalWrite(MB1, LOW);
digitalWrite(MB2, HIGH);
analogWrite(PWM_B, SPEED);
delay(time);
}
void turnLeft(int time)
{
digitalWrite(MA1, HIGH);
digitalWrite(MA2, LOW);
analogWrite(PWM_A, SPEED);
digitalWrite(MB1, LOW);
digitalWrite(MB2, LOW);
analogWrite(PWM_B, 0);
delay(time);
}
void turnRight(int time)
{
digitalWrite(MA1, LOW);
digitalWrite(MA2, LOW);
analogWrite(PWM_A, 0);
digitalWrite(MB1, LOW);
digitalWrite(MB2, HIGH);
analogWrite(PWM_B, SPEED);
delay(time);
}
void Stop(int time)
{
digitalWrite(MA1, LOW);
digitalWrite(MA2, LOW);
analogWrite(PWM_A, 0);
digitalWrite(MB1, LOW);
digitalWrite(MB2, LOW);
analogWrite(PWM_B, 0);
delay(time);
}
ไปที่ Tools > Port แล้วเลือกพอร์ตที่ปรากฏ (กรณีใช้เครื่องคอมพิวเตอร์ที่มี COM Port มากกว่าหนึ่ง ให้เลือกตัวอื่นที่ไม่ใช่ COM1)
ในตัวอย่างเลือกเป็น "COM14"
(ถ้ายังว่าง หรือ เป็น COM1 ให้ตรวจสอบการติดตั้งไดร์เวอร์ การต่อสาย USB ของ Arduino UNO)
กดปุ่ม เพื่ออัพโหลด
หากสามารถอัพโหลดโปรแกรมลงบอร์ดได้สำเร็จ จะแสดงคำว่า Done uploading. ที่แถบด้านล่าง
3. ทดสอบการทำงาน
ใส่ถ่าน แบบ 18650 จำนวน 2 ก้อน เข้าที่รางถ่าน เปิดเพาเวอร์สวิตซ์สำหรับเปิดปิด (ON / OFF ) ถ้าการต่อหุ่นยนต์ถูกต้อง หุ่นยนต์ จะ เดินหน้า-ถอยหลัง-เลี้ยวซ้าย และ เลี้ยวขวา ตาม วีดีโอผลลัพธ์การทำงานของ ทดสอบการเคลื่อนที่ของหุ่นยนต์ UNO + L298P
วีดีโอผลลัพธ์การทำงานของ ทดสอบการเคลื่อนที่ของหุ่นยนต์ UNO + L298P