Translate

Membuat Robot Arduino Menggunakan Kendali Accelerometer HP Android Via BLUETOOTH

Membuat Kendali Robot Arduino Menggunakan Accelerometer HP Android Via BLUETOOTH


        Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah robot beroda yang dapat dikendalikan gerakannya menggunakan handphone android melalui fitur accelerometer, jadi syarat utama yang harus dipunyai oleh handphone adalah fitur sensor accelerometer, robot ini menggunakan Arduino sebagai pengolahan datanya dan juga eksekusi robotnya. handphone android hanya mengirimkan koordinat berupa nilai kemiringan X dan Y saja kemudian kedua nilai tersebut dikirimkan secara bersamaan ke Arduino, Pada Arduino dilakukan parsing data yang mana agar didapatkan nilai X dan Y yang dikirimkan oleh HP melalui bluetooth sehingga setelah data didapat, Arduino langsung akan mengeksekusi kedua motor DC agar dapat berjalan sesuai perintah. untuk lebih jelasnya berkut adalah skema dan programnya.





a. Arduino Uno





b. Driver Motor L298





c. Bluetooth HC-05





d. Motor DC + Gearbox + Roda





e. Handphone + Sensor Accelerometer






f. Program Android








g. Program Arduino IDE

int kiri = 2;
int kiri2 = 3;
int kanan = 4;
int kanan2 = 5;

int pwm1 = 6;
int pwm2 = 7;

int sumbux;
int sumbuy;

String accelero;


void setup() {
Serial.begin(9600);
Serial.setTimeout(5);

pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);

analogWrite(6,250);
analogWrite(7,250);

}

void loop() {

if (Serial.available() > 0)
{
 
  accelero = Serial.readString();

if(accelero.startsWith("X"))
{
   accelero.replace("X", "");
   //Serial.print("X= ");
   //Serial.print(accelero);
   //Serial.print("   "); 
   sumbux = accelero.toInt();
   //Serial.println(sumbux);
  
}

else if(accelero.startsWith("Y"))
{
   accelero.replace("Y", "");
   //Serial.print("Y= ");
   //Serial.print(accelero);
   //Serial.println("   ");  
   sumbuy = accelero.toInt();
   //Serial.println(sumbuy);
}

delay(200);


 if ((sumbux > -15) && (sumbux < 15) && (sumbuy > -15) && (sumbuy < 15))
 {
 //stop
 Serial.println("STOP");
 digitalWrite(kiri, LOW);
 digitalWrite(kiri2, LOW);
 digitalWrite(kanan, LOW);
 digitalWrite(kanan2, LOW);
 }

  if ((sumbux > -10) && (sumbux < 10) && (sumbuy > 20) && (sumbuy < 80))
{
 //mundur
 Serial.println("MUNDUR");
 digitalWrite(kiri, LOW);
 digitalWrite(kiri2, HIGH);
 digitalWrite(kanan, LOW);
 digitalWrite(kanan2, HIGH);
}

  if ((sumbux > 20) && (sumbux < 80) && (sumbuy > -10) && (sumbuy < 10))
 {
 //kiri
 Serial.println("KIRI");
 digitalWrite(kiri, HIGH);
 digitalWrite(kiri2, LOW);
 digitalWrite(kanan, LOW);
 digitalWrite(kanan2, LOW);
 }

  if ((sumbux > -80) && (sumbux < -20) && (sumbuy > -10) && (sumbuy < 10))
 {
 //kanan
 Serial.println("KANAN");
 digitalWrite(kiri, LOW);
 digitalWrite(kiri2, LOW);
 digitalWrite(kanan, HIGH);
 digitalWrite(kanan2, LOW);
 }

   if ((sumbux > -10) && (sumbux < 10) && (sumbuy > -80) && (sumbuy < -20))
 {
 //maju
 Serial.println("MAJU");
 digitalWrite(kiri, HIGH);
 digitalWrite(kiri2, LOW);
 digitalWrite(kanan, HIGH);
 digitalWrite(kanan2, LOW);
 }


}

}







h. VIDEO HASILNYA











No comments:

Post a Comment