• Tidak ada hasil yang ditemukan

BAB IV IMPLEMENTASI PERANGKAT LUNAK Ada beberapa hal yang harus diperhatikan sebelum program mobil automatis dibuat dan pada akhirnya dapat dijalankan dengan baik, cara membuat program dan cara mengimplementasikan program yang sudah dibuat. - Rancang bang

N/A
N/A
Protected

Academic year: 2019

Membagikan "BAB IV IMPLEMENTASI PERANGKAT LUNAK Ada beberapa hal yang harus diperhatikan sebelum program mobil automatis dibuat dan pada akhirnya dapat dijalankan dengan baik, cara membuat program dan cara mengimplementasikan program yang sudah dibuat. - Rancang bang"

Copied!
12
0
0

Teks penuh

(1)

Ada beberapa hal yang harus diperhatikan sebelum program mobil

automatis dibuat dan pada akhirnya dapat dijalankan dengan baik, cara membuat

program dan cara mengimplementasikan program yang sudah dibuat.

4. 1.Kebutuhan Perangkat Sistem

Perangkat yang dibutuhkan dalam pembuatan simulasi mobil

menggunakan ATMega8535 ini meliputi perangkat keras (hardware) dan

perangkat lunak (software)

Adapun perangkat keras yang dibutuhkan adalah sebagai berikut :

a. PC diatas pentium 3, yang memiliki serial port (COM1/COM2).

b. Hard Disk dengan kapasitas minimum 500 Kb

c. Downloader serial untuk AVR.

Sedangkan perangkat lunak yang dibutuhkan adalah sebagai berikut :

a. Windows XP SP2 sebagai sistem operasi

b. CodeVision AVR sebagai program compiler

4. 2.Implementasi Pemrograman

Untuk memulai pemrograman jalankan CodeVision AVR yang terdapat

di C:/cvavr/bin/cvavr.exe

Gambar 4.1 Folder Tempat Program CodeVision AVR

(2)

Kemudian klik menu File->New. Pilih Project, kemudian klik OK

Gambar 4.2 Tahap awal pembuatan program

Pilih wizard avr, kemudian pilih chip yang akan digunakan, yaitu

ATMega8535 dengan clock 11.0592.

Gambar 4.3 Pemilihan Chip dan Clock yang akan digunakan

Setelah memilihi chip yang digunakan, selanjutnya konfigurasikan

masing-masing port yang akan digunakan, port yang akan digunakan adalah port

(3)

(4.4a), port B untuk LCD konfigurasi port B dapat dilihat pada gambar (4.4b),

port C untuk driver motor konfigurasi port C dapat dilihat pada gambar (4.4c),

port D untuk sensor garis konfigurasi port D dapat dilihat pada gambar (4.4d).

(a) (b)...

(c) (d)

(4)

Karena sensor warna menggunakan Pin ADC maka kita perlu mengatur

konfigurasi ADCnya juga, dapat dilihat pada gambar (4.5a). Dan untuk

penggunaan delay maka konfigurasi timer juga diperlukan, konfigurasi timer

dapat dilihat pada gambar (4.5b), berikut ini konfigurasi ADC dan timer :

(a) (b)

Gambar 4.5 Konfigurasi timer dan ADC.

Setelah selesai, klik menu File->Generate, Save and Exit. Lalu akan

muncul halaman untuk memasukkan code program.

Berikut ini potongan program simulasi mobil automatis :

void scan() {

sensor=PIND;

sensor&=0b00111111; switch(sensor) {

case 0b00000001: maju(70,0 ); x=1; z=4;break;

case 0b00000011: maju(90,30); x=1; z=4;break;

case 0b00000010: maju(100,50); x=1; z=4;break;

(5)

case 0b00000100: maju(100,80); x=1; z=4;break;

case 0b00001100: maju(100,100); z=4;break;

case 0b00001000: maju(80,100); x=0; z=4;break;

case 0b00011000: maju(60,100); x=0; z=4;break;

case 0b00010000: maju(50,100); x=0; z=4;break;

case 0b00110000: maju(30,90); x=0; z=4;break;

case 0b00100000: maju(0,70); x=0; z=4;break;

Code di atas adalah code untuk scan garis hitam, fungsi ini digunakan

agar mobil tetap berada di jalur yang ditentukan, yaitu tetap mengikuti garis

hitam. Jika sensor berada di atas garis hitam maka sensor akan bernilai 1, dan jika

berada di garis putih maka sensor akan bernilai 0. Setelah mengecek garis lintasan

mobil digerakkan sesuai posisinya dengan menggunakan fungsi maju (a,b). posisi

x merupakan indicator tempat terakhir mobil berada, jadi jika mobil keluar garis

lintasan maka mobil akan bisa kembali dengan segera.

Contoh:

case 0b00000100: maju(100,80); x=1; z=4;break; //1 case 0b00001000: maju(80,100); x=0; z=4;break; //2

Jalan dari code 1 adalah jika sensor KI terkena garis hitam sedang yang

lain membaca background putih, kemudian mobil akan berbelok ringan (motor

kiri maju cepat, motor kanan maju ringan) dan x diset 1, 1 berarti kondisi ketika

mobil berada di sebelah kiri garis hitam, sedangkan code 2 adalah jika sensor KA

terkena garis hitam sedang yang lain terkena background putih, dan x diset=0,

(6)

Dengan mengingat keberadaan mobil maka ketika mobil keluar jalur,

maka mobil akan berbelok sesuai dengan kondisi keberadaan mobil yang terakhir

diingat.

secara otomatis mobil akan langsung berbelok kanan sampai menemukan garis

lintasan yang tepat, jika x=0, kondisi mobil terkahir di sebelah kanan lintasan

maka secara otomatis mobil akan langsung berbelok kiri sampai menemukan garis

lintasan yang tepat.

Selain melaju di garis luru mobil juga akan dihadapi dengan lintasan

yang memiliki perempatan, dan jika menghadapi perempatan mobil akan langsung

berbelok kanan, fungsi ini dapat dilihat di code berikut ini:

case 0b00111111: belka(90,50); x=0; z=4;break;

code ini berarti mobil sedang berada di atas perempatan, perempatan

dikenali dengan semua sensor sedang membaca garis hitam, jika kondisi

perempatan terpenuhi maka mobil akan langsung berbelok kanan dengan fungsi

belka(a,b).

void maju(unsigned char mki,unsigned char mka) {

pwmki=mki; pwmka=mka; dirki=0; dirka=0; remki=1; remka=1;

}

Fungsi maju(a,b) adalah fungsi untuk maju, nilai a adalah pwm untuk

(7)

kiri di aktifkan, begitu juga dengan dirka. Sedangkan remki merupakan nilai

untuk rem motor baik motor kiri maupun kanan.

Remka dan remki harus dipastikan tidak aktif, karena jika remka atau

remki diaktifkan berapapun besarnya pwm dan direksi yang diberikan maka motor

tidak akan dapat bergerak sama sekali.

void belka(unsigned char mki,unsigned char mka) {

pwmki=mki; pwmka=mka; dirki=0; dirka=1; remki=1; remka=1; }

Fungsi belka(a,b) adalah fungsi untuk belok kanan, untuk dapat belok

kanan maka direction kanan harus berhenti dan direction kiri berjalan.

void belki(unsigned char mki,unsigned char mka) {

pwmki=mki; pwmka=mka; dirki=1; dirka=0; remki=1; remka=1; }

Fungsi belki(a,b) adalah fungsi untuk belok kiri, untuk dapat belok kiri

maka direction kiri harus berhenti dan direction kanan berjalan.

void stop (){pwmki=0; pwmka=0; remki=0; remka=0;}

fungsi ini digunakan untuk menghentikan mobil.

warna=read_adc(0);

l_tm=((255-m)/2)-10; //mencari nilai low merah h_tk=((255-k)/2)+10; //mencari nilai high kuning

th=(255-warna)/2; //mencari nilai tengah-tengah if(th<=h_tk) z=1; // kuning

(8)

fungsi ini digunakan untuk mengecek warna merah, hijau dan kuning.

warna=read_adc(0) berfungsi untuk mengambil nilai warna yang dilihat saat ini,

l_tm digunakan untuk mencari nilai low tegangan merah, h_tk=digunakan untuk

mencari nilai max tegangan kuning, th digunakan untuk mencari nilai rata-rata

tegangan saat ini. Jika nilai tegangan rata-rata saat ini kurang dari h_tk maka

warna yang dilihat adalah warna kuning, jika nilai tegangan rata-rata saat ini lebih

dari nilai l_tm maka warna yang dilihat adalah warna merah.

Untuk memberikan aksi kepada motor sesuai dengan warna yang dilihat

maka digunakan potongan program di bawah ini :

warna=read_adc(0);

(9)

Program ini berfungsi. Jika z==1, maka pwm ke motor akan dikurangi,

dan direksi yang diberikan ke motor sesuai dengan posisi terakhir saat

pendeteksian garis. Jika z==2, maka mobil akan berhenti selama 7 detik kemudian

langsung maju, jika nilai th<h_th dan h>l_th maka mobil akan melaju seperti

normal, jika semua tidak terpenuhi berarti sensor warna sedang membaca warna

hitam sehingga tidak ada aksi yang diberikan kepada driver motor

4. 3.Prosedur Pemasangan Program Pada ATMega8535

Agar listing program yang dibuat dapat dibaca oleh microcontroller,

maka listig program yang awalnya berekstensi .c harus diconvert menjadi .hex.

Berikut ini alur proses pemasangan program pada ATMega8535 menggunakan

program compiler CodeVision AVR.

Gambar 4.6 Alur Pemasangan Program Pada Microcontroller

Listing Code

berekstensi .c Compile Code Erro

r?

Perbaiki

Make Program (Convert listing code

berkestensi .c menjadi .hex)

Proses Pengisian Program 1. Flash erasure Checking

(10)

Untuk memasang program pada chip ATMega8535 pertama-tama

program yang sudah dibuat sebelumnya harus dicompile terlebih dahulu, untuk

memastikan tidak ada yang error, karena jika ada yang error maka program tidak

akan bisa dibuat, hasil compile dari program yang sudah tidak memiliki error

adalah seperti gambar di bawah ini:

Gambar 4.7 Hasil compilasi program

Setelah tidak ada kesalahan selanjutnya make program, hasilnya dapat

dilihat pada gambar 4.8, setelah make program selesai listing code yang awalnya

berekstensi .c akan diconvert menjadi .hex, untuk mengetahuinya dapat dilihat di

folder tempat penyimpanan file project yang sedang dibuat, seperti yang

ditunjukkan pada gambar 4.9

(11)

Gambar 4.8 Tampilan Saat Make Program

Gambar 4.9 Hasil Convert File t5.c

Setelah itu klik button “Program the chip”. Maka proses selanjutnya

adalah proses pengisian program, ada juga yang menamakan penanaman program

pada chip ATMega8535.

Pengisian program ini dilakukan secara bertahap :

1. Proses pertama pengecekan kondisi memori flash chip

2. Jika chip belum terpasang dengan benar maka aka nada peringatan

error.

3. Jika chip sudah terpasang dengan benar maka memori flash yang ada

sebelumnya dihapus

(12)

5. Setelah proses pengisian memori flash selesai, selanjutnya proses

pengisian memori EEPROM. Proses ini dilakukan hanya jika listing

code yang dibuat menggunakan fasilitas EEPROM, jika tidak maka

proses ini akan dilewati.

Berikut ini hasil dari pengisian program pada chip ATMega8535

……….(a) (b)

Gambar

Gambar 4.1 Folder Tempat Program CodeVision AVR
Gambar 4.2 Tahap awal pembuatan program
Gambar 4.4 konfigurasi port yang akan digunakan
Gambar 4.5 Konfigurasi timer dan ADC.
+5

Referensi

Dokumen terkait

Untuk menampilkan hasil dari kode program pertama.html yang tadi sudah dibuat, dapat dilakukan dengan cara, pada Jendela Windows Explorer, Click kanan pada file yang

Hasil : Hasil penelitian uji paired sample T-test pada kedua kelompok didapatkan hasil p=0,000&lt;0,05 yang berarti ada pengaruh pemberian terapi laser berintensitas rendah dan

Suspensi trombosit dapat diperoleh dari 1 unit darah lengkap segar donor tunggal, atau dari darah donor dengan cara/ melalui tromboferesis. Komponen ini masih mengandung sedikit

usia remaja yang melahirkan, wanita usia 15-19 tahun, dengan MDG 5.4; (4) Proporsi kelahiran dari ibu, usia 15-24 tahun, yang ditolong oleh tenaga kesehatan terlatih, di

Dengan perkataan lain, jika tingkat layanan yang tinggi hanya dapat disediakan oleh satu atau sedikit rute saja, maka hal tersebut belum dapat secara efektif menarik masyarakat

Selanjutnya, dari laporan tersebut mengingatkan bangsa-bangsa di seluruh dunia menyelenggarakan konferensi tingkat tinggi (KTT) yang dikenal sebagai KTT Bumi pada tahun

barang-barang impor yang sejenis karena harga barang impor lebih murah, maka untuk melindungi industri dalam negeri dari kerugian dan ancaman kerugian, pemerintah menerapkan

Dari tabel 3 dan 4 diketahui hasil penelitian menunjukkan siklus ekonomi resesi dan boom memiliki pengaruh signifikan terhadap profitabilitas perusahaan baik pada