Yayasan Peduli Fajar Imani

Mengontrol Putaran Servo dengan GY-521 (MPU-6050)

Ditulis oleh agan

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

Oke bro, selamat datang bagi semua pengunjung yang sedang mampir di blog ini.
Berjumpa kembali di awal Bulan September 2016 yang semoga lebih menjadi penuh semangat :)

Intermezzo : MPU6050 adalah sensor sudut dan percepatan atau biasa disebut gyrometer. Sama seperti kebanyakan sensor lain, MPU6050 perlu dikalibrasi sebelum digunakan. Kinerja gyrometer ini sangat terpengaruh terhadap suhu, jadi pastikan suhu stabil terlebih dahulu sebelum melakukan proses kalibrasi. Beri jarak waktu antara 3 sampai dengan 5 menit setelah power on agar suhu stabil. 

Atau bila kalian ingin kenal lebih jauh tentang MPU6050, silahkan klik Datasheet MPU6050
Dengan MPU6050, kita dapat membuat banyak project. Contohnya: Self Balancing Robot, Kontrol Motor DC CW/CCW, dan lain lain sesuai dengan kreatiifitas dan kebutuhan ente.
Dan pada Tutorial Arduino kali ini, kita akan mencoba MPU6050 untuk mengontrol derajat putar motor servo dengan arduino dan memanfaatkan Y axis yang ada pada Modul MPU6050.

Alat dan Bahan yang dibutuhkan :
  • 1x Arduino UNO
  • 1x Servo
  • 1x MPU6050 
  • Kabel jumper secukupnya
  • Breadboard (Project Board)
  • Library I2Cdev dan MPU6050, silahkan klik DOWNLOAD

 Langkah - Langkahnya :

1.) Pertama, susunlah rangkaian seperti gambar dibawah ini


Keterangan Konfigurasi Kabel :
  • Pin 3,3V pada arduino dihubungkan ke VCC pada MPU6050
  • Pin GND pada arduino dihubungkan ke GND pada MPU6050
  • Pin A4 pada arduino dihubungkan ke SDA pada MPU6050
  • Pin A5 pada arduino dihubungkan ke SCL pada MPU6050
  • Pin 9 pada arduino dihubungkan ke Kabel Kuning Motor Servo
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
#include "Wire.h"
#include "I2Cdev.h"
#include "MPU6050.h"
#include "Servo.h"

MPU6050 mpu;

int16_t ax, ay, az;
int16_t gx, gy, gz;

Servo myservo;

int val;
int prevVal;

void setup()
{
    Wire.begin();
    Serial.begin(38400);

    Serial.println("Initialize MPU");
    mpu.initialize();
    Serial.println(mpu.testConnection() ? "Connected" : "Connection failed");
    myservo.attach(9);
}

void loop()
{
    mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

    val = map(ay, -17000, 17000, 0, 179);
    if (val != prevVal)
    {
        myservo.write(val);
        prevVal = val;
    }

    delay(50);
}

NOTE : Perhatikan sketch pada baris berikut ini
    mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
    val = map(ay, -17000, 17000, 0, 179);
Seperti yang kita tahu, sketch tersebut menggunakan Knob. Yang menggunakan nilai dari Y Axis yaitu hasil dari MPU6050 yang berskala -17000 sampai 17000 dan diubah jadi 0° sampai 180°.
val = map(ay, -17000, 17000, 0, 179)
Karena MPU6050 mempunyai 6 Axis, maka ente dapat menyesuaikan dan menggunakan yang ente butuhkan. ax, ay, az, gx, gy, atau gz dengan merubah text merah pada baris sketch diatas.

Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Blog, Updated pada: 22:53:00

32 comments:

  1. Kalau untuk control 2 servo gimana mas ?

    ReplyDelete
    Replies
    1. Tinggal ditambahkan 1 objek servo lagi, dan pilih mau kontrol dengan Accelerometer X, Y atau Z. Kalau di video atas, pakai Accelerometer Y.

      Delete
  2. itu pin a4 and a5 di declare dimana ya? terus kalo misal connection fail apa yang salah?

    ReplyDelete
    Replies
    1. Pin A4 dan A5 sudah di declare di library, Connection failed bisa jadi karena adressnya tidak sesuai. Silahkan gunakan i2c scanner, lalu ubah library di bagian adressnya.

      Delete
  3. Pagi, mas tanya dong. Pada MPU6050 -17000 - 17000 itu nilai output dalam bentuk apa? Kalau bentuk nilai ADC, didapat darimana?

    ReplyDelete
  4. Selamat Siang mas, saya ingin bertanya. Saya lg tugas akhir ingin membuat robot tempat sampah. Yg cara kerja nya robot tempat sampah tersebut dapat bergerak secara otomatis apabila kita memanggil nama yg diberikan robot tersebut. Contoh nya : robot tersebut saya kasih nama Olaf. Nah saat saya panggil olaf, robot tempat sampah tersebut otomatis bergerak menghampiri keberadaan saya. Nah yang ingin saya tanyakan, sensor apa ya yg kira kira dapat digunakan robot tempat sampah tersebut untuk mendeteksi dan otomatis bergerak menghampiri dimana letak suara itu berada ?
    Mohon bantuan nya mas

    ReplyDelete
    Replies
    1. Selamat malam.
      Kalau itu bisa pakai voice recognition modul untuk memanggilnya... Tetapi untuk menghampiri, rumit. Bisa dengan GPS modul mungkin.

      Delete
  5. Selamat Pagi, saya mau tanya ini bisa buat bikin stabilizer action cam gak ya, kaya dji osmo gitu. Thanks

    ReplyDelete
    Replies
    1. Bisa saja, tapi kalau pakai servo kurang smooth... Pakai Brushless motor saja.

      Delete
  6. Mas saya boleh minta wa/pin bbm/ atau email line gitu mas?
    Soa lnya saya mau tanya banyak tentang kontrol servo pakai mpu6050 itu mas
    Boleh mas?
    Tolong di balas ya mas..

    ReplyDelete
  7. ko sketch nya saya compail ga bisa ya gan?

    timbul eror seperti ini
    D:\Data perkuliahan\Engineering Projects\Rancang Bangun Automatic Stacking Crane System\Program Controler\sketch_oct30a_gyro\sketch_oct30a_gyro.ino:2:20: fatal error: I2Cdev.h: No such file or directory

    #include "I2Cdev.h"

    ^

    compilation terminated.

    exit status 1
    Error compiling.

    ReplyDelete
  8. kalo untuk control servo, truss yg satunya di mirror bisa gk mas?

    ReplyDelete
  9. Terimakasih juga sudah berkunjung dan ikut meramaikan :)

    ReplyDelete
  10. Assalamu'alaikum..
    Mas saya ingin bertanya, bisa tidak menggunakan bluetooth hc-05 untuk menggerakkan servonya?

    ReplyDelete
    Replies
    1. Waalaikum salam... Tentu sangat bisa, bisa dengan data MPU6050 yang dikirim wireless via HC05 atau bisa juga dengan menggunakan data accelerometer dari smartphone android.

      Delete
  11. Mas minta kontak yang bisa di hubungi ?

    ReplyDelete
  12. Selamat sore,
    Mau tanya, nilai -17000 s.d 17000 itu satuannya apa ya? Thanks

    ReplyDelete
  13. assalamualaikum mas mau nanya kalau juntuk kontrol motor bldc kira kira bisa ga mas ? soalnya saya lagi pengerjaan tugas akhir

    ReplyDelete
    Replies
    1. Waalaikum salam, bisa untuk kontrol brushless. Dengan tambahan ESC tentunya.

      Delete
  14. Misi, Untuk port sda dan scl ngga bisa diganti gan ke pin analog lain? Nah kalo berbarengan dengan pemasangan liquidcrystal_I2C+mpu6050 wiring pin analognya bagai mana ya? Masalahnya kedua module itu memakai pin sda scl juga. Thanks :v

    ReplyDelete
    Replies
    1. Kalau diganti pin lain, gak bisa gan. Tinggal disesuaikan saja tiap adress modulnya di sketch. 2 Pin i2C bisa untuk banyak sensor kok. Untuk tau adress tiap modulnya bisa pakai sketch i2C scanner.

      BTW, ini monok ye? :v

      Delete
  15. Kalo pake arduiono pro mini untuk colok ke pc/laptopnya pake apa mas?

    ReplyDelete
  16. Saya sudah ikuti tutor ini dan berhasil.. Karna tujuan saya membuat gyro buat rc drift saya bingung pilih pin berapa untuk colok ke reciver dan setting gain dari remotenya.. Gimana caranya itu gan?

    ReplyDelete
    Replies
    1. Mau di kontrol lewat RC Transmitternya? bisa seperti ini mungkin... https://www.youtube.com/watch?v=HHNGnr_V6fo

      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


Back to top