BAB II LANDASAN TEORI 2.1 Balancing Robot Balancing robot adalah sebuah robot yang mampu berdiri tegak seimbang yang pada umumnya bertumpu pada dua roda atau yang dikenal sebagai keseimbangan robot beroda dua. Gambar 2.1 Balancing Robot Proses keseimbangan biasanya disebut sebagai kontrol stabilitas. Dua roda yang diletakan pada dasar permukaan dan memungkinkan chassis robot untuk 5 6 Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 mempertahankan posisi tegak dengan bergerak ke arah kemiringan, baik maju atau mundur dalam upaya untuk menjaga pusat massa di atas as roda. Gambar 2.2 Balancing robot dilihat dari samping Keseimbangan robot yang ditunjukkan pada gambar di atas tidak stabil terhadap dua robot beroda. Dengan massa yang besar, baterai dan rangkaian diposisikan di atas poros, membuat robot menjadi seperti pendulum terbalik, robot pada dasarnya cenderung akan jatuh terbalik. 2.2 Contoh Rancangan Balancing Robot Dibawah ini adalah rangkuman beberapa contoh perancangan balancing robot yang pernah dibuat diantaranya seperti pada tabel berikut dibawah ini : NO Tahun 1. 1886 Gambar Keterangan Kazuo Yamafuji, Tokyo. Membuat robot dua roda inverter pendulum yang pertama versi majalah times pada Tahun 2001. 7 Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 2. 2003 Ooi, Autonomous balancing robot mengkomposisikan 3 elemen pada persamaan linear model persamaan arus pada motor, chassis dan roda. 3. 2004 JOE, dikembangkan laboratorium di Swiss, Switzerland. 4. 2006 Amherst, robot ini bernama UMASS uBOT menggunakan IMU board , sensor accelerometer gyroscope dan LQR system 5. 2007 Steve Hassenplug’s membuat balancing robot dengan RCX Lego, IR lego sensor untuk mendeteksi proximity pada dasar permukaan lantai. 6. 2007 Philippe Hurbain’s menggunakan sensor mendeteksi NXT cahaya, Lego, untuk proximity lantai dan keseimbangan. dari 8 Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 7. 2007 David Anderson’s n BOT menggunakan HC11 controller, robot yang dikembangkan oleh M.I.T 8. 2007 Ted Larson’s Bender, membuat inverter pendulum robot, dengan dua buah sensor untuk mengukur sudut dan Microchip PICI8F452 Tabel 2.3 Beberapa Rancangan Balancing Robot Tabel diatas menunjukan beberapa hasil perancangan balancing robot yang pernah dibuat. 2.3 Aplikasi Balancing Robot Dalam aplikasi balancing robot dapat digunakan untuk : 1. Robot Teleoperasi, adalah perangkat yang dikendalikan dari jarak jauh oleh operator manusia yaitu robot bekerja berdasarkan perintah-perintah yang dikirim melalui pengoperasian robot dari kejauhan, seperti telemanipulator atau teleoperator. Contohnya terdapat pada ruang angkasa seperti satelit penjelajah (voyager’s) yang memantau beberapa planet-planet oleh para ilmuan dan mengirim datanya melalui kamera. Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 9 Gambar 2.4 Contoh Teleoperasi Gambar diatas adalah contoh robot yang bekerja pada satelit ‘voyager’ penjelajah di ruang angkasa dan gambar suasana pada saat teleconference. 2. Robot Telemanipulator yaitu robot yang cara bekerja mengendalikan sesuatu seperti ‘tangan’ manusia. Contoh : Pada alat IED detonator penjinak bom yang bekerja untuk memeriksa kemungkinan ledakan pada bom. Dalam pengoperasiannya dapat melindungi manusia sebagai operator dari ledakan yang berbahaya. Gambar 2.5 IED Detonator Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 10 Contoh lain : Penggunaan pisau bedah binocular 3 dimensi yang pada saat operasi dapat dilihat secara langsung pembedahan pada layar monitor. Gambar 2.6 Operasi bedah dengan binocular 3. Single Human Transporter Single human transporter adalah kendaraan yang beroperasi menggunakan konsep balancing robot seperti pada contoh kendaraan segway Gambar 2.7 Segway Gambar diatas adalah contoh aplikasi pada rangkaian balancing robot yaitu kendaraan segway. Model alat transportasi ini yang akan berkembang pada masa depan dengan tidak menggunakan elemen bahan bakar. Berdiri stabil diatas dua roda merupakan sistem transportasi yang menggunakan konsep balancing robot . Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 11 Contoh lain terdapat pada robot penelitian bawah laut, seperti pada gambar dibawah ini : Gambar 2.8 Robot Penelitian Bawah Laut Robot tersebut bekerja untuk menunjang penelitian bawah laut yang membawa kamera, sonar, magnetometer, lengan pemotong, contoh air, mengukur intesitas kelembapan, cahaya dan suhu pada air laut. 2.4 Pendulum Terbalik Pendulum terbalik adalah pendulum dengan massa atas pivot point yang tidak stabil oleh gaya gravitasi. Hal ini diimplementasikan dengan pivot point yang dipasang secara horizontal dengan tiang. Gambar 2.9 Pendulum terbalik (inverted) Sedangkan pendulum normal akan stabil saat menggantung bawah, sebuah pendulum terbalik secara inheren tidak stabil dan harus aktif agar tetap tegak, baik 12 Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 dengan menerapkan torsi pada pivot point atau dengan memindahkan pivot point horizontal sebagai bagian dari sistem umpan balik. M M g Motion T = M*g*sin(0) M T = M*g*sin(90) Gambar 2.10 Gambar Putaran Inverter Pendulum Putaran seimbang = M*g*sin(angle) M = lengan beban (pusat beban & jarak dari pivot) g = gaya gravitasi Gambar diatas mengambarkan hubungan antara putaran dengan lengan massa, gravitasi dan sudut selisih dari titik keseimbangan. M Putaran penyeimbang = ω*Kω ω = satuan sudut (deg/sec) Kω= faktor berat robot & lengan beban Gambar 2.11 Gaya Putaran Penyeimbang Robot yang Bergerak 2.5 LED (Light Emitting Dioda) LED (Light Emitting Dioda) adalah dioda yang dapat memancarkan cahaya pada saat mendapat arus bias maju (forward bias) sehingga hanya akan mengalirkan arus listrik satu arah saja. LED akan memancarkan cahaya apabila Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 13 diberikan tegangan listrik dengan konfigurasi forward bias. Berbeda dengan dioda pada umumnya, kemampuan mengalirkan arus pada LED (Light Emitting Dioda) cukup rendah yaitu maksimal 20 mA. Apabila LED (Light Emitting Dioda) dialiri arus lebih besar dari 20 mA maka LED akan rusak, sehingga pada rangkaian LED dipasang sebuah resistor sebgai pembatas arus. Simbol dan bentuk fisik dari LED (Light Emitting Dioda) dapat dilihat pada gambar berikut : Gambar 2.12 LED (Light Emitting Dioda) Dari gambar diatas dapat kita ketahui bahwa LED memiliki kaki 2 buah seperti dengan dioda yaitu kaki anoda dan kaki katoda. Pada gambar diatas kaki anoda memiliki ciri fisik lebih panjang dari kaki katoda pada saat masih baru, kemudian kaki katoda pada LED (Light Emitting Dioda) ditandai dengan bagian body LED yang di papas rata. Kaki anoda dan kaki katoda pada LED (Light Emitting Dioda) disimbolkan seperti pada gambar diatas. Pemasangan LED (Light Emitting Dioda) agar dapat menyala adalah dengan memberikan tegangan bias maju yaitu dengan memberikan tegangan positif ke kaki anoda dan tegangan negatif ke kaki katoda. Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 2.6 14 Potensiometer Potensiometer adalah resistor tiga terminal dengan sambungan geser yang membentuk pembagi tegangan dapat disetel. Jika hanya dua terminal yang digunakan (salah satu terminal tetap dan terminal geser), potensiometer berperan sebagai resistor variabel atau rheostat. Potensiometer biasanya digunakan untuk mengendalikan peranti elektronik seperti pengendali suara pada penguat. Potensiometer yang dioperasikan oleh suatu mekanisme dapat digunakan sebagai transduser. Gambar 2.13 Potensiometer Prinsip kerja atau cara kerja potensiometer, sebuah potensiometer (POT) terdiri dari sebuah elemen resistif yang membentuk jalur (track) dengan terminal di kedua ujungnya. Sedangkan terminal lainnya biasanya berada di tengah adalah penyapu (wiper) yang dipergunakan untuk menentukan pergerakan pada jalur elemen resistif (resistive). pergerakan penyapu (wiper) pada jalur elemen resistif inilah yang mengatur naik-turunnya nilai resistansi sebuah potensiometer. Elemen resistif pada potensiometer umumnya terbuat dari bahan campuran metal (logam) dan keramik ataupun bahan karbon (carbon). Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 15 Berdasarkan track atau jalur elemen resistifnya, potensiometer dapat digolongkan menjadi 2 jenis yaitu potensiometer linear (linear potentiometer) dan potensiometer logaritmik (logarithmic potentiometer). Dengan kemampuan yang dapat mengubah resistansi atau hambatan, potensiometer sering digunakan dalam rangkaian atau peralatan elektronika dengan fungsi sebagai berikut : 1. Sebagai pengatur Volume pada berbagai peralatan Audio/Video seperti Amplifier, Tape Mobil, DVD Player. 2. Sebagai Pengatur Tegangan pada Rangkaian Power Supply 3. Sebagai Pembagi Tegangan 4. Aplikasi Switch TRIAC 5. Digunakan sebagai Joystick pada Tranduser 6. Sebagai Pengendali Level Sinyal 2.7 Motor DC Dalam motor pengerak listrik dikenal dua macam motor penggerak, yaitu motor penggerak DC. Motor DC terdiri dari dua buah koil sebagai stator, dan inti magnet yang bisa berputar di sumbunya sebagai motor. Karenanya putaran motor DC ini merupakan putaran kontinyu. Gambar 2.15 menunjukkan motor DC yang telah dilengkapi dengan gearbox dimana fungsi gearbox untuk memberikan torsi pada putaran motor DC. Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 16 Gambar 2.14 Motor DC internal gearbox Gambar diatas adalah gambar motor DC yang memiliki beberapa elemen penting seperti rotor dan bagian lain. 2.8 Sensor Gyroskop Gyroskop adalah alat yang berguna untuk menentukan orientasi gerak yang berputar pada poros sumbu. Gyroskop memiliki output terhadap kecepatan sudut dari arah sumbu x yang nantinya akan menjadi sudut phi (roll), dari sumbu y nantinya menjadi sudut theta (pitch), dan sumbu z nantinya menjadi sudut psi (yaw). Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 17 Gambar 2.15 Sensor gyroskop Gyroskop adalah perangkat untuk mengukur atau mempertahankan orientasi, dengan prinsip ketetapan momentum sudut. Mekanismenya adalah sebuah roda berputar dengan piringan didalamya yang tetap stabil. Gyroskop sering digunakan pada robot atau heli dan alat-alat cangggih lainnya. Gyroskop berupa sensor untuk menentukan orientasi gerak dengan bertumpu pada roda atau cakram yang berotasi dengan cepat pada sumbu. Gyro sensor bisa mendeteksi gerakan sesuai gravitasi atau dengan kata lain mendeteksi gerakan pengguna. Seperti dalam contoh sebuah game pertempuran, bila ingin melihat situasi sekeliling dengan menyapu layar searah terus menerus untuk berputar. Dengan sensor ini cukup berputar sesuai gravitasi seperti benar-benar melihat sekeliling. Bila melihat sebuah obyek 3D cukup berputar untuk melihat setiap sudut obyek tersebut. Tentu ini adalah sebuah metode yang menghasilkan pengalaman seolah nyata. Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 18 Seadangkan Prinsip kerja gyroskop sensor bisa mendeteksi gerakan sesuai gravitasi atau mendeteksi gerakan pengguna. Gambar 2.16 Sudut axis terhadap gravity Gambar diatas menunjukan hubungan antara sudut axis terhadap gravity pada sebuah perangkat. 2.9 Mikrocontroler DFRduino Uno R3 DFRduino Uno V3.0 dari DFRobot adalah dunia fisik komputasi dewan ukuran kecil untuk akademisi atau pengembangan. Ini adalah papan mikrokontroler sederhana sepenuhnya kompatibel dengan Arduino UNO R3 dan Arduino IDE lingkungan pengembangan open source. Lingkungan ini menerapkan bahasa Pengolahan / Wiring. Arduino dapat digunakan untuk mengembangkan objek interaktif yang berdiri sendiri atau dapat dihubungkan ke Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 19 perangkat lunak pada komputer Anda (misalnya Flash, Pengolahan, MaxMSP). Open-source IDE dapat didownload secara gratis saat ini. Gambar 2.17 Board DFRduino Uno ATmega328P, V3.0 R3 DFRduino Uno R3 adalah board rangkaian mikrokontroller yang berbasis IC ATmega328P. Arduino memiliki 14 pin input/output yang mana 6 pin dapat digunakan sebagai PWM (Pulse Wide Modulation), 6 analog input, kristal osilator 16 MHz, koneksi USB, jack power, header ICSP dan tombol reset. Ini berisi semua yang diperlukan untuk mendukung mikrokontroller, hanya menghubungkannya ke komputer dengan menggunakan kabel USB dan menyalakan power itu dengan adaptor DC atau baterai untuk mulai mengoperasikan. Yang menarik tentang mikrokontroler DFRduino adalah bahwa header menggunakan warna yang berbeda untuk fitur I / O port dari berbagai jenis: Merah untuk Barisan Power. Biru untuk Analog I / O. Hijau untuk Digital I / O. Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 20 DRFduino Uno adalah papan mikrokontroler berdasarkan ATmega328. Ini memiliki 14 digital pin input / output (dimana 6 dapat digunakan sebagai output PWM), 6 input analog, osilator kristal 16 MHz, koneksi USB, jack listrik, header ICSP, dan tombol reset. Ini berisi semua yang diperlukan untuk mendukung mikrokontroler; hanya menghubungkannya ke komputer dengan kabel USB dengan adaptor AC-DC atau baterai untuk memulai. Forum ini menambahkan SDA dan SCL pin yang dekat dengan pin AREF dan dua pin baru lainnya ditempatkan dekat dengan pin RESET, yang IOREF yang memungkinkan perisai untuk beradaptasi dengan tegangan yang disediakan dari papan. Di masa depan, perisai akan kompatibel baik dengan papan yang menggunakan AVR, yang beroperasi dengan 5V dan dengan Arduino Karena yang beroperasi dengan 3.3V. Yang kedua adalah pin tidak terhubung, yang dicadangkan untuk keperluan di masa yang akan datang. 2.10 Motor Driver/Shield 2 A DFRobot Arduino perisai (2A) menggunakan L298P Chip yang bekerja pada tegangan 7-12V motor DC dengan arus maksimum 2A. Perisai ini juga bisa langsung digunakan ke standar Arduino Duemilanove dan Arduino Mega. Kontrol kecepatan dicapai melalui PWM konvensional yang dapat diperoleh dari output PWM Arduino itu Pin 5 dan 6. mengaktifkan / menonaktifkan fungsi kontrol motorik ditandai dengan Arduino Digital Pin 4 dan pin 7. Motor perisai dapat diaktifkan langsung dari Arduino atau dari sumber daya eksternal. Hal ini sangat dianjurkan untuk menggunakan catu daya eksternal untuk menyalakan perisai bermotor. Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 21 Gambar2.18 Motor driver/ shield 2A Menggunakan L298P Chip yang memungkinkan untuk mendorong dua 712V motor DC dengan arus maksimum 2A, memiliki Logic Control Voltage: 5V. Sangat dianjurkan untuk menggunakan catu daya eksternal untuk daya perisai bermotor Fungsi Pin yang digunakan : Pin Fungsi Digital 4 Pengendali Arah Putaran Motor 2 Digital 5 Pengendali PWM Motor 2 Digital 6 Mengendalikan PWM Motor 1 Digital 7 Mengendalikan Arah Putaran Motor 1 Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 2.11 22 Penjelasan singkat karakter bahasa C pada software Arduino : Struktur Setiap program Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang harus ada. void setup( ) { } Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya. void loop( ) { } Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan. syntax //(komentar satu baris) Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program. /* */(komentar banyak baris) Jika ada banyak catatan, maka hal itu dapat dituliskan pada beberapa baris sebagai komentar. Semua hal yang terletak di antara dua simbol tersebut akan diabaikan oleh program. { }(kurung kurawal) Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan). Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 23 ;(titk koma) Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan). Variabel Sebuah program secara garis besar dapat didefinisikan sebagai instruksi untuk memindahkan angka dengan cara yang cerdas. Variabel inilah yang digunakan untuk memindahkannya. int (integer) Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767. long (long) Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte (32 bit) dari memori (RAM) dan mempunyai rentang dari -2,147,483,648 dan 2,147,483,647. boolean (boolean) Variabel sederhana yang digunakan untuk menyimpan nilai TRUE (benar) atau FALSE (salah). Sangat berguna karena hanya menggunakan 1 bit dari RAM. float (float) Digunakan untuk angka desimal (floating point). Memakai 4 byte (32 bit) dari RAM dan mempunyai rentang dari -3.4028235E+38 dan 3.4028235E+38. char (character) Menyimpan 1 karakter menggunakan kode ASCII (misalnya 'A' = 65). Hanya memakai 1 byte (8 bit) dari RAM. Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 24 Operator Matematika Operator yang digunakan untuk memanipulasi angka (bekerja seperti matematika yang sederhana). Simbol = Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x sekarang sama dengan 20). Simbol % Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2). Simbol + Penjumlahan Simbol Pengurangan Simbol * Perkalian Simbol / Pembagian Operator Pembanding Digunakan untuk membandingkan nilai logika. Simbol == Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12 adalah TRUE (benar)) Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 25 Simbol != Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 != 12 adalah FALSE (salah)) Simbol < Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12 adalah FALSE (salah) atau 12 < 14 adalah TRUE (benar)) Simbol > Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah)) Struktur Pengaturan : Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini adalah contoh elemen dasar pengaturan : 1. if..else, dengan format seperti berikut ini: if (kondisi) { } else if (kondisi) { } else { } Dengan struktur seperti diatas program akan menjalankan kode yang ada di dalam kurung kurawal jika kondisinya TRUE, dan jika tidak (FALSE) maka akan diperiksa apakah kondisi pada else if dan jika kondisinya FALSE maka kode pada else yang akan dijalankan. 2. for, dengan format seperti berikut ini: for (int i = 0; i < #pengulangan; i++) { } Digunakan bila anda ingin melakukan pengulangan kode di dalam kurung kurawal beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 26 diinginkan. Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan i-. Digital 1. Pin Mode (pin, mode) Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin yang akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa digunakan adalah INPUT atau OUTPUT. 2. Digital Write (pin, value) Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan HIGH (ditarik menjadi 5 volts) atau LOW(diturunkan menjadi ground). 3. Digital Read (pin) Ketika sebuah pin ditetapkan sebagai INPUT maka anda dapat menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah HIGH (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground). Analog Contoh pemakaian dalam analog yang bukan digital. 1. Analog Write (pin, value) Beberapa pin pada Arduino mendukung PWM (pulse width modulation) yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup (on) atau mati (off) dengan sangat cepat sehingga membuatnya dapat berfungsi layaknya keluaran analog. Value (nilai) pada format kode tersebut adalah angka antara 0 ( 0% duty cycle ~ 0V) dan 255 (100% duty cycle ~ 5V). Perancangan Balancing Robot Roda Dua Berbasis Mikrokontroler DFRduino Uno V3.0 R3 27 2. Analog Read (pin) Ketika pin analog ditetapkan sebagai INPUT anda dapat membaca keluaran voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024 (untuk 5 volts) sampai catu daya (power) dilepaskan.