Anda di halaman 1dari 13

PEMROGRAMAN MIKROKONTROLER AT89S51 UNTUK PEMBUATAN ROBOT LINE FOLLOWER

Achmad Zulfikar. H
Choel_j@yahoo.com

Nina Hendrarini, Ir.MT.


Nina2bdg@gmail.com

Umar Ali Ahmad, ST.


Umaraliahmad@gmail.com

Program Studi Manajemen Informatika Politeknik Telkom Bandung Tahun 2010

ABSTRAK Mikrokontroler adalah single chip komputer yang memiliki kemampuan untuk diprogram dan digunakan untuk tugas-tugas yang berorientasi kontrol. Salah satu pemanfaatan mikrokontroler yaitu dalam tugas pembuatan robot. Salah satu robot yang sering dibuat dalam memulai mempelajari robotika adalah ro robot line follower. Robot line follower merupakan robot yang dapat mengikuti lintasan berupa garis. Oleh karena itu penulis bertujuan untuk membuat robot line follower yang kecepatannya dapat diatur sesuai dengan keinginan. Dalam pembuatan proyek akhir ini digunakan bahasa assembly untuk melakukan programming terhadap mikrokontroler. Langkah awal yang ditempuh yaitu membuat desain dari robot yang akan dibuat. Setelah proses desain maka dilanjutkan dengan proses perancangan program melalui diagram use case, diagram case status, dan flowchart. setelah kedua proses tersebut selesai maka dilanjutkan dengan proses . implementasi program berdasarkan desain program yang telah dibuat sebelumnya.

Kata kunci: Robot line follower, Mikrokontroler AT89S51, Assembler ,

1 1.1

PENDAHULUAN Latar Belakang

Mikrokontroler adalah single chip komputer yang memiliki kemampuan untuk diprogram dan digunakan untuk tugas-tugas yang berorientasi kontrol. Mikrokontroler datang dengan dua alasan utama, yang pertama adalah kebutuhan pasar (market need) dan yang kedua adalah perkembangan teknologi baru. Yang dimaksud dengan kebutuhan pasar adalah kebutuhan yang luas dari produk-produk elektronik akan perangkat pintar sebagai pengontrol dan pemroses data. Sedangkan yang dimaksud dengan perkembangan teknologi baru adalah perkembangan teknologi semikonduktor yang memungkinkan pembuatan chip dengan kemampuan komputasi yang sangat cepat, bentuk yang semakin mungil, dan harga yang semakin murah. Salah satu pemanfaatan mikrokontroler yaitu dalam pembuatan robot. Robot dapat bekerja tanpa mengenal lelah sehingga akan sangat membantu untuk melakukan pekerjaan manusia. Pada bidang industri misalnya, robot dapat bekerja 24 jam sehingga akan meningkatkan hasil produksi dari perusahaan tersebut. Dalam bidang ilmu pengetahuan robot digunakan untuk melakukan hal-hal yang sulit atau berbahaya jika dilakukan oleh manusia, misalnya untuk penelitian luar angkasa, pemadam kebakaran atau pencampuran zat-zat kimia yang berbahaya. Salah satu robot yang sering dibuat dalam memulai mempelajari robotika adalah robot line follower. Robot line follower merupakan robot yang dapat mengikuti lintasan berupa garis. Garis lintasan dapat berupa garis dengan permukaan gelap dengan latar belakang terang atau sebaliknya garis terang dengan latar belakang gelap. Masukan dari robot ini berupa sensor yang dapat mendeteksi perbedaan warna dengan cara memantulkan sinar infra merah kemudian menangkapnya kembali. Transmitter dapat berupa LED (light emitting diode) sedangkan receiver berupa phototransistor. Hasil dari masukan tersebut kemudian diolah oleh CPU berdasarkan program yang telah ditanamkan pada CPU tersebur. Hasil pengolahan program akan di-outputkan ke

motor agar robot tersebut dapat menentukan pergerakan yang harus dilakukan. Robot line follower sering digunakan untuk melakukan otomasi dalam sistem transportasi, platform bergerak untuk robot industri, dan eksplorasi tanpa awak. 1.2 Rumusan Masalah

Adapun rumusan masalah yang diangkat dari latar belakang diatas adalah: 1. Bagaimana cara membuat program untuk robot line follower? 2. Bagaimana memasukkan program ke dalam robot line follower yang telah dibuat? 3. Bagaimana cara membuat robot line follower yang kecepatannya dapat dikontrol melalui program? 1.3 Tujuan

Adapun tujuan penulisan dari proyek ini yaitu: 1. mengetahui bagaimana cara membuat program untuk robot line follower. 2. Memasukkan program ke dalam robot yang telah dibuat agar robot dapat bekerja sesuai dengan keinginan programmernya. 3. membuat robot line follower yang kecepatannya dapat dikontrol melalui program. 1.4 Batasan Masalah

Adapun batasan masalah dalam proyek ini adalah: 1. Program tidak melakukan penentuan prioritas pada saat robot menemui perempatan ataupun pertigaan dalam lintasan. 2. Robot tidak dapat mendeteksi benda-benda yang berada di depan robot ataupun yang dilalui robot. 3. Robot tidak dapat menghitung jumlah putaran yang telah dilakukan pada lintasan. 1.5 1. Metodologi Penelitian Perencanaan (requirement) Pada tahap ini dilakukan pencarian ide dan mencari beberapa literatur yang akan digunakan untuk mendukung sistem yang akan dibuat. Perancangan (design) Pada tahap ini dilakukan perancangan sistem yang akan dibuat. Adapun hal-hal yang dilakukan diantaranya melakukan

2.

3.

4.

5.

perancangan mekanik dan elektronika robot serta melakukan perancangan diagram status dari robot. Implementasi (implementation) Pada tahap ini dilakukan proses pembuatan program serta menanamkan program yang telah dibuat kedalam sistem (robot). Pengujian (testing) Pada tahap ini dilakukan pengujian terhadap sistem yang telah dibangun (robot). Pada tahap ini sistem diuji apakah sistem memenuhi kriteria yang diharapkan atau tidak. Dokumentasi (documentation) Pada tahap ini dilakukan dokumentasi mengenai hal-hal yang telah dikerjakan selama masa pembangunan sistem. Jadwal Pengerjaan

1.6

2 2.1

TINJAUAN PUSTAKA Dasar-dasar Robotik

Kata robot berasal dari bahasa Czech, robota, yang berarti pekerja. Kata robot diperkenalkan dalam bahasa inggris pada tahun 1921 oleh Wright Karel Capek dalam salah satu drama satiriknya, R.U.R (Rossums Universal Robots). Robot adalah mesin hasil rakitan manusia yang bisa bekerja tanpa mengenal lelah. Awalnya, robot diciptakan sebagai pengganti tenaga manusia. Namun, untuk jangka waktu kedepan, robot akan mengambil alih posisi manusia sepenuhnya. Akhir-akhir ini telah banyak dilakukan penelitian dibidang robotika, termasuk di negara kita (Indonesia) yang juga turut berperan dalam beberapa penelitian dan berinovasi dalam pembuatan robot. Bagian-bagian robot 1. CPU (central processing unit) Istilah CPU biasa digunakan untuk menyebutkan bagian utama dari sebuah PC di mana semua proses pengolahan data dilakukan pada bagian tersebut. Analogi bagian ini pada manusia adalah bagian otak di mana segala kegiatan

manusia dilakukan berdasarkan perintah yang dikirim oleh otak. Sama halnya pada sebuah robot, bagian ini adalah merupakan bagian yang mengolah data-data dan mengambil keputusan akan kegiatan yang harus dilakukan oleh robot tersebut. 2. Sensor Dalam mengambil keputusan, otak seringkali memerlukan masukan informasi di mana sensor adalah merupakan salah satu media pemberi masukan tersebut. Pada tubuh manusia, sensor dapat dianalogikan dengan indera. 3. Motor Motor adalah bagian dari sebuah robot. Hampir semua jenis robot kecuali yang menggunakan kawat otot (muscle wire) selalu menggunakan motor. Jenis turtle, vehicle dan rover membutuhkan motor untuk menggerakkan rodanya. Appendage membutuhkan motor untuk menggerakkan lengan dan mencengkeram. Walker dan android membutuhkan motor untuk menggerakkan kakinya. Terdapat beberapa jenis motor di pasaran dan untuk merancang sebuah robot maka kita harus dapat memilih motor yang tepat sesuai fungsinya pada robot tersebut. 4. Driver Motor Untuk menggerakkan suatu motor DC menggunakan mikrokontroler, diperlukan suatu rangkaian driver motor. Driver motor digunakan digunakan untuk menggerakkan motor yang membutuhkan arus cukup besar dan/atau tegangan motor yang berbeda dengan rangkaian digital (rangkaian mokrokontroler). Arus yang mampu dikeluarkan atau diterima oleh mikrokontroler sangat kecil (dalam orde satuan milliampere) sehingga agar mikrokontroler dapat menggerakkan motor diperlukan driver motor yang mampu mengalirkan arus sampai beberapa ampere. Beberapa motor DC mempunyai tegangan kerja yang berbeda dengan rangkaian mikrokontroler (5 volt) misalnya motor DC 6 volt, 12 volt, 24 volt, dll. 5. Action tools Bagian ini adalah merupakan bagian yang melakukan aksi-aksi tertentu pada sebuah robot, seperti lengan pada robot jenis android, soccer clamp pada Soccer Robot, meriam pada robot penembak, kipas pada robot pemadam api dan lain-lain. 6. Output Information Merupakan bagian yang berfungsi untuk menyampaikan informasi ke manusia.

Contohnya Buzzer untuk indikasi bel pada sebuah robot, LCD (liquid crystal display) untuk menampilkan pesan yang ingin disampaikan oleh robot ke manusia, speaker untuk mengirimkan sinyal suara sehingga robot dapat berbicara.

32 programmable I/O lines Two 16-bit Timer/Counters Six interrupt sources Full duplex UART serial channel Watchdog timer Dual data pointer Fast programming time Flexible ISP programming Mikrokontroler AT89S51 memiliki pin berjumlah 40 buah dan umumnya dikemas dalam DIP (dual inline package). Gambar dibawah ini menunjukkan konfigurasi pin dari mikrokontroler AT89S51.

2.2

Mikrokontroler

Mikrokontroler adalah sebuah sistem mikroprosesor dimana didalamnya sudah terintegrasi CPU (central processing unit), ROM (read only memori), RAM (random access memori), I/O Port, dan peralatan internal lainnya yang telah terhubung dan terorganisasi dengan baik dan dikemas dalam satu chip yang siap pakai. Mikrokontroler berbeda dengan mikroprosesor yang banyak digunakan pada PC (personal computer). Perbedaan yang paling jelas yaitu mikroprosesor tidak dapat bekerja tanpa adanya dukungan memori eksternal (RAM) sedangkan mikrokontroler dapat bekerja walaupun tidak terdapat dukungan dari memori eksternal. Tetapi dibalik kelebihan yang dimiliki oleh mikrokontroler, juga terdapat berbagai keterbatasan diantaranya kecepatan mikrokontroler dalam mengolah suatu perintah jauh lebih lambat jika dibandingkan dengan mikroprosesor. Selain itu ukuran memori dari mikrokontroler sangat terbatas sehingga pemakaian memori harus diatur seefisien mungkin. 2.3 Atmel AT89S51

2.4

Bahasa Assembler 8051

Mikrokontroler keluaran Atmel dengan tipe AT89S51 mempunyai fitur-fitur sebagai berikut : Compatible with MCS-51 product 4 Kbytes of in-system programmable (ISP) flash memory (endurance: 1000 write/erase) 4.0 V to 5.5 V operating range Fully static operation: 0 33 MHz Three-level program memory lock 128 x 8 bit internal RAM

Dalam menjalankan program, mikrokontroler akan melakukan pembacaan data yang tersimpan dalam memori program (internal atau eksternal). Alamat memori yang harus dibaca disimpan dalam sebuah register yang dinamakan program counter (PC). Data yang terbaca harus diartikan sebagai perintah oleh mikrokontroler. Perintah ini bias berbentuk pemindahan data (data transfer), pengolahan data (data processing), atau mengubah alur program (program control). Setelah menjalankan perintah, mikrokontroler akan memperbaharui isi PC dengan alamat memori selanjutnya sehingga mikrokontroler bias mengeksekusi perintah selanjutnya. 2.4.1 Pemindahan Data MCS-51 memiliki 8 mode pengalamatan : a. Pengalamatan segera (immediate) b. Pengalamatan langsung (direct) c. Pengalamatan register d. Pengalamatan tak langsung (indirect)

e. f. g. h.

Pengalamatan berindeks (indexed) Pemindahan data berorientasi stack Perukaran data Pemindahan data berorientasi bit

8. PCB 9. Acrylic 10. Tools pendukung 3.2 Kebutuhan Perangkat Lunak

2.4.2 Pengolahan Data 1. Instruksi-instruksi aritmatika a. Instruksi penjumlahan b. Instruksi pengurangan c. Instruksi perkalian d. Instruksi pembagian e. Instruksi penaikan dan penurunan f. Instruksi pengaturan decimal 2. a. b. c. Instruksi-instruksi logika Instruksi and,or, dan xor Instruksi putar Instruksi swap, clear, dan setb

Kebutuhan perangkat lunak: 1. Windows XP Professional sp2 2. Notepad++ 3. ASM51 4. ProgISP168 5. AVR Studio 4 6. Microsoft Word 2007 7. Microsoft Visio 2007 8. Eagle 3.3 Perancangan Sistem

2.4.3 Pengaturan Alur Program Pengaturan alur program dalam bahasa assembly 8051 dibagi menjadi dua, yaitu: 1. Instruksi lompat tak bersyarat Instruksi lompat tak bersyarat digunakan untuk membuat mikrokontroler melompat ke sebuah alamat program secara langsung dengan tidak melihat kondisi sebelumnya. Adapun yang termasuk kedalam instruksi ini diantaranya sjmp, ajmp, ljmp dan jmp. 2. Instruksi lompat bersyarat Instruksi lompat bersyarat digunakan untuk membuat mikokontroler melompat ke sebuah alamat program tertentu apabila sebuah persyaratan terpenuhi. Adapun yang termasuk kedalam instruksi ini diantaranya jz, jnz, jb, jnb, djnz, cjne dll.

Adapun sistem yang akan dibangun berupa robot yang dapat bergerak secara otomatis yang termasuk kedalam tipe robot vehicle. Robot yang akan dibangun memiliki kemampuan untuk mengikuti lintasan yang berupa garis gelap dengan latar belakang yang terang. Adapun desain sistem yang akan dibuat ditunjukkan pada gambar 3.1.

ANALISIS KEBUTUHAN DAN PERANCANGAN Kebutuhan Perangkat Keras

3.1

Kebutuhan perangkat keras: 1. Komputer/Laptop 2. Mikrokontroler AT89S51 3. Sensor (LM324N) 4. Motor DC 5. Driver Motor 6. Gear Box 7. Roda

Pada gambar diatas, inputan berupa hasil pembacaan sensor dari lingkungan. Hasil pembacaan akan memberikan logika high jika sensor berada pada permukaan yang gelap dan akan memberikan logika low jika sensor berada pada permukaan yang terang. Inputan dari sensor tersebut akan diolah oleh mikrokontroler sesuai dengan program yang telah dimasukkan kedalam mikrokontroler tersebut. Mikrokontroler kemudian akan mengirimkan perintah kepada driver motor untuk menggerakkan motor sesuai dengan inputan dari sensor. Mikrokontroler kemudian akan menentukan pergerakan dari robot untuk bergerak maju atau berbelok sesuai dengan keadaan lingkungan.

Program yang dimasukkan kedalam chip mikrokontroler berguna untuk melakukan pengaturan arus dan tegangan pada masingmasing pin-pin yang terdapat pada mikrokontroler. Tanpa adanya program yang dimasukkan kedalam mikrokontroler maka hasil pembacaan dari sensor tidak dapat diolah dan robot tidak akan bisa dikontrol sesuai dengan keinginan. Selain untuk melakukan pengaturan arus dan tegangan pada pin-pin mikrokontroler, program juga digunakan untuk melakukan pengaturan terhadap fasilitas-fasilitas internal yang dimiliki oleh mikrokontroler agar dapat digunakan untuk mendukung kinerja dari robot. 3.3.1 Perancangan Mekanik Robot

3.3.2

Perancangan Elektronika Robot

Perancangan elektronika robot yang akan dibangun ditunjukkan pada gambar 3.3 dan 3.4. Gambar 3.3 menunjukkan rangkaian dari sensor yang digunakan oleh robot. Dalam pembuatan sensor digunakan LED sebagai pemancar dan photodiode sebagai penerima. Dalam rangkaian sensor tersebut diguanakan sebuah IC LM324N (op-amp) yang berfungsi sebagai penguat sensor yang digunakan untuk mendeteksi garis. Tanpa adanya IC tersebut maka mikrokontoler akan kesulitan untuk membaca hasil inputan dari sensor karena mikrokontroler akan kesulitan dalam membedakan logika-logika yang dikirimkan oleh sensor.

Sistem mekanik robot yang akan dibangun ditunjukkan pada gambar 3.2. Gambar 3.2 menggambarkan sistem mekanik dari robot tampak dari bawah. dalam membangun sistem mekanik robot digunakan acrylic sebagai papan utama untuk meletakkan sensor, motor, gear box, dll. Robot menggunakan dua buah roda, kedua roda tersebut dihubungkan dengan gear box untuk memberikan torsi yang cukup dan motor untuk memberikan laju pada robot dan mengatur pergerakan robot terhadap lingkungan. Pada robot juga dipasangkan dua buah sensor yang berfungsi sebagai input untuk mengetahui keadaan lingkungan. Pada robot juga terdapat empat buah push button yang digunakan untuk melakukan interaksi dengan robot. Button pertama digunakan untuk mengaktifkan kerja robot, button kedua digunakan untuk menonaktifkan robot, sedangkan dua button selanjutnya digunakan untuk menambah atau mengurangi kecepatan dari robot.

Gambar 3.4 menunjukkan rangkaian dari sistem kontrol dari robot yang diintegrasikan dengan rangkaian driver motor yang akan mengatur pergerakan motor. Pada rangkaian diguanakan IC mikrokontroler AT89S51 yang akan mengontrol semua aktifitas dari robot. Semua perangkat yang digunakan oleh robot akan dihubungkan ke IC mikrokontroler agar dapat dikontrol secara langsung oleh mikrokontroler seperti yang ditunjukkan pada gambar. Pada gambar 3.4 terlihat sensor dihubungkan ke mikrokontroler melalui pin P0.2 dan P0.3, push button dihubungkan ke mikrokontroler melalui pin P3.0, P3.1, P3.2, dan P3.3, dan driver motor dihubungkan ke P2.0 P2.5. Hubungan antara sensor, push button, dan driver motor harus diketahui karena pada saat pembuatan program untuk robot digunakan pinpin yang bersesuaian dengan skema rangkaian yang telah dibuat. Jika terjadi kesalahan dalam pengaturan pin maka robot akan mengalami kesalahan dalam beroperasi. Untuk rangkaian driver motor digunakan IC L293D. IC L293D berisi empat buah driver yang

berarus tinggi. IC tersebut didesain guna menyediakan pengatur arus listrik secara dua arah hingga mencapai lebih dari 1 A pada tegangan 4,5 36 V.

3.3.4

Diagram Status

3.3.3

Diagram Use Case

Diagram use case dari robot yang akan dibangun ditunjukkan pada gambar 3.5. Pada gambar terlihat ada empat macam interaksi yang dapat dilakukan antar user dan robot. Proses interaksi dilakukan dengan menggunakan button seperti telah dijelaskan pada perancangan mekanik robot.

Diagram status dari robot yang akan dibangun ditunjukkan pada gambar 3.6. pada gambar terlihat robot dapat berada dalam 5 keadaan yang berbeda. Pada saat diberi tegangan kerja maka robot akan berada dalam keadaan robot on. Pada keadaan ini robot akan menunggu aksi dari user agar robot dapat masuk ke keadaan robot aktif. Jika tidak dilakukan aksi kepada robot maka robot akan masuk ke keadaan nonaktif. Setelah robot masuk ke keadaan aktif maka robot akan melakukan fungsi utamanya dan akan menunggu aksi dari user jika sewaktuwaktu terjadi aksi untuk melakukan perubahan kecepatan terhadap robot. Jika aksi itu dilakukan maka robot akan masuk ke keadaan robot mengubah kecepatan dan jika perubahan kecepatan telah siap maka robot akan kembali ke keadaan sebelumnya yaitu robot aktif. Dari keadaan aktif robot dapat masuk ke keadaan nonaktif jika terjadi aksi dari user. Jika robot masuk ke kondisi nonaktif maka aktifitas robot akan berhenti. Dari keadaan ini robot dapat kembali ke keadaan robot on atau masuk ke keadaan robot off dan melakukan terminasi program.

3.3.5

Flowchart

logika high kepada pin yang terkoneksi dengan sensor agar dapat menjadi port untuk masukan. Proses selanjutnya adalah program akan mengecek apakah flag ON_OFF berlogika 1 atau 0. Jika berlogika 1 maka program akan mengecek apakah terjadi penekanan push button untuk mengaktifkan robot (on_button = 0), jika benar maka program akan mengisi flag ON_OFF dengan logika 0 serta mengaktifkan timer dan driver motor. Sedangkan jika salah maka program akan kembali melakukan pengecekan flag ON_OFF. Jika flag ON_OFF berlogika 0 maka program akan melanjutkan untuk melakukan pengecekan push button speed_up dan speed_down. Jika speed_up ditekan maka program akan menambahkan nilai duty cycle, sedangkan jika speed_down ditekan maka program akan mengurangi nilai duty cycle. Pengubahan nilai duty cycle akan menambah atau mngurangi kecepatan robot. Selanjutnya program akan melakukan pembacaan hasil dari sensor kemudian menyimpannya ke register A (accumulator). Setelah proses pembacaan sensor maka program akan mengecek nilai dari flag ON_OFF. Jika nilai dari flag ON_OFF berlogika 0 dan off_button ditekan maka program akan menonaktifkan timer dan driver motor kemudian kembali ke proses inisialisasi dan kembali bersiap untuk memasuki keadaan aktif. Sedangkan jika off_button tidak ditekan, maka program kembali akan melakukan pengulangan pada tahap setelah inisialisasi. Pada gambar 3.7 terlihat bagian yang berada dalam garis putus-putus. Bagian tersebut adalah bagian yang memungkinkan terjadinya interupsi dari timer yang telah diaktifkan. Jika timer mengalami overflow maka interupsi tersebut akan terjadi sehingga akan memaksa program untuk masuk ke dalam rutin interupsi dan mendahulukan proses-proses yang harus dilakukan oleh mikrokontroler. Adapun flowchart dari rutin interupsi yang akan dilakukan jika interupsi terjadi ditunjukkan pada gambar 3.8.

Gambar 3.7 (flowchart) Flowchart dari robot yang akan dibangun ditunjukkan pada gambar 3.7. Pada saat mikrokontroler diberi tegangan kerja maka mikrokontroler akan langsung melakukan pembacaan memori program sesuai dengan alamat yang ditunjukkan oleh register PC (program counter) dan melaksanakan perintahperintah yang terdapat pada memori program tersebut. Proses pertama yang dilakukan yaitu deskripsi dari pin-pin mikrokontroler dan alamat memori yang akan digunakan dalam pembuatan program. Setelah proses deskripsi, selanjutnya dilakukan proses inisialisasi. Pada proses ini dilakukan inisialisasi pada duty cycle, timer, sensor, flag ON_OFF dan flagPWM. Duty cycle merupakan variable yang mengontrol kecepatan dari robot. Teknik yang digunakan untuk mengontrol kecepatan adalah PWM (pulse width modulation). Timer merupakan pewaktu yang digunakan untuk menentukan lama waktu motor on dan lama waktu motor off. Flag ON_OFF digunakan untuk menyimpan status dari robot apakah dalam status aktif atau nonaktif. Adapun nilai yang digunakan yaitu 1 untuk nonaktif dan 0 untuk aktif. Sedangkan untuk flag PWM adalah variabel yang menyimpan status dari sinyal PWM apakah berada dalam keadaan high atau low. Untuk inisialisasi sensor, program akan mengirimkan

harus terkoneksi terlebih dahulu. Setelah keduanya terkoneksi dengan baik selanjutnya digunakan sebuah aplikasi (progisp168) untuk melakukan penulisan program kedalam memori program mikrokontroler. 4.2 Pengujian

Untuk melakukan testing terhadap robot yang telah dibangun maka dibuat dua buah lintasan. Robot akan diuji dengan menjalankan robot dimulai dari satu titik dalam lintasan dan robot tersebut harus kembali lagi pada titik awal robot mulai berjalan.

Gambar 3.8 (Rutin interupsi) 4 4.1 IMPLEMENTASI DAN PENGUJIAN Implementasi

Terdapat beberapa langkah yang ditempuh untuk melakukan implementasi dari perancangan yang telah dijelaskan diatas. Adapun langkah-langkah yang harus ditempuh adalah: 1. Implementasi mekanik robot Implementasi mekanik dilakukan sesuai dengan perancangan yang telah dilakukan. Pada langkah ini dilakukan penataan letak sistem kontrol, driver motor, motor, dan lain-lain. 2. Implementasi elektronika robot Implementasi elektronika dilakukan sesuai dengan perancangan elektronika yang telah dilakukan. Pada langkah ini skema yang telah didesain sebelumnya diterapkan kedalam papan rangkaian. 3. Implementasi program Setelah kedua proses sebelumnya dilalui maka dilakukan proses implementasi program. Langkah pertama yaitu membuat program dengan bahasa assembly (program terlampir). Setelah dilakukan pembuatan program selanjutnya dilakukan kompilasi pada program. Jika pada program tidak terdapat kesalahan maka langkah selanjutnya adalah memasukkan program kedalam mikrokontroler. Sebelum memasukkan program kedalam mikrokontroler, komputer dan mikrokontroler 5 5.1

Gambar 4.1 (Lintasan uji 1)

Gambar 4.2 (Lintasan uji 2) PENUTUP Kesimpulan

Adapun kesimpulan yang diperoleh dari pembahasan diatas adalah: 1. Cara membuat program untuk robot line follower adalah dengan menggunakan bahasa assembly yang kemudian dikompile ke bahasa mesin agar dapat dimasukkan kedalam mikrokontroler.

2.

3.

Program yang telah dikompile ke dalam bahasa mesin dimasukkan ke dalam mikrokontroler menggunakan sebuah aplikasi dan sebuah kabel yang digunakan untuk melakukan koneksi antara komputer dan mikrokontroler. Teknik PWM (pulse width modulation) digunakan untuk mengatur kecepatan pada robot. Saran

5.2

Adapun beberapasa saran dari penulis adalah: 1. Membuat desain mekanik yang lebih kreatif dari robot agar robot lebih enak dipandang. 2. Mengembangkan robot agar dapat memiliki fungsionalitas lebih banyak misalnya untuk mendeteksi keberadaan api dalam range tertentu kemudian memadamkannya. 3. Menggunakan bahasa yang tingkatannya lebih tinggi (misalnya bahasa C/Basic) dalam pembuatan program agar lebih mudah dalam pengembangan. 6 REFERENSI

Budiharto, Widodo. 10 Proyek Robot Spektakuler. Jakarta: PT Elex Media Komputindo, 2008. Budiharto, Widodo dan Nalwan, Paulus Andi. Membuat Sendiri Robot Humanoid. Jakarta: PT Elex Media Komputindo, 2009. Budiharto, Widodo. Membuat Sendiri Robot Cerdas. Jakarta: PT Elex Media Komputindo, 2009. fsfs. dasda. sdasd: asdas, 2001. Pressman, Roger S. Pendekatan Praktisi (buku satu). Yogyakarta: CV ANDI OFFSET, 2002. Suyadhi, Tufiq Dwi Septian. Build Your Own Line Follower Robot. Yogyakarta: CV ANDI OFFSET, 2008. Tim Lab Mikroprosesor. Pemrograman Mikrokontroler AT89S51 dengan C/C++ dan Assembler. Yogyakarta: CV ANDI OFFSET, 2007. Usman. Teknik Antar Muka + Pemrograman Mikrokontroler AT89S52. Yogyakarta: CV ANDI OFFSET, 2008. Winoto, Ardy. Mikrokontroler AVR ATmega 8/32/16/8535 dan Pemrogramannya Dengan Bahasa C Pada WinAVR. Bandung: Informatika, 2008. Wiyono, Didik. Panduan Praktis Mikrokontroler Keluarga AVR. Surabaya: Innovative Electronics, 2007.

LAMPIRAN

Lifobot.asm
$mod51 ;PIN DESCRIPTION--------------------------------------------------------L_sense equ P0.2 R_sense equ P0.3 L_motor_EN R_motor_EN L_motor_A L_motor_B R_motor_A R_motor_B equ P2.0 equ P2.1 equ P2.2 equ P2.3 equ P2.4 equ P2.5

ON_button equ P3.0 OFF_button equ P3.1 UP_speed equ P3.2 DOWN_speed equ P3.3 ;------------------------------------------------------------------------------;MEMORY DESCRIPTION-----------------------------------------------FLAGREG equ 20H ON_OFF bit FLAGREG.0 PWM bit FLAGREG.1 DCYCLE equ 30H DCYCLEC equ 31H ;--------------------------------------------------------------------------------org start: 0000H sjmp main_prog

org 000BH timer_interupsi: call moving reti main_prog: mov mov cpl mov setb setb setb clr call

DCYCLE, #0FFH A, DCYCLE A DCYCLEC, A L_sense R_sense ON_OFF PWM init_timer

LAMPIRAN
main_prog_loop: jb ON_OFF, read_ON call read_UP mov A, P0 jnb ON_OFF, read_OFF sjmp main_prog_loop read_ON: jb call jnb clr setb mov sjmp read_OFF: jb call jnb clr mov sjmp read_UP: jb call jnb mov inc mov cpl mov ret

ON_button, main_prog_loop delay ON_button, read_ON ON_OFF TR0 P2, #0FFH main_prog_loop

OFF_button, main_prog_loop delay OFF_button, read_OFF TR0 P2, #00H main_prog

UP_speed, read_DOWN delay UP_speed, read_UP A, DCYCLE A DCYCLE, A A DCYCLEC, A

read_DOWN: jb DOWN_speed, read_UPDOWN_exit call delay jnb DOWN_speed, read_DOWN mov A, DCYCLE dec A mov DCYCLE, A cpl A mov DCYCLEC, A read_UPDOWN_exit: ret init_timer: mov mov setb setb ret

TMOD, #82H TH0, DCYCLE ET0 EA

LAMPIRAN

moving: cjne setb setb call ret belok_kanan: cjne setb clr call ret belok_kiri: cjne clr setb call ret exit: ret motor_on: jb setb setb setb mov ret motor_off: clr clr clr mov ret delay: mov mov delay_loop: djnz djnz ret end R6, #0FFH R7, #0FFH R6, delay_loop R7, delay_loop A, #11111111B, belok_kanan L_motor_EN R_motor_EN motor_on

A, #11111011B, belok_kiri L_motor_EN R_motor_EN motor_on

A, #11110111B, exit L_motor_EN R_motor_EN motor_on

PWM, motor_off L_motor_B R_motor_B PWM TH0, DCYCLEC

L_motor_B R_motor_B PWM TH0, DCYCLE

Anda mungkin juga menyukai