อุปกรณ์ที่ใช้
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. สกรูหัวกลม+น็อตตัวเมีย ยาว 12 มม.
6. รางถ่าน 18650 แบบ 2 ก้อน
7. ถ่านชาร์จ 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 ดังรูป
เก็บรัดสายให้เรียบร้อย
เพื่อความสะดวก ในการติดตั้งเซ็นเซอร์ ต่างๆ จะใช้ ด้านนี้เป็นด้านหน้า ของหุ่นยนต์
เปิดโปรแกรม Arduino (IDE) และ Upload โค้ดนี้ ไปยัง บอร์ด Arduino UNO R3
Robot with Arduino UNO + L298P
For more details visit:
https://robotsiam.blogspot.com/2017/12/arduino-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(500);
Stop(200);
turnRight(600);
}
void Backward(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 Forward (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. ทดสอบการเคลื่อนที่ของหุ่นยนต์
วีดีโอผลลัพธ์การทำงานของ ทดสอบการเคลื่อนที่ของหุ่นยนต์เบื้องต้น Auduino UNO + L298P