Mengontrol Robot Bluetooth Arduino menggunakan Aplikasi Android APP Inventor

                Sekarang dengan module Bluetooth HC-05 kita dapat Mengontrol Robot Bluetooth Arduino menggunakan Aplikasi Android melalui smartphone. 


        Dengan module bluetooth HC-05 kita dapat Mengontrol Robot Bluetooth Arduino menggunakan Aplikasi Android dengan jarak maksimal 10 meter. seperti robot yang saya buat yakni robot dengan dua roda menggunakan mikrokontroler. robot ini dapat mengisi kesenangan saat saya sedang bosan. selain membuat robot seperti ini, kalian juga bisa mengontrol yang lain menggunakan Bluetooth, atau berkomunikasi dengan mikrokontroler secara wireless dengan HC-05 seperti halnya membuat jam digital dengan bluetooth agar dapat mengontrolnya jarak jauh atau menghidup matikan lampu dengan bluetooth menggunakan smartphone dan lainya.

            Cara Membuat Robot Bluetooth Arduino dengan Kontrol Android, yang saya buat saya control dengan android. aplikasi pada androidnya saya buat dengan APP Inventor, untuk membuatnya cukup mudah. atau untuk mecoba terlebih dahulu kalian bisa menggunakan aplikasi yang saya buat dengan download disini.

            Instal aplikasi .apk yang tadi di download di smartphone android kalian, jika sudah menginstal apknya sekarang siapkan robotnya. Dalam tutor Mengontrol Robot Bluetooth Arduino menggunakan Aplikasi Android ini saya membuat robot seperti ini


          Untuk komponennya bisa kalian siapkan yang dibawah atau mungkin juga kalian menggunakan komponen pilihan kalian sendiri

1. Arduino Uno dengan ic atemega328, bisa juga menggunakan yang lainnya seperti arduino nano atau juga mega2560 (siapkan dengan kabel tambahan jika diperlukan)
Image result for ARDUINO UNO

2. Bluetooth HC-05
Related image

3. Motor DC, motor DC yang digunakan bisa menyesuaikan. Usahakan yang sudah langsung berisi gearbox. kalian bisa membuat gearbox sendiri atau membeli yang sudah jadi.
Image result for MOTOR DCRelated image

4. Driver Motor, ini digunakan untuk mengontrol motor DC. Dirver motor yang saya gunakan yakni L293d Seperti gambar dibawah ini, untuk mengontrol motor menggunakan driver motor L293d bisa lihat di tutorial
kalian juga dapat menggunakan driver jenis yang lainnya seperti L298. perbedaan driver motor terdapat pada kemampuat batas tegangan dan juga arusnya jadi jika kalian memilih driver motor sesuaikan lah dengan spesifikasi motor DC yang kalian gunakan. 

5. Casis dari acrylic atau bahan lainnya. bentuknya bisa disesuaikan dengan desain kalian.
Image result for chassis robot

Berikut ini adalah Skematik Rangkaiannya menggunakan L293d. untuk rangkaian ini kalian dapat menyesuaikannya dengan komponen yang kalian gunakan

 

Rangkailah jalu rangkaian dari arduino ke driver motor lalu kemotor, untuk ujicoba driver motor tidak memerlukan bluetooth, lalu upload program arduinonya seperti berikut :

//MikroProject
//Mengontrol Arah Dan Kecepatan 2 Motor
//Driver L293D
//Motor A
int PWMA = 8 ; //Pin 1 Enable1 L293
const int motorPin1  = 12;  // Pin 2 di L293
const int motorPin2  = 11;  // Pin 7 di L293

//Motor B
int PWMB = 7 ; //Pin 9 Enable1 L293
const int motorPin3  = 9; // Pin 15 di of L293
const int motorPin4  = 10;  // Pin 10 di of L293


void setup() {
    //Set pins as outputs
    pinMode(motorPin1, OUTPUT);
    pinMode(motorPin2, OUTPUT);
    pinMode(motorPin3, OUTPUT);
    pinMode(motorPin4, OUTPUT);
    pinMode(PWMA, OUTPUT);
    pinMode (PWMB, OUTPUT);
}


void loop()
{
    //ini code motor maju
    //untuk mengatur kec motor
    analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    //untuk mengatur arah putaran motor
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, LOW);

 delay(1000);

   //ini code motor mundur
   //untuk mengatur kec motor
    analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    //untuk mengatur arah putaran motor
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, HIGH);

delay(1000);

     //ini code motor belok kanan
    //untuk mengatur kec motor
    analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    //untuk mengatur arah putaran motor
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, LOW);

delay(1000);

    //ini code motor belok kiri.
    //untuk mengatur kec motor
    analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    //untuk mengatur arah putaran motor
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, HIGH);

delay(1000);

    //ini code motor berhenti
    //untuk mengatur kec motor
    analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    //untuk mengatur arah putaran motor
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, HIGH);

delay(1000);
}

jika sudah di upload, hubungkan catu daya, pastikan arah putaran motor sudah benar.
         
          Selanjutnya uji coba dengan bluetooth dengan upload program berikut (jika proses upload gagal lepas pin bluetooth yang tersambungkan ke rx dan tx arduino) Ujicoba robot dengan bluetooth :

//===================================================
//MikroProject
//Mengontrol Arah Dan Kecepatan 2 Motor dengan Bluetooth
//L293D

//Motor A
int PWMA = 3 ;
const int motorPin1  = 5;  // Pin 2 di L293
const int motorPin2  = 11;  // Pin 7 di L293
//Motor B
int PWMB = 2 ;
const int motorPin3  = 4; // Pin 15 di of L293
const int motorPin4  = 12;  // Pin 10 di of L293

char BluetoothData;

void setup() {
Serial.begin(9600);
 //Set pins as outputs
    pinMode(motorPin1, OUTPUT);
    pinMode(motorPin2, OUTPUT);
    pinMode(motorPin3, OUTPUT);
    pinMode(motorPin4, OUTPUT);
   pinMode(PWMA, OUTPUT);
    pinMode (PWMB, OUTPUT);

//ini code motor berhenti
    analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, LOW);
}

void loop() {

if (Serial.available()){
BluetoothData=Serial.read(); //Mendapatkan character selanjutnya dari bluetooth
  if(BluetoothData==’C’){ // penekanan Tombol
    //ini code motor belok kanan
    //untuk mengatur kec motor
    analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    //untuk mengatur arah putaran motor
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, LOW);   
    }

  if(BluetoothData==’B’){ // penekanan Tombol
    //ini code motor belok kiri.
    //untuk mengatur kec motor
    analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    //untuk mengatur arah putaran motor
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, HIGH);
    }

 if(BluetoothData==’D’){ // penekanan Tombol
   //ini code motor mundur
   //untuk mengatur kec motor
   analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    //untuk mengatur arah putaran motor
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, HIGH);
    } 

 if(BluetoothData==’A’){ // penekanan Tombol
    //ini code motor maju
    //untuk mengatur kec motor
    analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    //untuk mengatur arah putaran motor
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, LOW);
    }

  if(BluetoothData==’S’){ // Tombol Dilepas
     //ini code motor berhenti
    //untuk mengatur kec motor
    analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    //untuk mengatur arah putaran motor
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, HIGH);
    }

  }
delay(10);
}




Jika kalian ingin tidak melepas kabel bluetooth karena terhubung ke pin 0 dan 1 arduino sehingga mengganggu saat melakukan upload program, kalian dapat menggunakan software serial dengan meniru rangkaian dibawah ini

lalu upload programnya (tidak perlu lagi melepaskan pin RX dan TX bluetoothnya) :

//===================================================
//MikroProject
//Mengontrol Arah Dan Kecepatan 2 Motor dengan Bluetooth
//L293D

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3);
// pin 2 arduino sebagai RX ke TX HC-05, pin 3 arduino sebagai TX ke RX HC-05

//Motor A
int PWMA = 3 ;
const int motorPin1  = 5;  // Pin 2 di L293
const int motorPin2  = 11;  // Pin 7 di L293
//Motor B
int PWMB = 2 ;
const int motorPin3  = 4; // Pin 15 di of L293
const int motorPin4  = 12;  // Pin 10 di of L293

char BluetoothData;

void setup() {
Serial.begin(9600);
 //Set pins as outputs
    pinMode(motorPin1, OUTPUT);
    pinMode(motorPin2, OUTPUT);
    pinMode(motorPin3, OUTPUT);
    pinMode(motorPin4, OUTPUT);
   pinMode(PWMA, OUTPUT);
    pinMode (PWMB, OUTPUT);

//ini code motor berhenti
    analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, LOW);
}

void loop() {

if (Serial.available()){
BluetoothData=Serial.read(); //Mendapatkan character selanjutnya dari bluetooth
  if(BluetoothData==’C’){ // penekanan Tombol
    //ini code motor belok kanan
    //untuk mengatur kec motor
    analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    //untuk mengatur arah putaran motor
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, LOW);   
    }

  if(BluetoothData==’B’){ // penekanan Tombol
    //ini code motor belok kiri.
    //untuk mengatur kec motor
    analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    //untuk mengatur arah putaran motor
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, HIGH);
    }

 if(BluetoothData==’D’){ // penekanan Tombol
   //ini code motor mundur
   //untuk mengatur kec motor
   analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    //untuk mengatur arah putaran motor
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, HIGH);
    } 

 if(BluetoothData==’A’){ // penekanan Tombol
    //ini code motor maju
    //untuk mengatur kec motor
    analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    //untuk mengatur arah putaran motor
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, LOW);
    }

  if(BluetoothData==’S’){ // Tombol Dilepas
     //ini code motor berhenti
    //untuk mengatur kec motor
    analogWrite(PWMA, 255);
    analogWrite(PWMB, 255);
    //untuk mengatur arah putaran motor
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, HIGH);
    }

  }
delay(10);
}

//==================================================

             Dari program di atas kita menggunakan software serial, sehingga kita dapat menggunakan pin digital arduino sebagai pin komunikasi ke bluetooth HC-05 atau ke hardware lainya.
           
             Tentunya kalian juga harus memperhatikan comand karakter yang dikirim ketika tombol pada .apk android ditekan, seperti pada aplikasi yang saya buat comand karakter yang saya kirim ketika tombol pada android ditekan seperti berikut :

        Kalian juga tentunya dapat menggunakan aplikasi android lainnya, dengan mengubak comand karakter pada program arduino. seperti contoh jika maju pada program arduino diatas kita menggunakan comand karakter A kita dapat ganti dengan misalnya B dengan mengubah pada bagian berikut :

if(BluetoothData==’B’){ // Button Pressed

Ini adalah Video uji cobanya


Ok,, sekian untuk Cara Membuat Robot Bluetooth Arduino dengan Kontrol Android
Semoga berhasil….

No comments yet

  1. Terimakasih sudah berbagi ilmunya,, semoga Tuhan membalas segala amal baiknya. Oh iya,, boleh gak saya minta source androidnya supaya saya bisa mempelajarinya lebih dalam lagi

Leave a Reply

Your email address will not be published. Required fields are marked *