• Tidak ada hasil yang ditemukan

Rancang Bangun Robot Keseimbangan Menggunakan Sensor Mpu6050 Berbasis Atmega328 Chapter III V

N/A
N/A
Protected

Academic year: 2017

Membagikan "Rancang Bangun Robot Keseimbangan Menggunakan Sensor Mpu6050 Berbasis Atmega328 Chapter III V"

Copied!
27
0
0

Teks penuh

(1)

BAB III PERANCANGAN ALAT

3.1 Diagram Blok

Gambar 12. Diagram Blok Dari Rangkaian

Pada diagram block di atas, input accelerometer, Gyroscop dan input setting PID dalam hal ini menggukanan multi turn potensiometer, untuk output motor didrive oleh H-Bridge. Pembacaan sensor accelerometer dan Gyroscop diterima oleh miktrokontoller menggunakan komunikasi data I2C, yang hanya menggunakan dua port yaitu port SDA dan SCL.

(2)

26

diolah oleh kontrol PID, yang diharapkan dapat menentukan nilai aksi yang sesuai dengan yang dibutuhkan robot untuk mecapai titik setimbang, dalam menentukan konstanta P, I dan D dapat diatur dengan memutar multiturn potensiometer, output dari multi turn potensiometer berupa tegangan analog sehingga dibutuhkan ADC yang terdapat dalam fitur mikrokontroler untuk membaca input dari mutli turn potensiometer, cara ini lebih efesien karena hasil output yang terlihat dalam bentuk gerakan motor akan terlihat saat itu juga, sehingga dapat mempermudah kita dalam menentuka konstanta P, I dan D yang tepat.

3.2 Perancangan Rangkaian Mikrokontroller ATMEGA328

Rangkaian sistem minimum mikrokontoler ATMEGA328terdiri dari rangkaiansistem minimum dan rangkaian I/O. Rangkaian minimum mikrokontroler terdiridari rangkaian clock dan rangkaian reset.Rangkaian clock pada mikrokontroler ATMEGA328 membutuhkan osilator kristal dan 2 buah kapasitor non polar agar dapat berosilasi. Padaperancangan ini, besar frekuensi osilatorkristal yang digunakan adalah 16 MHzdan besar kapasitas kapasitor adalah 22 pF. Pemilihan frekuensi dan besarkapasitor tersebut dirancang berdasarkan datasheet mikrokontroler ATMEGA328.Rangkaian reset pada mikrokontroler ATMEGA328berfungsi untukmengembalikan mikrokontroler pada program awal (vektor reset).

(3)

X

Y

Untuk pemrograman ke mikrokontroler ATMEGA328, maka diperlukan suatu programmer/downloader ISP (In System Programming).Programmer ISPmempunyai keuntungan yaitu dapat memprogram mikrokontroler yang sedangterpasang dengan rangkaian lainnya tanpa harus mencabutserpih (chip)mikrokontroler tersebut sehingga lebih praktis jika ingin melakukan pemrogramansecara berulang-ulang. Pemrograman berbasis ISP cukup menghubungkan antarapin MOSI, MISO, SCK, RESET, VCC dan Ground dengan programmer ISPtersebut. Programmer ISP yang digunakan adalah programmer USBISP yang dapat memprogram hampir semua jenis chip AVR dan menggunakan catu daya yang telah ada pada USB

3.3 Rangkaian MPU6050

Robot ini menggunakan sensor modul GY-521 dan sensor yang digunakan adalah MPU6050, berikut rangkaian modul Gy-521.Sensor ini dapat mendeteki 3 axis sudut dan 3 axis kecepatan sudut, untuk 3 axis sudut adalah sudut x, y dan z.

Gambar 14. Axis sudut Accelerometer

Pada robot ini hanya menggunakan satu axis sudut, yaitu sumbu y. data yang akan berubah jika sensor digerakkan searah sumbu y, data yang dihasilkan akan dibagi dengan sensvitas sensor. Dalam perancangan ini hanya menggunakan 8 bit (0 – 255). Hasil pembacaan akan dibagi dengan sensivitas untuk mendapat hasil dalam

(4)

28

satuan g (gravitasi), dan nilai maksimumnya adalah 1 g dan minimumnya adalah -1 g, pada sensor ini nilai maksimal didapat pada sudut 900 jika digerakkan ke arah sudut 180 maka nilainya akan berkurang secara linier sesuai dengan sudut hingga ke sudut 00 sebaliknya jika digerakkan ke sudut 00 maka nilainya akan dimulai dari 0 dan naik secara linier hinggal ke nilai 255 di sudut 00, mengingat karakter pembacaan sensor untuk range 0 – 255 adalah 00 - 1800, dan nilai tertinggi dan terendah pada sudut 90, makan perlu manipulasi program untuk mendapatkan sudut satu lingkaran utuh (00 – 360), jika output mengarah ke angka yang lebih kecil maka nilai maksimum (255) dikurangi output accelerometer, begitu juga sebaliknya jika output mengarah ke angka yang lebih besar maka nilai output accelerometer dikurangi dengan nilai minimum (0).

Untuk mengetehui output mengarah ke angka besar atau kea arah kecil maka diperlukan angka refrensi dalam hal ini adalah pembacaan sensor pada sudut 900, jika nilai output accelerometer lebih kecil dari refrensi maka nilanya mengarah ke angka besar sebaliknya jika nilai output accelerometer lebih besar dari nilai refrensi maka nilainya mengarah ke angka yang lebih kecil.

(5)

Dari rangkain di atas terlihat hanya 2 (dua) port saja yang dihubungkan ke mikrokontroller, dan itu berguna untuk menghemat penggunaan port pada mikrokontroller, tetapi kekurangannya waktu yang dibutuhkan untuk membaca pastinya lebih lama jika dibandingkan dengan menggunakan PORT ADC, tetapi selisih delay tidak terlalu mempengaruhi keseimbangan robot, sehingga komunikasi menggunakan ini dapat digunakan.

3.4 Rangkaian Regulator

Pada rangkaian ini menggunakan baterai 11.1V litium polimer sebagai sumber tegnagan, yang nantinya tegangan akan di turunkan menjadi 5V. berikut rangkaian regulator:

Gambar 16. Rangkaian Regulator

(6)

30

3.5 Driver Motor

Dual H-bridge adalah driver motor menggunakan MOSFET, dimana untuk dapat menggerakan satu buah motor terdiri dari dua buah MOSFET kanal N dan dua buah MOSFET kanal P. disebut dual H-bridge karena memiliki kemampuan untuk mengendalikan dua buah motor. Keunggulan dari driver MOSFET adalah memiliki kemampuan mengalirkan arus yang besar dan memiliki disipasi daya yang kecil.

Selain itu jenis driver MOSFET hanya memerlukan dua pin untuk dapat mengendalikan kecepatan dan arah putar motor.

Gambar 17. Rangkaian Driver Motor

(7)

3.6 Rangkaian Potensiometer

Gambar 18. Rangkaian Potensiometer

Pada rangkaian ini menggunakan potensiometer sebagai setting nilai konstanta PID. Rangkaian potensiometer ini dihubungkan ke pin ADC, dan nilai dari ADC diguanakan sebagai nilai konstanta PID. Potensiometer yang diguanakn yaitu jenis multiturn, yang memiliki kelebihan lebih presisi.

3.7 Rangkaian Bluetooth

(8)

32

Pin power dihubungkan ke 5V, pin GND digubungkan ke groud suplly, kemudian pin Rx pada 05, dihubungkan ke Tx mikrokontroller dan pin Tx HC-05 dihubungkan ke pin Rx miktokontroller.

(9)

3.8 FlowChart

(10)

BAB IV PENGUJIAN DAN ANALISA

4.1 Pengujian Mikrokontroller ATMEGA328

Pengujian rangkaian mikrokontroller ini bertujuan untuk mengetahui apakah rangkaian mikrokontroller bekerja dengan baik. Pengujian pada rangkaian ini dengan malakukan read signatur pada chip mikrokontroller

Gambar 21. Read Signatur Chip Mikrokontroller ATMEGA328

Kemudian setelah read signatur telah berhasil maka mikrokontroller di uji lagi dengan memberikan program sebagai berikut:

void setup() {

pinMode(LED_BUILTIN, OUTPUT);}

void loop() {

(11)

delay(1000);

digitalWrite(LED_BUILTIN, LOW

delay(1000}

Jika program tersebut dijalankan, maka PORTB.5 akanbernilai “high” selama satu detik dan dan “low” selama satu detik, dengan memberikan indikator LED pada pin tersebut.demikian maka system minimum mikrokontroller ATMEGA328 telah berjalan dengan baik.

4.2 Pengujian Rangkaian Regulator

Pada pengujian rangkaian regulator ini bertujuan untuk mengetahui apakah tegangan output dari regulator sesuai yang diharapakan yaitu 5V. pengujian ini dilakukan dengan mengukur output dari regulator menggunakan Volt meter. Positif volt meter dihubungkan ke output regulator dan negative volt meter digubungkan ke groud. Jika pada volt meter telah mendekati 5V maka rangkaian regulator berjalan dengan baik. Berikut gambar pengukuran output regulator.

(12)

36

4.3 Pengujian Rangkaian Potensiometer

Pengujian rangkaian potensiometer ini sama dengan pengujian regulator, yaitu dengan mengukur output dari potensiometer dengan interval 0 – 5 volt. Jika diputar ke kenan tegangan semakin besar dan jika diputar kekiri tegangan semakain kecil maka rangkaian potensiometer telah bekerja dengan baik.

Pengujian juga bias dilakukan dnegan menghubungkan output pin potensiometer ke pin analog (ADC), atau sesuai dengan rangkaian kemudian mikrokontroller deprogram dengan program sebagai berikut.

int sensorValue1;

sensorValue1 = analogRead(A1);

volt1=sensorValue1*0.004887;

sensorValue2 = analogRead(A2);

volt2=sensorValue2*0.004887;

sensorValue3 = analogRead(A3);

(13)

delay(200);

}

Output dari program ini dapat dilihat pada serial monitor pada software. ketika potensiometer diputar dan nilai yang yang tampil pada serial monitor berubah dengan range antara 0-1023 maka rangkaian potensiometer dapat bekerja dengan baik.

4.4 Pengujian Rangkaian Driver Motor

Driver motor yang digunakan menggunakan IC IRF540 dan di rangkai secara H bridge. Pada rangkaian ini menggunakan 2 Motor sehingga membutuhkan 2 rangkaian H bridge. Untuk pengujian rangkaian H bridge ini membuathkan 2 pin PWM, jadi dengan dua motor membutuhkan 4 pin PWM, unutk pengujian driver motor ini dengna program sebagai berikut:

int ENA=9;

analogWrite(ENB,100);

analogWrite(ENC, 0);

analogWrite(END,100);

delay(5000);

analogWrite(ENA, 200);

analogWrite(ENB,125);

(14)

38

analogWrite(END,125);

delay(5000);

}

Jika Motor berputar kekanan selama 5 detik dan kekiri selama 5 detik, maka driver dapat bekerja dengan baik.

4.5 Pengujian SinkronisasiHC-05

Pengujian sinkronisasi adalah proses sinkronisasi antara android smartphone dengan mikrokontroler, yang dilakukan melalui media Bluetooth. Pengujian dilakukan dengan cara melakukan pairing antara android smartphone dengan modul Bluetooth HC-05 yang tersambung dengan mikrokontroler. Proses ini dilakukan menggunakan aplikasi ”Bluetooth Settings” yang terdapat padaandroid smartphone. Kemudian aplikasi akan mendeteksi Id Bluetooth padamodul HC-05, setelelah terdeteksi dan melakukan sinkronisasi, androidsmartphone siap berkomunikasi dengan mikrokontroler.

Gambar 23. Sinkronisasi HC-05 dengan Android

(15)

menunjukkan bahwa pengujian sinkronisasi telahberhasil sesuai dengan yang dirancang.

4.6 Pengujian Gyroscope

Unutk mengetahui sensor ini dapat bekerja dengan baik, dapat dilakukan pengujian dengan memprogram mikrokontroller, dengan tujuan untuk memastikan sensor dapat mendeteksi gyrocope atau tidak. Program dapat dilihat sebagai berikut:

#include <Wire.h>

#include <MPU6050.h>

MPU6050 mpu;

unsigned long timer = 0;

float timeStep = 0.01;

Vector norm = mpu.readNormalizeGyro();

pitch = pitch + norm.YAxis * timeStep;

(16)

40

yaw = yaw + norm.ZAxis * timeStep;

Serial.print("DATA,");

Serial.print("TIME,");

Serial.print(pitch);

Serial.print(",");

Serial.print(roll);

Serial.print(",");

Serial.println(yaw);

delay(200);

}

(17)

20.0 0.77 1.21 -1.18 2

Gyroscope yang dideteksi ada 3, yaitu Pitch, Roll dan Yaw, data secara gerafik dapat dilihat seperti dibawah ini.

(18)

42

4.7 Pengujian Accelerometer.

Unutk mengetahui sensor ini dapat bekerja dengan baik, maka dilakukan pengujian dengan memprogram mikrokontroller, dengan tujuan untuk memastikan sensor dapat mendeteksi Accelerometer atau tidak. Program dapat dilihat sebagai berikut:

Vector normAccel = mpu.readNormalizeAccel();

Int pitch=-(atan2(normAccel.XAxis, sqrt(normAccel.

(19)

Data dikirim menggunakan komunikasi serial, dan langsung di float ke Microsoft excel dengan software PLX-DAQ, yang dirilis oleh parallax. Disini juga terlihat hasil pembacaan sensor yang telah konversi data hasil pembacaan sensor ke bentuk drajat Roll dan Pitch. Setelah program diterima sensor di digerakan kedepan dan kebelakang, sehingga didapat data sebagai berikut:

(20)
(21)

4.8 Pengujian Complamantary Filter

Filter ini digunakan untuk mengabungkan pembacaan gyroscope dan accelerometer, filter ini dapat di jalankan dengan persamaan sebagai berikut:

CF= A * (f_angle + gyro * dt) + (1 - A) * acc; (2) dimana

dt = 0,010 a = 0,98

Penggabungan dan pengujian rumus didalam program, dapat dilihat seperti program sebagai berikut:

#include <Wire.h>

#include <MPU6050.h>

MPU6050 mpu;

unsigned long timer = 0;

float timeStep = 0.01;

float roll_gyro = 0;

unsigned long preTime = 0;

float r_angle, f_angle, omega;

(22)

46

timer = millis();

Vector norm = mpu.readNormalizeGyro();

Vector normAccel = mpu.readNormalizeAccel();

int roll_acc = (atan2(normAccel.YAxis,

normAccel.ZAxis)*180.0)/M_PI;

roll_gyro = roll_gyro + norm.XAxis * timeStep;

float dt = 0,010; maka output sensor gyroscope dan accelerometer akan digabungkan ke complementary filter untuk mendapatkan sudut yang seharusnya, pembacaan sensor accelerometer yang tidak stabil saat bergerak akan diredam oleh pembacaan gyroscope yang peka terhadap sensor yang bergerak tetapi tidak stabil saat sensor dalam keadaan diam, dengan demikian perlu digunakan compelementary filter untuk menutupi kekurangan accelerometer dengan pembacaan gyrocope. berikut hasil pembacaan complementary filter sebagai berikut:

Table 6

No Accelerometer Gyroscope C. Filter Waktu (s)

1 -24.18 30.55 -7.85 0.1

2 -22.66 54.57 -6.77 0.2

(23)

4 -15.93 91.83 -2.63 0.4

12 2.22 88.66 10.26 1.2

13 7.80 99.43 12.96 1.3

14 14.84 113.55 16.2 1.4

15 12.60 92.64 18.83 1.5

16 17.08 115.47 22.11 1.6

17 23.28 131.4 26.2 1.7

18 24.66 157.72 30.7 1.8

19 28.05 126.86 34.5 1.9

20 -26.38 114.37 40.33 2

21 29.87 -78.69 14.17 2.1

22 29.38 -46.33 12.98 2.2

23 27.83 -49.32 12.86 2.3

24 27.62 -52.24 12.72 2.4

25 29.18 -73.58 11.64 2.5

26 23.59 -74.83 9.9 2.6

27 23.14 -72.47 8.24 2.7

28 18.02 -80.49 6.26 2.8

29 17.16 -80.95 4.32 2.9

30 10.62 -93.96 1.83 3

31 9.52 -112.57 -1.25 3.1

32 4.02 -147.95 -5.46 3.2

33 2.34 -150.27 -9.53 3.3

34 -2.96 -87.38 -11.96 3.4

35 -6.40 -108.49 -15.09 3.5

36 -4.91 -101.2 -17.97 3.6

37 -14.61 -86.69 -20.51 3.7

38 -16.49 -85.73 -23.14 3.8

39 -21.07 -72.14 -25.35 3.9

(24)

48

41 -24.95 -75.19 -29.53 4.1

42 -29.30 -73.45 -31.92 4.2

43 -29.54 66.69 -7.15 4.3

44 -26.12 70.2 -7.01 4.4

45 -27.98 84.76 -6.78 4.5

46 -26.12 93.45 -5.29 4.6

47 -21.48 105.34 -2.75 4.7

48 -17.85 92.11 -0.5 4.8

49 -18.52 89.24 1.49 4.9

50 -16.00 92.98 3.61 5

Gambar 26. Pengujian Complamantary Filter

Dapat kita perhatikan dari grafik diatas terlihat bahwa hasil complementary filter lebih cenderung mengikuti pergerakan pembacaan accelerometer, dan gyroscope lebih kepada meredam hasil pembacaan accelerometer. gyroscope menghasilkan output yang lebih peka saat sensor begerak.

Output dari complementary filter juga terlihat lebih halus, karena pada dasarnya complementary filter mengoreksi sudut sekarang dengan sudut sebelumnya secara sedikit demi sedikit. Hasil data dengan perubahan yang halus sangat berpengaruh kepada pergerakan sensor, gerakan robot yang halus dapat mengurangi noise pergerakan robot itu sendiri sehinggal robot akan lebih stabil.

(25)

4.9 Pengujian PID

Kontrol PID (Proportional Integral Derivative) merupakan kontroler mekanisme umpan balik yang biasanya dipakai pada sistem kontrol industri. Sebuah kontroler PID secara kontinyu menghitung nilai kesalahan sebagai beda antara setpoint yang diinginkan dan variabel proses terukur. Kontroler mencoba untuk meminimalkan nilai kesalahan setiap waktu dengan penyetelan variabel kontrol, dengan persamaan sebagai berikut: .

(3) Untuk diterpkan didalam bahasa pemrograman dengan prsamaan sebagai berikut

(4) Untuk pengujian PID dapat dilakukan dengan memprogram mikrokontroller dengan penggalan code program sebagai berikut.

void myPID(){

timeChange = (now - lastTime);

if(timeChange >= SampleTime){

Input = f_angle;

error = Input;

errSum += error * timeChange;

dErr = (error - lastErr) / timeChange;

Output = kp * error + ki * errSum + kd * dErr;

//control PID

(26)

50

ROutput = Output + Run_Speed - (Turn_Speed);

lastErr = error;

lastTime = now;

}

}

Dimana nilai Run_speed digunakan untuk mengontrol maju dan mundur, dan nilai Turn_speed digunakan untuk belok kanan dan belok kiri pada robot. Program diatas telah digabungkan complamantry filter dengan control PID, untuk mendapatkan hasil yang lebih bagus.

Untuk pengontrolan maju, mundur dan belok, data dikirim melalui android dengan aplikasi Bluetooth electronic, aplikasi tersebut dapat di desain sesuai dengan keinginan dan data yang dikirim dapat diatus sesuai dengan keinginan, data yang di kirim akan diterima mikrokontroller melalui Bluetooth.

(27)

BAB VKESIMPULAN DAN SARAN

5.1 Kesimpulan

1. Noice masih besar terjadi karena arus balik yang terjadi pada motor.

2. Robot hanya mempertahankan posisi seimbang maksimal pada sudut -50- 50, karena torsi dan kecepatan motor tidak cukup untuk menyeimbangkan robot, dan tidak cukup kuat menahan beban robot dengan kemiringan yang berlebih. 3. Robot hanya dapat seimbang di atas permukaan yang datar dan jika dikotrol

blum stabil

5.2 Saran

1. Sebaiknya menggunakan motor yang mempunyai torsi besar dan kecepatan yang lebih, agar robot dapat mempertahankan posisi disaat robot dalam keadaan miring dan juga encoder salah satu motor adalah SM - E048 buatan japan, yang telah digunakan oleh József Fekete (2016). Motor memiliki spesifikasi 12500 RPM, arus 3A dan torsi besar.

Gambar

Gambar 12. Diagram Blok Dari Rangkaian
Gambar 13. Rangkaian Mikrokontroller ATMEGA328
Gambar 14. Axis sudut Accelerometer
Gambar 15. Rangkaian Modul MPU6050
+7

Referensi

Dokumen terkait

Serta diharapkan dapat menjadi masukan bagi Kantor Akuntan Publik, berupa saran atau koreksi dengan memberikan bukti empirik mengenai penghargaan financial,

04 Pedoman pengendalian mutu pelaksanaan pemantauan tindak lanjut ini dimaksudkan untuk memberikan panduan bagi APIP dalam memantau dan mengevaluasi tindakan koreksi yang

(3) Jika barang-barang atau dokumen yang disita oleh Penolong Pengawal pada menjalankan kuasanya di bawah seksyen ini adalah disebabkan oleh jenis, saiz atau amaunnya

Jika Tertanggung menderita kerugian finansial karena kehilangan fisik Kartu Kredit Mandiri yang disebabkan oleh pencurian dan Kartu Kredit Mandiri Tertanggung

W., Prajitno, G., (2012), Studi Awal Fabrikasi Dye Sensitized Solar Cell (DSSC) Dengan Menggunakan Ekstraksi Daun Bayam (Amaranthus Hybirdus L.) Sebagai Dye

Dalam bidang kesehatan sendiri kemajuan Teknologi Informasi sudah sangat menunjang pelayanan, apalagi di dunia medis, dengan perkembangan pengetahuan yang begitu cepat

Dari penelitian ini diketemukan bahwa pembiayaan akad mudharabah mutlilateral didasarkan pada fatwa MUI dan Dewan Syariah Nasional dengan argumen yang dibangun atas dasar

Masyarakat Indonesia dapat menggunakan herbal secara bebas tanpa harus berkonsultasi dengan dokter atau tenaga medis lainnya, kecenderungan yang ada adalah masyarakat