PERANCANGAN ROBOT PENGANTAR MAKANAN SIAP SAJI
SKRIPSI
Oleh: AHMAD AZHARI NIM. 0910000346
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN ILMU KOMPUTER UNIVERSITAS POTENSI UTAMA MEDAN 2015
ABSTRAK Perancangan adalah proses menuangkan ide dan gagasan berdasarkan teoriteori dasar yang mendukung. Proses perancangan dapat dilakukan dengan cara pemilihan komponen yang akan digunakan, mempelajari karakteristik dan data fisiknya, membuat rangkaian skematik dengan melihat fungsi-fungsi komponen yang dipelajari, sehingga dapat dibuat alat yang sesuai dengan spesifikasi yang diharapkan.Robot adalah alat berupa orang-orangan dan sebagainya yang dapat bergerak atau berbuat seperti manusia, dan dikendalikan oleh mesin. Penyaji makanan adalah seseorang yang bertanggugjawab menyajikan makanan. Penyajian makanan yang tidak baik dan etis, bukan saja dapat mengurangi selera makan seseorang tetapi dapat juga menjadi penyebab kontaminasi. Makanan siap saji adalah istilah untuk makanan yang dapat disiapkan dan dilayankan dengan cepat.Penulisan ini akan membahas tentang Perancangan Robot pengantar Makanan Siap Saji menggunakan bahasa pemrograman CodeVisionAVR dan Visual Basic.NET. Dengan adanya aplikasi ini diharapkan dapat membantu pekerjaan manusia dalam mengantarkan makanan ke meja pelanggan secara cepat, tepat dengan mengikuti jalur, garis atau lintasan yang telah ditentukan. Kata kunci : Perancangan, Robot, Makanan Siap Saji, CodeVisionAVR, Visual Basic.NET.
ABSTRACT The design is a process of ideas and ideas based on the basic theories that support. Design process can be done by selecting components that will be used, study the physical characteristics and data, making the circuit schematic to see the functions of the components studied, so that the tool can be made according to the specifications diharapkan.Robot is a tool in the form of a scarecrow and so on that can move or act like a human being, and is controlled by the machine. Food presenter is someone to responsible serving of food. Presentation of the food was not good and ethical, not only can reduce a person's appetite, but can also be the cause of contamination. Fast food is the term for food that can be prepared and administered by cepat.Penulisan will discuss the design of Robot introductory Fast Food CodeVisionAVR using a programming language and Visual Basic.NET. With this application is expected to help the human work in delivering food to the table customers quickly, precisely by following the path, a line or a predetermined trajectory. Keywords : Design, Robot, Fast Food, CodeVisionAVR, Visual Basic.NET.
KATA PENGANTAR
Alhamdulillah penulis ucapkan puji syukur atas kehadirat Allah SWT. yang telah memberikan kesehatan dan kesempatan kepada penulis dan Shalawat beriringkan salam tak lupa penulis tujukan kepada Nabi Muhammad SAW. sehingga penulis dapat melaksanakan dan menyelesaikan Skripsi ini dengan baik, dan juga terima kepada kedua orang tua saya yang telah memberikan doa serta motivasi dan juga materi hingga dapat terselesaikannya penulisan skripsi ini. Terima kasih juga buat sahabat - sahabat saya yang selalu mendoakan dan memberi dukungan dalam penulisan skripsi ini. Adapun judul penulisan skripsi ini yang penulis buat adalah “Perancangan Robot Pengantar Makanan Siap Saji“. Penulisan skripsi ini merupakan syarat untuk menyelesaikan Pendidikan Strata Satu (S1) jurusan Teknik Informatika pada Universitas Potensi Utama. Namun demikian penulisan skripsi ini bukan hanya sekedar “syarat” belaka, tetapi juga merupakan suatu aplikasi nyata terhadap ilmu pengetahuan yang telah penulis dapat selama mengikuti perkuliahaan. Selain itu, penulisan skripsi ini juga sebagai bahan pembelajaran bagi penulis, khususnya dalam hal penulisan karya ilmiah. Maka dengan selesainya penyusunana Skripsi ini, Penulis mengucapkan terima kasih yang sedalam-dalamnya untuk seluruh pihak yang membantu. Pada kesempatan ini Penulis Mengucapkan terima kasih kepada :
1. Bapak Iwan Fitrianto Rahmad, M.Kom selaku Pembimbing I yang telah memberikan waktu, arahan, saran, serta motivasi sehingga penulis dapat menyelesaikan Skripsi ini dengan baik. 2. Bapak Edy Victor Haryanto, M.Kom selaku dosen pembimbing II yang telah memberikan waktu, arahan, saran, serta motivasi sehingga penulis dapat menyelesaikan Skripsi ini dengan baik. 3. Bapak Budi Triandi, M.Kom selaku Ketua Program Studi Teknik Informatika Fakultas Teknik dan Ilmu Komputer Universitas Potensi Utama 4. Ibu Hj. Nuriandy, BA, Selaku Pembina Yayasan Potensi Utama Medan. 5. Bapak Bob Subhan Riza, ST, M.Kom selaku Ketua Yayasan Potensi Utama Medan. 6. Ibu Rika Rosnelly, SH, M.Kom, selaku Rektor Universitas Potensi Utama. 7. Ibu Ratih Puspasari, M.Kom Selaku Dekan Fakultas Teknik Dan Ilmu Komputer Universitas Potensi Utama. 8. Ayahanda H. Abdu Rahim dan Ibunda Tercinta Hj. Azizah, yang selalu memberikan do’a dan tanpa henti-hentinnya memberikan dukungan baik materi maupun moril kepada penulis dalam menyelesaikan penulisan Skripsi ini. 9. Abang dan Kakak penulis yang selalu merberikan do’a dan dukungan maupun moril kepada penulis dalam menyelesaikan penulisan skripsi ini. 10. Kepada sahabat-sahabat dan teman-teman JAROT Family yang telah memberikan dukungan moril serta do’a kepada penulis dalam menyelesaikan penulisan skripsi ini.
11. Kepada seluruh teman seperjuangan di kelas TI-D Malam dan kelas Pemintan Kecerdasan Buatan, atas bantuan dan motivasi untuk menyelesaikan laporan ini. Didalam penulisan ini penulis sadar, bahwa masih banyak kekurangan dan jauh dari sempurna. Untuk itu penulis mengharapkan kritik dan saran yang bersifat membangun dari pembaca agar lebih bermanfaat bagi penulis dan bagi kita semua.
Medan, 19 September 2015 Penulis
Ahmad Azhari NIM : 0910000346
DAFTAR ISI
ABSTRAK KATA PENGANTAR ....................................................................................
i
DAFTAR ISI ...................................................................................................
iv
DAFTAR GAMBAR ......................................................................................
viii
DAFTAR TABEL...........................................................................................
xi
DAFTAR LAMPIRAN ..................................................................................
xii
BAB I
BAB II
PENDAHULUAN ......................................................................
1
I.1. Latar Belakang ....................................................................
1
I.2. Ruang Lingkup Permasalahan ...........................................
1
I.2.1. Identifikasi Masalah ...............................................
2
I.2.2. Perumusan Masalah ...............................................
3
I.2.3. Batasan Masalah ....................................................
3
I.3. Tujuan dan Manfaat ...........................................................
4
I.3.1. Tujuan ....................................................................
4
I.3.2. Manfaat ..................................................................
4
I.4. Metodologi Penelitian .........................................................
4
I.5. Keaslian Penelitian .............................................................
5
I.6. Sistematika Penulisan .........................................................
6
TINJAUAN PUSTAKA ...........................................................
8
II.1. Perancangan ........................................................................
8
II.2. Robot ..................................................................................
8
BAB III
II.3. Penyaji Makanan .................................................................
9
II.4. Makanan Siap Saji ..............................................................
9
II.5. Bluetooth ............................................................................
10
II.6. Mikrokontroler ...................................................................
11
II.6.1. Sejarah Mikrokontroler .........................................
11
II.6.2. Mikrokontroler ATMega8535 ...............................
14
II.6.3. Arsitektur Mikrokontroler .....................................
14
II.6.4. Konfigurasi PIN Mikrokontroler ATMega8535 ...
17
II.7. Motor DC ...........................................................................
19
II.8. LCD (Liquid Crystal Display) ...........................................
20
II.9. Perangkat Lunak ................................................................
23
II.9.1. Pemrograman Bahasa C .........................................
23
II.9.2. CodeVision AVR....................................................
24
II.9.3. Visual Basic .NET ..................................................
25
II.9.4. Perangkat Lunak Downloader ................................
26
II.10. Flowchart ...........................................................................
27
ANALISIS DAN DESAIN SISTEM ........................................
29
III.1. Analisis Masalah ................................................................
29
III.2. Strategi Pemecahan Masalah ..............................................
29
III.3. Identifikasi Kebutuhan ......................................................
30
III.3.1. Kebutuhan Perangkat Keras (Hardware) .............
30
III.3.2. Kebutuhan Perangkat Lunak (Software) .............
31
III.3.3. Kebutuhan Desain ...............................................
31
III.4. Perancangan Hardware.......................................................
32
III.4.1. Perancangan Diagram Blok ..................................
32
III.4.2. Perancangan Rangkaian Power Supply.................
33
III.4.3. Perancangan Rangkaian Mikrokontroler ATMega8535 ......................................................
34
III.4.4. Perancangan Rangkaian Driver Motor..................
37
III.4.5. Perancangan Rangkaian LCD (Liquid Crystal Display) ...................................................
38
III.4.6. Perancangan Rangkaian Sensor Garis .................
39
III.4.7. Perancangan Rangkaian Tombol ..........................
40
III.4.8. Bluetooth ..............................................................
41
III.4.9. Perancangan Rangkaian Lengkap Alat ...............
42
III.5. Perancangan Software........................................................
43
III.5.1. Use Case .............................................................
43
III.5.2. Use Case Memilih Meja ......................................
44
III.5.3. Use Case Menunggu Perintah..............................
45
III.5.4. Use Case Mengantar Makanan.............................. 45 III.5.5. Use Case Menekan Tombol.................................
46
III.5.6. Sequence Diagram ..............................................
46
III.5.7. Activity Diagram ................................................
46
III.5.8. Desain User Interface .........................................
48
III.5.9. Perancangan Program .........................................
49
BAB IV
BAB V
HASIL DAN UJI COBA ...........................................................
50
IV.1. Pengujian Rangkaian Power Supply ..................................
50
IV.2. Pengujian Rangkaian Minimum System ............................
51
IV.3. Pengujian Rangkaian LCD ...............................................
53
IV.4. Pengujian Sensor ...............................................................
54
IV.5. Pengujian Driver Motor ....................................................
56
IV.6. Pengujian Komunikasi Serial ............................................
57
IV.7. Pengujian Tombol .............................................................
58
IV.8. Pengujian Sistem Secara Keseluruhan ..............................
59
IV.9. Proses Kerja Alat ..............................................................
59
IV.10.Hasil Uji Coba Alat ..........................................................
62
IV.11. Kelebihan dan Kekurangan Sistem Yang Dibuat ...........
64
KESIMPULAN DAN SARAN .................................................
66
V.1. Kesimpulan..........................................................................
66
V.2. Saran ....................................................................................
66
DAFTAR PUSTAKA LAMPIRAN
DAFTAR GAMBAR
Gambar II.1.
Bluetooth HC05 ......................................................................
10
Gambar II.2.
Arsitektur Komputer Von Neumann …… ...............................
12
Gambar II.3.
Intel 4004………… .................................................................
13
Gambar II.4.
TMS 1000.................................................................................
13
Gambar II.5.
Bentuk Fisik Mikrokontroller Atmega8535 .............................
14
Gambar II.6.
Diagram Blok Arsitektur Mikrokontroler ATMega8535 .........
16
Gambar II.7.
Konfigurasi Pin Mikrokontroler ATMega8535 .......................
17
Gambar II.8.
Bentuk Fisik Motor DC ............................................................
20
Gambar II.9.
Bentuk Fisik LCD M1632 ........................................................
21
Gambar II.10.
Konfigurasi LCD M1632 .........................................................
21
Gambar II.11.
Tampilan Perangkat Lunak CodeVisionAVR ..........................
24
Gambar II.12.
Interface AVRDude GUI v1.3 ................................................
27
Gambar III.1.
Diagram Blok Rangkaian ........................................................
32
Gambar III.2.
Skematik Rangkaian Power Supply .........................................
34
Gambar III.3.
Skematik Rangkaian Mikrokontroller ATmega8535 ...............
35
Gambar III.4.
Skematik Rangkaian Driver Motor ..........................................
37
Gambar III.5.
Skematik Rangkaian Skematik dari LCD ................................
39
Gambar III.6.
Skematik Rangkaian Sensor Garis ...........................................
40
Gambar III.7.
Skematik Rangkaian Tombol Ke Mikrokontroller ..................
41
Gambar III.8.
Bluetooth ..................................................................................
41
Gambar III.9.
Skematik Rangkaian Lengkap Alat ...........................................
42
Gambar III.10. Use Case Diagram Robot Pengantar Makanan ........................
44
Gambar III.11. Sequence Diagram Robot Pengantar Makanan ........................
47
Gambar III.12. Activity Diagram Robot Pengantar Makanan ..........................
48
Gambar III.13. Desain pada Interface ...............................................................
49
Gambar III.14. Pemilihan Tipe File ..................................................................
49
Gambar III.15. Dialog konfirmasi tentang penggunaan CodeWizardAVR.. ....
49
Gambar III.16. Pemilihan tipe Mikrokontroller dan Kristal .............................
50
Gambar III.17. Setting PORTB.........................................................................
50
Gambar III.18. Setting Komunikasi Serial........................................................
50
Gambar III.19. Generate, Save dan Exit ...........................................................
50
Gambar IV.1.
Rangkaian Power Supply .........................................................
51
Gambar IV.2.
Program Menghidupkan LED ..................................................
52
Gambar IV.3.
Rangkaian Minimum System Mikrokontroller ATmega8535 .
52
Gambar IV.4.
Rangkaian LCD 16x2 Character ..............................................
53
Gambar IV.5.
Menampilkan Karakter Ke LCD ..............................................
54
Gambar IV.6.
Program Membaca Sensor Ke LCD .........................................
55
Gambar IV.7.
Tampilan Nilai Sensor Saat Di Letakkan Pada Warna Hitam .
55
Gambar IV.8.
Tampilan Nilai Sensor Saat Di Letakkan Pada Warna Putih ...
56
Gambar IV.9.
Program Untuk Menggerakkan Motor .....................................
56
Gambar IV.10. Program Untuk Menggerakkan Motor .....................................
57
Gambar IV.11. Pengujian Komunikasi Serial ....................................................
58
Gambar IV.12. Tampil Alat Keseluruhan .........................................................
59
Gambar IV.13. Tampilan LCD Saat Alat Sudah Dapat Digunakan..................
60
Gambar IV.14. Tampilan Interface ....................................................................
61
Gambar IV.15. Tampilan LCD Saat Makanan Sampai .....................................
61
Gambar IV.16. Tampilan Saat Pelanggan Menekan Tombol ...........................
62
Gambar IV.17. Lintasan Robot ..........................................................................
63
DAFTAR TABEL
Tabel I.1.
Perbandingan Sistem Yang Lama Dan Yang Akan Dirancang ..
6
Tabel II.1.
Fungsi Khusus Pin Mikrokontroler ATMega8535 .....................
17
Tabel II.2.
Keterangan Kaki LCD M1632 ....................................................
22
Tabel II.3.
Simbol – simbol Flowchart .........................................................
28
Tabel III.1.
Peta Memori LCD .......................................................................
39
Tabel III.2.
Deskripsi Use Case Memilih Meja .............................................
44
Tabel III.3.
Deskripsi Use Case Menunggu Perintah .....................................
45
Tabel III.4.
Deskripsi Use Case Mengantar Makanan ...................................
45
Tabel III.5.
Deskripsi Use Case Menekan Tombol ........................................
46
Tabel IV.1.
Pengujian Rangkaian Mikrokontroler .........................................
53
Tabel IV.2.
Hasil Pengujian Tombol..............................................................
58
Tabel IV.3.
Hasil Uji Coba Alat Ke Meja 1 ...................................................
63
Tabel IV.4.
Hasil Uji Coba Alat Ke Meja 2 ...................................................
64
Tabel IV.5.
Hasil Uji Coba Alat Ke Meja 3 ...................................................
64
DAFTAR LAMPIRAN
Lampiran-1
Listing Program
Lampiran-2
Surat Pengajuan Judul Skripsi
Lampiran-3
Formulir Pendaftaran Judul Skripsi
Lampiran-4
Surat Pernyataan Bersedia Membimbing Pembimbing I
Lampiran-5
Surat Pernyataan Bersedia Membimbing Pembimbing II
Lampiran-6
Formulir Pendaftaran Seminar Skripsi
Lampiran-7
Berita Acara Seminar Skripsi
Lampiran-8
Formulir Pendaftaran Sidang
BAB I PENDAHULUAN
BAB I PENDAHULUAN
I.1. Latar Belakang Kata robot berasal dari bahasa Ceko yaitu robota, yang berarti pekerja. Menurut arti bahasa, robot adalah sebuah alat mekanik yang dapat melakukan tugas fisik, baik menggunakan pengawasan dan kontrol manusia, atau menggunakan program yang telah didefinisikan terlebih dahulu. Sedangkan menurut Kamus Besar Bahasa Indonesia, robot adalah alat berupa orang-orangan dan sebagainya yang dapat bergerak atau berbuat seperti manusia, dan dikendalikan oleh mesin. (Winarno dan Deni Arifianto ; 2011: 2) Seiring dengan perkembangan teknologi yang semakin modern pada masa sekarang ini, terutama pada bidang automatisasi yang dapat mempermudah dalam pengoperasian suatu alat, sehingga manusia dimudahkan dengan adanya berbagai peralatan yang diciptakan dan dapat dioperasikan serta digunakan secara otomatis. Salah satu teknologi yang dikembangkan saat ini adalah teknologi dibidang robotika. Robot berguna untuk membantu manusia dalam melakukan pekerjaan tertentu, misalnya untuk melakukan pekerjaan yang memerlukan ketelitian tinggi, beresiko tinggi, membosankan atau yang membutuhkan tenaga besar. Kemajuan ilmu pengetahuan dan teknologi telah mendorong manusia untuk berusaha mengatasi segala permasalahan yang timbul disekitarnya, termasuk dalam kasus rimah makan atau restoran. Masalah umum yang biasa dihadapi dalam kinerja rumah makan adalah pengiriman makanan (food delivery)
ke meja pelanggan. Beberapa rumah makan bermasalah dengan jumlah pegawai yang mengantar makanan ke meja pelanggan. Namun dengan adanya teknologi di bidang robotika, kini masalah tersebut bisa diatasai. Robotika bukanlah sesuatu yang baru saat ini sehingga pengembangan dari robot ini sudah banyak dilakukan dalam segala hal pengaplikasiannya. Dimana hampir disemua kalangan meminati dan juga menggunakannya. Salah satunya adalah robot pengikut garis (line follower robot). Robot pengikut garis (line follower) merupakan salah satu bentuk robot bergerak yang banyak dirancang, baik untuk penelitian, industri maupun kompetisi robot. Sesuai dengan namanya, robot line follower akan bergerak mengikuti jalur, garis atau lintasan yang telah dibentuk dengan mapping suatu tempat. Kemampuan robot hampir disemua kegiatan manusia dapat membantu atau meringankan pekerjaan manusia dalam mengatasi masalah, dalam hal ini untuk mengantarkan makanan ke meja pelanggan. Karena robot dapat difungsikan untuk meringankan pekerjaan manusia, maka penulis akan mengambil judul “Perancangan Robot Pengantar Makanan Siap Saji”, dimana robot pengantar makanan ini
diharapkan mampu
membantu pekerjaan
manusia
dalam
mengantarkan makanan ke meja pelanggan secara cepat, tepat dengan mengikuti jalur, garis atau lintasan yang telah ditentukan.
I.2. Ruang Lingkup Permasalahan I.2.1. Identifikasi Masalah Adapun hal-hal yang menjadi identifikasi masalah pada alat ini adalah :
1. Sistem pengantar makanan saat ini umumnya masih dilakukan secara manual yaitu pelayan mengantarkan makanan ke meja masing-masing pembeli. 2. Kesalahan ketika mengantar makanan bisa terjadi apabila banyak pemesanan makanan.
I.2.2. Perumusan Masalah Berikut penulisan masalah yang akan dicari pemecahannya melalui penulisan skripsi ini, antara lain : 1. Bagaimana membuat sebuah robot pengikut garis yang mampu mengantarkan makanan secara otomatis? 2. Bagaimana cara menghubungkan komputer agar dapat mengirimkan perintah ke robot untuk mengantarkan maknan? 3. Bagaimana cara membuat robot agar dapat mengikuti garis, lintasan atau jalur yang sudah di tentukan?
1.2.3. Batasan Masalah Dalam penulisan skripsi ini dibatasi permasalahannya sebagai berikut : 1. Robot hanya dapat berjalan mengikuti garis yang sudah ditentukan lintasannya. 2. Perancangan interface menggunakan Microsoft Visual Basic.Net. 3. Komunikasi antar mikrokontroler dengan software interface pada komputer menggunakan bluetooth. 4. Penulisan kode program menggunakan software CodeVision AVR.
I.3. Tujuan dan Manfaat I.3.1. Tujuan Berdasarkan perumusan masalah di atas maka tujuan yang ingin dicapai dalam penulisan skripsi ini adalah sebagai berikut : 1. Mampu membuat robot pengantar makanan secara otomatis berbasis mikrokontroler. 2. Mengetahui dan memahami mikrokontroler ATMega8535 secara umum. 3. Mampu memberikan perintah ke robot melalui komputer.
I.3.2. Manfaat Adapun manfaat yang dapat diambil dalam penulisan skripsi ini adalah: 1. Didapatkan robot pintar yang dapat menggantikan pekerjaan manusia untuk mengantarkan makanan. 2. Mengurangi kesalahan yang dapat ditimbulkan ketika mengantarkan makanan. 3. Dengan adanya sistem ini dapat membantu dalam ilmu pengetahuan, khususnya dibidang Robotika, Mekatronika, dan Ilmu Komputer.
I.4. Metodologi Penelitian Untuk dapat mengimplementasikan sistem diatas, maka secara garis besar digunakan beberapa metode sebagai berikut: 1. Studi Literatur, dengan cara mempelajari buku-buku acuan dan literatur yang berhubungan dengan materi dalam penulisan skripsi.
2. Pengumpulan data,yaitu mengumpulkan informasi dan mempelajari tentang sistem cara kerja alat dan penggunaan sensor kelembaban tanah. 3. Analisa permasalahan, untuk mengetahui dan menentukan batasan-batasan sistem sehingga dapat menentukan cara yang paling efektif dalam penyelesaian permasalahan. 4. Perancangan alat, setelah menganalisa permasalahan, selanjutnya dilakukan pengumpulan data dan perancangan alat dengan menggunakan model perancangan alat yang telah ditetapkan. 5. Implementasi alat, membuat alat berdasarkan rancangan alat yang telah dibuat sesuai dengan data yang ada. 6. Uji coba alat, menguji alat yang telah dibuat, untuk mengetahui tingkat suhu dan kelembaban pada alat, serta letak kesalahan dan memperbaikinya. 7. Dokumentasi, membuat laporan dari semua pengerjaan yang telah dilakukan.
I.5. Keaslian Penelitian Sebagai bukti penelitian yang akan dibuat, maka penelitian akan dibandingkan terhadap penelitian sejenis yang pernah dilakukan. Kebanyakan penelitian mikrokontroler digunakan untuk ” Pengembangan Rancang bangun robot
pengantar
makanan”
oleh
Daisy
A.N
Perbandingannya dapat dilihat pada tabel dibawah ini :
Janis,
dari
UNSRAT,
Tabel I.1. Perbandingan Sistem Yang Lama dan Yang Akan Dirancang No
Materi Perbandingan
Instrumen
Penelitian Sebelumnya: Rancang Bangun Pengantar Makanan Line Follower 1.
Objek yang dikendalikan
Motor DC
2.
Mikrokontroler
ATMega16
3.
Sensor
Sensor Garis
4.
Driver Motor
L298N
5.
Sistem Kerja
Pada masing-masing meja terdapat tombol untuk kemeja pelanggan.
Penelitian yang akan dibuat : Perancangan Robot Pengantar Makanan Siap Saji 1. Objek yang dikendalikan Motor DC
I.6.
2.
Mikrokontroler
ATMega8535
3.
Sensor
Sensor Garis
4.
Driver Motor
L293D
5.
Sistem Kerja
Tidak menggunakan tombol di masing-masing meja, melainkan menggunakan interface untuk menggerakkan robot ke meja pelanggan yang dikoneksikan menggunakan bluetooth.
Sistematika Penulisan Secara garis besar skripsi ini terdiri dari 5 (lima) bab dan beberapa lampiran
dan setiap bab terdiri dari sub-sub bab. Adapun sistematika penulisan tugas akhir ini adalah :
BAB I
PENDAHULUAN Dalam bab ini penulis menguraikan Latar Belakang, Pernyataan Masalah, Tujuan Penelitian, Manfaat Penelitian, Metode Penelitian, Kajian Pustaka, Ruang Lingkup dan Sistematika Penulisan.
BAB II
LANDASAN TEORI Bab ini berisikan tentang uraian teoritis mengenai pengertianpengertian, metode penyusunan data serta mengenai informasi tentang penyiraman tanaman yang dipergunakan oleh hampir semua kalangan masyarakat serta perancangan alat menggunakan teknologi komputer.
BAB III ANALISIS DAN DESAIN SISTEM Dalam bab ini penulis menguraikan tentang perancangan alat yang dirancang yang meliputi perancangan komponen - komponen, perancangan aplikasiyang akan dibuat. BAB IV HASIL DAN UJI COBA Dalam bab ini penulis menyajikan tentang pengertian implementasi, kelengkapan alat, penyatuan dari setiap alat maupun komponen dan pengujian dari alat yang telah di buat. BAB V
KESIMPULAN DAN SARAN Bab ini berisi rumusan hasil, kelebihan sistem, kelemahan dan keterbatasan sistem serta saran yang diberikan.
BAB II TINJAUAN PUSTAKA
BAB II TINJAUAN PUSTAKA
II.1.
Perancangan Perancangan adalah proses menuangkan ide dan gagasan berdasarkan
teori-teori dasar yang mendukung. Proses perancangan dapat dilakukan dengan cara pemilihan komponen yang akan digunakan, mempelajari karakteristik dan data fisiknya, membuat rangkaian skematik dengan melihat fungsi-fungsi komponen yang dipelajari, sehingga dapat dibuat alat yang sesuai dengan spesifikasi yang diharapkan. (http://elib.unikom.ac.id/download.php?id=95341: Diakses pada tanggal 20 Mei 2015).
II.2.
Robot Winarno dan Deni Arifianto (2011, Hal 2), kata robot berasal dari bahasa
Ceko yaitu robota, yang berarti pekerja. Menurut arti bahasa, robot adalah sebuah alat mekanik yang dapat melakukan tugas fisik, baik menggunakan pengawasan dan kontrol manusia, atau menggunakan program yang telah didefinisikan terlebih dahulu. Sedangkan menurut Kamus Besar Bahasa Indonesia, robot adalah alat berupa orang-orangan dan sebagainya yang dapat bergerak atau berbuat seperti anusia, dan dikendalikan oleh mesin.
II.3.
Penyaji Makanan Penyaji makanan adalah seseorang yang bertanggug jawab menyajikan
makanan. Penyajian makanan yang tidak baik dan etis, bukan saja dapat mengurangi selera makan seseorang tetapi dapat juga menjadi penyebab kontaminasi. Menurut WHO yang dimaksudkan makanan adalah semua benda yang termasuk dalam diet manusia sama ada dalam bentuk asal atau sudah diolah. Makanan yang dikonsumsi hendaknya memenuhi kriteria bahwa makanan tersebut layak untuk dimakan dan tidak menimbulkan penyakit, diantaranya berada dalam derajat kematangan yang dikehendaki, bebas dari pencemaran, bebas dari perubahan fisik atau kimia yang tidak dikehendaki, sebagai akibat dari pengaruh enzim, aktifitas mikroba, hewan pengerat, serangga, parasit dan kerusakan-kerusakan karena tekanan, pemasakan dan pengeringan.dan bebas dari mikroorganisme dan parasit yang menimbulkan penyakit yang dihantarkan oleh makanan. (repository.usu.ac.id/bitstream/123456789/23348/4/Chapter%20II.pdf).
II.4.
Makanan Siap Saji Makanan siap saji adalah istilah untuk makanan yang dapat disiapkan dan
dilayankan dengan cepat. Sementara makanan apapun yang dapat disiapkan dengan segera dapat disebut makanan siap saji, biasanya istilah ini merujuk kepada makanan yang dijual di sebuah restoran atau toko dengan persiapan yang berkualitas rendah dan dilayankan kepada pelanggan dalam sebuah bentuk paket untuk dibawa pergi. Istilah "Makanan Siap Saji" diakui dalam kamus bahasa Inggris Merriam-Webster pada 1951.
II.5.
Bluetooth Bluetooth adalah sebuah teknologi komunikasi wireless (tanpa kabel) yang
beroperasi pada pita frekuensi 2,4 GHz unlicensed ISM (Industrial, Scientific and Medical) dengan menggunakan sebuah frekuensi hopping transceiver yang mampu menyediakan layanan komunikasi data dan suara secara real-time antara host-host bluetooth dengan jarak jangkauan layanan yang terbatas (sekitar 10 meter). Bluetooth juga merupakan spesifikasi industry untuk jaringan kawasan pribadi (Personal Area Networks atau PAN) tanpa kabel. Bluetooth dapat dipakai untuk melakukan tukar menukar informasi di antara peralatan-peralatan. (Heri Andrianto, 2013, Hal 193). Adapun bentuk Bluetooth yang digunakan pada tugas akhir ini dapat dilihat seperti gambar berikut:
Gambar II.1 Bluetooth HC 05 (Sumber : datasheet Bluetooth HC-05)
II.6.
Mikrokontroler Menurut Heri Andrianto (2013, Hal 1-4), mikrokontroler adalah sebuah
komputer kecil (“special purpose computers”) didalam satu IC yang berisi CPU, memori, timer, saluran komunikasi serial dan pararel, Port input/output, ADC. Mikrokontroller digunakan untuk suatu tugas dan menjalankan suatu program. Pada saat ini penggunaan mikrokontroler dapat kita temui pada berbagai peralatan, misalnya peralatan yang terdapat dirumah, seperti telepon digital, microwave oven, televisi, mesin cuci, sistem keamanan rumah, PDA, dll. Mikrokontroler dapat kita gunakan untuk berbagai aplikasi misalnya untuk pengendalian, otomasi industri, akuisi data, telekominikasi dan lain-lain. Keuntungan menggunakan mikrokontroler yaitu harganya murah, dapat diprogram berulang kali, dan dapat kita program sesuai dengan keinginan kita. Saat ini keluarga mikrokontroler yang ada dipasaran yaitu Intel 8048 dan 8051(MCS51), Motorola68HC11, Microchip PIC, Hitachi H8, dan Atmel AVR.
II.6.1. Sejarah Mikrokontroler Mikrokontroler dikembangkan dari mikroprosesor. Berikut ini sejarah perkembangan teknologi mikroprosesor dan mikrokontroler. •
Tahun 1617, Jhon Napier menemukan sistem untuk melakukan perkalian dan pembagian berdasarkan logaritma.
•
Tahun 1694, Gottfriend Wilhelm Leibniz membuat mesin mekanik yang dapat melakukan operasi +,-,*, / dan akar kuadrat.
•
Tahun 1835, Charles Babbage mengusulkan komputer digital (Digital Computer) pertama di dunia menggunakan punched card untuk data dan instruksi, serta program control (looping and branching) dengan unit aritmatik dan unit penyimpanan.
•
Tahun 1850, George Boole mengembangkan symbolic logic termasuk operasi binary (AND, OR, dll).
•
Tahun 1946, Von Neumann menyarankan bahwa instruksi menjadi kode numerik yang disimpan pada memori. Komputer dan semua desain mikrokontroler didasarkan pada komputer Von Neumann. Memori
Address Bus
Program & Data
CPU Data Bus
Gambar II.2 Arsitektur Komputer Von Neumann (Sumber : Heri Andrianto, 2013: 3) •
Tahun 1948, Transistor ditemukan. Dengan dikembangkannya konsep software, pada tahun 1948 mulai adanya perkembangan hardware penting seperti transistor.
•
Tahun 1959, IC (Integrated Circuit) pertama dibuat.
•
Tahun 1971, Intel 4004 dibuat, yang merupakan Mikroprosesor pertama. Terdiri dari 2250 transistor. Kemudian Intel membuat Intel 8008, mikroprosesor 8 bit. Semakin besar ukuran bit berarti mikroprosesor dapat memproses lebih banyak data.
Gambar II.3. Intel 4004 (Sumber : Heri Andrianto, 2013: 3) •
Tahun 1972, TMS 1000, buatan Texas Instrument, Mikrokontroler pertama yang dibuat.
Gambar II.4 TMS 1000 (Sumber : Heri Andrianto, 2013: 4) •
Tahun 1974,beberapa pabrik IC menawarkan mikroprosesor dan pengendali menggunakan mikroprosesor. Mikroprosesor yang ditawarkan pada saat itu yaitu Intel 8080, 8085, Motorola 6800, Signetics 6502, Zilog Z80, dan Texas Instruments 9900 (16 bit).
•
Tahun 1978, mikroprosesor 16 bit menjadi lebih umum digunakan yaitu intel 8086, Motorola 68000 dan Zilog Z8000. Sejak saat itu pabrikan mikroprosesor terus mengembangkan mikroprosesor dengan berbagai keistimewaan dan arsitektur. Mikroprosesor yang dikembangkan termasuk mikroprosesor 32 bit seperti Intel Pentium, Motorola DragonBall, dan beberapa mikrokontroler yang menggunakan ARM core.
II.6.2. Mikrokontroler ATMega8535 Mikrokontroler ATMega8535 merupakan mikrokontroler 8 bit teknologi CMOS dengan konsumsi daya rendah yang berbasis arsitektur enhanced RISC AVR. Dengan eksekusi instruksi yang sebagian besar hanya menggunakan satu siklus clock. ATMega8535 mencapai throughput sekitar 1 MIPS per MHz yang mengizinkan perancang sistem melakukan optimal konsumsi daya versus kecepatan pemrosesan. (Syahrul, 2012, Hal 10). Bentuk fisik dari mikrokontroler Atmega8535 dapat dilihat pada gambar II.5 berikut.
Gambar II.5.Bentuk Fisik Mikrokontroller Atmega8535 (Sumber: www.atmel.com)
II.6.3. Arsitektur Mikrokontroler ATMega8535 Processor AVR menggaungkan set instruksi yang kaya dengan 32 register umum (general purpose registers, GPRs). Ke semua 32 register tersebut dikoneksikan langsung dengan Arithmetic Logic Unit (ALU), mengizinkan dua register independen untuk diakses dalam satu instruksi yang dieksekusi dalam siklus clock. Arsiteksut yang dihasilkan adalah arsitektur ang kode operasinya lebih efisien serta pencapaian throughput nya hingga sepuluh kali lebih cepat
daripada mikrokontroler CISC (Complex Intruction Set Computer) konvensional. (Syahrul, 2012, Hal 10-11). Beberapa fitur utama yang tersedia pada ATMega8535 adalah : •
Port I/O 32 bit, yang dikelompokkan dalam PORTA, PORTB, PORTC, dan PORTD.
•
Analog to Digital Converter 10 bit sebanyak 8 input
•
Timer/Counter sebanyak 3 buah
•
CPU 8 bit yang terdiri dari 32 register
•
Watchdog Timer dengan osilator internal
•
SRAM sebesar 512 byte
•
Memori flash sebesar 8 Kbyte dengan kemampuan read while write
•
Interrupt internal maupun eksternal
•
Port komunikasi SPI
•
EEPROM sebesar 512 byte yang dapat diprgram saat operasi
•
Analog Comparator
•
Komunikasi serial standar USART dengan kecepatan maksimal 2.5 Mbps
•
Frekuensi clock maksimum 16 MHz
Gambar II.6
merupakan diagram blok arsitektur mikrokontroler
ATMega8535.
Gambar II.6. Diagram Blok Arsitektur Mikrokontroler ATMega8535 (Sumber: Syahrul, 2012: 12)
II.6.4. Konfigurasi PIN Mikrokontroler ATMega8535 Konfigurasi pin mikrokontroler AVR ATmega8535 untuk 40 pin DIP (Dual in Line Package) ditunjukkan pada gambar berikut:
Gambar II.7. Konfigurasi Pin Mikrokontroler ATMega8535 (Sumber: Syahrul, 2012: 1) Untuk dapat memahami lebih jauh tentang konfigurasi pin ATMega8535 maka pada table II.1 diberikan deskripsi kaki-kai atau pin pada mikrokontroler ATMega8535: Tabel II.1 Fungsi Khusus Pin Mikrokontroler ATMega8535 No. Pin 10
VCC
Catu daya
11
GND
Ground
PortA: PA0-PA7
Port I/O dua arah dilengkapi internal pill-
(ADC0-ADC7)
up resistor. Port ini juga di multipleks
40-33
Nama Pin
Keterangan
dengan masukan analog ke ADC 8 kanal. 1-7
PortB: PB0-PB7
Port I/O dua arah dilengkapi internal pillup resistor. Fungsi lain dari masing-
masing port ini adalah: PB0 T0 (timer/counter0 external counter input) PB1 T1 (timer/counter1 external counter input) PB2 AIN0 (analog comparator positive input) PB3 AIN1 (analog comparator positive input) PB4 SS (SPI slave select input) PB5 MOSI (SPI bus master output/s;ave input) PB6 MISO (SPI bus master input/slave output) PB7 SCK (SPI bus serial clock 22-29
PortC: PC0-PC7
Port I/O dua arah dilengkapi internal pull up resistor. Dua pin yaitu PC6 dan PC7 berfungsi sebagai osilator eksternal untuk timer/counter2
14-21
PortD: PD0-PD7
Port I/O dua arah dilengkapi internal pillup resistor. Fungsi lain dari masingmasing port ini adalah: PD0 RXD (UART input line) PD1 TXD (UART output line) PD2 INT0 (External interrupt 0 input) PD3 INT1 (External interrupt 1 input) PD4 OC1B (timer/counter1 output compare B match output)
PD5 OC1A (timer/counter1 output compare A match output) PD6 ICP (timer/counter1 input capture pin) PD7 OC2 (timer/counter2 utput compare match output) 9
RESET
Masuka reset. Sebuah resetterjadi jika pin ini diberi logika low melebihi periode minimu yang diperlukan
13
XTAL1
Masukan ke inverting oscillator amplifier dan masukan ke rangkaian internal clock
12
XTAL2
Keluaran dari inverting oscillator amplifier
30
AVCC
Catu daya untuk PortA dan ADC
31
AGND
Analog ground
32
AREF
Referensi masukan analog untuk ADC (Sumber : Syahrul, 2012; 13-15)
II.7.
Motor DC Menurut Sumardi (2013, Hal 95), motor DC adalah perangkat mesin
pertama yang mengkonversikan besaran listrik menjadi besaran mekanik. Putaran dan torsi pada motor DC dihasilkan dari gaya tarik menarik dan gaya drong yang dihasilkan oleh medan magnetik pada motor DC tersebut. Motor DC terdiri dari 6 bagian utama, antara lain: •
Axis atau poros motor DC
•
Bagian yang berputar disebut rotor
•
Bagian yang tetap disebut stator
•
Komuntator
•
Filed Magnets
•
Brushes Perancangan motor DC berbeda-beda, ada motor DC dengan bagian rotor
nerupakan kumparan kawat dan bagian stator adalah magnet permanen, motor jenis ini disebut motor magnet permanen. Adapula motor DC dengan bagian rotor merupakan magnet permanen dan bagian stator adalah terdiri dari kumparan kawat, motor jenis ini disebut wound field motor. Bentuk fisik motor DC dapat dilihat pada gambar II.8 berikut:
Gambar II.8. Bentuk Fisik Motor DC (Sumber : Syahrul, 2012. Mikrokontroler AVR Atmega8535)
II.8.
LCD (Liquid Crystal Display) Menurut Sumardi (2013: Hal 36), modul LCD (Liquid Crystal Display)
adalah salah satu alat yang digunakan sebagai tampilan. M1632 merupakan modul dot-matrix tampilan kristal cair (LCD) dengan tampilan 16x12 baris dengan konsumsi daya rendah. Modul LCD ini telah dilengkapi dengan chip kontroller
yang didesain khusus untuk mengendalikan LCD, berfungsi sebagai driver LCD dan penghasi karakter (character generator). Bentuk fisik dari LCD M1632 dapat dilihat pada gambar II.9 berikut:
Gambar II.9. Bentuk Fisik LCD M1632 (Sumber : Sumardi; 2013; 36)
Sedangkan untuk konfigurasi dari modul LCD M1632 dapat dilihat pada gambar II.10 berikut:
Gambar II.10. Konfigurasi LCD M1632 (Sumber : Sumardi; 2013; 37)
Untuk dapat memahami lebih jauh tentang konfigurasi LCD M1632 maka pada tabel II.2 diberikan deskripsi keterangan kaki-kai LCD M1632 sebagai berikut:
Tabel II.2. Keterangan Kaki LCD M1632 No
Symbol Level
Fungsi
1
Vss
-
0 Volt
2
Vcc
-
5 + 10% Volt
3
Vee
-
Pengerak LCD H=memasukkan data
4
RS
H/L
Ins
5
R/W
H/L
H=baca L=tulis
6
E
7
DB0
H/L
8
DB1
H/L
9
DB2
H/L
10
DB3
H/L
11
DB4
H/L
12
DB5
H/L
13
DB6
H/L
14
DB7
H/L
15
V+BL
16
V-BL
L=memasukkan
Enable Signal
Data BUS
Kecerahan LCD
(Sumber : Sumardi; 2013; 36)
Modul LCD tipe M1632 memiliki karakteristik sebagai berikut: •
Terdapat 16x2 karakter huruf yang bisa ditampilkan
•
Setiap huruf terdiri dari 5x7 dot-matrik + cursor.
•
Terdapat 192 macam karakter
•
Terdapat 80x8 bit display RAM (maksimal 80 karakter)
•
Memiliki kemampuan penulisan dengan 8 bit maupun 4 bit
•
Dibangun dengan osilator local
•
Satu sumber tegangan 5 volt
•
Otomatis reset saat tegangan dihidupkan
•
Bekerja pada suhu 00 C sampai 550 C
II.9. Perangkat Lunak II.9.1. Pemrograman Bahasa C Pada perancangan program pada alat, program yang digunakan adalah pemrograman bahasa C. Untuk dapat memahami bagaimana suatu program ditulis, maka struktur dari program harus dimengerti terlebih dahulu, atau sebagai pedoman penulis program (programmer) bagaimana seharusnya program tersebut ditulis. Struktur dari program C dapat dilihat sebagai kumpulan dari sebuah atau lebih fungsi-fungsi. Fungsi pertama yang harus ada di program C yang sudah ditentukan namanya, yaitu fungsi main(). Artinya program C minimal memiliki satu fungsi (fungsi main()). Fungsi-fungsi lain selain fungsi utama bisa dituliskan setelah atau sebelum fungsi utama dengan deskripsi prototype fungsi pada bagian awal program. Bisa juga dituliskan pada file lain yang apabila kita ingin memakai atau memanggil fungsi dalam file lain tersebut, kita harus menuliskan header filenya, dengan preprocessor directive #include. File ini disebut file pustaka (library file).
II.9.2. CodeVisionAVR Menurut Sumardi, (2013: Hal 12-13), CodeVision AVR compiler (CV AVR) merupakan compiler bahasa C untuk AVR. CV AVR ini dapat berjalan di bawah sistem operasi Windows 9x, Me, NT, 2000 dan XP. CV AVR ini dapat mengimplementasikan hampir semua instruksi bahasa C yang sesuai dengan arsitektur AVR, bahkan terdapat beberapa keunggulan tambahan untuk memenuhi keunggulan spesifik dari AVR. Hasil kompilasi objek CV AVR bisa digunakan sebagai source debug dengan AVR Studio debugger dari ATMEL. Adapun tampilan dari perangkat lunak AVRCodeVision yang digunakan untuk menulis program
yang nantinya akan dimasukkan ke dalam memori
mikrokontroler ATmega8535 adalah seperti pada Gambar II.12. berikut.
Gambar II.11. Tampilan Perangkat Lunak CodeVisionAVR (Sumber : www.hpinfotech.com) Selain pustaka standar bahasa C, CVAVR juga menyediakan pustaka tambahan yang sangat membantu pemrograman AVR, yaitu: •
Alphanumeric LCD modules,
•
Philips 12C bus,
•
National semiconductor LM75 temperature sensor,
•
Philips PCF8563, PCF8583, Maxim/Dallas semiconductor DS 1302 dan DS
1307 real time clocks, •
Maxim/Dallas semiconductor 1 wire protocol,
•
Maxim/Dallas semiconductor DS 1820, DS28S20, DS18B20 Temperature sensor,
•
Maxim/Dallas semiconductor DS 1621 Thermometer/Thermostat,
•
Maxim/Dallas semiconductor DS2430 and DS2433 EEPROMs,
•
SPI,
•
Power management,
•
Delays,
•
Gray Code Conversion.
II.9.3. Visual Basic .NET Hampir semua orang, terutama para pemrogram mengenal dengan baik Visual Basic, yaitu bahasa pemrograman berbasis Graphical User Interface (GUI) buatan Microsoft yang mampu membuat setiap pekerjaan menjadi mudah dan mampu meningkatkan produktivitas pemrograman. (Didik Dwi Prasetyo, 2005, hal: 17) Menurut Didik Dwi Prasetyo (2005: hal 18-19), sebagai salah satu bahasa pemrograman yang terpaket di dalam Visual Studio .NET, Visual Basic .NET dapat memanfaatkan semua kemampuan yang telah tersedia. Begitu juga dengan kekurangan-kekurangan dari Visual Basic, semua sudah tidak ditemukan lagi pada Visual Basic .NET. Selain itu, fitur-fitur baru juga akan ditemukan pada versi ini, di antaranya: Fitur-fitur yang lebih lengkap untuk mendukung pemrograman berorientasi objek:
•
Kemampuan untuk menangani kesalahan (error handling) yang lebih terstruktur
•
Kamampuan baru untuk bekerja dengan console
•
Dukungan inherent pada XML (Extensible Markup Language) dan Web Services
•
Pendekatan aplikasi desktop yang lebih baik menggunakan Windows Forms
•
Pemrograman database yang lebih baik, melaluinpendekatan ADO.NET
•
IDE (Inegrated Develo[ment Environment) yang bekerja lebih cepat dan lebih responsive dalam menerima perintah Sebagai bukti bahwa Visual Basic .NET memiliki kemampuan lebih,
adanya dukungan .NET Framwork memungkinkan untuk mengembangkan berbagai aplikasi seperti aplikasi windows, aplikasi web, aplikasi web mobile, bahkan sampai pembuatan web service, menggunakan pemrograman Visual Basic .NET. (Didik Dwi Prasetyo, 2005, hal: 18).
II.9.4. Perangkat Lunak Downloader Adapun perangkat lunak yang penulis gunakan untuk men-download program ke dalam mikrokontroler Atmega8 adalah AVRDude GUI v1.3. Dengan menggunakan software ini kita dapat menginputkan file *.hex yang telah di compile oleh software Code Vision AVR, kedalam Mikrokontroler Atmega8. Berikut tampilan AVRDude GUI v1.3. pada gambar II.13. :
Gambar II.12. Interface AVRDude GUI v1.3 (Sumber : http://www.avrdude.com)
II.10. Flowchart Flowcharting adalah suatu teknik untuk menyusun rencana program yang telah diperkenalkan dan telah dipergunakan oleh kalangan pemrogram komputer sebelum algoritma menjadi populer. Flowchart adalah untaian simbol gambar (chart) yang menunjukkan aliran (flow) dari proses terhadap data. Seorang pemrogram harus mampu membuat flowchart, harus mampu membaca dan mengerti flowchart, dan sanggup menerjemahkan flowchart ke algoritma dan sebaliknya. Adapun simbol – simbol yang sering digunakan pada diagram alir / flowchart ditunjukkan pada tabel II.3 berikut :
Tabel II.3. Simbol – Simbol Flowchart Simbol
Arti
Keterangan Menyatakan kegiatan yang akan
Process ditampilkan dalam diagran alir. Digunakan untuk mewakili data Data masuk, atau data keluar. Berupa pertanyaan atau penentuan Decision suatu keputusan. Garis alir
Menunjukkan arah aliran proses. Untuk menandai awal atau akhir
Terminal program. Preparation
Untuk inisialisasi suatu nilai. Sebagai penghubumg dalam satu
Connector halaman. Off Page
Sebagai penghubung antar halaman.
Connector (Sumber : Dr.Suarga,M.sc.,M.Math.,Ph D., 2012. Algoritma dan Pemrograman)
BAB III ANALISA DAN PERANCANGAN SISTEM
BAB III ANALISIS DAN DESAIN SISTEM III.1. Analisis Masalah Dalam perancangan robot pengantar makanan berbasis mikrokontroler ini, terdapat beberapa masalah yang harus dipecahkan. Permasalahan-permasalahan tersebut antara lain : 1.
Sistem Mekanik Alat Dalam merancang mekanik robot pengantar makanan ini merupakan suatu hal yang cukup sulit, karena dalam perakitannya membutuhkan pola imajinasi yang tepat dalam membangun sistem mekanik alat, diantaranya pengukuran besar robot, pemilihan bahan pembuat robot, perancangan dan peletakannya, maupun proses perakitan secara keseluruhan.
2. Sistem Kerja Sistem kerja pada robot pengantar makanan ini harus dapat berjalan secara otomatis, dimana robot akan bergerak ke meja pelanggan setelah operator memilih meja makanan pada komputer. Oleh karena itu, komunikasi antara robot dengan komputer harus berjalan dengan baik dan secara wireless.
III.2. Strategi Pemecahan Masalah Karena terdapat beberapa permasalahan yang terjadi dalam perancangan robot pengantar makanan berbasis mikrokontroler, untuk itu dibutuhkan solusi atau pemecahan masalah, antara lain:
1.
Dengan adanya permasalahan pada sisitem mekanik, penulis harus teliti dalam memilih bahan, merancang serta proses perakitan agar berfungsi sesuai dengan kebutuhan pada sistem yang dibangun. Dalam hal pemilihan bahan, penulis memilih bahan untuk membuat robot dari bahan acrilyc, serta menggunakan motor dc untuk penggerak robot sehingga memudahkan dalam proses perancangan atau perakitan mekaniknya.
2.
Untuk sistem kerja, maka penulis menggunakan garis yang menuju ke masing-masing meja pelanggan sebagai jalur atau lintasan dari robot. Kemudian penulis juga menggunakan Bluetooth sebagai media komunikasi antara robot dengan computer sehingga komunikasi dapat dilakukan secara wireless.
III.3. Identifikasi Kebutuhan Adapun identifikasi kebutuhan dari perancangan robot pengantar makanan berbasis mikrokontroler ATMega8535 yang akan dirancang yaitu analisis kebutuhan hardware, analisis kebutuhan software dan analisis kebutuhan desain.
III.3.1 Kebutuhan Perangkat Keras (Hardware) Dalam perancangan robot pengantar makanan berbasis mikrokontroler ATMega8535, menggunakan perangkat keras (hardware) yang mempunyai spesifikasi sebagai berikut: 1. Processor 2.30 GHz 2. Harddisk : 320 GB
3. RAM : 1 GB 4. Keyboard dan Mouse
III.3.2 Kebutuhan Perangkat Lunak (Software) Untuk merancang alat sisem keamanan parkir, dibutuhkan perangkat lunak (software) sebagai berikut: 1. Sistem Operasi Windows XP/7. 2. Visual Basic.Net berfungsi menuliskan kode-kode program dan mendesain interface dari komputer. 3. CodeVision AVR, berfungsi untuk menuliskan coding/script yang menggunakan bahasa C. 4. AVR Dude, berfungsi sebagai program untuk mendownload kode hexa ke mikrokontroller.
III.3.3 Kebutuhan Desain Adapun kebutuhan perangkat yang digunakan untuk mendesain alat robot pengantar makanan antara lain : 1.
Minimum System Mikrokontroller ATMega8535
2.
Miniatur robot pengantar makanan
3.
Motor DC.
4.
LCD (Liquid Crystal Display).
5.
Bluetooth
6.
Fotodioda dan Infrared sebagai sensor
7.
Papan PCB (Printed Circuit Board).
8.
Beberapa mur dan baut.
9.
Lem perekat.
III.4. Perancangan Hardware Perancangan robot pengantar makanan ini dibagi atas dua bagian yaitu perancangan secara hardware dan software. Perancangan hardware dapat diawali dengan membuat diagram blok sistem. Dimana tiap-tiap blok saling berhubungan antara yang satu dengan yang lainnya. Diagram blok memiliki beberapa fungsi yakni : menjelaskan cara kerja suatu sistem secara sederhana, menganalisa cara kerja rangkaian, mempermudah memeriksa kesalahan suatu sistem yang dibangun.
III.4.1. Perancangan Diagram Blok Adapun diagram blok dari sistem yang dirancang adalah seperti yang diperlihatkan pada gambar III.1: Sensor
Tombol
Mikrokontroler ATMega8535
Driver Motor DC
Bluetooth
Komputer
Motor DC
Gambar III.1. Diagram Blok Rangkaian
Penjelasan dan fungsi dari masing – masing blok adalah sebagai berikut: a.
Sensor : sensor berfungsi untuk membaca garis sebagai jalur atau lintasan robot menuju ke meja masing-masing pelanggan..
b.
Komputer : komputer berfungsi sebagai interface untuk menjalankan robot menuju meja pelanggan.
c.
Bluetooth : rangkaian ini berfungsi untuk komunikasi antara PC dan mikrokontroller secara wireless.
d.
Rangkaian Mikrokontroler ATMega8535: rangkaian ini berfungsi sebagai pengendali robot, diman rangkaian ini dapat menggerakkan motor dc, membaca data dari sensor, menerima data dari computer dan menampilkan karakter di LCD..
e.
LCD : LCD berfungsi sebagai media penampilan data yang diinginkan.
f. Driver Motor: rangkaian ini berfungsi sebagai pengendali arah dan kecepatan putaran motor DC g.
Motor DC : motor dc berfungsi sebagai penggerak robot untuk mengantar makanan ke meja pelanggan.
h.
Tombol : berfungsi sebagai media input yang digunakan ketika makanan sudah diterima pelanggan.
III.4.2. Perancangan Rangkaian Power Supply Rangkaian power supply yang dibuat terdiri dari dua keluaran, yaitu 5 volt dan 12 volt. Keluaran 5 volt ini digunakan untuk mensupply tegangan ke rangkaian mikrokontroler, rangkaian sensor dan rangkaian LCD.
Sedangkan
keluaran 12 volt digunakan untuk mensupply tegangan ke motor dc. Rangkaian power supply dapat dilihat seperti gambar berikut:
Gambar III.2. Skematik Rangkaian Power Supply Supply tegangan berasal dari baterai yang besar tegangannya berkisar 12 volt. Kemudian tegangan tersebut akan diratakan oleh kapasitor 470 μF. Regulator tegangan 5 volt (7805) digunakan agar keluaran yang dihasilkan tetap 5 volt walaupun terjadi perubahan pada tegangan masukannya. LED hanya sebagai indikator apabila rangkaian power supply dinyalakan.
III.4.3. Perancangan Rangkaian Mikrokontroler ATMega8535 Rangkaian ini berfungsi untuk membaca nilai sensor, mengendalikan motor serta menampilkan karakter ke LCD. Komponen utama dari rangkaian ini adalah IC
mikrokontroler ATmega8535. Pada IC inilah semua program diisikan, sehingga rangkaian dapat berjalan sesuai dengan yang dikehendaki. Dalam menjalankan chip IC mikrokontroler ATmega8535 memerlukan komponen elektronika pendukung lainnya. Suatu rangkaian yang paling sederhana dan minim komponen pendukungnya disebut sebagai suatu rangkaian sistem minimum. Sistem minimum ini berfungsi untuk membuat rangkaian mikrokontroller dapat bekerja,
jika ada komponen yang kurang, maka mikrokontroller tidak akan bekerja. Dalam perancangan alat ini, sistem minimum mikrokontroler ATmega8535 terdiri dari: 1. Chip IC mikrokontroler ATmega8535 2. Kristal 11.0592 MHz 3. Kapasitor 4. Resistor Rangkaian mikrokontroler ATmega8535 master ditunjukkan pada gambar III.3 berikut:
Gambar III.3. Skematik Rangkaian Mikrokontroller ATmega8535
Pada gambar III.3, pin 10 dihubungkan ke sumber tegangan 5 volt. Dan pin 11 dihubungkan ke ground. Rangkaian mikrokontroller ini menggunakan komponen kristal sebagai sumber clocknya yang dihubungkan ke pin 12 dan pin 13. Nilai kristal ini akan mempengaruhi kecepatan mikrokontroller dalam mengeksekusi suatu perintah tertentu. Pada pin 9 dihubungkan dengan sebuah kapasitor dan sebuah resistor yang dihubungkan ke ground. Kedua komponen ini berfungsi agar program pada mikrokontroller dijalankan beberapa saat setelah power aktif. Lamanya waktu antara aktifnya power pada IC mikrokontroler dan aktifnya program adalah sebesar perkalian antara kapasitor dan resistor tersebut. Pada perancangan ini PORTB.0 sampai dengan PORTB.5 dihubungkan dengan rangkaian driver motor, dimana rangkaian driver motor ini akan mengendalikan pergerakan serta kecepatan motor DC saat robot berjalan. PINB.6 dan PINB.7 dihibungkan ke tombol, dimana tombol ini berfungsi sebagai input untuk kalibrasi sensor dan untuk inputan sebagai tanda bahwa makanan sudah diterima oleh pelanggan. PORTA dihubungkan ke rangkaian sensor dimana rangkaian sensor ini berfungsi untuk membedakan warna garis dengan warna lintasan yang digunakan. Sedangkan PORTC dihubungkan ke LCD yang berfungsi sebagai penampil karakter, penampil indikator sensor PORTD.0 atau PD0 dan PORTD.1 atau PD1 merupakan jalur komunikasi serial. Pada perancangan ini port ini dihubungkan bluetooth. Proses yang terjadi pada mikrokontroller adalah sesuai dengan program yang diisikan pada
mikrokontroller. Berbeda program yang diisikan, maka akan berbeda pula proses pada mikrokontroller. Pada perancangan ini proses yang terjadi pada mikrokontroller adalah proses pembacaan tombol, proses membaca data dari komputer, proses membaca sensor, serta proses menampilkan karakter pada LCD.
III.4.4. Perancangan Rangkaian Driver Motor Rangkaian driver motor ini berfungsi sebagai pengatur kecepatan motor serta arah putaran motor saat robot dijalankan. Rangkaian driver motor ini menggunakan IC L293D yang merupakan IC yang dapat dipakai untuk mengatur kecepatan motor. Rangkaian driver motor dapat lihat pada gambar berikut:
Gambar III.4. Skematik Rangkaian Driver Motor Pada gambar tersebut, dapat dilihat bahwa pin 16 dihubungkan ke sumber tegangan 5 volt, pin 8 dihubungkan ke tegangan 12 volt, pin 4, pin 5, pin 12 dan pin 13 dihubungkan ke ground. Pin 1 dan pin 9 merupakan enable yang berfungsi untuk mengaktifkan ataupun menonaktifkan motor yang dihubungkan ke
mikrokontroler di PORTB.2 dan PORTB.3. Sedangkan pin 2, pin 7, pin 10 dan pin 15 merupakan input untuk mengatur arah putaran motor. Pin tersebut dihubungkan ke mikrokontroller di PORTB.0, PORTB.1, PORTB.4 dan PORTB.5. Pin 3, pin 6, pin 11 dan pin 14 merupakan output yang langsung dihubungkan ke motor DC.
III.4.5. Perancangan Rangkaian LCD (Liquid Crystal Display) LCD (Liquid Crystal Display) adalah modul penampil yang banyak digunakan karena tampilannya menarik. LCD yang paling banyak digunakan saat ini ialah LCD LMB162ABC karena harganya cukup murah. LCD LMB162ABC merupakan modul LCD dengan tampilan 2x16 (2 baris x 16 kolom) dengan konsumsi daya rendah. Modul tersebut dilengkapi dengan mikrokontroler yang didesain khusus untuk mengendalikan LCD. Mikrokontroler HD44780 buatan Hitachi yang berfungsi sebagai pengendali LCD memiliki CGROM (Character Generator Read Only Memory), CGRAM (Character Generator Random Access Memory), dan DDRAM (Display Data Random Access Memory). LCD yang umum, ada yang panjangnya hingga 40 karakter (2x40 dan 4x40), dimana kita menggunakan DDRAM untuk mengatur tempat penyimpanan karakter tersebut.
Tabel III.1. Peta memori LCD
Gambar III.5. Skematik Rangkaian Skematik dari LCD Pada gambar rangkaian di atas pin 1 dihubungkan ke Vcc (5V), pin 2 dan 16 dihubungkan ke Gnd (Ground), pin 3 merupakan pengaturan tegangan Contrast dari LCD, pin 4 merupakan Register Select (RS), pin 5 merupakan R/W (Read/Write), pin 6 merupakan Enable, pin 11-14 merupakan data. Reset, Enable, R/W dan data dihubungkan ke mikrokontroler ATMega16. Fungsi dari potensiometer (R2) adalah untuk mengatur gelap/terangnya karakter yang ditampilkan pada LCD.
III.4.6. Perancangan Rangkaian Sensor Garis Rangkaian Sensor ini berfungsi untuk membedakan warna garis dengan warna lintasan, sehingga robot dapat berjalan sesuai dengan lintasan yang dibuat.
Rangkaian sensor garis ini terdiri dari dua komponen, yaitu LED dan photodiode. LED digunakan sebagai pemancar cahaya, sedangkan photodiode digunakan sebagai penerima cahaya yang dipancarkan dari LED. Rangkaian sensor garis dapat dihilah pada gambar berikut:
Gambar III.6. Skematik Rangkaian Sensor Garis
Pada gambar di atas, dapat dilihat bahwa robot terdiri dari delapan buah sensor. Kaki positif LED dihubungkan ke VCC yang sebelumnya dihubungkan ke resistorterlebih dahulu. Kaki negatif LED dihubungkan ke ground. Sementara kaki positif photodiode juga dihubngkan ke VCC sedangkan kaki output dari fotodioda akan dihubungkan ke mikrokontroller.
III.4.7. Perancangan Rangkaian Tombol Tombol berfungsi untuk kalibrasi sensor menjalankan robot sat makanan sudah diterima pelanggan. Rangkaian tombol ditunjukkan oleh berikut :
Gambar III.7. Skematik Rangkaian Tombol Ke Mikrokontroller Pada perancangan ini kaki 1 tombol dihubungkan ke input mikrokontroller dan kaki 2 pada tombol dihubungkan ke ground. Dengan demikian, jika tombol ditekan, maka output akan mendapat tegangan 0 volt, tegangan 0 inilah yang dideteksi oleh mikrokontroller sebagai tanda adanya penekanan tombol.
III.4.8. Bluetooth Bluetooth digunakan untuk media komunikasi secara wireless. Skematik Bluetooth dapat ditunjukkan oleh gambar berikut :
Gambar III.8. Bluetooth
Pada perancangan ini kaki ground dan 5 volt pada bluetooth dihubungkan ke sumber tegangan, sedangkan kaki Tx dan Rx pada bluetooth dihubungkan ke PD.0 dan PD.1 pada mikrokontroler, karena pin in yang berfungsi sebagai jalur komunikasi serial. III.4.9. Perancangan Rangkaian Lengkap Alat Rangkaian lengkap pada perancangan robot pengantar makanan berbasis mikrokontroler dapat dilihat pada gambar berikut:
Gambar III.9. Skematik Rangkaian Lengkap Alat Pada gambar III.9, dapat dilihat rangkaian keseluruhan dari perancangan robot pengantar makanan berbasis mikrokontroler ATMega8535. Pada gambar tersebut terdapat gabungan dari beberapa rangkaian seperti rangkaian power
supply, rangkaian LCD, rangkaian mikrokontroller ATMega8535, rangkaian driver motor dc, rangkaian sensor garis, tombol, dan bluetooth. III.5. Perancangan Software Perancangan software pada robot pengantar makanan ini dapat dimulai dengan membuat use case, squence dan activity untuk proses kerja pada alat dan mendesain tampilan interface. Setelah itu akan dirancang pembuatan program untuk alat yang akan dibuat.
III.5.1. Use Case Use Case adalah gambaran fungsionalitas dari suatu sistem, sehingga customer atau pengguna sistem paham dan mengerti mengenai kegunaan sistem yang akan dibangun. Use case diagram adalah penggambaran sistem dari sudut pandang pengguna sistem tersebut (user), sehingga pembuatan use case lebih dititikberatkan pada fungsionalitas yang ada pada sistem, bukan berdasarkan alur atau urutan kejadian. Cara menentukan Use Case dalam suatu sistem : a. Pola perilaku perangkat lunak aplikasi. b. Gambaran tugas dari sebuah actor. c. Sistem atau “benda” yang memberikan sesuatu yang bernilai kepada actor. d. Apa yang dikerjakan oleh suatu perangkat lunak ? (“bukan bagaimana cara mengerjakannya”).
Use Case pada perancangan robot pengantar makanan siap saji ini dapat dilihat seperti gambar berikut ini :
e lud inc
Kasir
Memilih Meja
Mengantar Makanan
Tunggu Perintah
Mengantar Makanan
Robot
inclu
de
Pelanggan
Gambar III.10. Use Case Diagram Robot Pengantar Makanan
III.5.2. Use Case Memilih Meja Use Case ini bertujuan untuk memilih meja mana yang akan dituju oleh robot kemeja pelanggan. Deskripsi memilih meja dapat digambarkan sebagai pada use case berikut:
Table III.2 Deskripsi Use Case Memilih Meja Nama Use Case
Memilih Meja
Actor
Kasir, Robot.
Deskripsi
Casir memerintahkan robot untuk mengantarkan makanan ke meja pelanggan dengan cara memilih nomor meja pelanggan pada interface.
Precondition
Kasir memilih nomor meja pelanggan yang akan dituju.
Post Condition
1. Robot berhasil bergerak setelah kasir memilih meja. 2. Robot gagal bergerak setelah kasir memilih meja.
III.5.3. Use Case Menunggu Perintah Use case ini bertujuan untuk menunggu perintah dari kasir untuk mengantarkan pesanan ke meja pelanggan. Deskripsi ini dapat digambarkan sebagai pada use case berikut:
Table III.3 Deskripsi Use Case Menunggu Perintah Nama Use Case
Menunggu Perintah
Actor
Kasir, Robot.
Deskripsi
Robot menunggu perintah dari kasir untuk mengantarkan pesanan ke meja pelanggan.
Precondition
Robot berhenti menunggu perintah dari kasir.
Post Condition
Kasir memilih nomor meja pelanggan yang akan dituju.
III.5.4. Use Case Mengantar Makanan Use Case ini bertujuan untuk mengantar makanan ke meja pelanggan. Deskripsi ini dapat digambarkan sebagai pada use case berikut:
Table III.4 Deskripsi Use case Mengantar Makanan Nama Use Case
Mengantar Makanan
Actor
Robot.
Deskripsi
Robot mengantar makanan ke meja pelanggan.
Precondition
Robot bergerak menuju meja pelanggan.
Post Condition
1. Robot berhasil mengantarkan makanan ke meja pelanggan. 2. Robot tidak berhasil mengantarkan makanan ke meja
pelanggan.
III.5.5. Use Case Menekan Tombol Use Case ini bertujuan untuk menekan tombol pada robot saat sudah menerima pesanan makanan. Deskripsi dapat digambarkan sebagai pada use case berikut:
Table III.5 Deskripsi Use case Menekan Tombol Nama Use Case
Menekan Tombol
Actor
Pelanggan.
Deskripsi
Pelanggan menekan tombol pada robot saat sudah menerima pesanan makanan.
Precondition
Menerima pesanan makanan.
Post Condition
Pelanggan menekan tombol pada robot.
III.5.6. Sequence Diagram Sequence Diagram (diagram urutan) adalah suatu diagram yang memperlihatkan atau menampilkan interaksi-interaksi antar objek di dalam sistem yang disusun pada sebuah urutan atau rangkaian waktu. Interaksi antar objek tersebut termasuk pengguna, display, dan sebagainya berupa pesan/message. Sequence Diagram digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai sebuah respon dari suatu kejadian/event untuk menghasilkan output tertentu. Sequence Diagram diawali
dari apa yang me-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Sequence Diagram pada perancangan robot pengantar makanan siap saji dapat dilihat seperti gambar III.11.
Nomor meja Kasir
Tunggu Perintah
Memilih Meja
Robot
Pelanggan Mengantar Makanan Tekan Tombol
Gambar III.11. Sequence Diagram Robot Pengantar Makanan
III.5.7. Activity Diagram Activity Diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity Diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity Diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu Activity Diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas
dari level atas secara umum. Activity Diagram dibuat berdasarkan sebuah atau beberapa use case pada use case diagram. Activity Diagram pada perancangan robot pengantar makanan siap saji dapat dilihat seperti gambar di bawah ini :
Kasir
Robot
Pelanggan
Mulai
Menunggu Perintah Memilih Meja
Mengantar Makanan Menerima pesanan Menekan Tombol
Gambar III.12. Activity Diagram Robot Pengantar Makanan III.5.8. Desain User Interface Perancangan interface ini bertujuan untuk menggambarkan sketsa desain tampilan interface untuk mengendalikan robot menuju ke meja masing-masing pelanggan. Perancangan desain interface yang akan dibuat dapat dilihat seperti gambar berikut:
Perancangan Robot Pengantar Makanan
MEJA 1
MEJA 2
MEJA 3
Gambar III.13. Desain pada Interface III.5.9. Perancangan Program Pada perancangan ini digunakan Code Vision AVR sebagai editor dan compiler dari program yang dirancang. Untuk memulai memprogram Code Vision AVR dilakukan langkah sebagai berikut : 1. Buka software CodeVisionAVR (terdapat Shortcut pada Desktop). 2. Pilih menu File New dan pilih Project kemudian tekan OK.
Gambar III.14. Pemilihan Tipe File 3. Kemudian pilih Yes saat ada pilihan menggunakan CodeWizardAVR, seperti tampak pada gambar berikut.
Gambar III.15. Dialog konfirmasi tentang penggunaan CodeWizardAVR 4. Pada settingan CodeWizardAVR, atur konfigurasi chip menggunakan ATMega8535 sesuai dengan yang ada pada modul, dengan nilai clock 11,059200 MHz.
Gambar III.16. Pemilihan tipe Mikrokontroller dan Kristal 5. Kemudian pada tab Port, PortB. diatur sebagai input dan output yang akan dihubungkan dengan rangkaian driver motor dan tombol. Tampilannya sebagai berikut.
Gambar III.17. Setting PORTB 6. Selanjutnya mengatur setting komunikasi serial dengan bluetooth. Tampilannya sebagai berikut:
Gambar III.18. Setting Komunikasi Serial 7. Setelah itu, pilih menu File Generate, Sava and Exit, dan simpan file dengan nama sesuai keinginan uji.
Gambar III.19. Generate, Save dan Exit 8. Akan muncul file .c yang akan digunakan untuk pemrograman.
BAB IV HASIL DAN UJI COBA
BAB IV HASIL DAN UJI COBA
Pada bab ini, akan dibahas pengujian alat mulai dari pengujian alat permodul sampai pengujian alat secara keseluruhan. Pengujian tersebut akan dilakukan secara bertahap dengan urutan sebagai berikut: 1. Pengujian Rangkaian Power Supply 2. Pengujian Minimum System 3. Pengujian LCD 4. Pengujian Sensor 5. Pengujian Driver Motor 6. Pengujian Komunikasi Serial 7. Pengujian Tombol 8. Pengujian Sistem Secara Keseluruhan
IV.1. Pengujian Rangkaian Power Supply Untuk mengetahui apakah bagian rangkaian power supply telah bekerja dengan baik atau tidak dapat dilakukan dengan mengukur tegangan keluaran dari rangkaian ini dengan menggunakan Volt Meter. Pada rangkaian power supply ini terdapat dua keluaran yaitu keluaran 5 Volt dan 12 Volt DC yang dipakai untuk mensupply tegangan ke seluruh rangkaian.
Gambar IV .1. Rangkaian Power Supply Dari hasil pengukuran menggunakan Volt Meter diperoleh tegangan keluaran sebesar 4,98 Volt DC. Dengan demikian tegangan sebesar ini telah dapat mengaktifkan rangkaian sistem minimum mikrokontroller ATmega8535, karena rangkaian sistem minimum mikrokontroller ATMega8535 dapat beroperasi pada tegangan 4,0 Volt DC sampai dengan tegangan 5,5 Volt DC. Sedangkan tegangan 12 volt saat di ukur dengan Volt Meter tegangan keluarannya sebesar 11,89 Volt.
IV.2. Pegujian Rangkaian Minimum System Pada pengujian minimum system ini dilakukan percobaan yang sifatnya sederhana tapi dapat menunjukkan bekerja atau tidaknya minimum system tersebut. Percobaan tersebut adalah menghidupkan beberapa buah LED secara bergantian. Percobaan ini dilakukan pada I/O port (Port B). Untuk menghidupkan LED tersebut digunakan program sebagai berikut:
Gambar IV .2. Program Menghidupkan LED
Program di atas bertujuan untuk menghidupkan semua lampu LED (Light Emitting Diode) yang dihubungkan secara common anode dengan PORTB mikrokontroller ATMega8535 selama 1000 mili second atau sama dengan 1 detik. Dan kemudian mematikannya selama 1000 mili second atau sama dengan 1 detik. Perintah “PORTB = 0b11111111;” berfungsi untuk memberikan logika high pada led sehingga kondisi led hidup. Perintah “PORTB = 0b00000000;” berfungsi untuk memberikan logika low pada led sehingga kondisi led mati.
Gambar IV.3. Rangkaian Minimum System Mikrokontroller ATmega8535
Jika program sederhana tersebut diisikan ke dalam IC mikrokontroller ATmega8535 dan mikrokontroller dapat berjalan sesuai dengan perintah program yang diisikan yaitu lampu LED (Light Emitting Diode) telah hidup dan mati secara bergantian, maka rangkaian minimum sistem mikrokontroler ATMega8535 telah bekerja dengan baik. Table IV.1. Pengujian Rangkaian Mikrokontroller ATMega8535
Tahap 1 Tahap 2
Led 1
Led 2
Led 3
Led 4
Led 5
Led 6
Led 7
Led 8
ON OFF
ON OFF
ON OFF
ON OFF
ON OFF
ON OFF
ON OFF
ON OFF
IV,3. Pengujian Rangkaian LCD Pengujian rangkaian LCD (Liquid Crystal Display) dapat dilakukan dengan cara memberi tegangan sebesar 5 Volt DC pada LCD (Liquid Crystal Display), kemudian rangkaian penampil LCD (Liquid Crystal Display) dihubungkan dengan rangkaian sistem minimum mikrokontroller ATMega8535.
Gambar IV.4. Rangkaian LCD 16x2 Character Untuk menampilkan karakter ke LCD, maka pada chip mikrokontroller ATmega8535 diberi program seperti berikut :
Gambar IV .5. Menampilkan Karakter Ke LCD Program di atas berfungsi untuk menampilkan teks yaitu “AHMAD AZHARI” pada koordinat (2,0) dan teks “TEK. INFORMATIKA” pada koordinat (0,1). Teks “AHMAD AZHARI” akan dimuat pada baris pertama dan kolom ke tiga di LCD (liquid crystal display), sedangkan teks “TEK. INFORMATIKA” akan dimuat pada baris ke dua dan kolom PERTAMA. Teks tersebut akan di tampilkan selama 1000 mili second atau sama dengan 1 detik kemudian akan di hapus menggunakan perintah “lcd_clear()”.
IV.4. Pengujian Sensor Pengujian sensor ini dilakukan dengan memberikan perintah program untuk membaca sensor dan menampilkannya di layar lcd. Selanjutnya meletakkan posisi sensor robot di warna hitam dan warna putih. Perintah program untuk membaca sensor dan menampilkannya ke lcd adalah sebagai berikut:
Gambar IV .6. Program Membaca Sensor Ke LCD
Pengujian sensor dapat dilihat pada gambar berikut:
Gambar IV.7. Tampilan Nilai Sensor Saat Di Letakkan Pada Warna Hitam
Gambar IV.8. Tampilan Nilai Sensor Saat Di Letakkan Pada Warna Putih Dapat dilihat bahwa pada gambar di atas, nilai dari pembacaan sensor garis saat terkena warna hitam, nilai keluarannya rata-rata di atas 200. Sedangkan pada saat sensor garis diletakkan pada warna putih, nilai keluarannya rata-rata sensor di bawah 200. Nilai 200 inilah yang menjadi pembanding nilai saat sensor mendeteksi warna hitam ataupun putih.
IV.5. Pengujian Driver Motor Pengujian ini dilakukan dengan cara memberikan program dasar untuk menggerakkan motor. Program untuk menggerakkna motor adalah sebagai berikut:
Gambar IV .9. Program Untuk Menggerakkan Motor
Dari program di atas, dapat dilihat bahwa motor akan aktif jika eka (enable kanan) dan eki (enable kiri) bernilai 1. Jika nilai eka dan eki adalah 0, maka motor akan berhenti. Direction merupakan arah putaran motor. Jika direction 1 diberi nilai 1 dan direction 2 diberi nilai 0 maka arah putaran motor maju, dan apabila diberi direction 1 diberi nilai 0 dan direction 2 diberi nilai 1, maka arah putaran motor mundur.
IV.6. Pengujian Komunikasi Serial Pengujian komunikasi serila antara dengan mikrokontroler ATMega8535 dilakukan dengan menghubungkan pin UART modul bluetooth ke pin UART mikrokontroler
kemudian
memberikan
program
kirim
dat
serial
ke
mikrokontroler. Baudrate standar yang digunakan dalam komunikasi modul bluetooth dengan ATMega8535 adalah 9600 bps. Program kirim data serial pada mikrokontroler adalah sebagai berikut:
Gambar IV .10. Program Untuk Menggerakan Motor
Program di atas berfungsi untuk mengirimkan data serial ke komputer melalui bluetooth. Pada perintah “putchar(48)” berfungsi untuk mengirimkan karakter 0 ke komputer, selanjutnya akan delay selama 1 detik, kemudian perintah “putchar(49)” berfungsi untuk mengirimkan karakter 1 ke komputer. Jika saat
dijalankan karakter 0 dan 1 tampil pada hyperterminal, maka komunikasi serial sudah berjalan dengan baik. Tampilan pada hyperterminal dapat dilihat seperti gambar berikut:
Gambar IV.11. Pengujian Komunikasi Serial
IV.7. Pengujian Tombol Tombol berfungsi untuk sebagai indikator apabila makanan sudah diterima oleh pelanggan. Dari hasil pengujan didapatkan data sebagai berikut: Tabel 4.2. Hasil Pengujian Tombol Kondisi
Tegangan pada PINB.6
Tombol ditekan
0,02 volt
Tombol Tidak ditekan
4,98 volt
IV.8. Pengujian Sistem Secara Keseluruhan Hasil perancangan keseluruhan alat robot pengantar makanan berbasis mikrokontroler, dapat dilihat seperti gambar berikut:
Gambar IV.12. Tampilan Alat Keseluruhan Dari gambar di atas tampak bahwa alat ini terdiri dari LCD, Rangkaian Relay, GSM modul, rangkaian driver serial MAX232, rangkaian mikrokontroller ATMEGA8535 dan rangkaian power supply.
IV.9. Proses Kerja Alat Langkah awal pengujian ini adalah dengan menjalankan alat dan melihat proses kerjanya. Langkah pertama adalah menjalankan program robot pengantar makan di Visual Basic .Net. Selanjutnya alat ke sumber tegangan baterai,
selanjutnya tekan tombol pada power supply untuk menghidupkan robot, maka akan tampil LCD sebagai berikut:
Gambar IV.13. Tampilan LCD Saat Alat Sudah Dapat Digunakan Pada tampilan gambar di atas, tampak tampilan alat saat pertama kali dinyalakan. Tampilan tersebut menandakan bahwa alat sudah dapat digunakan. Setelah itu, jalankan program di Visual Basic.Net, tunggu hingga lampu indicator pada Bluetooth berkedip perlahan yang menandakan bahwa bluetooth sudah mendeteksi jaringan komunikasi antara komputer dan bluetooth sudah dapat menerima data yang akan masuk. Tampilan awal Interface pada Visual Basic .Net saat pertama kali dijalankan dapat dilihat pada gambar berikut:
Gambar IV.14. Tampilan Interface Pada gambar diatas dapat dilihat tampilan interface pada robot pengantar makan. Langkah berikutnya adalah dengan menekan atau mengklik salah satu meja yang akan dituju. Maka robot akan menuju ke meja pelanggan sesuai data yang di terima dari komputer. Pada saat robot sampai ke meja pelanggan, maka robot akan berhenti dan pelanggan mengambil makanan yang telah di antar robot. Berikut tampilan LCD saat robot sampai ke meja pelanggan:
Gambar IV.15. Tampilan LCD Saat Makanan Sampai
Pada gambar diatas dapat dilihat bahwa makanan telah sampai ke meja pelanggan. Robot akan kembali ke posisi semula jika pelanggan menekan tombol pada robot yg menandakan bahwa pesan telah diterima. Tampilan LCD saat tombol sudah di tekan pelanggan sebagai berikut:
Gambar IV.16. Tampilan Saat Pelanggan Menekan Tombol Pada gambar diatas dapat dilihat bahwa tombol robot telah di tekan oleh pelanggan, dan robot akan kembali ke posisi semula untuk mengantar makanan ke meja pelanggan berikutnya sesuai data yang dikirimkan sesuai data dari komputer.
IV.10. Hasil Uji Coba Alat Pengujian perangkat dilakukan guna mendapatkan hasil yang maksimal pada perancangan robot pengantar makanan siap saji berbasis mikrokontroler ATMega8535 dan interface ini. Berikut ini merupakan gambar lintasan dan hasil uji coba setiap meja:
Lintasan Robot
Gambar IV.17. Lintasan Robot Pada gambar diatas dapat dilihat lintasan terdapat tiga titik atau tiga meja konsumen yang akan dilalui oleh robot pengantar makanan siap saji.
No 1 2 3 4 5
Tabel IV.3. Hasil Uji Coba Alat Ke Meja 1 Tujuan (Meja) Berhasil Gagal Keterangan 1 1 Alas lintasan tidak rata / bergelombang 1 1 Keluar lintasan akibat baterai 1
lemah
No 1 2 3 4 5
No 1 2 3 4 5
Tabel 4.4. Hasil Uji Coba Alat Ke Meja 2 Tujuan (Meja) Berhasil Gagal Keterangan Alas lintasan tidak rata / 2 bergelombang Alas lintasan tidak rata / 2 bergelombang 2 2 2 Tabel 4.5. Hasil Uji Coba Alat Ke Meja 3 Tujuan (Meja) Berhasil Gagal Keterangan 3 3 3 3 3 -
IV.11. Kelebihan Dan Kekurangan Sistem Yang Dibuat Pada perancangan robot pengantar makanan siap saji ini masih kurang sempurna. Perakitan dan pembuatan perangkat ini masih memiliki beberapa kelebihan dan kekurangan, diantaranya: a. Kelebihan Adapun beberapa kelebihan yang dimiliki robot pengantar makanan siap saji dan interface, antara lain : 4. Dapat menggantikan pekerjaan manusia untuk mengantarkan makanan. 5. Mengurangi kesalahan yang dapat ditimbulkan ketika mengantarkan makanan ke meja konsumen. 6. Dengan adanya sistem ini dapat membantu dalam ilmu pengetahuan, khususnya dibidang Robotika, Mekatronika, dan Ilmu Komputer.
b. Kekurangan Adapun beberapa kekurangan yang dimiliki robot pengantar makanan siap saji, antara lain : 1. Sinyal antar jarak bluetooth hanya berkisar ±10 meter masih terbatas. 2. Jika tombol kembali pada robot pengantar makanan siap saji belum di tekan oleh konsumen robot tidak bisa kembali ke posisi semula.
BAB V KESIMPULAN DAN SARAN
BAB V KESIMPULAN DAN SARAN
V.1. Kesimpulan Berdasarkan hasil analisa yang dilakukan oleh penulis, perancanagan robot pengantar makanan siap saji dan interface ini yang telah dibuat masih belum sempurna. Dari keseluruhan hasil pengujian yang dilakukan dapat disimpulkan beberapa hal sebagai berikut: 1. Dengan adanya robot pengantar makanan siapa saji dapat mempermudah para pegawai. 2. Sistem penyajian makanan sudah menjadi lebih efektif dan efisien karna sudah terkomputerisasi. 3. Driver Motor bisa tersebut
bisa
berfungsi
berperan
dengan
baik, dimana
sebagai penggerak
pada
driver motor
robot
pengantar
makanan line follower dalam pengontrolan kecepatan dan arah putaran motor.
V.2. Saran Dalam melakukan perancanagan robot pengantar makanan siap saji dan interface ini terdapat beberapa kendala yang dihadapi penulis. Maka penulis akan menyampaikan beberapa saran yang diharapkan pembaca dapat memahami prinsip perangkat yang dirancang sehinga dapat mengembangkan skripsi ini. Adapun saran – saran tersebut adalah :
1. Robot pengantar makanan siap saji ini sebaiknya dilengkapi dengan sensor jarak sebagai pendeteksi halangan jika ada orang yang lewat dalam pengantaran makanan. 2. Robot pengantar makanan dapat dikembangkan untuk lintasan tujuan meja menjadi 5 atau lebih.
DAFTAR PUSTAKA
Budiharto, W, 2004, Interfacing Komputer dan Mikrokontroler, Elex Media Komputindo, Jakarta. Eko Rismawan, 2012, “Rancang Bangun Prototype Penjemur Pakaian Otomatis Berbasis Mikrokontroler Atmega8535”, Jurnal Informatika dan Teknik Elektro Terapan Volume 1 No. 1 Fakultas Teknik Universitas Lampung Imam Santoso, R. Rizal Isnanto, Achmad Chaerodin, 2008 “ Sistem Monitoring Suhu Berbasis Web Dengan Akuisisi Data Melalui Port Paralel PC “, Jurnal Teknik Elektro Jilid 10, No. 2 Fakultas Teknologi Industri, Universitas Mataram. Kurniawan Agus, Adnan Risman, Aryaputra Panji, Sasono norman, Ali Ahmad Heryena, M Fatru Rahman, 2004, Pengenalan Bahasa C#, Indonesia.net, Jakarta Moh Fajar Rajasa F, Ya’umar, Suryanto, 2013 “Rancang Bangun Prototipe Monitoring Suhu Tubuh Manusia Berbasis O.S Anroid”, Jurnal Teknik POMITS Vol. 2, No. 1 Fakultas Teknologi Industri, Institut Teknologi Sepuluh Nopember (ITS) Tri Sutrisno, Himawan; Borian, Pinto, 2012 “Kursi Roda Elektrik”, Skripsi S1. Fakultas Ilmu Komputer. Universitas Bina Nusantara, Jakarta. Winarno, Arifianto Deni, 2011, Bikin Robot Itu Gampang, Kawan Pustaka, Malang. Dwiono Wahyu, Posma Siska Novita, 2014 “Alat Bantu navigasi Penyandang Tuna Netra Menggunakan Sensor Ping dan Buzzer”, Jurnal Teknik Elektro dan Komputer Vol.2, No.1 Program Studi Teknik Tenekomunikasi, Politeknik Caltex Riau
LAMPIRAN
Listing Program Form1 Pada Visual Studio.Net Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load SerialPort1.PortName = "COM3" SerialPort1.BaudRate = "9600" SerialPort1.Parity = IO.Ports.Parity.None SerialPort1.StopBits = IO.Ports.StopBits.One SerialPort1.DataBits = 8 SerialPort1.Open() End Sub Private Sub btn_meja2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_meja2.Click SerialPort1.Write(2) End Sub Private Sub btn_meja1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_meja1.Click SerialPort1.Write(1) End Sub Private Sub btn_meja3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_meja3.Click SerialPort1.Write(3) End Sub End Class
Finish pada CodeVisionAVR #include <mega8535.h> #define simpang_detect (sen[0]>x)&&(sen[1]>x)&&(sen[2]>x)&&(sen[3]>x)&&(sen[4]>x)&&(sen[5]>x )&&(sen[6]>x)&&(sen[7]>x) #define eka #define dirka1 #define dirka2 #define eki #define dirki1 #define dirki2
PORTB.2 PORTB.1 PORTB.0 PORTB.3 PORTB.4 PORTB.5
unsigned char tampil[16], sen[8]; unsigned char x, arah;
int y,pwmka, pwmki; int sinyal; bit kanan, kiri;
// Alphanumeric LCD Module functions #asm .equ __lcd_port=0x15 ;PORTC #endasm #include
#define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7 #define FRAMING_ERROR (1<
{ rx_buffer[rx_wr_index]=data; if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0; if (++rx_counter == RX_BUFFER_SIZE) { rx_counter=0; rx_buffer_overflow=1; }; sinyal=data; }; } #ifndef _DEBUG_TERMINAL_IO_ // Get a character from the USART Receiver buffer #define _ALTERNATE_GETCHAR_ #pragma used+ char getchar(void) { char data; while (rx_counter==0); data=rx_buffer[rx_rd_index]; if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0; #asm("cli") --rx_counter; #asm("sei") return data; } #pragma used#endif // Standard Input/Output functions #include <stdio.h> // Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) { // Place your code here y++; if(y>=255){y=0;} if(y #define ADC_VREF_TYPE 0x60
// Read the 8 most significant bits // of the AD conversion result unsigned char read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCH; } // Declare your global variables here void maju(unsigned char ki, unsigned char ka) { pwmki=ki; pwmka=ka; dirki1=1; dirka1=1; dirki2=0; dirka2=0; } void mundur(unsigned char ki, unsigned char ka) { pwmki=ki; pwmka=ka; dirki1=0; dirka1=0; dirki2=1; dirka2=1; } void belka(unsigned char ki, unsigned char ka) { pwmki=ki; pwmka=ka; dirki1=1; dirka1=0; dirki2=0; dirka2=1; } void belki(unsigned char ki, unsigned char ka) { pwmki=ki; pwmka=ka; dirki1=0; dirka1=1; dirki2=1; dirka2=0; } void stop()
{ eki=0; eka=0; dirki1=0; dirka1=0; dirki2=0; dirka2=0; } void baca_sensor() { sen[0]=read_adc(7); sen[1]=read_adc(6); sen[2]=read_adc(5); sen[3]=read_adc(4); sen[4]=read_adc(3); sen[5]=read_adc(2); sen[6]=read_adc(1); sen[7]=read_adc(0); } void cek_sensor() { baca_sensor(); if(sen[0]>x){lcd_gotoxy(4,1); lcd_putsf("1");} else {lcd_gotoxy(4,1); lcd_putsf("0");} if(sen[1]>x){lcd_gotoxy(5,1); lcd_putsf("1");} else {lcd_gotoxy(5,1); lcd_putsf("0");} if(sen[2]>x){lcd_gotoxy(6,1); lcd_putsf("1");} else {lcd_gotoxy(6,1); lcd_putsf("0");} if(sen[3]>x){lcd_gotoxy(7,1); lcd_putsf("1");} else {lcd_gotoxy(7,1); lcd_putsf("0");} if(sen[4]>x){lcd_gotoxy(8,1); lcd_putsf("1");} else {lcd_gotoxy(8,1); lcd_putsf("0");} if(sen[5]>x){lcd_gotoxy(9,1); lcd_putsf("1");} else {lcd_gotoxy(9,1); lcd_putsf("0");} if(sen[6]>x){lcd_gotoxy(10,1); lcd_putsf("1");} else {lcd_gotoxy(10,1); lcd_putsf("0");} if(sen[7]>x){lcd_gotoxy(11,1); lcd_putsf("1");} else {lcd_gotoxy(11,1); lcd_putsf("0");} } void scan_garis() { cek_sensor(); if((sen[0]<x)&&(sen[1]<x)&&(sen[2]<x)&&(sen[3]<x)&&(sen[4]<x)&&(sen[5] <x)&&(sen[6]<x)&&(sen[7]>x)) {belki(200,200); delay_ms(10); arah=0;} //00000001
if((sen[0]<x)&&(sen[1]<x)&&(sen[2]<x)&&(sen[3]<x)&&(sen[4]<x)&&(sen[5] <x)&&(sen[6]>x)&&(sen[7]>x)) {maju(0,250); delay_ms(10); arah=0;} //00000011 if((sen[0]<x)&&(sen[1]<x)&&(sen[2]<x)&&(sen[3]<x)&&(sen[4]<x)&&(sen[5] <x)&&(sen[6]>x)&&(sen[7]<x)) {maju(80,250); delay_ms(10); arah=0;} //00000010 if((sen[0]<x)&&(sen[1]<x)&&(sen[2]<x)&&(sen[3]<x)&&(sen[4]<x)&&(sen[5] >x)&&(sen[6]>x)&&(sen[7]<x)) {maju(100,250); delay_ms(10); arah=0;} //00000110 if((sen[0]<x)&&(sen[1]<x)&&(sen[2]<x)&&(sen[3]<x)&&(sen[4]<x)&&(sen[5] >x)&&(sen[6]<x)&&(sen[7]<x)) {maju(150,250); delay_ms(10); arah=0;} //00000100 if((sen[0]<x)&&(sen[1]<x)&&(sen[2]<x)&&(sen[3]<x)&&(sen[4]>x)&&(sen[5] >x)&&(sen[6]<x)&&(sen[7]<x)) {maju(190,250); delay_ms(10); arah=0;} //00001100 if((sen[0]<x)&&(sen[1]<x)&&(sen[2]<x)&&(sen[3]<x)&&(sen[4]>x)&&(sen[5] <x)&&(sen[6]<x)&&(sen[7]<x)) {maju(220,250); delay_ms(10); arah=0;} //00001000
if((sen[0]<x)&&(sen[1]<x)&&(sen[2]<x)&&(sen[3]>x)&&(sen[4]>x)&&(sen[5] <x)&&(sen[6]<x)&&(sen[7]<x)) {maju(250,250); delay_ms(10);} //00011000
if((sen[0]<x)&&(sen[1]<x)&&(sen[2]<x)&&(sen[3]>x)&&(sen[4]<x)&&(sen[5] <x)&&(sen[6]<x)&&(sen[7]<x)) {maju(250,220); delay_ms(10); arah=1;} //00010000 if((sen[0]<x)&&(sen[1]<x)&&(sen[2]>x)&&(sen[3]>x)&&(sen[4]<x)&&(sen[5] <x)&&(sen[6]<x)&&(sen[7]<x)) {maju(250,190); delay_ms(10); arah=1;} //00110000 if((sen[0]<x)&&(sen[1]<x)&&(sen[2]>x)&&(sen[3]<x)&&(sen[4]<x)&&(sen[5] <x)&&(sen[6]<x)&&(sen[7]<x)) {maju(250,150); delay_ms(10); arah=1;} //00100000 if((sen[0]<x)&&(sen[1]>x)&&(sen[2]>x)&&(sen[3]<x)&&(sen[4]<x)&&(sen[5] <x)&&(sen[6]<x)&&(sen[7]<x)) {maju(250,100); delay_ms(10); arah=1;} //01100000
if((sen[0]<x)&&(sen[1]>x)&&(sen[2]<x)&&(sen[3]<x)&&(sen[4]<x)&&(sen[5] <x)&&(sen[6]<x)&&(sen[7]<x)) {maju(250,80); delay_ms(10); arah=1;} //01000000 if((sen[0]>x)&&(sen[1]>x)&&(sen[2]<x)&&(sen[3]<x)&&(sen[4]<x)&&(sen[5] <x)&&(sen[6]<x)&&(sen[7]<x)) {maju(250,0); delay_ms(10); arah=1;} //11000000 if((sen[0]>x)&&(sen[1]<x)&&(sen[2]<x)&&(sen[3]<x)&&(sen[4]<x)&&(sen[5] <x)&&(sen[6]<x)&&(sen[7]<x)) {belka(200,200); delay_ms(10); arah=1;} //10000000
if((sen[0]<x)&&(sen[1]<x)&&(sen[2]<x)&&(sen[3]<x)&&(sen[4]<x)&&(sen[5] <x)&&(sen[6]<x)&&(sen[7]<x)) {if(arah==1){belka(250,250); delay_ms(10);} else {belki(250,250); delay_ms(10);}} //00000000 } void scancounter(unsigned char xcounter) { unsigned int i; unsigned int counter; counter=0; while(counter<xcounter) { scan_garis(); if(simpang_detect){maju(250,250); delay_ms(300); counter++; stop(); delay_ms(1000);} }; } void belok_kanan() { kanan=1; belka(250,250); delay_ms(500); while(kanan==1) { cek_sensor(); belka(200,200); if(sen[5]>x || sen[6]>x) { scan_garis(); kanan=0; }
} } void belok_kiri() { kiri=1; belki(250,250); delay_ms(500); while(kiri==1) { cek_sensor(); belki(200,200); if(sen[1]>x || sen[2]>x) { scan_garis(); kiri=0; } } } void balik_kanan() { mundur(250,250); delay_ms(700); kanan=1; belka(250,250); delay_ms(500); while(kanan==1) { cek_sensor(); belka(200,200); if(sen[5]>x || sen[6]>x) { scan_garis(); kanan=0; } } } void balik_kiri() { mundur(250,250); delay_ms(500); kiri=1; belki(250,250); delay_ms(500);
while(kiri==1) { cek_sensor(); belki(200,200); if(sen[1]>x || sen[2]>x) { scan_garis(); kiri=0; } } }
void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=P State6=P State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTB=0xC0; DDRB=0x3F; // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x00;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 11059.200 kHz // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x01; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off
MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x01; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: Off // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00; UCSRB=0x90; UCSRC=0x86; UBRRH=0x00; UBRRL=0x47; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC Clock frequency: 691.200 kHz // ADC Voltage Reference: AVCC pin // ADC High Speed Mode: Off // ADC Auto Trigger Source: None // Only the 8 most significant bits of // the AD conversion result are used ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84; SFIOR&=0xEF; // LCD module initialization lcd_init(16); // Global enable interrupts #asm("sei") x=200; lcd_gotoxy(2,0); lcd_putsf("AHMAD AZHARI"); lcd_gotoxy(0,1); lcd_putsf("TEK. INFORMATIKA"); delay_ms(1000); lcd_clear(); lcd_gotoxy(2,0); lcd_putsf("MAKANAN 100%");
lcd_gotoxy(5,1); lcd_putsf("HALAL"); delay_ms(1000); lcd_clear(); while (1) { // Place your code here lcd_gotoxy(0,0); lcd_putsf("MENUNGGU PESANAN"); cek_sensor(); if(sinyal(!=0) { lcd_clear(); if(sinyal==49) { balik_kiri(); scancounter(1); belok_kanan(); scancounter(1); while(PINB.7!=0){stop();} balik_kanan(); scancounter(1); belok_kiri(); scancounter(1); stop(); sinyal=0; } if(sinyal==50) { balik_kiri(); scancounter(2); belok_kanan(); scancounter(1); while(PINB.7!=0){stop();} balik_kanan(); scancounter(1); belok_kiri(); scancounter(2); stop(); sinyal=0; } if(sinyal==51) { balik_kiri(); scancounter(3); while(PINB.7!=0){stop();}
balik_kanan(); scancounter(3); stop(); sinyal=0; } sinyal=0; } }; }