BAB II DASAR TEORI Pada Bab ini dibahas mengenai dasar teori dan hubungan antar perangkat keras yang digunakan yaitu mikrokontroler, SRF-05, photointerrupter, bluetooth HC-05. Selain itu juga akan dibahas perangkat lunak yang digunakan untuk membuat program aplikasi berbasis android sistem berikut ini beberapa teori pendukung yang digunakan sebagai acuan skripsi ini. 2.1. Kajian Pustaka PEMBUATAN PERANGKAT LUNAK BERBASIS DIAGRAM ALIR UNTUK MENGONTROL ROBOT Pada [1] dijalaskan tentang perancangan robot dengan pengendali menggunakan diagram alir dengan cara membuat suatu perangkat lunak berbasis diagram alir menggunakan simbol-simbol dari tiap blok diagram yang memiliki perintah untuk menggerakkan robot. Perintah ini berupa source code yang dikirim dari PC ke mikrokontroler AT89S52. Mikrokontroler menampilkan simulasi berdasarkan diagram alir yang dibuat pada perangkat lunak. Simulasi output dari perangkat lunak ditunjukkan pada port 0 mikrokontroler, sedangkan simulasi input dari perangkat lunak ditunjukkan pada port 1 mikrokontroler. Simulasi output yang dihasilkan sesuai dengan diagram alir pada perangkat lunak, yang dibuat dapat digunakan untuk mengontrol robot. Untuk dapat diimplementasikan secara langsung pada robot, diperlukan perangkat tambahan seperti driver, ADC (analog to digital converter), DAC (digital to analog converter). 2.2. Diagram Alir Untuk memudahkan dalam membuat sebuah program. Langkah pertama yang dapat dilakukan oleh programmer adalah dengan membuat diagram alir. Diagram alir dapat membantu programmer untuk memahami alur dari program yang akan dibuat. Diagram alir 5 dapat membantu dalam membuat source code karena logika dari program tersebut telah dirancang di dalam diagram alir. Diagram alir dapat digunakan mulai dari bahasa pemrograman tingkat rendah sampai dengan bahasa pemrograman tingkat tinggi. Pemrograman fungsional ataupun pemrograman berorientasi objek, semuanya menggunakan diagram alir dalam analisis pembuatan design nya. Tabel 2.1 Tabel diagram alir [2] 2.3. Perangkat Keras Pada tugas akhir ini digunakan perangkat keras untuk mendukung pengerjaan trainer robotika diantaranya adalah mikrokontroler,SRF-05, modul bluetooth, driver motor L298 dan photointerrupter. Berikut ini penjelasan dari setiap perangkat keras yang akan digunakan dalam tugas akhir ini : 6 2.3.1. Mikrokontroler AT-Mega 328 Arduino adalah sebuah board mikrokontroler yang berbasis At-Mega 328. Arduino memiliki 14 pin input/output yang mana 6 pin dapat digunakan sebagai output PWM (Pulse with modulation), 6 analog input, crystal osilator 16 MHz, koneksi USB, jack power, ICSP, dan tombol reset. Arduino mampu men-support mikrokontroler dapat dikoneksikan dengan komputer menggunakan kabel usb. Gambar 2.1 Board Arduino Uno Arduino merupakan sebuah board minimum sistem mikrokontroler yang bersifat open source. Di dalam rangkaian board arduino terdapat mikrokontroler AVR seri At-Mega 328 yang merupakan produk dari Atmel. Arduino memiliki kelebihan tersendiri dibanding board mikrokontroler yang lain selain bersifat open source, Arduino juga mempunyai bahasa pemrogramanya sendiri yang berupa bahasa C. Selain itu dalam board arduino sendiri sudah terdapat loader yang berupa usb. Port usb tersebut digunakan untuk upload program ke dalam mikrokontroler, selain itu port usb tersebut bisa juga difungsikan sebagai port komunikasi serial. Arduino menyediakan 20 pin I/O, yang terdiri dari 6 pin input analog dan 14 pin digital input/output. Untuk 6 pin analog sendiri bisa juga difungsikan sebagai output digital jika diperlukan output digital tambahan selain 14 pin yang sudah tersedia. Untuk mengubah pin analog menjadi digital cukup mengubah konfigurasi pin pada program. Dalam board terlihat bahwa pin I/O digital diberi keterangan 0-13, jadi untuk menggunakan pin analog menjadi output digital, pin analog yang pada keterangan board 0- 7 5 kita ubah menjadi pin 14-19. dengan kata lain pin analog 0-5 berfungsi juga sebagi pin output digital 14-16 [3]. Berikut ini adalah konfigurasi dari Arduino uno: 1. Mikronkontroler At-Mega 328. 2. Beroperasi pada tegangan 5V. 3. Tegangan input (rekomendasi) 7 - 12V. 4. Batas tegangan input 6 - 20V. 5. Pin digital input/output 14 (6 mendukung output pwm). 6. Arus pin per input/output 40 mA. 7. Arus untuk pin 3.3V adalah 50 mA. 8. Flash Memory 32 KB (At-Mega 328) yang mana 2 KB digunakan oleh bootloader. 9. SRAM 2 KB (At-Mega 328). 10. EEPROM 1KB (At-Mega 328). 11. Kecepatan clock 16 MHz. 2.3.1.1. Sumber Tegangan pada Arduino Arduino dapat diberikan power melalui koneksi usb atau power supply. Power supply dapat menggunakan adaptor dc atau baterai. Adaptor dapat dikoneksikan dengan menyambungkan jack adaptor pada koneksi port input supply. Board arduino dapat dioperasikan menggunakan supply dari luar sebesar 6 - 20 volt. Jika supply kurang dari 7 V, maka akan mengakibatkan pin 5 V akan menyuplai kurang dari 5 volt dan board bisa menjadi tidak stabil. Jika menggunakan lebih dari 12 V, tegangan di regulator bisa menjadi sangat panas dan menyebabkan kerusakan pada board. Rekomendasi tegangan ada pada 7 V sampai 12 V. Penjelasan pada pin power adalah sebagai berikut : 1. Vin (Tegangan input) Tegangan input ke board arduino ketika menggunakan tegangan dari luar (seperti yang disebutkan 5 volt dari koneksi usb atau tegangan yang diregulasikan). Pengguna dapat memberikan tegangan melalui pin ini, atau jika tegangan suplai menggunakan power jack, aksesnya menggunakan pin ini. 8 2. 5V Regulasi power supply digunakan untuk power mikrokontroller dan komponen lainnya pada board. 5V dapat melalui Vin menggunakan regulator pada board, atau supply oleh usb atau supply regulasi 5V lainnya. 3. 3V3 Suplay 3.3 volt didapat oleh FTDI chip yang ada di board. Arus maksimal adalah 50mA. 4. Pin Ground Berfungsi sebagai jalur ground pada arduino. 2.3.1.2. Memori At-Mega 328 memiliki 32 KB (kilobyte) flash memory untuk menyimpan kode, juga 2 KB yang digunakan untuk bootloader. At-Mega 328 memiliki 2 KB untuk SRAM (Static Random Access Memory) dan 1 KB untuk EEPROM (Electrically Erasable Programmable Read-Only Memory). 2.3.1.3. Input dan Output 14 pin digital pada Arduino dapat digunakan sebagai input atau output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Input/output dioperasikan pada 5 volt. Setiap pin dapat menghasilkan atau menerima maksimal 40 mA dan memiliki internal pull-up resistor (disconnected oleh default) 20-50 Kilo Ohm. Beberapa pin memiliki fungsi sebagai berikut : 1. Serial : 0 rx (receiver) dan 1 tx (transmiter). Digunakan untuk menerima rx dan mengirim tx ttl data serial. Pin ini terhubung pada pin yang berkoresponden dari usb ftdi ke ttl chip serial. 9 2. Interupt eksternal : 2 dan 3. Pin ini dapat dikonfigurasikan untuk trigger sebuah interupt pada low value, rising atau falling edge, atau perubahan nilai. 3. PWM (pulse with modulation) : 3, 5, 6, 9, 10, dan 11. Mendukung 8-bit output pwm dengan fungsi analogWrite(). 4. SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin ini mensuport komunikasi spi, yang mana masih mendukung hardware, yang tidak termasuk pada bahasa arduino. 5. Led : 13. Ini adalah dibuat untuk koneksi led ke digital pin 13. Ketika pin bernilai High, led hidup, ketika pin low, led mati. 2.3.2. Sensor Ultra Sonic SRF-05 Sensor jarak adalah sebuah tranduser yang mampu mengukur jarak antara satu objek dengan objek lainnya. Sebuah robot yang memiliki kecerdasan dapat bergerak tanpa menabrak objek-objek yang ada di sekitarnya. Untuk itu diperlukan sensor jarak agar robot dapat mendeteksi keberadaan objek-objek di sekitarnya. SRF-05 menggunakan gelombang ultrasonik sebagai media pengukurannya Gambar 2.2 Gambar SRF-05 Untuk mengukur jarak dengan SRF-05.Dengan Memberikan sebuah pulsa high selama 10uS kepada pin trigger maka bagian transmitter SRF-05 akan memancarkan 8 cycle burst ultrasonik dengan frekuensi 40 kHz. Setelah ultrasonik dipancarkan maka SRF05 akan membuat pin echo menjadi high. Jika bagian receiver menerima pantulan ultrasonik dari transmitter tadi maka pin echo akan dibuat low kembali. Lamanya waktu dari mulai echo bernilai high sampai low lagi sekitar 100 us-18 ms. Namun jika receiver tidak menerima gelombang pantulan atau tidak ada objek yang dideteksi maka echo tetap high sampai kira-kira 36 ms. Untuk melakukan pengukuran kembali berikan waktu minimal 10ms dari saat echo menjadi low sebelum men-trigger SRF-05. Pin echo inilah yang harus diukur dengan menggunakan fasilitas timer yang terdapat di mikrokontroler [4]. 10 Gambar 2.3 Diagram waktu SRF-05 2.3.3. Driver motor L298 Driver motor digunakan untuk mengontrol arah putaran dan kecepatan motor DC yang merupakan penggerak utama dari rangkaian proyek akhir ini. IC driver motor L298 yang di dalamnya terdapat rangkaian H-bridge akan mengontrol putaran motor sesuai data masukan digital yang berasal dari Mikrokontroler, dan pada IC L298 ini juga terdapat pin untuk pengaturan aplikasi PWM (Pulse Width Modulator) yang akan mengatur kecepatan motor DC yang dikendalikannya. L298 memiliki rangkaian dual H-bridge, sehingga mampu mengendalikan dua buah motor DC sekaligus[5]. Karakteristik dari driver motor L298 adalah: 1. Tegangan operasi supply sampai dengan 36 Volt 2. Total arus DC sampai dengan 2A. 11 3. Tegangan logic ”0” sampai dengan 1,5 Volt. 4. Memiliki dua Enable input. Gambar 2.4 Driver motor L298 Fungsi dari tiap-tiap pin driver motor L298 adalah sebagai berikut: 1. Output 1 dan Output 2 (pin 2 dan pin 3) Pin ini merupakan output untuk H-bridge A. 2. Vs (pin 4) Merupakan pin supply tegangan untuk output. 3. Input 1 dan Input 2 (pin 5 dan pin 7) Pin ini digunakan untuk mengontrol H-bridge A. 4. Enable 1 dan Enable 2 (pin 6 dan pin 11) Pin ini berfungsi untuk mengaktifkan dan menonaktifkan H-bridge A dan H-bridge B. 5. Ground (pin 8) Berfungsi sebagai grounding rangkaian driver. 6. Vss (pin 9) Pin ini berfungsi sebagai supply logic untuk driver. 7. Input 3 dan Input 4 (pin 10 dan 12) 12 Berfungsi sebagai masukan pada H-bridge B. 8. Output 3 dan Output 4 (13 dan 14) Merupakan pin output untuk H-bridge B. 9. Current Sensing H-bridge A dan Current Sensing H-bridge B (1 dan 15) Berfungsi untuk membatasi arus pada pin out dengan memasangkan resistor pada pin tersebut kemudian di sambungkan dengan pin ground. 2.3.4. Photointerrupter Photo Interrupter pada tugas akhir ini digunakan untuk menghitung putaran yang ada pada roda robot . Agar mendapatkan jarak dari robot tersebut saat berjalan. Caranya adalah dengan menempatkan sebuah piringan yg disertai lubang-lubang pada bibir piringan tersebut pada sebuah motor. Jumlah lubang yang dideteksi oleh photo-interrupter dalam selang waktu tertentu dapat merepresentasikan jarak dari robot tersebut saat berjalan [6]. Gambar 2.5 Untai photointerrupter Kedua rangkaian di atas mempunyai perhitungan nilai hambatan R1 & R2 yang sama, hanya saja logika outputnya yg berbeda. Common-emittor Jika terdapat halangan pada celah antara infrared dan phototransistor maka phototransistor akan menghasilkan output high, jika tidak terhalang output low. 13 Common-collector Jika terdapat halangan pada celah antara infrared dan phototransistor maka phototransistor akan menghasilkan output low, jika tidak terhalang output high. Sedangkan untuk perhitungan nilai hambatannya untuk R1 pada transmiter dan R2 pada receiver adalah: Bagian transmitter photo-interrupter terbuat dari sebuah led inframerah yang mempunyai rating VF = 1,7 V dan IF = 20 mA (berdasarkan datasheet H21A3). Sehingga dibutuhkan hambatan input infrared sebesar : Untuk menghindari kerusakan pada infrared, nilai hambatan input yang dipakai dapat diperbesar menjadi 180 Ω. Bagian receiver photointerrupter terbuat dari phototransistor dengan rating VCE(sat) = 0,4 V dan Ic(ON) = 4 mA 2.3.5. Bluetooth HC-05 Modul bluetooth to Serial HC 05 adalah modul bluetooth yang dapat di set sebagai master atau sebagai slave. Mode master adalah mode di mana bluetooth tersebut dapat mengirimkan dan menerima data sedangkan mode slave hanya dimungkinkan bluetooth hanya dapat menerima data. 14 Gambar 2.6 Bluetooth HC-05 Spesifikasi bluetooth HC-05 : 1. Menggunakan bluetooth Chip, dengan bluetooth standard ver.2.0. 2. Low supply voltage 3.3V. 3. Baudrate 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, dapat di set sesuai dengan kebutuhan user. 4. Ukuran PCB : 28mm x 15 mm x 2.35mm. 5. Kebutuhan Arus : Pairing 20~30 mA. Setelah Pair: 8 mA. 6. Sleep Current:No Sleep. 7.Memiliki jangkauan 10 meter. 2.4. Perangkat Lunak perangkat lunak yang digunakan untuk membuat aplikasi trainer robotika berbasis android sistem diantaranya adalah Eclipse IDE, Android Development tools. Berikut ini penjelasan dari aplikasi berikut : 15 2.4.1. Eclipse IDE Eclipse adalah sebuah IDE (Integrated Development Environment) yang digunakan untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform/OS. Oleh karena itu dinamakan dengan platform-independent. Berikut ini adalah sifat dari Eclipse: 1. Multi-platform: Target sistem operasi Eclipse adalah Microsoft windows, Linux, Solaris, AIX, HP-UX dan Mac OS X. 2. Multi-language: Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C++, Cobol Pyton, Perl, PHP, (hypertext prepocessor), dan lain sebagainya. 3. Multi-role : Selain sebagai IDE (Integrated Development Environment) untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya. Eclipse pada saat ini merupakan salah satu IDE favorit dikarenakan gratis dan open source, yang berarti setiap orang boleh melihat kode pemrograman perangkat lunak ini. Selain itu, kelebihan dari Eclipse yang membuatnya populer adalah kemampuannya untuk dapat dikembangkan oleh pengguna dengan komponen yang dinamakan plug-in. 2.4.2. Android Development Tools Pada penjelasan sebelumnya mengenai perangkat lunak Eclipse. Dapat diketahui bahwa Eclipse memiliki kemampuan yang bernama plug-in. Plug-in adalah semacam fungsi atau fitur tambahan yang digabungkan ke sebuah sistem untuk menambah fitur dari system tersebut . ADT (Android Development Tool) adalah salah satu jenis plug-in yang dirancang untuk Perangkat lunak Eclipse yang memberikan mengembangkan aplikasi android. 16 fitur untuk membuat dan