หลังจากที่จัดหน้า user interface เสร็จเรียบร้อยแล้ว ก็ต่อด้วยการเขียนโค้ดของแอปพลิเคชัน โดยกดเข้าไปที่ Blocks เราจะแบ่ง การเขียนโค้ดออกเป็น 4 ส่วน คือ โค้ดบลูทูธ, โค้ดเดินหน้า ถอยหลัง เลี้ยวซ้าย เลี้ยวขวา, โค้ดเซอร์โว, และการเขียนโค้ดให้หุ่นยนต์ IPST
1. โค้ดเชื่อมต่อบลูทูธ
1.1 เรียกบลูทูธที่ทำการจับคู่เสร็จแล้ว มาแสดงใน ListPicker
1.2 Connect บลูทูธที่เลือก และให้ขึ้นสถานะ Connected ใน Label ที่ตั้งชื่อว่า Status
1.3 เมื่อกดปุ่ม Disconnected ให้ทำการยกเลิกการเชื่อมต่อบลูทูธ จากนั้นก็ขึ้นสถานะเป็น Disconnected ใน Label ที่ตั้งชื่อว่า Status
2. โค้ดทำให้หุ่นยนต์เดินหน้า ถอยหลัง เลี้ยวซ้าย เลี้ยวขวา และหยุดการทำงาน
2.1 ปุ่มบังคับให้หุ่นยนต์ทำงาน โดยการใช้ ImageSprite เมื่อสัมผัสลงไปแล้วให้บลูทูธส่งค่าตัวเลขตามรูปไปยังหุ่นยนต์ IPST
2.2 เมื่อไม่ได้สัมผัส ImageSprite ให้บลูทูธส่งค่า 0 ไปยังบอร์ด IPST เพื่อให้หุ่นยนต์หยุด
3.โค้ดของเซอร์โว เมื่อกด Button ต่างๆ ให้บลูทูธส่งค่าตัวเลขไปยังบอร์ด IPST เพื่อสั่งให้เซอร์โวทำงาน
โค้ดสำหรับหุ่นยนต์ IPST
#include <ipst.h>
byte x;
int P = 80;
void setup(){
setTextSize(1);
setTextColor(GLCD_GREEN);
setTextSize(1);
glcd(0,0,“Hi there”);
glcd(1,0,“I’m Autobot”);
glcd(2,0,“My name’s IPST-SE”);
glcd(3,0,“Control by :”);
glcd(4,0,“Android Smartphone”);
glcd(5,0,“Create by Appinventor”);
glcd(6,0,“Presented by :”);
glcd(7,0,“INEX and IPST”);
pinMode(2,INPUT_PULLUP);
}
void loop(){
if (uart1_available()) {
x=uart1_getkey();
if(x==1) { //foward
motor(1,P);
motor(2,P);
}
if (x==2) { //back
motor(1,-P);
motor(2,-P);
}
if (x==3) { //turn right
motor(1,50);
motor(2,-50);
}
if (x==4){ //turn left
motor(1,-50);
motor(2,50);
}
if (x==0){ //stop motor
motor_stop(1);
motor_stop(2);
}
if (x==5){ //servo up
servo(0,50);
}
if (x==6){ //servo down
servo(0,200);
}
if (x==7){ //servo open
servo(1,80);
}
if (x==8){ //servo close
servo(1,150);
}
}
}
หมายเหตุ คำสั่ง pinMode(2,INPUT_PULLUP); ใส่เพื่อกำหนดให้สถานะของขา Rxd1 ขณะลอยอยู่มีสถานะเป็นลอจิก “1” เพื่อใช้กับโมดูล BlueStick รุ่นใหม่ ๆ ที่แรงดันเอาต์พุต มีค่าส่งออกมาไม่ถึง 5V