## IMPLEMENTASI GYROSCOPE-ARDUINO PADA KENDALI KESEIMBANGAN
Eddy Nurraharjo 1 , Zuly Budiarso 2
1,2 Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Stikubank e-mail: 1 eddynurraharjo@edu.unisbank.ac.id, 2 zulybudiarso@edu.unisbank.ac.id

## Abstrak
Gyroscope merupakan salah satu fitur yang dimiliki oleh modul GY-521, disamping kemampuan accelerometernya. Fokus pengamatan pada penelitian ini adalah upaya untuk membuat konsep antarmuka terhadap gyroscope-accelerometer dengan mengintegrasikannya bersamaan dengan modul Arduino UNO R3. .
Arduino menjadi inti dalam pemrosesan sinyal yang dihasilkan dari modul GY-521, dan  diolah  dengan  formulasi  sederhana  menggunakan  konsep  segitiga  siku-siku,  unutk kemudian  dihailkan  data  keluaran  dengan  simulasi  menggunakan  motor  servo,  sebagai indikasi pitch dan roll.
Hasil penelitian ini adalah model komunikasi interaksi hasil perancangan antarmuka sistem yang diamati, dan mampu memberikan hasil pendekatan terhadap perubahan sudut dan respon motor servo terkendali dengan formulasi segitiga siku-siku dan batasan sudut 90  derajat  sudut  gerakan.  Simulasi  diberikan  pada  range  sudut  sebesar  -90  hingga  +90 derajat.  Library  yang  terlibat  dalah  Wire.h,  SPI.h  dan  Servo.h  yang  diperoleh  dari internet.
Kata kunci: arduino, mikrokontroler, gyroscope, accelerometer

## 1. PENDAHULUAN
Gyroscope merupakan salah satu fitur yang dimiliki oleh modul GY-521, disamping kemampuan accelerometernya.  Fokus  pengamatan  pada  penelitian  ini  adalah  upaya  untuk  membuat  konsep antarmuka terhadap gyroscope-accelerometer dengan mengintegrasikannya bersamaan dengan modul Arduino UNO R3.
Implementasi gyroscope-accelerometer ini yang terpenting adalah pada pengendalian sistem pada sebuah perangkat terbang, seperti pesawat, yang dalam pemodean mininya berupa drone . Hal ini telah menjadi  sebuah  kebutuhan  pada  sistem  kendali  perangkat  terbang  ini,  namun  mereka  para  produsen lebih menyukai perangkat yang embeded pada produksi mereka, sehingga dalam perancangan maupun pengembangan  serta  perbaikannya  akan  menjadi  kendala  terhadap  sistem  mereka.  Beberapa modifikator telah berupaya unutk melakukannya secara manual dan otodidak, sehingga muncullah ide untuk menggabungkan kemampuan modul GY-521 dengan modul Arduino UNO R3 yang hingga saat ini  telah  menjadi  tren  pengenalan  maupun  pengembangan  konsep  sistem  kendali  maupun  robotika tingkat dasar hingga menengah.
Kemudahan  dalam  perancangan,  perakitan  dan  pemodelannya  menjadikan  sebagai  salah  satu faktor utama dalam pengamatan penelitian ini. Bebrapa kode program bayak ditemukan dari internet dan  melakuka  beberapa  modifikasi  untuk  kemudian  dicari  solusi  pendekatan  terbaik  terhadap  hasil yang ingin dicapai, yaitu perubahan nilai gyroscope dan accelerometer.
Sistem  kendali  yang  menantang  ini  akan  menjadi  bahan  pengamtan  pada  penelitian  ini  dengan harapan  dapat  memperoleh  pengembangan  model  sistem  kendali  dengan  menggunakan  basis gyroscope-accelerometer. Model akan menggerakkan motor untuk merespon perubahan nilai gyro dan accelrometernya.

## 2. PERUMUSAN MASALAH
Model  yang  akan  dibangun  dalam  sistem  ini  adalah  respon  sistem  terhadap  perubahan  data keluaran  berupa  pergerakan  motor  servo,  yang  akan  mewakili  perubahan  data  pada  nilai  gyrsocope dan  accelerometernya.  Beberapa  teknik  dan  formulasi  sederhana  hingga  kompleks  telah  banyak
tersebar  di  dunia  maya  atau  internet,  akan  tetapi  bagaimana  konsep  interfacing,  dan  kode  program yang cocok dengan modul GY-521 ini akan rancang untuk memperoleh respon terbaik.

## 3. BATASAN MASALAH
Adapun batasan masalah dalam kesempatan penelitian ini adalah: a. Rancang  bangun  berbasis  sistem  kendali  dengan  ini  menggunakan  mikrokontroler  ATMEL ATMEGA238P-PU yang terangkai pada sebuah modul arduino UNO R3.
b. Pengamatan  dan  pengujian  sistem  kendali  fokus  pada  sensor  accelerometer-gyro  dengan menggunakan modul GY-521, dengan sistem kendali penggerak berbasis motor servo.

## 4. TUJUAN DAN MAFAAT PENELITIAN
Adapun tujuan dalam penelitian pada kesempatan kali ini adalah: a. Mengetahui prinsip dasar pemrograman funsi formulasi segitiga siku-siku b. Mengetahui teknik interfacing komunikasi port antara modul GY-521 dan Arduino UNO R3
Manfaat yang ingin dicapai dalam penelitian ini adalah: a. Memberikan wawasan pemrograman modul sistem kendali berbasis formula b. Memberikan wawasan perancangan modul sistem kendali berbasis gyrsocope-accelerometer
c. Memberikan  wawasan  teknik  interfacing  dengan  mikrokontroler  tipe  Arduino  dalam  berbagai variasi modulnya

## 5. METODE PENELITIAN
Metode yang akan digunakan dalam penelitian ini terdiri dari langkah-langkah sebagai berikut : a. Studi Literatur
Untuk  memperoleh  dasar  teori  berkaitan  dengan  pemodelan  matematis,  pemrograman  self- balancing mikrokontroler,  pemrograman interfacing, sistem  kendali  terpadu,  baik  berasal  dari jurnal, buku maupun informasi baku lainnya yang bersumber dari situs-situs di internet, berkaitan dengan  perancangan  dan  pemrograman  perangkat  sistem  kendali  berbasis accelerometer berbasis Arduino.
b. Pemrograman Aplikasi
Pemrograman  aplikasi  ini  dimaksudkan  untuk  menguji  sebuah  teknik self-responsive serta mengeksplorasi  teknik interfacing dan  mengimplementasikannya  teknik/metode  tersebut  dalam sebuah  aplikasi  sistem  kendali  berbasis  Arduino  UNO  R3,  dengan  simulasi  penggerak menggunakan motor servo.

## 6. HASIL DAN PEMBAHASAN
Gyroscope merupakan sensor yang akan mengukur kecepatan sudut dalam α, β, dan γ. Gyroscope sering  digunakan  untuk  membantu  penstabil  dan  memperbaiki  perubahan  arah  dan  pengarahan. Walaupun tidak seperti accelerometer, gyroscope tidak memiliki nilia referensi yang pasti, dan hanya akan  memngukur  perubahannya  saja.  Untuk  melakukan  pengaturan gyroscope sesuai  dengan  yang diinginkan,  maka  gambaran  nilai  rata-rata  perubahan  sudut  maksimumnya  (dalam  derajat  per  detik) sangat diperlukan. Misal untuk menggerakkan kendali jarak jauh untuk bisa berotasi kurang dari satu putaran  perdetik,  maka  bisa  dinyatakan  pula  dengan  360  derajat  per  detik.  Untuk  menghubungkan dengan  mikrokontroler  10  bit,  maka  nilai  360  derajat/detik  pada  gyro,  akan  memiliki  akurasi 360/1024  =  0,35  derajat/detik,  sedangkan  jika  diinginkan  1500  derajat/detik  akan  menghasilkan akurasi  1500/1024  =  1,46 derajat/detik.  Oleh  karena  itu  jika  diinginkan  1500  derajt/detik  gyro,  akan tetapi  hanya  diperlukan  360  derajat/detik  gyro,  maka  akan  diperoleh  245  pembacaan  sebagai kebalikan dari 1024.

## Blok Diagram Sistem

## Gambar 1. Blok Diagram Sistem
Catudaya. Sumber  tegangan  dan  arus  yang  digunakan  untuk  memberikan  daya  kepada  setiap  blok elemen bagian sistem kendali, yang bersumber dari sebuah baterai 8-16 volt.
Motor Servo. Sistem penggerak berbasis servo digunakan untuk memberikan simulasi terhadap efek dari  sensor  accelerometer  dan  gyroscope.  Motor  servo  01  sebagai  simulasi  sumbu  arah  x  dan  motor servo 02 sebagai simulasi sumbu arah y.
Arduino. Sistem kendali utama dengan menggunakan Arduino UNO R3 dengan kekuatan inti sistem adalah mikrokontroler Atmega32.
GY-521 . Sensor data masukan terhadap mikrokontroler dilakukan untuk mengukur nilai sumbu x dan nilai  sumbu  y,  yang  diperoleh  dari  modul  accelerometer  dan  gyroscope.  Perolehan  data  ini  akan menentukan perilaku motor servo dengan memberikan perubahan gerakan secara signinfikan.

## Diagram Flowchart Sistem
Program  dimulai  dari  inisialisasi  terhadap  pengenalan  perangkat  masukan  dan  keluaran  serta sejumlah  variabel  yang  dibutuhkan,  variabel  akan  mencoba  menangkap  perubahan  terhadap  besaran sudut  dari  sensor  untuk  kemudian  diolah  dengan  menggunakan  formulasi  matematis  geometri segitiga,  nilai  hasil  perhitungan  segitiga  ini  akan  digunakan  untuk  memberikan  besaran  respon terhadap perubahan gerakan motor servo. Perubahan ini akan dideteksi secara real time.
//fungsi untuk perhitungan Pitch dan Roll
double FunctionsPitchRoll(double A, double B, double C){ double DtA, DtB, Value; DtA = A; DtB = (B*B) + (C*C); DtB = sqrt(DtB);
Value = atan2(DtA, DtB); Value = Value * 180/3.14;
return (int)Value; }
Fungsi  untuk  perhitungan  pitch  dan  roll  berdasarkan  rumus  segitiga  siku-siku,  dimisalkan  satu sisinya adalah B dan  sisi siku  yang  lain adalah C, maka  sisi miringnya meliputi formula fungsi  akar kuadrat  dari  B  dan  C,  sedangkan  untuk  memperhitungkan  besaran  sudut  antara  sisi  miring  tersebut dengan  sisi  lainnya  adalah  arc  tan  diantara  keduanya,  kemudian  nilai  tersebut  dikalikan  dengan  180 derajat  dan  dilanjutkan  dengan  membaginya  dengan  nilai  pi  (π).  Besaran  hasil  dari  perhitungan dikategorikan dalam tipe data integer.
CATU DAYA MIKROKONTROL ARDUINO UNO MOTOR SERVO 01 MOTOR SERVO 02 GY-521
Gambar 2. Flowchart Sistem
Adapun  hasil  implementasi  dapat  ditampilkan  dalam  mode  serial  monitor  berupa  nilai  terukur, dan capture tampilan  visual  pergerakan  motor  servo  untuk  pergerakan pitch  and  roll dapat  diamati pada  format  tabel  di  bawah  ini,  dengan  memberikan  pendekatan  nilai  masukan  berupa  nilai  sudut dalam derajat.

## 7. KESIMPULAN
Adapun  beberapa  kesimpulan  yang  berhasil  diperoleh  dalam  penelitian  ini  diantaranya  adalah sebagai berikut :
a. Hasil  implementasi  melibatkan  beberapa  library  utama  yaitu  servo.h,  wire.h,  dan  SPI.h,  yang masing-masing  digunakan  untuk  penggerak  motor  servo,  komunikasi  antarmuka  dengan    modul accelerometer  dan  gyroscope,  dan  library  komunikasi  data  serial,  mampu  memberikan  hasil signifikan  terhadap  nilai  formulasi  matematis  sederhana  yaitu  segitiga  siku-siku  dan  perhitungan besaran sudut, perubahan gyroscope dan accelerometer
b. Modul  GY-521  dapat  digunakan  dengan  melalui  proses  kalibrasi  modul,  inisialisasi  MPU  6050, dan pertimbangan berkaitan dengan hasil yang diinginkan dalam implementasi fitur accelerometer dan gyroscope.

## DAFTAR PUSTAKA
[1] Ardi  Winoto,  2008,  “Mikrokontroler  AVR  ATmega8/32/16/8535  dan  Pemrogramannya  dengan Bahasa C pada WinAVR”, Penerbit Informatika, Bandung
[2] Endra Pitowarno, 2005, “Mikroprosesor & Interfacing”, Penerbit Andi, Yogyakarta
[3] Maik  Schmidt,  2011,  "Arduino  -  A  Quick  Start  Guide  Quick  Start  Guide",  Pragmatic Programmers, LLC, USA
[4] Muhammad  Riyadi,  Wahyudi,  Iwan  Setiawan,  2010,  Pendeteksi  Posisi  Menggunakan  Sensor Accelerometer MMA7260Q  Berbasis  Mikrokontroler  Atmega  32,  Jurnal  Transmisi,  UNDIP Semarang
[5] Ruslan  Gani,  Wahyudi,  Iwan  Setiawan,  2013,  Perancangan  Sesnsor  Gyroscope  dan Accelerometer  Untuk  Menentukan  Sudut  dan  Jarak,  Makalah  Seminar  Tugas  Akhir,  UNDIP Semarang
[6] Yuga  Aditya  Pramana,  Implementasi  Sensor  Accelerometer,  Gyroscope  Dan  Magnetometer Berbasis  Mikrokontroler  Untuk  Menampilkan  Posisi  Benda  Menggunakan  Inertial  Navigation System (INS), UNIKOM