Mengontrol Banyak Servo dengan Android dan Arduino

Ditulis oleh agan

بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم

Oke bro dan sis, berjumpa lagi dengan saya pada minggu pertama di Bulan Maret Tahun 2016.
Semoga kita menjadi lebih sehat agar dapat semangat untuk terus belajar dan berkarya, Amiin.

Di kesempatan hari ini, kita akan mencoba Mengontrol banyak servo melalui Android. Pada artikel sebelumnya yang ada di blog ini, saya juga pernah mempublish artikel yang berjudul "Mengontrol Servo dengan Android dan Arduino". Sebenarnya tidak ada banyak perbedaan dari artikel tersebut, perbedaannya hanya saja kali ini kita akan mengontrol lebih banyak servo.

Dengan menggunakan Smartphone android untuk mengontrol derajat putaran servo, maka tentunya akan lebih memudahkan kita dalam menyelesaikan project Arduino kita. Contoh kecilnya, jika anda mempunyai Robotic Arm seperti MeArm, anda dapat mengatur derajat putaran Servo base, shoulder, elbow dan gripper menggunakan Android via Bluetooth dengan aplikasi Arduino Bluetooth 6CH Servo ini atau aplikasi MeArm Controller yang ada di playstore.

Alat dan Bahan yang dibutuhkan :
  • 1x Arduino UNO
  • 1x Bluetooth modul ( HC-05 atau HC-06 juga boleh)
  • 6x Motor servo
  • 1x Project board ( Breadboard )
  • Smartphone Android
  • Aplikasi android Arduino Bluetooth 6CH Servo Download di Playstore DOWNLOAD
  • Kabel jumper secukupnya

Langkah - Langkahnya :

1.) Susunlah rangkaian berikut pada breadboard


Keterangan Konfigurasi Kabel :
  • Pin 5V pada arduino dihubungkan ke VCC modul bluetooth
  • Pin GND pada arduino dihubungkan ke GND pada modul bluetooth
  • Pin RXD pada arduino dihubungkan ke TX pada modul bluetooth
  • Pin TXD pada arduino dihubungkan ke RX pada modul bluetooth
  • Pin 3 pada arduino dihubungkan ke kabel kuning Servo channel 1
  • Pin 5 pada arduino dihubungkan ke kabel kuning Servo channel 2
  • Pin 6 pada arduino dihubungkan ke kabel kuning Servo channel 3
  • Pin 9 pada arduino dihubungkan ke kabel kuning Servo channel 4
  • Pin 10 pada arduino dihubungkan ke kabel kuning Servo channel 5
  • Pin 11 pada arduino dihubungkan ke kabel kuning Servo channel 6
  • Kabel merah pada semua servo di jumper ke 5V ( Tegangan positif )
  • Kabel hitam pada semua servo di jumper ke GND ( Tengangan negatif )
2.) Setelah itu sambungkan Arduino pada Laptop/PC dengan menggunakan kabel serial.
3.) Download dan Install program Arduino IDE di Arduino.cc ( If Needed )
4.) Setelah terinstall, jalankan program Arduino-nya.
5.) Klik menu "Tools -> Board -> Arduino Uno"
6.) Klik menu "Tools -> Port -> ( Pilih Port arduino yang terdeteksi di komputer anda )
7.) Lalu masukan Sketch dibawah ini, dan terakhir klik upload.

Klik LIHAT DONG untuk melihat sketch
/*6 Channel Servo Motor Control ~ www.boarduino.blogspot.com */
#include <Servo.h>
Servo servo_channel_1;
Servo servo_channel_2;
Servo servo_channel_3;
Servo servo_channel_4;
Servo servo_channel_5;
Servo servo_channel_6;

int hasil_servo_channel_1;
int hasil_servo_channel_2;
int hasil_servo_channel_3;
int hasil_servo_channel_4;
int hasil_servo_channel_5;
int hasil_servo_channel_6;
int hasil_serial;

void setup() {
  Serial.begin(38400); //Sesuaikan baudrate dengan modul bluetooth anda!
  Serial.setTimeout(4);
  servo_channel_1.attach(3);
  servo_channel_2.attach(5);
  servo_channel_3.attach(6);
  servo_channel_4.attach(9);
  servo_channel_5.attach(10);
  servo_channel_6.attach(11);
  servo_channel_1.write(hasil_servo_channel_1);
  servo_channel_2.write(hasil_servo_channel_2);
  servo_channel_3.write(hasil_servo_channel_3);
  servo_channel_4.write(hasil_servo_channel_4);
  servo_channel_5.write(hasil_servo_channel_5);
  servo_channel_6.write(hasil_servo_channel_6);

}

void loop() {
  if (Serial.available()>0) {
    hasil_serial = Serial.parseInt();
    if (hasil_serial >0 && hasil_serial <180)
    {
        hasil_servo_channel_1 = hasil_serial;
        hasil_servo_channel_1 = map(hasil_serial, 0, 180, 0, 180); 
        servo_channel_1.write(hasil_servo_channel_1);
}
   if (hasil_serial >180 && hasil_serial <360)
    {
        hasil_servo_channel_2 = hasil_serial;
        hasil_servo_channel_2 = map(hasil_serial, 180, 360, 0, 180);
        servo_channel_2.write(hasil_servo_channel_2);
}
   if (hasil_serial >360 && hasil_serial <540)
    {
        hasil_servo_channel_3 = hasil_serial;
        hasil_servo_channel_3 = map(hasil_serial, 360, 540, 0, 180); 
        servo_channel_3.write(hasil_servo_channel_3);
}
       if (hasil_serial >540 && hasil_serial <720)
    {
        hasil_servo_channel_4 = hasil_serial;
        hasil_servo_channel_4 = map(hasil_serial, 540, 720, 0, 180); 
        servo_channel_4.write(hasil_servo_channel_4);
}
       if (hasil_serial >720 && hasil_serial <900)
    {
        hasil_servo_channel_5 = hasil_serial;
        hasil_servo_channel_5 = map(hasil_serial, 720, 900, 0, 180);
        servo_channel_5.write(hasil_servo_channel_5);
}
       if (hasil_serial >900 && hasil_serial <1080)
    {
        hasil_servo_channel_6 = hasil_serial;
        hasil_servo_channel_6 = map(hasil_serial, 900, 1080, 0, 180); 
        servo_channel_6.write(hasil_servo_channel_6);
    }
  }
}

Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Blog, Updated pada: 18:23:00

37 comments:

  1. salam kenal bang mau tanya fungsi dari Serial.setTimeout(4); dan
    Serial.parseInt(); , apa bedanya dengan kalo kita pake Serial.read() saja ?

    ReplyDelete
    Replies
    1. Salam kenal, untuk referensi silahkan dibaca :

      https://www.arduino.cc/en/Serial/Read
      https://www.arduino.cc/en/Serial/SetTimeout
      https://www.arduino.cc/en/Reference/ParseInt

      Delete
  2. Bang mau tanya nih untuk kontrol servo 90 derajat kemudian kembali 0 derajat lg gimana yah? Pengaplikasian palang pintu

    ReplyDelete
    Replies
    1. Salam kenal, simpelnya bisa dengan sketch dibawah ini.

      myservo.write(90);
      delay(15);
      myservo.write(0);

      Delete
  3. duh mantep nih bisa digunakan buat bikin armrobot ya om? mantap

    ReplyDelete
  4. Saya sedang mencoba membuat hexapod,menggunakan 18 motor servo. Tapi terkendala pada pembagian tegangan pada tiap2 motor servo,adakah rangkaian penguat untuk hal itu,mohon bantuannya.

    ReplyDelete
    Replies
    1. Salam kenal, hexapod ya? kalau temen saya waktu itu buat hexapod pakai UBEC untuk kontrol belasan servonya...

      Delete
  5. permisi gan, maaf OOT. caranya nahan keadaan utput gimana ya? Misalnya kayak gini, Kalo misalnya kita punya sensor untuk ngendalikan led menggunakan tombol, led bisa dikendaliin menggunakan tombol kalo sensor aktif. itu gimana gan? kalo makek timer terus di looping saat tombol ditekan led kadang mati gara2 sesornya ngelooping mulu. Mohon bantuannya gan

    ReplyDelete
    Replies
    1. Salam kenal, sudah saya jawab lewat email.

      Delete
  6. Gan, boleh maap OOT? saya sedang buat rangkaian stasiun cuaca dengan bebrapa snsor analog ke satu board arduino, & output ke relay.. kalo ngandelin V out dari arduino untuk semua sensor & relay apa tidak masalah?

    ReplyDelete
    Replies
    1. Salam kenal. Tidak masalah, sebelumnya cek terlebih dahulu datasheet sensor yang digunakkan, untuk mengetahui tegangan kerja, konsumsi arus, dll.

      Delete
  7. Replies
    1. gan mau tanya gan,
      kalo code di androidnya gmn ya?
      itu sketchnya sudah yang sama android nda gan?
      kok ndak ada bluetoothnya ?

      Delete
    2. Kode di android pakai item slider saja. Sketchnya tidak menggunakan Software serial, makanya tidak ada bagian bluetoothnya.

      Delete
  8. gan, mau nanya,, kalo yang di aplikasi boarduino itu kan selain ada slider ada juga pengaturan servo yang langsung gitu, misalnya 0,30,45,90,180 gitu,, itu gimana bikinnya di MIT App inventor ??

    ReplyDelete
    Replies
    1. Oh kalau di boarduino gak ada yg langsung, ada slider aja... Kalau mau yang langsung ada di blog ini "Mengontrol servo dengan android dan arduino"

      Cara membuatnya dengan button, jika button ditekan kirim angkanya. Misal: 90

      Delete
  9. bg.. itu ngk perlu tegangan tambahan lagi ??

    ReplyDelete
    Replies
    1. Sangat diperlukan power supply external, karena arduino tidak mampu menjalakannya. Arus kurang.

      Delete
  10. siang mas. gimana cara mengontrol kecepatan banyak motor dc ??

    ReplyDelete
    Replies
    1. Siang juga, Prinsipnya sama saja dengan menggunakan pin PWM. Kalau servo 0-180, kalau motor DC pakai 0-255.

      Di aplikasi android, buat saja dengan slider. Min value isikan dengan 0 dan Max value isikan dengan 255.

      Delete
  11. Salam kenal,

    Saya jj eka.
    saya mau tanya bagaimana menggerakkan robot hexapod.
    untuk koding program arduino nya sendiri gimna ya mas?
    Saya pemula, masih sekolah, saya penasaran dengan robot itu sendiri. baru beli, tapi ga tau codingnya.

    Tolong respon ya mas,
    via email juga gpp jjekadwi@gmail.com

    Salam, JJ Eka

    ReplyDelete
    Replies
    1. Salam kenal.
      Tak ada yg spesial untuk gerakin hexapod, hanya gerakan servo saja... Pahami dulu servo sampai mahir, nanti dibuat sendiri sketchnya.

      Delete
  12. Salam kenal mas,

    Mas gimana untuk koding program arduino nya sendiri mas?
    Apa ada rangkaian tambahan untuk robot itu bergerak/ jalan.?

    Saya masih pemula mas, tolong bantuannya ya mas.
    Bales via email bisa ga mas? Ada tugas dari sekolahan. jjekadwi@gmail.com

    Terima kasih
    Salam, JJ Eka

    ReplyDelete
    Replies
    1. Gimana apanya? Kalau sketch ya tentu saja dibuat...
      Rangkaian paling tambahan untuk power servo, dengan UBEC. Dan untuk gerakan servo pakai adaftruit 16ch servo driver.

      Delete
  13. salam kenal mas
    nama saya syamsul
    mau nnyak gimana caranya membuat aplikasi androidnya

    ReplyDelete
    Replies
    1. Salam kenal, Coba cari artikel di blog ini yang judulnya "Mengontrol Output Pin PWM Arduino melalui Android"

      Kalau disitu kan output pwm 0-255, Ente ubah jadi 0-180

      Delete
  14. Salam kenal mas
    Nama saya panji
    Saya mau nanyananya cara buat sistem keamanan brangkas dengan perintah suara menggunaka arduino via andoid gimana ya mas
    Sebelum nya saya ucapkan terimaksih banyak mas

    ReplyDelete
    Replies
    1. Salam kenal.
      Tinggal kembangkan tutorial yang menyalakan lampu dengan suara, ganti lampu dengan solenoid door lock.

      Delete
  15. salam kenal msa
    mas driver ap yang cocok untuk mengontrol robot arm

    ReplyDelete
    Replies
    1. Salam kenal. Kalau cuma pakai 4 servo, gak perlu pakai driver.

      Delete
  16. salam hormat mas Andi.... kalau servonya cuman 4 coding mana yang dikurangi???

    ReplyDelete
    Replies
    1. Tinggal dikurangi object servo dan sedikit sketch, silahkan dipahami sendiri...

      Delete
  17. Salam kenal bang
    Nama saya lutfi
    Saya mau nanya apa robotic arm bisa kontrol via android sekaligus dengan manual dengan console/potensio ?
    apabila ada info tolong email ya bang, lutfitiardi96@gmail.com
    terimaksih banyak bang

    ReplyDelete
    Replies
    1. Salam kenal. Tentu saja bisa... Silahkan dibuat :)

      Delete

Masih Bingung atau Hal Lainnya? Silahkan Bertanya di Kolom Komentar :)

~ Dilarang SARA
~ Dilarang PORNOGRAPHY
~ Dilarang SPAM
~ Dilarang MENINGGALKAN LINK AKTIF
~ Maaf untuk Anonymous, tidak bisa Berkomentar.

Apabila Komentar anda belum muncul, Tunggu sampai di Moderasi.
Terimakasih atas Perhatiannya.


English French German Spain Italian Dutch Russian