BAB V PENGUJIAN DAN ANALISIS WAHANA Pengujian sistem pada wahana dilakukan baik pada perangkat keras, perangkat lunak, maupun fungsional sistem secara keseluruhan. Pengujian ini bertujuan untuk mengetahui tingkat keberhasilan perangkat-perangkat sistem pada wahana yang telah dirancang dan dibangun.
5.1.
Pengujian Perangkat Keras
5.1.1. Pengujian Subsistem Pengendali Pengujian subsistem pengendali meliputi pengujian karakteristik board mikrokontroler dan konfigurasi fungsional sistem. Pengujian ini dilakukan secara langsung dengan menghubungkan setiap komponen yang diuji terhadap target pengujian. Tujuannya adalah untuk memperoleh hasil pengujian secara langsung pada setiap komponen wahana (target) yang diuji. •
Pengujian karakteristik board mikrokontroler Pengujian ini merupakan pengujian yang dilakukan untuk mengetahui apakah mikrokontroler yang telah diberi program – dapat memroses data atau memberikan respon yang tepat berdasarkan suatu masukan data dari pengguna. Pengujian karakteristik ini dilakukan dengan menghubungkan board mikrokontroler dengan catu daya sistem dan peralatan sistem aktuator yang akan digunakan. Tujuannya adalah untuk melihat secara langsung keluaran pin-pin mikrokontroler (baik sebagai pin masukan dan pin keluaran) dan bagaimana respon yang diberikan mikrokontroler tersebut terhadap suatu masukan dari pengguna sistem.
Pengujian ini dilakukan dengan mengukur nilai tegangan
VCC pada
rangkaian yang telah dibuat dan nilai tegangan logika “high” dan ”low” yang dihasilkan oleh mikrokontroler saat beroperasi. Hasil pengujian karakteristik board mikrokontroler adalah: (a) board mikrokontroler (DT AVR low cost micro system) mendukung pemrograman mikrokontroler secara ISP (In System Programming) dengan artian bahwa program assembly yang berasal dari PC dapat
46
dimasukkan ke dalam mikrokontroler tanpa harus melepaskan mikrokontroler dari board (mikrokontroler berada dalam sistem), (b) pemrograman ISP ini dapat dilakukan dengan menggunakan paralel port atau serial port PC. Untuk pemrograman ISP melalui paralel port PC, dapat digunakan interface DT-HiQ dan untuk pemrograman melalui serial port dapat digunakan interface AVR 910, (c) perangkat lunak CVAVR dapat memasukkan program hasil compilenya ke dalam mikrokontroler secara langsung, (d) tegangan yang keluar dari pin I/O board adalah 4.96 Volt DC (VCC) dengan nilai tegangan pin saat logika hi sama dengan 4.02 Volt dan nilai tegangan pin saat logika lo sama dengan 0.5 Volt. •
Pengujian fungsional sistem Pengujian ini meliputi pengujian pengiriman dan penerimaan data dari dan ke PC, dan pengujian hubungan mikrokontroler dengan subsistem aktuator. Semua pengujian tersebut dilakukan secara langsung dengan menghubungkan board mikrokontroler dengan target pengujian (subsistem aktuator servo atau motor DC).
Pengujian pengiriman dan penerimaan data Pengujian ini bertujuan untuk mengetahui apakah subsistem pengendali wahana dapat mengirim dan menerima data ke dan dari PC. Pengujian menggunakan perangkat lunak Hyper Terminal untuk mengetahui hasil pengiriman dan penerimaan data pada serial port (koneksi antara mikrokontroler dan PC). Hasil pengujiannya adalah: (a) pada saat inisialisasi, mikrokontroler berhasil mengirimkan beberapa data karakter kepada PC dan menghasilkan keluaran ”Selamat Datang” pada tampilan Hyper Terminal, (b) metode swirch-case kode program mikrokontroler berhasil memberikan respon terhadap instruksi dari PC dengan mengirimkan data karakter huruf sebagai indikator bahwa instruksi telah diproses.
47
Pengujian hubungan mikrokontroler dengan subsistem aktuator Pengujian
ini
dilakukan
dengan
cara
menghubungkan
mikrokontroler dengan subsistem aktuator (motor DC dan servo) dan melihat respon dari subsistem aktuator tersebut. Hasil pengujian ini adalah: (a) pada saat inisialisasi, shaft servo berada pada posisi 180o dan motor DC diam, (b) instruksi lebar pulsa hi servo yang dapat dikirim ke mikrokontroler bernilai 40 s.d. 200, (c) motor DC dapat bergerak dengan instruksi besar PWM bernilai 0 s.d. 1023.
Kesemua pengujian subsistem pengendali menunjukkan bahwa subsistem pengendali telah dapat bekerja dengan baik dan mampu mengendalikan semua kebutuhan gerakan wahana. 5.1.2. Pengujian Subsistem Catu Daya Pengujian subsistem catu daya ini bertujuan untuk mengetahui apakah subsistem ini mampu mendukung semua kebutuhan sumber tegangan semua komponen wahana. Pengujian dilakukan dengan menghubungkan catu daya dengan sumber tegangan AC (± 220 volt). Sumber tegangan AC tersebut dapat diperoleh dari konektor pada catu daya PC atau dari konektor sumber tegangan ruangan. Kemudian, setiap keluaran dari subsistem catu daya diukur dengan multitester untuk mengetahui besarnya tegangan di setiap keluaran subsistem ini. Dari hasil pengukuran tegangan ini, dapat diketahui setiap keluaran yang menjadi kebutuhan komponen-komponen wahana. Hasil pengujian subsistem catu daya adalah: •
Kabel berwarna hitam merupakan keluaran catu daya dalam bentuk ground.
•
Kabel berwarna merah merupakan keluaran tegangan DC 4,96 volt. Keluaran ini kemudian dihubungkan dengan kabel power servo dan terminal tegangan (max 5 volt) board mikrokontroler.
•
Kabel berwarna kuning merupakan keluaran tegangan DC 11 - 12 volt yang menjadi kebutuhan modul H-Bridge dan tegangan masukan mikrokontroler.
48
•
Hasil pengukuran keluaran catu daya yang lain (kabel berwarna selain hitam, kuning, dan merah) adalah tegangan DC yang lebih kecil dari 5 volt.
Hasil pengujian subsistem catu daya ini menunjukkan bahwa subsistem ini mampu mendukung kebutuhan sumber tegangan wahana, yaitu kebutuhan sumber tegangan untuk subsistem pengendali dan aktuator. Bahkan setelah semua kebutuhan sumber tegangan wahana terpenuhi, keluaran subsistem ini masih tersisa dan
dapat digunakan sebagai sumber tegangan komponen
pendukung yang lain (misalnya kipas pendingin dan lampu indikator).
5.2.
Pengujian Perangkat Lunak Pengujian perangkat lunak wahana merupakan pengujian komunikasi antara mikrokontroler dengan PC. Dua kode program yang berjalan pada masingmasing komponen (mikrokontroler dan PC) harus saling berhubungan dan dapat merespon dengan tepat satu sama lain. Pengolahan data yang dikirim atau diterima oleh masing-masing komponen akan menentukan keberhasilan wahana dalam menjalankan fungsinya. Pengujian ini dilakukan dengan menggunakan fasilitas GUIDE MATLAB dan SIMULINK MATLAB.
5.2.1. Pengujian Pengendalian GUIDE Pengendalian perangkat lunak GUIDE MATLAB merupakan pengendalian yang bersifat statik. Kode program GUIDE akan membuka port komunikasi, mengirimkan instruksi, kemudian menutup kembali port komunikasi tersebut. Dalam hal ini, subsistem aktuator akan memberikan respon sesaat berdasarkan instruksi yang dikirimkan oleh GUIDE. Pembukaan, pengiriman, dan penutupan komunikasi melalui serial port dilakukan pada setiap event callback komponen GUIDE wahana. function s1_btn_Callback(hObject, eventdata, handles) fopen(handles.to_com); a=get(handles.s1_slider,'Value'); b=strcat(num2str(round(a)),'a'); fwrite(handles.to_com,b); fclose(handles.to_com);
Pada kode tersebut, fungsi fopen() akan membuka port komunikasi yang telah didefinikan dalam variabel handles.to_com. Setelah itu, fungsi fwrite() akan
49
mengirimkan data variabel b ke variabel handles.to_com atau mengirimkan instruksi ke mikrokontroler. Fungsi fclose() akan menutup port komunikasi yang telah dibuka oleh fungsi fopen(). Untuk setiap pengendalian subsistem aktuator baik servo maupun motor DC, kode program GUIDE memiliki algoritma yang serupa dengan isi variabel (yang dikirim oleh fungsi fwrite()) yang berbeda-beda (tergantung dari target yang diinginkan). Hasil pengujian perangkat lunak ini menunjukkan hasil yang memuaskan dan telah berjalan dengan baik. Gangguan komunikasi dalam pengiriman dan penerimaan instruksi tidak ditemukan dalam pengujian ini karena data yang dikirim dan diterima hanya dikrim secara sesaat (tidak terus-menerus). Kalibrasi Uji Statik Servo 200 180
Pulsa yang dikirim
160 140 120 100 80 60 40
0
20
40
60
80 100 120 Posisi shaft (derajat)
140
160
180
Gambar 5. 1. Grafik hasil pengujian GUIDE MATLAB.
50
5.2.2. Pengujian Pengendalian SIMULINK Pengujian perangkat lunak SIMULINK pada dasarnya sama dengan pengujian GUIDE tetapi pada kode program SIMULINK, data instruksi bagi mikrokontroler dikirim secara terus menerus berdasarkan suatu fungsi gerakan tertentu. Kode program SIMULINK yang dibuat juga hanya mengendalikan subsistem aktuator servo saja, tidak mendukung pengendalian subsistem aktuator motor DC. Hasil pengujian perangkat lunak ini menunjukkan bahwa perangkat lunak ini masih tidak stabil. Hal ini disebabkan oleh buffer serial port yang penuh. Penuhnya buffer ini sebagai akibat dari SIMULINK yang mengirimkan data secara terus menerus tanpa mempedulikan respon dari mikrokontroler. Keadaan ini menyebabkan buffer serial port menerima data dari kedua pihak (instruksi dari SIMULINK dan respon dari mikrokontroler) tanpa sempat mengosongkan isinya. Walaupun kecepatan komunikasi antara mikrokontroler dan SIMULINK telah dibuat sama, isi buffer tetap tidak mudah dikosongkan dari penerimaan dan pengiriman data yang bersifat terus-menerus itu. PC dengan kecepatan yang lebih tinggi dari mikrokontroler akan mengirimkan data dengan frekuensi perubahan yang lebih banyak daripada mikrokontroler. Perubahan respon mikrokontroler yang lebih lambat membuat buffer terus terisi data instruksi SIMULINK sebelum sempat dikosongkan dari data respon mikrokontroler. Hal ini akan menimbulkan adanya penumpukan data dalam buffer serial port (data instruksi dan respon) dan menyebabkan terjadinya overflow. Keadaan ini membuat program tidak stabil dan membuat respon wahana tidak sesuai dengan yang diinginkan. Keadaan overflow ini sering terjadi jika PC sedang menjalankan program yang sangat banyak dan menggunakan kapasitas memori yang besar. Buffer serial port menggunakan memori PC untuk menyimpan data yang diterima atau dikirim kepadanya. Data itu dapat diambil oleh perangkat lunak dalam PC (sebagai respon) atau mikrokontroler (sebagai instruksi) dan mengakibatkan kondisi memori (isi buffer) kembali kosong. Jika PC sedang menjalankan program yang banyak, besarnya memori PC bagi buffer serial port menjadi sedikit dan data yang dapat ditampung oleh buffer tersebut menjadi terbatas. Keterbatasan jumlah memori ini dan perubahan instruksi yang tidak
51
diiringi oleh perubahan respon akan menyebabkan penuhnya buffer serial port sehingga sistem menjadi overflow.
Gambar 5. 2. Pengujian SIMULINK MATLAB
5.3. Pengujian Fungsional Sistem Pengujian fungsional sistem bertujuan untuk menguji prestasi wahana terhadap suatu kasus tertentu. Dalam hal ini, kasus yang akan diuji terdiri atas: (a) kemampuan alat untuk bergerak membentuk kurva ∞, (b) kemampuan alat untuk bergerak sesuai dengan fungsi gerakan yang didefinisikan pengguna.
Pengujian fungsional ini difokuskan pada pengendalian subsistem aktuator servo karena kedua kasus yang akan diuji dapat dipenuhi oleh subsistem aktuator servo (tanpa pengendalian subsistem aktuator motor DC). Selain itu, perangkat lunak yang dibangun tidak dapat mendukung kedua jenis pengendalian ini (pengujian gerakan dan pengendalian motor DC) secara bersamaan. Untuk melakukan pengendalian subsistem motor DC selama pengujian sistem, perlu adanya pengembangan perangkat lunak bagi PC (misalnya penambahan blok pengenadalian motor DC dalam SIMULINK). Sistem yang telah dibangun pada penelitian ini sebenarnya dapat melakukan kedua pengendalian tersebut (pengendalian motor DC dan pengujian kasus) tetapi harus dilakukan secara berurutan, yaitu pengendalian subsistem motor DC dijalankan terlebih dahulu (dengan GUIDE) kemudian dilanjutkan dengan 52
pengujian wahana untuk kedua kasus; atau sebaliknya pengujian gerakan wahana kemudian pengendalian subsistem aktuator motor DC.
Teknik pengujian fungsional sistem dilakukan dengan dua metode utama, yaitu berdasarkan PC (PC based) dan berdasarkan mikrokontroler (micro based). Pada metode berdasarkan PC, perhitungan persamaan gerak 3 DOF didefinisikan dan diproses dalam PC. Kemudian, hasil perhitungan tersebut (berupa perubahan posisi shaft servo) dikirimkan ke mikrokontroler untuk disalurkan ke subsistem aktuator servo. Pada micro based proses perubahan posisi shaft servo dilakukan di dalam mikrokontroler; PC hanya mengirimkan instruksi berupa konstanta variabel yang sesuai dengan persamaan kasus gerak wahana.
Kedua metode utama tersebut pada dasarnya memiliki teknik yang sama, perbedaannya terletak di tempat pengendalian perubahan posisi shaft servo. Pada PC based, tempat perubahan posisi shaft servo berada di PC sehingga mikrokontroler langsung menerima posisi shaft servo tanpa perlu melakukan perhitungan. Dalam hal ini, PC harus terus berkomunikasi dengan mikrokontroler untuk memperbaiki keadaan / merubah posisi shaft servo.
Pada micro based, PC hanya memberikan variabel-variabel – yang sesuai dengan persamaan gerak – yang didefinisikan oleh pengguna kemudian membiarkan mikrokontroler melakukan perubahan posisi shaft servo. Hubungan antara PC dan mikrokontroler dapat diputus / ditutup setelah semua variabel gerak selesai dikirim ke mikrokontroler. Dengan kata lain mikrokontroler dapat bergerak secara bebas tanpa terikat dengan PC. Tabel 5. 1. Tabel perbedaan metode pengujian sistem:
Metode PC based Micro based
Tempat merubah posisi shaft servo PC Mikrokontroler
Hubungan komunikasi PC dan mikrokontroler Terus terbuka Dapat ditutup
53
5.3.1. Persamaan Gerak Fungsional Sistem Persamaan gerak yang menjadi dasar pergerakan sistem merupakan persamaan yang didefinisikan oleh pengguna. Persamaan ini dapat diproses dalam PC (PCbased) atau dalam mikrokontroler (micro-based). Pada dasarnya persamaan gerak untuk wahana kepakan sayap terdiri atas 3 buah persamaan utama. Ketiga persamaan itu menyatakan pergerakan angular subsistem aktuator yang berada di ketiga sumbu koordinat utama. Dengan mendefinisikan persamaan ini, subsistem aktuator akan bergerak dalam tiga derajat kebebasan dan berada pada posisi yang sesuai dengan persamaan gerak tersebut. Kasus gerakan yang diuji adalah kasus gerakan membentuk kurva ∞ dan kasus gerakan sayap serangga saat hovering. Kedua kasus tersebut merupakan kasus yang memiliki persamaan gerak sinusoidal terhadap waktu. •
Kasus gerakan kurva ∞ / kurva 8 /helix Komponen utama untuk kasus gerakan kurva ∞ adalah servo yang bergerak pada sumbu x dan y. Perubahan posisi shaft kedua servo ini merupakan fungsi sinusoidal terhadap waktu, yaitu:
persamaan 5. 1.
dimana: A = amplitudo (maksimum posisi shaft servo), f = frekuensi gerakan servo, t = waktu. Sebelum hasil perhitungan dimasukkan ke dalam mikrokontroler, persamaan 5.1. harus diubah menjadi lebar pulsa hi yang merupakan parameter kedudukan shaft servo. Cara termudah yang dapat dilakukan adalah dengan melakukan konversi sudut shaft dari persamaan 5.1. menjadi lebar pulsa hi, dimana jika posisi shaft servo sebesar 180o, lebar pulsa hi yang dikirim ke mikrokontroler / servo sebesar 200. Dengan rentang posisi shaft servo antara 0o sampai 180o, lebar pulsa hi yang dikirim ke mikrokontroler / servo berada dalam rentang 40 sampai 200. Dengan melakukan konversi sederhana tersebut, persamaan 5.1. dapat menjadi
54
persamaan gerakan / posisi shaft servo terhadap waktu dan dapat digunakan untuk menggerakkan wahana.
Cara konversi yang lain adalah dengan menggunakan proses pengujian static (GUIDE). Melalui pengujian ini akan diperoleh hasil kalibrasi / persamaan distribusi pulsa servo terhadap sudut shaft yang terbentuk pada subsistem aktuator. Dengan persamaan tersebut, pengguna dapat mendefinisikan besar pulsa yang akan memberikan gerakan sudut shaft yang sesuai dengan persamaan yang diinginkannya.
Untuk membentuk kurva ∞, dibutuhkan dua buah persamaan untuk mengendalikan gerakan servo pada sumbu x dan y. Kedua persamaan tersebut merupakan persamaan sinusoidal dengan karakteristik / model yang sama, tetapi memiliki frekuensi yang berbeda. Salah satu frekuensi (untuk servo di sumbu x atau y) harus memiliki frekuensi dua kali frekuensi sumbu yang lain (x atau y). Misal jika persamaan gerak servo pada sumbu x memiliki frekuensi sebesar a, persamaan gerak servo pada sumbu y harus memiliki frekuensi sebesar 2a. Persamaan ini akan membentuk gerakan seperti pada gambar 3.2 dengan arah vertikal kertas sebagai sumbu y dan arah mendatar sebagai sumbu x.
•
Kasus gerakan berdasarkan fungsi masukan pengguna Dalam kasus ini, fungsi yang dipilih adalah fungsi gerakan sayap serangga. Kepakan serangga ini merupakan gerakan kepakan sayap yang cukup sederhana. Pergerakan sayap serangga merupakan gerakan bolak-balik (sinusoidal) yang terdiri dari dua persamaan utama. Kedua persamaan tersebut terdiri dari persamaan untuk mendefinisikan gerakan kepakan (ke atas-ke bawah) dan gerakan sudut serang sayap serangga tersebut dalam suatu rentang waktu tertentu.
55
Fungsi tersebut adalah: (a) persamaan gerak pusat sayap:
persamaan 5. 2.
(b) persamaan sudut serang sayap:
persamaan 5. 3.
dimana: φ = perbedaan fase.
Gambar 5. 3. Hasil fungsi persamaan kepakan sayap serangga (Wang, Two Dimensional Mechanism for Insect Hovering, 2000)
5.3.2. Pengujian Berdasarkan PC Pengujian berdasarkan PC dilakukan dengan menggunakan SIMULINK. Hal ini didasarkan pada kemudahan SIMULINK untuk mendefinisikan fungsi dan merubah (menambah / mengurangi / mendefinisikan) setiap blok yang ada di dalamnya. Perangkat lunak SIMULINK yang diuji (yang telah dijelaskan pada babbab sebelumnya) dijalankan dalam bentuk real time berdasarkan fasilitas real time windows target yang dimiliki oleh MATLAB. Dengan fasilitas ini, sample time (perubahan waktu) SIMULINK wahana berubah berdasarkan perubahan waktu sistem operasi (yang menjadi tempat operasi perangkat lunak MATLAB berjalan). Karena pada saat pengujian perangkat lunak SIMULINK wahana terjadi kesalahan overflow, dalam blok pengiriman data (m-file) ditambahkan fungsi trycacth yang akan mengatasi kesalahan pengiriman data akibat overflow tersebut.
56
Hasil pengujian metode berdasarkan PC ini adalah: 1. Perubahan posisi shaft bergerak sesuai dengan waktu sistem operasi. Dengan kata lain, perubahan tersebut sesuai dengan persamaan yang dibangun. 2. Overflow tetap terjadi terutama jika beban kerja PC sangat berat. Komponen yang mengatasi kesalahan overflow (try-catcth) mengembalikan kondisi shaft servo seperti kondisi awal (ketika SIMULINK dijalankan) dan menyebabkan wahana bergerak tidak wajar / aneh. 3. Pengendalian motor DC tidak dapat dilakukan saat SIMULINK berjalan karena jalur komunikasi ke serial port selalu digunakan oleh SIMULINK untuk melakukan perubahan posisi shaft servo. Oleh karena itu, pengendalian motor DC ini harus dijalankan sebelum SIMULINK berjalan.
140 130 120 110
pulsa hi
100 90 80 70 60 sumbu x sumbu y sumbu z
50 40
0
5
10
15
20 25 sample time
30
35
40
Gambar 5. 4. Hasil perhitungan persamaan gerak
57
140 130 120 110
pulsa hi
100 90 sumbu x sumbu y sumbu z sumbu x sumbu y sumbu z
80 70 60 50 40
0
5
10
15
20 25 sample time
30
35
40
Gambar 5. 5. Hasil pergerakan wahana 140 135 130 125 120 115 110 105 100 105
110
115
120
125
130
135
Gambar 5. 6. Hasil pergerakan yang diinginkan dari persamaan 135
140 135
130
130 125 sumbu y
sumbu y
125 120 115
120
115
110 110
105 100 105
110
115
120 sumbu x
125
130
135
105 112
114
116
118
120 122 sumbu x
124
126
128
130
Gambar 5. 7. Gambar hasil pergerakan wahana pada rentang sample time 0 – 20 (kiri) dan 20 – 40 (kanan)
58
Pada dasarnya hasil dari metode berdasarkan PC ini tidak sesuai dengan hal yang diinginkan (gagal). Dari semua pengujian (PC-Based) yang telah dilakukan, rata-rata wahana bergerak sesuai dengan persamaan yang diinginkan pada suatu rentang waktu yang pendek. Setelah itu, sistem komunikasi antara SIMULINK dan mikrokontroler mengalami overflow dan mengakibatkan wahana bergerak aneh / tidak wajar (error). Fungsi try-catch yang telah dimasukkan dalam SIMULINK dapat menangani error yang terjadi (SIMULINK tidak mengalami crash), tetapi tidak mampu menangani proses perhitungan yang hilang selama overflow. Oleh karena itu, walaupun telah melewati fungsi trycatch ini, wahana tetap bergerak aneh dan tidak sesuai dengan persamaan yang telah didefinisikan. Selain menggunakan try-catch, dapat dilakukan pembentukan serangkaian data (dengan cara memperhitungkan persamaan gerak dalam SIMULINK) untuk mengatasi masalah overflow tersebut. Hasil perhitungan tersebut dibagi menjadi beberapa data konstanta dengan suatu rentang waktu tertentu. Data-data konstanta itu kemudian dikirim ke mikrokontroler yang akan menyimpannya menjadi data array. Setelah itu, perulangan pengiriman pulsa (dari mikrokontroler ke subsistem aktuator servo) diatur jumlahnya sesuai dengan rentang waktu data-data yang telah dimasukkan. Dengan
demikian,
mikrokontroler akan melakukan perulangan pengiriman pulsa sejumlah tertentu (berdasarkan rentang waktu perubahan data hasil perhitungan dalam PC) kemudian merubah posisi shaft servo sesuai dengan data-data yang telah disimpannya. Selain itu, dengan metode ini, SIMULINK hanya mengirimkan datadata tersebut satu kali saja sehingga permasalahan yang timbul akibat pengiriman data secara terus menerus (dari SIMULINK ke mikrokontroler) / overflow dapat diatasi. Hal tersebut dikarenakan setelah SIMULINK mengirimkan semua data perhitungan, komunikasi antara SIMULINK dan mikrokontroler dapat diputus / dilepas (mikrokontroler dapat memroses sendiri tanpa bantuan SIMULINK).
59
140 130 120 110
pulsa hi
100 90 80 sumbu x sumbu y sumbu z sumbu x (data) sumbu y (data) sumbu z (data)
70 60 50 40
0
2
4
6
8
10 12 sample time
14
16
18
20
Gambar 5. 8. Hasil perhitungan dan pembagian data array
140 135 130
sumbu y
125 perhitungan wahana
120 115 110 105 100 105
110
115
120 sumbu x
125
130
135
Gambar 5. 9. Hasil pergerakan wahana (data array)
Pergerakan wahana dengan menggunakan metode data array ini sangat stabil, bahkan selama beberapa putaran (dalam banyak pengujian) wahana mampu melewati garis lintasan yang sama (tanpa selisih). Kelemahan metode ini adalah terbatasnya jumlah data yang mampu dikirim ke dalam mikrokontroler (pada
60
pengujian ini hanya terdapat 50 masukan data) sehingga perlu adanya penyesuaian letak data yang akan dimasukkan (terutama pada daerah lengkungan) dan waktu / selang perubahan data yang harus sesuai dengan persamaan gerak (yang telah ditentukan). 5.3.3. Pengujian Berdasarkan Mikrokontroler Metode perhitungan perubahan posisi shaft servo yang terdapat di dalam mikrokontroler terbagi menjadi dua bagian, yaitu: (a) perhitungan secara linier; (b) perhitungan fungsi sinusoidal dalam mikrokontroler.
Perhitungan secara linier dilakukan dengan mengubah fungsi sinusoidal menjadi suatu fungsi garis lurus yang berulang-ulang. Dengan kata lain, persamaan perubahan posisi servo akan menjadi persamaan yang sederhana (tidak terdapat perhitungan perkalian, hanya penambahan dan pengurangan variabel). Dengan fungsi penambahan dan pengurangan ini, akan didapat gerakan bolak-balik yang mendekati fungsi sinusoidal yang diinginkan.
Penggunaan perhitungan tambah-kurang ini diharapkan akan meringankan kerja mikrokontroler untuk memproses persamaan sinusoidal dalam dirinya. Dengan hanya menggunakan prinsip tambah-kurang ini, variabel (dari proses perhitungan) yang terbentuk juga akan mengurangi kerja yang dibutuhkan mikrokontroler untuk memperoleh hasil perhitungan variabel selanjutnya. Dan pada
akhirnya,
diharapkan
sistem
aktuator
yang
terhubung
dengan
mikrokontroler dapat merespon hasil perhitungan tersebut dengan cepat.
61
140 130 120 110
pulsa hi
100 90 80 sinusoidal x sinusoidal y sinusoidal z linier x linier y linier z
70 60 50 40
0
2
4
6
8
10 12 sample time
14
16
18
20
Gambar 5. 10. Grafik perhitungan linier mikrokontroler
Kelemahan utama fungsi linier ini adalah pada akurasi perhitungan yang dilakukannya. Pendekatan linier yang dilakukan terhadap fungsi sinusoidal akan menghasilkan suatu renggang / selisih yang semakin bertambah dengan bertambahnya lengkungan (kurva) perhitungan fungsi sinusoidal. Tentu saja hal ini tidak baik jika gerakan yang ingin dihasilkan wahana berupa gerakan yang melengkung (seperti kurva 8). Untuk gerakan yang melengkung, hasil yang terjadi adalah gerakan membentuk segitiga di bagian puncak lengkungan sehingga gerakan yang tercipta pada lengkungan itu tidak mulus. 140
140
135
135
130
130
125
125
120
120
115
115
110
110
105
105
100 105
110
115
120
125
130
135
100 105
110
115
120
125
130
135
Gambar 5. 11. Perbandingan gerakan wahana yang diinginkan dan pergerakan wahana menggunakan fungsi linier
62
Perhitungan fungsi sinusoidal dalam mikrokontroler dilakukan dengan cara memasukkan fungsi sinusoidal ke mikrokontroler. Dengan motode ini, PC hanya mengirimkan konstanta variabel fungsi sinusoidal tersebut (seperti Amplitudo fungsi, fase, atau bias) dan membiarkan mikrokontroler melakukan perhitungan perubahan posisi shaft servo berdasarkan fungsi sinusoidal yang terdapat di dalamnya. Penggunaan fungsi sinusoidal dalam mikrokontroler 8 bits akan menguras tenaga mikrokontroler. Hal ini disebabkan perhitungan fungsi sin() atau fungsi cos() membutuhkan variabel berbentuk float (32 bits) sehingga untuk memroses variabel tersebut, mikrokontroler harus menyediakan register yang lebih dari 8 bits (untuk satu variabel perhitungan diperlukan lebih dari satu register). Pemrosesan register yang lebih dari 8 bits ini akan memperlambat proses penggerakan aktuator, bahkan dapat membuat mikrokontroler seakanakan crash atau tidak bekerja. Dari banyak percobaan menggunakan metode ini, tidak satu pun gerakan yang dihasilkan sesuai dengan yang diinginkan (gagal). Rata-rata pergerakan yang terjadi adalah gerakan bolak-balik kecil di ketiga sumbu pergerakan (sama seperti pergerakan yang dihasilkan SIMULINK saat memasuki rentang waktu yang lama). 130
sumbu y (pulsa hi)
125
120
115
110
105 110
115
120 125 sumbu x (pulsa hi)
130
135
Gambar 5. 12. Hasil pergerakan fungsi sinusoidal mikrokontroler
63
Hasil pengujian metode micro based adalah: Tabel 5. 2. Hasil pengujian metode micro based
Jenis metode Linier
Sinusoidal
Keuntungan Proses perhitungan yang dilakukan mikrokontroler tidak terlalu rumit Akurasi posisi shaft servo sesuai dengan fungsi yang didefinisikan pengguna
Kerugian Akurasi posisi servo tidak baik karena fungsi sinusoidal didekati melalui fungsi linier Proses perhitungan yang dilakukan mikrokontroler terlalu rumit dan lebih sering menimbulkan kesalahan
Hal ini berdasarkan pada beberapa hal sebagai berikut: 1. Pada metode linier, kesalahan yang terjadi akibat pendekatan fungsi sinusoidal ke fungsi linier lebih besar dari pada kedua metode yang lain. Hal tersebut terutama pada grafik fungsi sinusoidal yang sangat melengkung sehingga hasil perhitungan linier tidak mampu menjangkau fungsi sinusoidal itu. 2. Dengan
memasukkan
fungsi
sinusoidal
ke
mikrokontroler,
hasil
perhitungan akan sangat akurat dan lebih baik dari fungsi yang lain. Akan tetapi, perhitungan sinusoidal (fungsi sin()) merupakan jenis perhitungan 32 bits (bilangan float) yang tidak dapat didukung oleh mikrokontroler ATMega8535 pada wahana (memiliki kapasitas perhitungan 8 bit). Hal tersebut menyebabkan perhitungan persamaan sinusoidal menjadi tidak akurat bahkan membuat wahana bergerak tidak wajar.
5.4.
Pengujian Keseluruhan Sistem Wahana Pengujian fungsional sistem untuk membentuk kepakan sayap serangga memperoleh hasil yang baik untuk semua metode baik berdasarkan PC maupun mikrokontroler. Wahana berhasil bergerak dengan baik dan memiliki lintasan yang tepat dalam banyak pengujian. Hal ini terlihat dari kesalahan pergerakan wahana untuk membentuk lintasan kepakan sayap yang sangat kecil, bahkan sangat sulit untuk menentukan besarnya kesalahan yang terjadi. Yang paling tampak adalah kesalahan dalam frekuensi / periode gerakan yang terjadi karena adanya selisih data atau perbedaan metode yang diberikan.
64
140 130 120 110 100 sumbu y 90 sumbu x (A)
80 70 60 sumbu z (alpha) 50 40
0
1
2
3
4
5
6
7
8
9
10
Gambar 5. 13. Hasil perhitungan persamaan kepakan sayap serangga
121 120.8 120.6
pulsa hi sumbu y
120.4 120.2 120 119.8 119.6 119.4 119.2 119 105
110
115
120 pulsa hi sumbu x
125
130
135
Gambar 5. 14. Hasil pergerakan wahana (kepakan sayap serangga)
Untuk pembentukan kurva 8 atau helix, kesalahan banyak terjadi pada daerah yang melengkung. Hal ini disebabkan oleh adanya variabel diskrit pulsa yang diberikan pada servo di ketiga sumbu. Seperti yang telah dijelaskan di bab-bab awal, shaft servo bergerak berdasarkan pulsa hi yang memiliki rentang antara 1 milidetik sampai dengan 2 milidetik dalam pulsa yang memiliki periode 20 milidetik (tergantung pada jenis servo yang digunakan). Rentang pulsa hi tersebut dibagi dalam variabel yang memiliki rentang 40 – 200 dan berupa data diskrit. Hal ini menyebabkan servo seakan-akan bergerak patah-patah dan
65
membentuk gerakan kotak-kotak pada daerah lengkungan (yang membutuhkan data kontinu) sehingga akan menimbulkan kesalahan pada daerah tersebut.
Gambar 5. 15. Perbandingan hasil pergerakan wahana dan hasil perhitungan (kurva 8)
Periode yang terjadi selama pengujian rata-rata adalah 3,93 detik. Pada dasarnya periode untuk satu putaran gerakan bolak-balik wahana ini dapat diubah-ubah sesuai dengan keinginan pengguna. Periode ini juga tergantung pada kecepatan putar servo tersebut dan kecepatan komponen feedback putaran shaft untuk menyesuaikan pulsa yang diterima oleh servo dengan kedudukan shaft servo saat pulsa tersebut diterima.
Gambar 5. 16. Periode pergerakan wahana
Berdasarkan hasil pengujian fungsional sistem, terdapat dua metode yang dapat menjadi landasan pengujian wahana di masa mendatang. Kedua metode tersebut adalah penggunaan SIMULINK dan penggunaan data array untuk merubah posisi shaft servo di suatu rentang waktu tertentu. Keduanya memiliki kelemahan dan kelebihan masing-masing dan memungkinkan untuk terus dikembangkan menjadi lebih baik.
66
Secara keseluruhan, wahana telah dapat berjalan sesuai dengan fungsinya. Kesalahan – yang terdapat pada wahana – yang sering terjadi adalah pada perangkat lunak yang berjalan pada wahana. Kelemahan lain yang muncul adalah berubahnya sistem koordinat utama sistem aktuator saat wahana bergerak secara dinamik. Perubahan sistem koordinat tersebut terutama terjadi pada subsistem aktuator servo. Saat pergerakan dinamik (servo membentuk suatu sudut), servo tersebut akan lepas dari sumbu sistem koordinat utama. Hal ini menyebabkan wahana seakan-akan memiliki dua sistem koordinat acuan. Pembentukan sistem koordinat yang berlainan ini terjadi pada servo pada sumbu x dan y (lihat gambar 3.1.) karena servo pada sumbu z akan selalu memiliki sistem koordinat yang sama dengan servo pada sumbu x.
67