Lab 9 การเขียน App Android ผ่านโมดูลบลูทูธควบคุมหุ่นยนต์

การต่อโมดูลบลูทูธกับบอร์ด Kruro Robot

ตัวอย่าง Code Arduino IDE กับบอร์ด Kruro Robot

Code Arduino IDE

#define DL1 7

#define DL2 8

#define PWML 6

#define DR1 9

#define DR2 4

#define PWMR 5

/////////////////////////////////////////////////////////////////

void setup()

{

Serial.begin(9600); ///////// อ่านซีเรียลมอนิเตอร์ ที่ 9600

pinMode(DL1, OUTPUT);

pinMode(DL2, OUTPUT);

pinMode(PWML, OUTPUT);

pinMode(DR1, OUTPUT);

pinMode(DR2, OUTPUT);

pinMode(PWMR, OUTPUT);

}

/////////////////////////////////////////////////////////////////////////////////

void loop()

{

if(Serial.available()>0);

{ char x = Serial.read();

if (x == 'F') {run(100,100);} /// รับค่าคำสั่ง F เดินหน้า

if (x == 'B'){run(-100,-100);} /// รับค่าคำสั่ง B ถอยหลัง

if (x == 'R') {run(100,-100);} /// รับค่าคำสั่ง R เลี้ยวขวา

if (x == 'L') {run(-100,100);} /// รับค่าคำสั่ง L เลี้ยวซ้าย

if (x == 'S') {run(0,0);} /// รับค่าคำสั่ง S หยุด

}}

/////////////////////////////////////////////

void run(int spl,int spr)

{

if(spl>0)

{

digitalWrite(DL1, LOW);

digitalWrite(DL2, HIGH);

analogWrite(PWML, spl);

}

else if(spl<0)

{

digitalWrite(DL1, HIGH);

digitalWrite(DL2, LOW);

analogWrite(PWML, -spl);

}

else

{

digitalWrite(DL1, HIGH);

digitalWrite(DL2, HIGH);

analogWrite(PWMR, -255);

}

///////////////////

if(spr>0)

{

digitalWrite(DR1, LOW);

digitalWrite(DR2, HIGH);

analogWrite(PWMR, spr);

}

else if(spr<0)

{

digitalWrite(DR1, HIGH);

digitalWrite(DR2, LOW);

analogWrite(PWMR, -spr);

}

else

{

digitalWrite(DR1, HIGH);

digitalWrite(DR2, HIGH);

analogWrite(PWMR, -255);

}

}

ตัวอย่าง Code Arduino IDE กับบอร์ด Phurawong Robot

Arduino IDE Code

//#define PWML 5 // motor L

#define IN1L 3 //

#define IN2L 5 //


//#define PWMR 6 // motor R

#define IN1R 6 //

#define IN2R 11 //



/////////////////////////////////////////////////////////////////

void setup()

{

Serial.begin(9600); ///////// อ่านซีเรียลมอนิเตอร์ ที่ 9600

/////////////////////////////////////////

/////////// ช่วงกำหนด pin งดเปลี่ยนแปลง////////

// pinMode(PWML,OUTPUT);

pinMode(IN1L,OUTPUT);

pinMode(IN2L,OUTPUT);

// pinMode(PWMR,OUTPUT);

pinMode(IN1R,OUTPUT);

pinMode(IN2R,OUTPUT);


}

/////////////////////////////////////////////////////////////////////////////////

void loop()

{

if(Serial.available()>0);

{ char x = Serial.read();

if (x == 'F') {run(100,100);} /// รับค่าคำสั่ง F เดินหน้า

if (x == 'B'){run(-100,-100);} /// รับค่าคำสั่ง B ถอยหลัง

if (x == 'R') {run(100,-100);} /// รับค่าคำสั่ง R เลี้ยวขวา

if (x == 'L') {run(-100,100);} /// รับค่าคำสั่ง L เลี้ยวซ้าย

if (x == 'S') {run(0,0);} /// รับค่าคำสั่ง S หยุด

}}

/////////////////////////////////////////////

void run(int sl,int sr){

if((sl==0) and (sr==0)){

digitalWrite(IN1L,HIGH);

digitalWrite(IN1R,HIGH);

digitalWrite(IN2L,HIGH);

digitalWrite(IN2R,HIGH);

delay(100);

digitalWrite(IN1L,LOW);

digitalWrite(IN1R,LOW);

digitalWrite(IN2L,LOW);

digitalWrite(IN2R,LOW);

}



if(sr>255)

sr = 255;

else if(sr<-255)

sr = -255;

if(sl>255)

sl = 255;

else if(sl<-255)

sl = -255;

if(sl>0){

analogWrite(IN1L,sl);

digitalWrite(IN2L,LOW);

// analogWrite(PWML,sl);

}else if(sl<0){

digitalWrite(IN1L,LOW);

analogWrite(IN2L,-sl);

// analogWrite(PWML,-sl);

}else{

digitalWrite(IN1L,HIGH);

digitalWrite(IN2L,HIGH);

// analogWrite(PWML,50);

}

if(sr>0){

analogWrite(IN1R,sr);

digitalWrite(IN2R,LOW);

// analogWrite(PWMR,sr);

}else if(sr<0){

digitalWrite(IN1R,LOW);

analogWrite(IN2R,-sr);

// analogWrite(PWMR,-sr);

}else{

digitalWrite(IN1R,HIGH);

digitalWrite(IN2R,HIGH);

// analogWrite(PWMR,50);

}

}

การเขียน Appinventor

- หน้า Designer

การเขียน Blocks