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.
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).
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
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.
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
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
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
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.
3.8 FlowChart
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() {
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.
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);
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);
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
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;
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);
}
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.
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.
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:
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;
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
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
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.
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
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.
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.