วัตถุประสงค์ของบทความนี้

ในบทความนี้ เราจะควบคุม XY Robot โดยใช้บอร์ด ESP32 และ สมาร์ทโฟน ผ่าน Bluetooth " แบบง่าย ๆ เพื่อให้เข้าใจการควบคุมการเคลื่อนที่เบื้องต้น " เพื่อเรียนรู้การควบคุมขั้นสูงต่อไป

 

อุปกรณ์ที่จำเป็น

บอร์ด ESP32

บอร์ด CNC Shield

A4988 Motor Controller Module

Smartphone

lm2596 Dc-Dc Stepdown

Auto XY ท่านสามารถซื้อได้ตาม Link นี้ 

 

 

วงจร

 

 

 

Microcontroller Program Code 

ส่วนโปรแกรมที่ช่วยให้เชื่อมต่อบอร์ด ESP32 กับ สมาร์ทโฟนและรับข้อความที่มีคำสั่งของรถ โดยใช้ Arduino IDE

#include <BluetoothSerial.h>
BluetoothSerial SerialBT;


String state; 
const int Pulse = 12;
const int Direction = 26;
const int Pulse2 = 14;
const int Direction2 = 25;

 

void setup() {
Serial.begin(115200);
SerialBT.begin("ESP32");
pinMode(Pulse, OUTPUT);
pinMode(Direction, OUTPUT);
pinMode(Pulse2, OUTPUT);
pinMode(Direction2, OUTPUT);
}

void loop() {
if (SerialBT.available()) { 
state = SerialBT.readString();
}

Serial.println(state);

if (state == "left") {
digitalWrite(Pulse, HIGH);
digitalWrite(Direction, HIGH);
delayMicroseconds(1);
digitalWrite(Pulse, LOW);
delayMicroseconds(10);
} else if (state == "right") {
digitalWrite(Pulse, HIGH);
digitalWrite(Direction, LOW);
delayMicroseconds(1);
digitalWrite(Pulse, LOW);
delayMicroseconds(10);
} else if (state == "forward") {
digitalWrite(Pulse2, HIGH);
digitalWrite(Direction2, HIGH);
delayMicroseconds(1);
digitalWrite(Pulse2, LOW);
delayMicroseconds(10);
} else if (state == "backward") {
digitalWrite(Pulse2, HIGH);
digitalWrite(Direction2, LOW);
delayMicroseconds(1);
digitalWrite(Pulse2, LOW);
delayMicroseconds(10);
} else if (state == "stop") {
digitalWrite(Pulse, LOW);
digitalWrite(Direction, LOW);
digitalWrite(Pulse, LOW);
digitalWrite(Pulse2, LOW);
digitalWrite(Direction2, LOW);
digitalWrite(Pulse2, LOW);
}
}

 

Application with App Inventor

เราจะสร้างแอปพลิเคชันมือถือด้วย App Inventor ซึ่งช่วยให้สามารถควบคุม Auto XY ด้วยสมาร์ทโฟนได้ เราออกแบบแอปพลิเคชันด้วยภาพต่อไปนี้ :

 ภาพตัวอย่าง

 

Programming with App Inventor

ในการเขียนโปรแกรมแอปพลิเคชัน App Inventor จะใช้ภาษา Blocks ซึ่งช่วยให้คุณสามารถสร้างโปรแกรมในรูปแบบของบล็อกไดอะแกรม ใช้งานง่ายมาก แต่ต้องใช้ตรรกะในการเขียนโปรแกรมเล็กน้อย

นี่คือโปรแกรมของแอปพลิเคชันที่สร้างขึ้นใน App Inventor (click บนรูปเพื่อดูขนาดจริง)

 

 

 

 

VDO