โปรเจค นี้จะเป็นการนำ Arduino UNO R3 และ L298P Motor Shield Board มาทำเป็น หุ่นยนต์ บังคับด้วย สมาร์ทโฟน แอนดรอยด์ ผ่านทาง Bluetooth HC-06 ซึ่งการใช้ L298P Motor Shield จะทำให้การประกอบหุ่นยนต์ สะดวกและง่ายขึ้น เมื่อเทียบกับการใช้ Motor Driver Module L298N
อุปกรณ์ที่ใช้
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 ก้อน
9. Jumper (F2M) cable 20cm Female to Male
10. Bluetooth HC-06 Slave
1. ประกอบหุ่นยนต์
เริ่มต้นด้วยการ ประกอบ หุ่นยนต์ UNO + L298P และ ทดสอบการเคลื่อนที่ของหุ่นยนต์ ตามลิงค์ บทความด้านล่าง
https://robotsiam.blogspot.com/2017/12/uno-l298p.html
2. ประกอบ Bluetooth HC-06
ใช้ จั้มเปอร์ ผู้-เมีย เชื่อมต่อ Bluetooth HC-06 เข้ากับ L298P ตามรูปด้านล่าง
HC-06 <-> L298P
VCC <-> 5V
GND <-> Gnd
TXD <-> TX
RXD <-> RX
VCC <-> 5V
GND <-> Gnd
TXD <-> TX
RXD <-> RX
3. การอัพโหลดโปรแกรม
เปิดโปรแกรม Arduino (IDE) และ Upload โค้ดนี้ ไปยัง บอร์ด Arduino UNO R3
/*
Bluetooth Robot with Arduino UNO + L298P
For more details visit:
https://robotsiam.blogspot.com/2017/12/uno-l298p-bluetooth.html
*/
#include <SoftwareSerial.h>
int incomingByte = 0;
/*-------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
Serial.begin(9600);
Serial.println("Motor Ready");
}
void loop() {
if (Serial.available() > 0) {
incomingByte = Serial.read();
}
switch (incomingByte)
{
case 'S':
// stop all motors
{
Stop(1);
Serial.println("Stop\n");
incomingByte = '*';
}
break;
case 'F':
// turn it on going forward
{
Forward(1);
Serial.println("Forward\n");
incomingByte = '*';
}
break;
case 'B':
// turn it on going backward
{
Backward(1);
Serial.println("Backward\n");
incomingByte = '*';
}
break;
case 'R':
// turn right
{
turnRight(1);
Serial.println("Rotate Right\n");
incomingByte = '*';
}
break;
case 'L':
// turn left
{
turnLeft(1);
Serial.println("Rotate Left\n");
incomingByte = '*';
}
break;
}
}
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 > Board เลือกเป็น Arduino/Genuino UNO
ไปที่ Tools > Port แล้วเลือกพอร์ตที่ปรากฏ (กรณีใช้เครื่องคอมพิวเตอร์ที่มี COM Port มากกว่าหนึ่ง ให้เลือกตัวอื่นที่ไม่ใช่ COM1)
ในตัวอย่างเลือกเป็น "COM14"
(ถ้ายังว่าง หรือ เป็น COM1 ให้ตรวจสอบการติดตั้งไดร์เวอร์ การต่อสาย USB ของ Arduino UNO)
กดปุ่ม
![](https://cz.lnwfile.com/_/cz/_raw/qw/6x/4y.png)
หลังจากนั้นจึงเชื่อมต่อสาย TX และ RX เข้ากับ L298P ดังเดิม
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_NTI8LDSW-Qa1CC9uC-Z5G16z2bf39hOAUdxeYAH1v_ajDKwt74ItYwyiwFNqA_OaxYHhQ_MNgTVw5WF6wAeHSrXZsgAMuqL8rT0mDcNmn7rCxjR2Nt0tn7QF5VgmSE3xuRhiYp7GXzJY/s640/19.jpg)
4. ติดตั้งแอพควบคุม
เปิด เพาเวอร์สวิตซ์ จ่ายไฟให้กับหุ่นยนต์
ใช้ สมาร์ทโฟน Android เปิดการเชื่อมต่อ บลูทูธ และ เชื่อมต่อกับ HC-06
ใส่รหัสผ่าน 1234 -> ตกลง
ใช้สมาร์ทโฟน Android ไปที่ Play Store
ค้นหา arduino bluetooth rc car เลือกแอพ ซ้ายมือด้านบนสุด ตามรูป
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhArY2S8mnpq8OZOsjW3wPVO5l6VBB6kmF3yvUjsIQYxY7cBppqVpr-c2d3tpr8EJgGEF8YASY4aZE_836sBoE-HE7H-mqwxFhfAB56BSyn9DKn13ch-_QzSlpmbPYfEYWbUAykvsGmnaya/s640/7.jpg)
การติดตั้ง..เหมือนแอพทั่วๆไป
เมื่อเปิดขึ้นมา รูปวงกลมซ้ายมือ จะเป็นสีแดง
คลิกที่ ไอคอนเฟือง ขวามือสุด แล้ว เลือก Connect to car
เลือก HC-06 (ถ้าถามหา พาสเวิร์ด ให้คีย์ 1234)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB-eAvsqvQfwQNY8HBcX0ncIX_wwrf8EhjZPpzYgtDd-FFDG0D848lUBFnpHvhc-LTPGRNPdZD4fQPkBSGpKp1kvh81KDhtqrM1fAL7EeW9llJHeXn2zlwhT1gzrOatWybYRLmYQx2d_9h/s640/10.jpg)
สังเกตุ รูปวงกลมซ้ายมือเป็นสีเขียวแสดงว่า โปรแกรมสามารถใช้งานได้แล้ว
5. ทดสอบการทำงาน
ใสถ่าน แบบ 18650 แรงดันไฟเฉลี่ย 3.7V (3400 mAh) จำนวน 2 ก้อน และ เปิด เพาเวอร์สวิตซ์ จ่ายไฟให้กับหุ่นยนต์
เปิดแอพ Bluetooth RC Controller ทำตามขั้นตอนที่ 4 ให้ รูปวงกลมซ้ายมือเป็นสีเขียว
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhghkIgSRXS4ZIZop5t6ViSopk5jb6U32XVuJWz2wKLxW_XD1ukmLhd12Ywv3tvHD2GC4DQInI2eHrwzGrDyl5C06JXJG9tygG69ATACsPOHMiPvn1Sva8j9yiFMGbNuJm5_WMbutSBpnyF/s640/11.jpg)
และสังเกต ไฟ LED สีแดง ของ Bluetooth HC-06 ที่กระพริบอยู่ จะ ติดค้างเป็นสีแดงตลอด แสดงว่าหุ่นยนต์พร้อมทำงานแล้วจึงทดลองควบคุมหุ่นยนต์
วีดีโอผลลัพธ์ โปรเจคหุ่นยนต์ UNO + L298P บังคับด้วย Bluetooth
ใสถ่าน แบบ 18650 แรงดันไฟเฉลี่ย 3.7V (3400 mAh) จำนวน 2 ก้อน และ เปิด เพาเวอร์สวิตซ์ จ่ายไฟให้กับหุ่นยนต์
เปิดแอพ Bluetooth RC Controller ทำตามขั้นตอนที่ 4 ให้ รูปวงกลมซ้ายมือเป็นสีเขียว
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhghkIgSRXS4ZIZop5t6ViSopk5jb6U32XVuJWz2wKLxW_XD1ukmLhd12Ywv3tvHD2GC4DQInI2eHrwzGrDyl5C06JXJG9tygG69ATACsPOHMiPvn1Sva8j9yiFMGbNuJm5_WMbutSBpnyF/s640/11.jpg)
และสังเกต ไฟ LED สีแดง ของ Bluetooth HC-06 ที่กระพริบอยู่ จะ ติดค้างเป็นสีแดงตลอด แสดงว่าหุ่นยนต์พร้อมทำงานแล้วจึงทดลองควบคุมหุ่นยนต์
วีดีโอผลลัพธ์ โปรเจคหุ่นยนต์ UNO + L298P บังคับด้วย Bluetooth