PERANCANGAN, PENGUJIAN, DAN ANALISIS
PERANGKAT KERAS INVERTED PENDULUM
5.1 Perancangan Perangkat Keras Sistem Inverted Pendulum 5.1.1 Desain Global
Diagram blok dari sistem inverted pendulum yang dikembangkan dalam tugas akhir ini diperlihatkan dalam Gambar 5-1 berikut.
MCS-51
(Pengontrol fuzzy)
ATTiny2313
(Sensor posisi pedati)
ATTiny2313
(Pengontrol posisi pedati) ATTiny2313
(Sensor sudut bandul)
Sudut bandul
Sudut bandul
Posisi pedati Posisi pedati
Gaya pada pedati
Voltase PWM
Gambar 5-1 Diagram blok sistem inverted pendulum secara keseluruhan
Pada tugas akhir ini akan digunakan empat buah mikrokontroller yaitu satu buah mikrokontroller DT-51 dengan frekuensi kristal osilator 12 MHz dan tiga buah mikrokontroller tipe ATTiny2313 dengan frekuensi kristal osilator 20 MHz. Dua dari tiga mikrokontroller ATTiny2313 berfungsi sebagai sensor posisi pedati dan sudut bandul
pada sistem. Informasi sudut dan posisi ini kemudian akan diteruskan oleh mikrokontroller ATTiny2313 ke mikrokontroller pusat yaitu DT-51. Dari data-data yang telah diterima, mikrokontroller DT-51 kemudian melakukan proses fuzzy
control dan akan mengeluarkan sebuah nilai yang menandakan gaya yang harus
diaplikasikan pada kereta. Nilai ini diterima oleh mikrokontroller ATTiny2313 yang ketiga dan kemudian ia akan mengeluarkan sinyal PWM untuk mengontrol posisi pedati.
5.1.2 Desain Sistem Inverted Pendulum
Pada sub-bab ini akan dijelaskan secara lebih terperinci desain dari perangkat keras sistem inverted pendulum. Sistem inverted pendulum terdiri dari dua bagian utama yaitu pedati dan bandul. Pedati digerakkan menggunakan motor DC dan posisinya dideteksi menggunakan sensor rotary shaft encoder. Bandul merupakan sebuah benda yang menempel pada poros pedati dan dapat bergerak dengan satu derajat kebebasan (searah atau berlawanan arah dengan jarum jam). Posisi bandul dideteksi menggunakan sensor rotary shaft encoder.
5.1.2.1 Pedati
Pedati merupakan sebuah benda yang dapat bergerak translasi dalam arah horizontal pada suatu lintasan. Pedati yang akan digunakan adalah sebuah linear actuator yang didesain oleh Yaskawa Electric Corporation dan bertipe UGTMEM-03LSK21.
Linear Actuator ini didesain menggunakan sebuah motor DC 24V, memiliki sebuah optical encoder sebagai sensor posisi pedati, dan menggunakan mekanisme ball screw pada lintasan pedatinya. Mekanisme ball screw ini menggunakan prinsip ulir
dan mur sehingga seolah-olah mengakibatkan posisi kereta menjadi terkunci ketika motor tidak dijalankan. Hal ini mengakibatkan kereta memiliki impulse yang besar
ketika akan berbalik arah. Arah gerak pedati dapat dikontrol menggunakan rangkaian H-Bridge. Pedati memiliki panjang 48.5 cm. Gambar 5-2 menunjukkan Yaskawa
linear actuator yang akan digunakan sebagai pedati pada tugas akhir ini.
Gambar 5-2 Yaskawa Linear Actuator
Posisi optical encoder pada linear actuator tersebut ditunjukkan oleh Gambar 5-3.
Gambar 5-3 Posisi optical encoder pada linear actuator
5.1.2.2 Bandul
Bandul merupakan sebuah benda yang menempel pada poros pedati dan dapat bergerak dengan satu derajat kebebasan (searah atau berlawanan arah dengan jarum jam). Bandul yang akan digunakan pada tugas akhir ini menggunakan sebuah batang alumunium dengan panjang 81 cm. Bandul diletakkan pada poros sebuah optical
encoder sehingga dimungkinkan diketahuinya sudut bandul dengan presisi secara real-time. Gambar 5-4 menunjukkan bandul yang diletakkan pada poros sebuah encoder.
Gambar 5-4 Bandul yang diletakkan pada poros sebuah encoder
Encoder yang digunakan untuk menempelkan bandul ini sebenarnya adalah satu
kesatuan dengan motor DC. Motor DC terdapat pada bagian depan dan encoder sebagai sensor terletak pada bagian belakang. Dikarenakan encoder dan motor tidak dapat dipisah, maka komponen yang akan digunakan hanyalah bagian belakang saja yaitu encoder. Motor dan encoder sebagai satu kesatuan dapat dilihat pada Gambar 5(a), encoder yang terletak pada bagian belakang motor dapat dilihat pada Gambar 5-5(b).
(a) (b)
Gambar 5-5 (a) Motor dan Encoder (b) Optical encoder
5.1.2.3 Motor Penggerak Pedati (Motor DC)
Motor penggerak yang digunakan adalah motor DC yang menggunakan brush, yaitu motor yang digerakkan oleh arus searah (direct current) dan menggunakan komutator. Motor DC merupakan suatu aktuator yang dapat mengkonversi energi listrik menjadi energi mekanik. Skema motor DC dapat dilihat pada Gambar 5.6.
Armature merupakan komponen yang bergerak dalam motor dan tempat untuk
melilitkan kawat. Tiap bagian kawat dihubungkan ke komutator yang menempel pada
brush. Kutub-kutub baterai atau sumber tegangan dihubungkan pada brush. Prinsip
kerja motor DC merupakan aplikasi dari Hukum Ampere yang melukiskan hubungan kuantitatif antara arus dan medan magnet. Ketika koil dialiri listrik, maka medan magnet akan tercipta pada lilitan kawat. Medan magnet ini akan berinteraksi dengan medan magnet yang dihasilkan oleh magnet permanen di kedua sisi armature. Interaksi ini menghasilkan gaya tarik-menarik dan tolak-menolak pada armature mengakibatkan armature berputar.
Gambar 5-6 Skema motor DC beserta komponen pendukungnya
Cara kerja motor DC ini dapat dilihat pada Gambar 7 [URL-02]. Pada Gambar 5-7(a), ketika koil dialiri listrik maka akan dihasilkan medan magnet di sekitar
armature. Bagian kiri dari armature terdorong oleh magnet kiri dan menyebabkan armature berputar ke arah kanan, sehingga mengakibatkan terjadinya rotasi. Gambar
5-7(b) menunjukkan armature terus berputar. Pada Gambar 5-7(c), ketika armature sejajar horizontal dengan magnet permanen maka komutator akan membalikkan arus yang mengalir pada koil sehingga akan membalikkan medan magnet pada armature.
Hal ini akan menyebabkan proses pada Gambar 5-7(a) terulang. Penjelasan lebih detail tentang motor DC dapat dilihat pada [URL-03].
(b) (c)
(a)
Gambar 5-7 Cara Kerja motor DC sederhana
5.1.2.4 Rotary Shaft Encoders [URL-05]
Encoder adalah sebuah sensor yang berfungsi untuk mengukur besar putaran sebuah
roda. Encoder dapat dibuat dengan menggunakan berbagai metode seperti magnetik dan optical. Pada bagian ini akan dibahas mengenai optical encoder.
Ada dua macam encoder yang terdapat dipasaran, yaitu absolute dan relatif. Absolute
encoder memberikan sebuah kode yang menandakan posisi roda saat ini. Incremental encoder hanya mengukur seberapa jauh roda telah bergerak. Incremental encoder
biasanya dipakai untuk mengukur seberapa jauh perpindahan roda robot ketika bergerak.
Sensor optical encoder memiliki tiga bagian utama, yaitu piringan encoder, LED (Light Emiting Diode) dan fototransistor. Piringan encoder berupa lingkaran dengan lubang-lubang pada bagian pinggirnya. Pada jalur lubang-lubang ini, ditempatkan fototransistor dan LED. LED merupakan dioda yang dapat memancarkan cahaya, cahaya yang dihasilkan oleh LED merupakan energi yang dihasilkan akibat perpindahan elektron dari orbital luar ke orbital yang lebih dalam. Fototransistor merupakan transistor yang aktif jika terkena cahaya. Dua buah contoh rangkaian
mekanik dari sensor incremental optical encoder ini dapat dilihat pada Gambar 5-8. Pada masing-masing contoh tersebut, berkas cahaya dipancarkan dan dideteksi menggunakan photo detector.
Gambar 5-8 Skema rangkaian sensor incremental optical encoder
Pada Gambar 5-8 kiri, berkas cahaya melewati lubang yang berada pada piringan encoder. Pada Gambar 5-8 kanan, berkas cahaya dipantulkan oleh bagian terang dan gelap dari piringan yang akan menyebabkan perbedaan intensitas cahaya. Rangkaian sirkuit tambahan pada encoder kemudian akan mengubah sinyal dari photo detector ini menjadi tegangan 0 atau 5 volt dc.
Gambar 5-9 menunjukkan bagaimana photo detector melihat bagian terang dan gelap (atau lubang) dari piringan dan hasil tegangan yang dihasilkannya. Bagian gelap dan terang merepresentasikan bagian lubang atau solid pada piringan encoder. Ketika bagian gelap berada di depan detektor maka tegangan keluaran adalah low (0 vdc). Ketika bagian terang berada di depan detektor maka tegangan keluaran adalah high (5 vdc).
Gambar 5-9 Optical encoder dengan satu sensor
Pulsa yang terbentuk dapat dibaca dan dihitung dengan mudah menggunakan
processor atau mikrokontroller dengan menggunakan berbagai macam teknik yang
berbeda. Ketika diketahui berapa banyak pulsa yang terdeteksi dan berapa keliling roda, maka dapat diketahui pula berapa jauh roda telah bergerak (mengukur jarak perpindahan roda). Kelemahan optical encoder dengan satu sensor ini adalah mikrokontroller akan menerima pulsa yang terlihat sama ketika roda berputar searah ataupun berlawanan jarum jam sehingga mikrokontroller tidak dapat membedakan arah gerakan dari roda.
Untuk dapat membedakan arah gerakan roda, maka diperlukan tipe encoder lain yang lebih canggih, yaitu quadrature encoder. Tidak seperti encoder biasa, quadrature
encoder memiliki satu buah sensor tambahan guna memberikan informasi arah
putaran. Gambar 5-10 mengilustrasikan cara kerja quadrature encoder dengan dua buah sensor. Detektor A diletakkan pada permulaan strip putih dan detektor B diletakkan pada bagian tengah strip hitam. Perbedaan offset peletakan detektor inilah yang akan memberikan penambahan informasi arah gerak. Jika strip hitam/putih bergerak ke kiri (dari kanan ke kiri), maka mikrokontroller akan menerima pulsa dari detektor A yang pada mula-mula berada pada strip putih (seperti terlihat pada Gambar 5-10, pulsa A). Pada saat yang bersamaan, detektor B berada pada pertengahan strip hitam sehingga menghasilkan pulsa B seperti yang terlihat pada Gambar 5-10, pulsa B. Hal yang sama pun terjadi ketika strip hitam/putih bergerak ke
kanan (dari kiri ke kanan). Ketika detektor A berada pada permulaan strip putih, detektor B berada pada pertengahan strip putih. Sehingga arah putaran dapat ditentukan dengan cara melihat status detektor B pada saat terjadi perubahan status pada detektor A, atau sebaliknya. Hal ini dapat dirumuskan dengan aturan berikut ini:
Ketika terjadi perubahan status pulsa pada detektor A (dari 0→1, atau 1→0):
Jika (status detector B adalah high) maka counter=counter+1 Jika (status detector B adalah low) maka counter=counter-1
Gambar 5-10 Ilustrasi cara kerja quadrature encoder
Encoder yang berada di pasaran biasanya memiliki 5 buah kabel, yaitu: ground, vcc,
dua buah signal pulsa untuk detektor A dan B, dan satu buah kabel disebut sebagai
index. Kabel index akan menghasilkan pulsa ketika encoder berada pada posisi
tertentu. Posisi ini biasa disebut sebagai posisi nol encoder.
5.1.3 Mikrokontroller
Mikrokontroller, atau microcomputer, ialah sistem yang terdiri dari CPU (Central
Processing Unit), RAM (Random Access Memory), ROM (Read Only Memory), bus
(untuk address/alamat, data, sinyal kontrol), dan divais I/O (input/output) yang dikemas dalam suatu IC (Integrated Circuit) [MAC-95]. Mikrokontroller yang akan
digunakan dalam tugas akhir ini ialah AT89C51 (keluarga MCS-51® 1) dan ATTiny2313 (keluarga AVR) yang keduanya diproduksi oleh Atmel Corporation.
5.1.3.1 Atmel AT89C51
Dalam tugas akhir ini akan digunakan DT-51 Minimum System Ver 3.0 dari
Inovative Electronics [URL-06]. Gambar 5-11 memperlihatkan board DT-51 yang
dapat diperoleh secara langsung dari Innovative Electronics. DT-51 ini memiliki desain kompak (ukuran board hanya 8.5 x 9.5 cm), menggunakan non-volative
memory, memiliki system downloading, dan debugger kernel.
Gambar 5-11 DT-51 Mikrokontroller Berbasis 89C51
Fitur 89C51 ini adalah memiliki internal program memory sebesar 4 kilo-byte,
internal data memory sebesar 256 byte, memiliki timer/counter, interrupt, serial interface, port input/output, dan special function [URL-07]. Panduan dasar keluarga
mikrokontroller MCS-51 ini dapat diunduh pada [URL-07].
1
5.1.3.2 Atmel ATTiny2313 [ATT-06]
Selain DT-51, mikrokontroller yang digunakan untuk tugas akhir ini adalah Atmel ATTiny2313. Gambar 5-12 menunjukkan chip IC ATTiny2313 model PDIP/SOIC yang memiliki 20 buah kaki.
Gambar 5-12 IC Atmel ATTiny2313
ATTiny2313 memiliki spesifikasi dasar sebagai berikut:
1. Mikrokontroller AVR 8-bit dengan daya rendah dan performansi tinggi dan memiliki arsitektur RISC (Reduce Instruction Set Computer) tingkat lanjut.
• Memiliki 120 buah instruksi, yang sebagian besar memiliki waktu eksekusi satu clock cycle.
• Memiliki 32 x 8 buah register umum yang dapat digunakan. 2. Nonvolatile program dan data memori.
3. Tegangan kerja:
• Rentang tegangan kerja ATTiny2313V yaitu 1.8 - 5.5V • Rentang tegangan kerja ATTiny2313 yaitu 2.7 - 5.5V 4. Frekuensi Osilator
• ATTiny2313V : 0 - 4 MHz @ 1.8 – 5.5V, 0 – 10 MHz @ 2.7 – 5.5V • ATINY2313 : 0 – 10 MHz @ 2.7 – 5.5V, 0 – 20 MHz @ 4.5 – 5.5V
5. Fasilitas yang lain:
• Satu buah timer/counter 8-bit dengan prescaler yang terpisah dan compare
mode.
• Satu buah timer/counter 16-bit dengan prescaler yang terpisah, compare dan
capture mode.
• Empat kanal PWM (Pulse Width Modulation). • USI (Universal Serial Interface).
• Full Duplex USART (Universal Synchronous and Asynchronous serial
Receiver and Transmitter) yang dapat diprogram
Pada tugas akhir ini, fitur mikrokontroller ATTiny2313 yang akan digunakan adalah akses port I/O, PWM (Pulse Width Modulation), dan Interrupt. Panduan dasar dari mikrokontroller ini dapat diunduh pada [URL-08].
5.1.4 Skematik Rangkaian dan Konfigurasi Kabel
Skema rangkaian yang akan dibahas adalah rangkaian H-Bridge untuk mengontrol pedati, rangkaian sensor left default pedati untuk mengetahui posisi paling kiri dari pedati, dan rangkaian opsional komunikasi serial MAX232 pada ATTiny2313 untuk keperluan proses debugging. Konfigurasi hubungan-hubungan kabel antara komponen satu dengan yang lain pun akan dijelaskan pada sub-bab ini.
5.1.4.1 Rangkaian H-Bridge
Pada prinsipnya H-Bridge adalah konfigurasi dari 4 buah switch yang disusun sedemikian rupa untuk mengatur arah arus yang mengalir pada motor. Pada motor
DC dengan brush, arah rotasi dari armature diubah dengan cara mengubah arah arus yang mengalir padanya.
Gambar 5-13 menunjukkan cara kerja H-Bridge secara sederhana. Pada Gambar 5-13, terdapat 2 buah kemungkinan jalur arus, yaitu jalur merah dan jalur hijau. Jalur merah melalui switch S3 dan S2 sehingga motor berputar searah jarum jam. Jalur hijau melalui switch S1 dan S4 sehingga motor berputar berlawanan arah jarum jam. Pada tahap implementasi semua switch akan digantikan oleh transistor sehingga kecepatan dan arah motor dapat dikendalikan secara langsung melalui mikrokontroller.
Gambar 5-13 Diagram H-Bridge sederhana
Rangkaian H-Bridge digunakan untuk mengatur arah putaran motor DC. Rangkaian ini bertindak sebagai sebuah saklar yang mengubah arah arus yang melalui motor. Desain rangkaian H-Bridge yang akan digunakan pada tugas akhir ini adalah hak cipta dari Ibrahim Kamal dan dikenal sebagai rangkaian H-Bridge IkaLogic yang dapat diakses melalui [URL-11].
Rangkaian H-Bridge IkaLogic yang dipakai memiliki keunggulan sebagai berikut: • Dapat dialiri arus kontinu sampai 5A dan arus puncak 8A.
• Voltase maksimum adalah 24V.
• Sistem pendingin yang digunakan memiliki performansi tinggi. • Desain yang kompak.
• Komponen yang digunakan relatif murah.
Rangkaian skematik H-Bridge IkaLogic ini dapat dilihat pada Gambar 5-14. Gambar ini terdiri dari 3 bagian, yaitu:
1. Rangkaian proteksi dan logika
Rangkaian skematik ini dapat dilihat pada Gambar 5-14 yang diarsir dengan warna kuning. Fungsi dari rangkaian ini adalah untuk melindungi rangkaian H-Bridge dari kerusakan fatal akibat kesalahan pemberian instruksi oleh device pengontrol, seperti menghidupkan empat buah transistor secara bersamaan (hal ini akan mengakibatkan short circuit dan dapat merusak satu atau dua dari empat transistor). Fungsi lain adalah memungkinkan pengontrol seperti mikrokontroller untuk mengatur empat buah transistor melalui gerbang-gerbang logika. Masing-masing empat buah transistor yang berada pada tahap paling akhir, yaitu: Q1, Q2, Q3, dan Q4 (lihat Gambar 5-14) memiliki fungsi untuk membalikkan signal dan melakukan amplifikasi tegangan dan arus. Transistor Q1, Q2, Q3, dan Q4 ini memakai prinsip kerja active turn OFF dan menghasilkan keluaran melalui resistor pull-up atau pull-down. Ketika transistor dalam keadaan ON, maka ia akan mematikan device apapun yang terhubung dengannya. Active turn OFF akan memperkecil waktu transistor untuk OFF sehingga meningkatkan perfomansi dari H-Bridge. Resistor R2, R4, R5, dan R10 haruslah memiliki daya minimal ½ watt, terutama ketika dipakai catu daya 24V. Transistor Q2, Q4, Q9, dan Q10 adalah NPN bertipe 2N2222.
Tabel kebenaran yang menggambarkan hubungan dari 3 buah masukan pada gerbang logika (P1, P2, P3) dan keluaran pada transistor Q1, Q2, Q3, dan Q4 digambarkan pada Tabel 5-1.
Tabel 5-1 Hubungan P3, P2, P1 terhadap Q1, Q2, Q3, Q4
Masukan Keluaran P3 P1 P2 Q1 Q2 Q3 Q4
Hasil pada H-Bridge
1 0 0 1 1 1 1 Motor direm
1 0 1 1 1 0 0 Motor bergerak searah jarum jam 1 1 0 0 0 1 1 Motor bergerak berlawanan jarum jam
1 1 1 0 0 0 0 Motor direm
Pin P3 berfungsi sebagai saklar ON/OFF dan biasanya dihubungkan dengan pin PWM pada mikrokontroller. Ketika P3 diberikan masukan OFF maka motor tidak bergerak, sama seperti tidak dihubungkan pada rangkaian apapun. Pin P1 dan P2 berfungsi untuk menentukan arah gerak dari motor, yaitu searah atau berlawanan arah jarum jam.
Gambar 5-14 Rangkaian skematik H-Bridge IkaLogic
2. Rangkaian H-Bridge
Rangkaian skematik ini dapat dilihat pada Gambar 5-14 yang diarsir dengan warna merah. Rangkaian ini terdiri dari empat buah transistor, yaitu dua buah
transistor TIP122 (NPN) dan dua buah transistor TIP127 (PNP) yang memiliki penguatan arus sampai 1000. Diode D2 sampai D5 sangat penting untuk melindungi transistor dari voltase back EMF (ElectroMagnetic Force) yang dihasilkan dari Motor DC yang dihidupkan dan dimatikan secara bergantian. J5 adalah konektor untuk dihubungkan dengan motor.
3. Rangkaian kipas pendingin
Rangkaian skematik ini dapat dilihat pada Gambar 5-14 yang diarsir dengan warna biru. Rangkaian ini berfungsi untuk mendinginkan transistor dan memiliki led sebagai indikator bahwa H-Bridge dalam keadaan ON atau OFF.
Gambar 5-15 memperlihatkan implementasi perangkat keras rangkaian H-Bridge IkaLogic yang digunakan pada tugas akhir ini.
(a) (b)
Gambar 5-15 Perangkat Keras H-Bridge IkaLogic (a) Tampak atas (b) Tampak samping
5.1.4.2 Rangkaian Sensor Left Default Pedati
Rangkaian ini digunakan untuk medeteksi posisi paling kiri dari pedati (posisi nol). Hal ini diperlukan pada saat pedati digerakkan ke posisi tengah kereta sebelum sistem
inverted pendulum dijalalankan. Diagram skematik rangkaian sensor left default
edati berada di posisi paling kiri, maka menggunakan sebuah sensor opto-interrupter H21A1 yang diproduksi oleh perusahaan semikonduktor Fairchild. Skematik dan bentuk komponen
opto-interrupter dapat dilihat pada Gambar 5-16.
Rangkaian transistor untuk mencuplik sinyal menggunakan konfigurasi common
emitter amplifier dan berlaku sebagai saklar yang akan terbuka apabila terdapat benda
di antara diode dan fototransistor. Ketika p
lempengan logam yang disisipkan pada pedati akan menutup ruang kosong antara
diode dan fototransistor pada opto-interrupter sehingga menyebabkan sinyal yang
diamati menjadi berubah.
Gambar 5-16 Komponen opto-interrupter
Rangkaian skematik untuk sensor left default pedati diperlihatkan oleh Gambar 5-17.
Perubahan sinyal akan t ruang kosong antara
iode dan fototransistor pada opto-interrupter tertutup.
diamati oleh mikrokontroller pada saa
d
Gambar 5-18 memperlihatkan perangkat keras sensor left default pedati yang ditempatkan pada posisi paling kiri dari lintasan pedati.
Gambar 5-18 Perangkat keras sensor left d ult pedati
Rangkaian reset 51 berguna untuk mengembalikan program mikrokontroller DT-51 ke kondisi semula. Reset tidak mempengaruhi internal program memory. Reset terjadi jika pin RST pada DT-51 bernilai high selama minimal 2 machine cycle lalu kembali bernilai low. Diagram skematik rangkaian reset ditunjukkan oleh Gambar 5-19(a) dan Gambar perangkat keras reset ditunjukkan oleh Gambar 5-19(b).
Gambar 5-19 Reset DT-51 (a) Diagram Skematik (b) Perangkat keras
efa
5.1.4.3 Rangkaian Reset DT-51 dan Start Pendulum
Rangkaian start pendulum adalah sebuah switch atau trigger yang berguna untuk menginformasikan mikrokontroller DT-51 bahwa sistem telah siap dijalankan. Rangkaian ini dibangun hanya dengan menggunakan sebuah switch dan pull-up pada salah satu pin DT-51. Diagram skematik dan Gambar perangkat keras rangkaian start
pendulum dapat dilihat pada Gambar 5-20(a) dan 5-20(b) berurutan.
Gambar 5-20 Start pendulum (a) Diagram skematik (b) Perangkat keras
5.1.4.4 Transistor elalui debugging pada m bar 5-21. (b) (a) Rangkaian MAX232
Koneksi serial pada mikrokontroller masih mempunyai keluaran berlogika
Transistor Logic (TTL) sehingga apabila data akan dikirim ke komputer m
konektor DB-9 dibutuhkan suatu konverter tegangan. Rangkaian MAX232 ini berfungsi sebagai konverter logika dari TTL menjadi RS232. Tegangan yang dikeluarkan dari komponen ini mempunyai nilai -10V dan 10V. Rangkaian MAX232 adalah rangkaian opsional yang diperlukan hanya untuk kemudahan proses
Gambar 5-21 Skema rangkaian MAX232
5.1.4.5 Konfigurasi Pin
Pada sub-bab ini akan dibahas konfigurasi penggunaan pin pada setiap mikrokontroller dan hubungannya dengan komponen-komponen lain yang terlibat dalam sistem inverted pendulum. Pertama-tama komunikasi antara mikrokontroller pusat (DT-51) dengan ketiga mikrokontroller ATTiny2313 menggunakan komunikasi paralel dengan besar data 1 byte (8 jalur kabel). Mikrokontroller ATTiny2313 motor (ATTiny2313 yang tugasnya mengontrol motor) dan ATTiny2313 sensorPedati (ATTiny2313 yang tugasnya membaca sensor encoder pedati) berkomunikasi hanya
melalui 2 jalur kabel pa edati di tengah-tengah
lintasan. Mikrokontroller-mikrokontroller yang digunakan dapat dilihat pada Gambar 5-22. Konfigurasi pin antara mikrokontroller dapat dilihat pada Tabel 5-2.
Gambar 5-22 Mikrokontroller (a)DT-51 (b)ATTiny2313 Motor (c)ATTiny2313 sensorBandul (d)ATTiny2313 sensorPedati
Tabel 5-2 Konfigurasi kabel antara mikrokontroller
Mikrokontroller1 Mikrokontroller2 Keterangan DT-51 PA.0 ... PA.7 ATTiny2313 motor PB.0 PB.1 PD.0 PB.3 ... Komunikasi par antara DT-51 PB.7 alel 8 jalur dengan ATTiny2313 motor DT-51 PB.0 ... PB.7 ATTiny2313 sensorBandul PB.0 ... PB.7
Komunikasi paralel 8 jalur antara DT-51 dengan ATTiny2313 sensorBandul DT-51 PC.0 ... PC.7 ATTiny2313 sensorPedati PB.0 ... PB.7
Komunikasi paralel 8 jalur antara DT-51 dengan ATTiny2313 sensorPedati DT-51
P1.2
ATTiny2313 motor Toggle status pin yang
PWM pada ATTiny2313 motor
PD.6 dihasilkan DT-51 ketika
akan menulis besaran
DT-51 status pin yang
T-51 ketika P1.4 ATTinny2313 Toggle sensorPedati PD.6 dihasilkan D
akan membaca posisi kereta pada ATTiny2313 sensorPedati
ATTiny2313 sensorPedati
ma oleh
kiri dari pedati pada PD.1
ATTiny2313 motor PD.5
Status pin yang dihasilkan oleh ATTiny2313 motor dan diteri
ATTiny2313
sensorPedati. Status pin ini berfungsi untuk mendeteksi posisi paling
proses inisialisasi. ATTiny2313 sensorPedati PD.0 y2313 motor PD.4 TTiny2313 motor.
ATTin Status pin yang dihasilkan
oleh ATTiny2313 sensorPedati dan diterima
oleh A
Status pin ini berfungsi untuk menempatkan pedati pada posisi
tengah-tengah lintasan.
hubungan antara m ntroller satu dengan hubungan mikrokontroller dengan komponen-komponen la
left default pedati, komponen reset DT-51, start pendulum
ini dapat dilihat pada Tabel 5-3.
Tabel 5-3 Konfigurasi kabel antara mikrokontroller dengan
Selain ikroko yang lain, juga terdapat
in seperti H-Bridge, sensor , dan lain-lain. Hubungan
komponen-komponen
Mikrokontroller Komponen Keterangan
ATTiny2313 sensorBandul
putih PD.2
Encoder bandul
Kabel
Sensor encoder bandul channel A
ATTiny2313 sensorBandul PD.3
Encoder bandul
Kabel biru
Sensor encoder bandul channel B
ATTiny2313 sensorPedati PD.2
Encoder pedati
Kabel biru
Sensor encoder pedati
channel A ATTiny2313 sensorPedati Encoder pedati
Kabel kuning
Sensor encoder pedati
channel B PD.4
ATTiny2313 motor H-Bridge Penentu arah motor DC
PD.1 Kabel hijau (gerakan pedati)
ATTiny2313 motor PD.3
H-Bridge Kabel kuning
Penentu arah motor DC (gerakan pedati) ATTiny2313 motor PB.2 H-Bridge Kabel orange Sinyal ON/OFF (PWM) untuk H-Bridge
ATTiny2313 motor Sen PD.2
sor left default pedati Kabel putih
Sensor posisi nol pedati DT-51
P1.0
Start pendulum Trigger proses stabilis
Kabel biru (Vout)
asi pendulum DT-51 RST Reset DT-51 Kabel biru (RST)
Trigger untuk proses reset
5.1.5 Diagram Alir
n i program ya
rogram uh dari komputer satu bua rokontroller DT kontroller ATTiny2313
m alir program pada m er DT-51 dapat dilihat pada Gambar 5-23.
ikrokontro lakukan
nakan built-in libra , yaitu _initfu
ukan inisialisasi pemil n output (PortA, PortB, dan PortC) untuk komunikasi paralel dengan ketiga mikrokontroller ATTiny2313. DT-51 akan a una menekan tombol ON (start pendulum). Proses yang
Tech kemudian akan melakukan proses fuzzy control terhadap keempat input tersebut dan dihasilkanlah sebuah keluaran output yang
Force ini akan diberikan oleh DT-51 kepada ATTiny2313 motor yang Bagian ini akan menjelaska diagram alir dar ng digunakan untuk sistem
inverted pendulum. P yang diund ke mikrokontroller terdapat
empat buah, yaitu h untuk mik -51 dan tiga buah untuk
mikro .
5.1.5.1 DT-51
Diagra ikrokontroll
Pertama-tama m ller DT-51 me inisialisasi FuzzyTech
ry FuzzyTech zzy1. Setelah itu DT-51
menggu
melak ihan port input da
bekerj setelah pengg
dilakukan adalah DT-51 menerima dua masukan dari ATTiny2313 yaitu sudut bandul dan posisi pedati. Setelah itu ia akan menghitung perubahan sudut bandul (thetaDot) dan perubahan posisi pedati (Xdot). Kemudian keempat data ini akan menjadi masukan ke FuzzyTech. Fuzzy
bernama force.
selanjutnya akan digunakan untuk menggerakkan pedati. Siklus ini berulang dengan cara DT-51 membaca kedua input kembali.
Gambar 5-23 Diagram alir pada mikrokontoller DT-51
5.1.5.2 ATTiny2313 Motor
Diagram alir pada mikrokontroller ATTiny2313 motor dapat dilihat pada Gambar 5-24. Pertama-tama ATTiny2313 motor melakukan inisialisasi guna menempatkan
posisi pedati tepat cara komunikasi
ntara dua mikrokontroller terpisah yaitu: ATTiny2313 motor (untuk menggerakkan di tengah-tengah lintasan. Hal ini dicapai dengan
motor) dan ATTiny2313 sensorPedati (untuk mengetahui posisi pedati). Diagram alir
R adalah untuk menginformasikan kepada ini dapat dilihat pada Gambar 5-24 dan 5-25 pada bagian prosedur inisialisasi posisi pedati. Pada prinsipnya inisialisasi posisi pedati pada tengah-tengah lintasan dilakukan dengan cara menggerakkan pedati (dilakukan oleh ATTiny2313 motor) sampai ke ujung paling kiri lintasan (dideteksi menggunakan sensor left default pedati) kemudian pedati digerakkan sampai posisi tengah-tengah lintasan (dideteksi oleh ATTiny2313 sensorPedati).
Berikut ini akan dijelaskan proses inisialisasi secara lebih detail pada mikrokontroller ATTiny2313 motor. SET_COUNTER adalah sebuah pin pada mikrokontroller ATTiny2313 motor (berfungsi sebagai output) yang berhubungan secara langsung dengan pin ATTiny2313 sensorPedati yaitu GET_0_COUNTER (berfungsi sebagai
input). Fungsi SET_COUNTE
ATTiny2313 sensorPedati bahwa posisi pedati telah berada di posisi paling kiri lintasan (sensor left default pedati bernilai 1). ATTiny2313 sensorPedati kemudian akan melakukan proses reset counter (counter=0). Hal ini menandakan bahwa posisi nol pedati adalah pada ujung paling kiri lintasan. Setelah pedati berada di posisi paling kiri maka ATTiny2313 motor akan menggerakkan pedati ke arah kanan, sampai posisi pedati berada tepat di tengah-tengah lintasan. Posisi pedati yang berada di tengah-tengah lintasan ditandai oleh pin STOP_CART pada mikrokontroller ATTiny2313 motor yang bernilai satu. STOP_CART adalah sebuah pin yang menghubungkan antara mikrokontroller ATTiny2313 motor (berfungsi sebagai input) dan ATTiny2313 sensorPedati yaitu SET_STOP_CART (berfungsi sebagai output). Setelah posisi pedati berada di tengah-tengah lintasan, pedati kemudian berhenti dan proses inisialisasi selesai.
Gambar 5-24 Diagram alir pada mikrokontoller ATTiny2313 motor
Setelah proses inisialisa
embaca input force yang dikeluarkan oleh DT-51. Force ini kemudian digunakan si posisi pedati selesai, maka ATTiny2313 motor akan m
untuk menentukan arah dan seberapa jauh kereta akan bergerak. Untuk kemudahan program maka dipilih posisi nol force adalah 128. Pedati akan berhenti ketika pin
STOP_CART bernilai satu. Hal ini mengindikasikan bahwa pedati telah menabrak ujung paling kiri atau kanan lintasan.
5.1.5.3 ATTiny2313 SensorPedati
edati dapat dilihat pada
inisialisasi secara lebih detail pada mikrokontroller Diagram alir pada mikrokontroller ATTiny2313 sensorP
Gambar 5-25. Pertama-tama ATTiny2313 sensorPedati melakukan inisialisasi guna menempatkan posisi pedati tepat di tengah-tengah lintasan. Hal ini dicapai dengan cara komunikasi antara dua mikrokontroller terpisah yaitu: ATTiny2313 motor (untuk menggerakkan motor) dan ATTiny2313 sensorPedati (untuk mengetahui posisi pedati). Diagram alir ini dapat dilihat pada Gambar 5-24 dan 5-25 pada bagian prosedur inisialisasi posisi pedati.
Berikut ini akan dijelaskan proses
ATTiny2313 sensorPedati. SET_STOP_CART adalah pin yang berada pada ATTiny2313 sensorPedati (berfungsi sebagai output) yang berhubungan dengan pin ATTiny2313 motor yaitu STOP_CART (berfungsi sebagai input). SET_STOP_CART mula-mula diberi nilai nol, yang menandakan bahwa posisi pedati belum berada di tengah-tengah lintasan. Pedati sekarang bergerak ke ujung paling kiri lintasan dan mikrokontroller ATTiny2313 terus menerus mengamati status pin GET_0_COUNTER. GET_0_COUNTER adalah pin yang berada pada ATTiny2313 sensorPedati (berfungsi sebagai input) yang berhubungan dengan pin ATTiny2313 motor yaitu SET_COUNTER (berfungsi sebagai output). Ketika pedati telah berada diujung paling kiri, maka pin GET_0_COUNTER akan bernilai satu sehingga ATTiny2313 sensorPedati akan melakukan proses reset counter (counter=0) untuk menandakan posisi nol dari pedati adalah ketika ia berada pada ujung paling kiri lintasan. Setelah itu, pedati akan bergerak ke arah kanan dan ATTiny2313 sensorPedati akan mengubah status pin SET_STOP_CART menjadi satu ketika posisi pedati telah berada ditengah-tengah lintasan. Setelah delay tertentu, status
SET_STOP_CART akan diubah kembali menjadi nol dan proses inisialisasi pun selesai.
Main
Inisialisasi Posisi Pedati
Posisi pedati berada diujung paling kiri atau kanan track?
SET_STOP _CART=1
End
Output posisi pedati saat ini ya tidak Inisialisasi Posisi Pedati SET_STOP _CART=0 GET_0_COUNTER = 1? dellay Counter=0 ya tidak
Apakah kereta berada di posisi tengah-tengah track? SET_STOP _CART=1 SET_STOP _CART=0 RET ya tidak Interupsi 0: EXT_INT0 PIN_EA=1? PIN_EB=1? counter=counter+1 counter=counter-1 PIN_EB=1? counter=counter-1 counter=counter+1 RETI RETI ya tidak ya tidak ya tidak
Gambar 5-25 Diagram alir pada mikrokontroller ATTiny2313 sensorPedati
etelah proses inisialisasi selesai, maka tugas mikrokontroller ini adalah untuk mengeluarkan informasi posisi pedati pada mikrokontroller DT-51. Ketika posisi S
pedati berada di ujung paling kiri atau kanan lintasan, maka ATTiny2313 sensorPedati akan mengubah status SET_STOP_CART menjadi satu yang menandakan bahwa pedati harus berhenti.
Proses pembacaan sensor encoder untuk posisi pedati ini menggunakan interupsi eksternal INT0 pada mikrokontroller ATTiny2313 sensorPedati. Algoritma yang
ATTiny2313 SensorBandul
Diagram alir pada mikrokontroller ATTiny2313 sensorBandul dapat dilihat pada ller ATTiny2313 sensorBandul ini hanya untuk
encoder
digunakan untuk mencacah posisi pedati ini pada dasarnya sama seperti dengan yang telah dijelaskan pada Subbab 5.1.2.4, hanya saja kali ini ketelitian pembacaan
encoder lebih tinggi.
5.1.5.4
Gambar 5-26. Kegunaan mikrokontro
mendeteksi sudut bandul saat kini. Untuk memudahkan pembuatan program maka posisi nol bandul diambil pada posisi tegak vertikal terbalik.
Mula-mula ATTiny2313 sensorBandul mereset variabel counter menjadi nol. Variable counter digunakan untuk mencacah sinyal yang dikeluarkan oleh
bandul. Proses pembacaan sensor encoder untuk sudut bandul ini menggunakan interupsi eksternal INT0 pada mikrokontroller ATTiny2313 sensorBandul. Setiap kali interupsi selesai maka ATTiny2313 sensorBandul akan mengeluarkan informasi sudut bandul ini (counter) pada mikrokontroller DT-51. Algoritma yang digunakan untuk mencacah sudut bandul ini pada dasarnya sama seperti dengan yang telah dijelaskan pada Subbab 5.1.2.4, hanya saja kali ini ketelitian pembacaan encoder lebih tinggi.
Main
END Output sudut bandul (counter) pada DT-51 counter=0 Interupsi 0: EXT_INT0 PIN_CHA=1? PIN_CHB=1? counter=counter+1 counter=counter-1 PIN_CHB=1? counter=counter-1 counter=counter+1 ya tidak ya tidak ya tidak 1 RETI 1 1
Output sudut bandul (counter) pada DT-51
Gambar 5-26 Diagram alir pada mikrokontroller ATTiny2313 sensorBandul
5.1.6 Membership Function & Rule Pada Perangkat Lunak FuzzyTech
FuzzyTech2 adalah sebuah perangkat lunak yang dapat mengimplementasikan fuzzy
logic pada bermacam-macam tipe mikrokontroller yang berbeda-beda. FuzzyTech
menyediakan editor grafik yang akan memudahkan user untuk mendesain sistem
2
fuzzy, melakukan proses debugging, optimasi, dan verifikasi. Setelah desain fuzzy
selesai dibangun, kemudian perangkat lunak FuzzyTech dapat dengan mudah
men-generate kode assembly sesuai dengan tipe mikrokontroller yang dipilih. Pada tugas
akhir ini akan digunakan FuzzyTech ver 5.5 MCU-51 yang kompatibel dengan mikrokontroller DT-51. Perangkat lunak FuzzyTech merupakan produk komersial dan dapat diakses pada [URL-09]. Panduan lengkap cara penggunaan perangkat lunak ini terdapat pada FuzzyTech User Manual dan dapat diunduh pada [URL-10]. Panduan proses mengintegrasikan kode assembly yang digenerate oleh FuzzyTech dengan kode user pada DT-51 dapat dilihat pada lampiran A. Panduan penginstallan MCU-51 pada FuzzyTech dapat dilihat pada lampiran B.
Perangkat lunak FuzzyTech pada tugas akhir ini digunakan untuk mengimplementasikan konsep fuzzy control guna mengontrol kestabilan sistem
inverted pendulum. Proses desain membership function dan pembangunan aturan fuzzy pada perangkat lunak ini sangatlah mudah sekali karena didukung oleh GUI
(Graphic User Interface) yang memadai. Setelah proses desain fuzzy selesai dibangun, kemudian perangkat lunak FuzzyTech pun dapat dengan mudah
men-generate kode assembly untuk mikrokontroller DT-51.
Secara umum masukan pada sistem fuzzy terdiri dari empat buah variabel, yaitu Angle, Angle_dot, x, dan x_dot. Keluaran dari sistem fuzzy ini hanya satu buah variabel yaitu force. Sistem fuzzy ini dikenal juga sebagai sistem MISO (Multiple
Input Single Output). Gambar 5-27 memperlihatkan desain umum sistem inverted pendulum pada perangkat lunak FuzzyTech. Empat variabel masukan pada fuzzy
menggunakan method: Fast Compute MBF. Output defuzzification menggunakan metode COM (Center of Maximum).
Setiap variabel pada FuzzyTech memiliki dua buah nilai yaitu shell values dan code
values. Shell values adalah nilai yang digunakan pada editor, debugger, dan analyzer
pada GUI FuzzyTech. Code values adalah nilai yang digunakan oleh FuzzyTech ketika men-generate code assembly. Sebagai contoh ambil variabel input angle dari
sistem inverted pendulum. Misalkan batas dari linguistic variabel ini adalah dari -90 sampai 90 derajat. Pada saat implementasi perangkat keras, sudut ini diukur oleh sensor incremental yang misalnya menghasilkan output dari 240 sampai 1400. Maka dari itu proses konversi diperlukan oleh perangkat lunak FuzzyTech dengan mengambil shell values pada batas [-90o, +90o] dan code values dari [240, 1400].
Gambar 5-27 Desain sistem inverted pendulum pada perangkat lunak FuzzyTech
Shell values dan code values untuk variabel Angle, Angle_dot, x, x_dot, dan Force
dari sistem inverted pendulum ini dapat dilihat pada Gambar 5-28 (a), (b), (c), (d), dan (e) secara berurutan.
(a) (b)
(e)
Gambar 5-28 Shell values dan code values untuk : (a) Angle, (b) AngleDot, (c) x, (d) x_dot, dan (e) Force
Membership function yang digunakan terdiri dari lima buah yaitu angle (sudut
bandul), angle_dot (perubahan sudut bandul), x (posisi pedati), x_dot (perubahan posisi pedati), dan force (gaya pada pedati). Masing-masing bentuk membership
function dapat dilihat pada Gambar 5-29 (a), (b), (c), (d), dan (e) secara berurutan.
FuzzyTech memiliki keterbatasan dalam jumlah keanggotaan dalam suatu
membership function. Jumlah keanggotaan maksimum yang diperbolehkan adalah
sebanyak delapan buah. Selain itu FuzzyTech yang digunakan kali ini adalah edisi MCU-51 yang mengharuskan semua variabel yang dideskripsikan hanya sebesar 1
(a) (b)
(c) (d)
(e)
Aturan fuzzy yang digunakan terdiri dari 225 buah dan kode program untuk menghasilkan aturan ini dapat dilihat pada program rule.c yang dilampirkan pada CD. Gambar 5-30 memperlihatkan sepotong aturan fuzzy yang digunakan pada perangkat lunak FuzzyTech.
Gambar 5-30 Contoh aturan fuzzy yang digunakan pada FuzzyTech
5.2 Pengujian dan Analisis Perangkat Keras Sistem Inverted Pendulum
Pengujian perangkat keras sistem inverted pendulum akan dilakukan secara kualitatif dengan melampirkan CD video percobaan. Data percobaan secara kuantitatif tidak dapat disampaikan pada laporan kali ini karena berbagai alasan teknis. Untuk mengambil data percobaan, variabel theta, theta_dot, x, dan x_dot pada setiap iterasi perlu diambil oleh komputer. Komunikasi antara mikrokontroller dengan komputer akan memakan waktu yang signifikan sehingga hal ini akan sangat menganggu kestabilan sistem.
Hasil percobaan inverted pendulum dengan menggunakan dua buah variabel yaitu theta dan theta_dot adalah sudut bandul dapat distabilkan pada posisi vertikal terbalik, tetapi posisi pedati tidak dapat distabilkan pada posisi tengah-tengah lintasan sehingga pedati akan terus menerus bergerak menuju akhir lintasan. Hasil percobaan ini sesuai dengan hasil simulasi dengan dua buah variabel di mana posisi pedati (x) bergerak menuju tak hingga. Dengan menggunakan empat buah variabel yaitu theta, theta_dot, x, dan x_dot, baik sudut bandul maupun posisi pedati dapat distabilkan dengan baik. Hasil simulasi untuk empat variabel menunjukkan bahwa sistem dapat distabilkan dalam jangka waktu yang lama, tetapi tidak demikian dengan hasil implementasi perangkat kerasnya.
Implementasi perangkat keras sistem inverted pendulum ini memiliki berbagai keterbatasan seperti: sudut bandul mula-mula haruslah kecil (<±5 derajat) dan bandul dapat distabilkan pada posisi vertikal terbaliknya hanya dalam jangka waktu yang pendek.
Berbagai kendala yang dihadapi pada saat pembangunan perangkat keras sistem
inverted pendulum ialah:
1. Keterbatasan perangkat lunak FuzzyTech yang mengharuskan besar variabel adalah 1 byte untuk edisi FuzzyTech MCU-51 sehinggga mengakibatkan keakuratan data menjadi berkurang.
2. Keterbatasan perangkat lunak FuzzyTech yang mengharuskan jumlah derajat keanggotaan maksimum sebanyak 8 buah sehingga variasi keluaran nilai force menjadi berkurang.
3. Kompensasi antara kestabilan bandul dan posisi pedati. Proses penstabilan posisi pedati sebenarnya merupakan sebuah gangguan lain (disturbance) pada proses penstabilan sudut bandul, sehingga perlu ditelaah lebih lanjut bagaimana kompensasi untuk kestabilan keduanya.
4. Perbedaan parameter (berat pedati, berat bandul, panjang bandul, dan sebagainya) yang besar antara simulasi dan perangkat keras sehingga mengakibatkan perbedaan parameter-parameter fuzzy (membership function) yang cukup besar antara keduanya. Selain itu simulasi menggunakan model ideal (seluruh gesekan diabaikan) sedangkan kenyataannya pada perangkat keras gesekan sangat berpengaruh terhadap perfomansi sistem. Perangkat keras memerlukan proses tuning parameter tersendiri.
5. Mekanisme pedati memakai prinsip ball screw yang mengakibatkan impulse pada bandul menjadi besar saat pedati berganti arah, sehingga waktu kestabilan inverted pendulum menjadi relatif pendek.
6. Gaya maksimum yang dihasilkan motor pedati tidaklah cukup kuat untuk mengejar perubahan sudut bandul yang relatif besar.
7. Proses tuning variabel dan aturan fuzzy dilakukan secara manual sehingga mengakibatkan tidak dapat diperolehnya solusi global optimum dari masalah. Proses tuning variabel sebaiknya menggunakan algoritma lain seperti genetic