Perancangan Aplikasi Pemrograman Diagram Alir untuk Trainer

advertisement
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
Download