You are on page 1of 35

Teknik-Teknik

Teknik-Teknik
Penyesuaian
Penyesuaian Sensor
Sensor

Workshop Teknologi Sensor & Aktuator


Untuk Kontes Robot Indonesia

Nopember 2007
riyanto@eepis-its.edu

Politeknik Elektronika Negeri Surabaya


Materi
1. Teknik-Teknik Penyesuaian Sensor
2. Kalibrasi
3. Pengamanan Sensor terhadap Lingkungan
4. Sensor Pada Kecepatan Tinggi
5. Code Vision
6. Program Membaca sensor
7. Program Menjalankan Motor
8. Program Multi Strategi
Teknik-Teknik Penyesuaian
Sensor
• Jumlah sensor 6 buah
• Ada dua sensor berada di dalam garis
Teknik-Teknik Penyesuaian
Sensor
• Bila robot bergerak agak kekiri
• Satu sensor terkena garis
Teknik-Teknik Penyesuaian
Sensor
• Bila robot bergerak agak kekanan
• Satu sensor terkena garis
Teknik-Teknik Penyesuaian
Sensor
• Bila robot berada pada percabangan
• Semua sensor terkena garis
Kalibrasi Sensor
• Letakkan sensor pada garis
• Putar variabel resistor sehingga
indikator lampu menyala
• Matikan indikator lampu dengan
memutar sebaliknya sedikit
• Nyalakan indikator dengan memutar
sebaliknya sedikit
Pengamanan Sensor
Terhadap Lingkungan
• Menerangkan lampu led
• Menggunakan led warna
merah
• Membungkus sensor
• Jarak sensor terhadap
lantai
Sensor Pada Kecepatan
Tinggi
• Pada saat motor dalam kecepatan
tinggi posisi sensor bisa pada posisi
paling kanan atau kiri
5 4 3 2 1 0
Teknik Lanjutan
• Saat robot mulai berjalan motor berjalan pelan
sensor diusahakan pada posisi tengah
• Saat posisi sensor ditengah motor dipercepat
perlahan-lahan sampai kecepatan tinggi
• Bila robot hendak berhenti motor berjalan pelan
kemudian di rem
• Bila robot hendak belok maka sensor pada posisi
percabangan, gerakkan ke depan hingga posisi
setengah ukuran robot putar robot sambil sensor
mendeteksi ada garis
• Bila semua sensor lepas dari garis yang dilakukan
adalah mencatat kondidi terakhir sensor yang
terbaca
CodeVisionAVR
• Jalankan software CodeVisionAVR
CodeVisionAVR
• Buatlah project baru.
• Pilih File New.
• Pilih project lalu tekan tombol OK.
CodeVisionAVR
• Kemudian muncul
dialog apakah akan
menggunakan
CodeWizardAVR
untuk
mempermudah
merancang
kerangka program.
• Pilih YES.
CodeVisionAVR
• Board yang digunakan menggunakan chip ATtiny2313 dengan
clock 11.0592MHz, kemudian pilih tab Ports, secara default port
merupakan pin input, lakukan seting untuk PortB sebagai input
sensor, PortD sebagai output LED
CodeVisionAVR
• Kemudian pilih File Generate, Save and
Exit.
CodeVisionAVR
• Simpan pada direktori d:\workshop.
• Beri nama source file, nama project
file, dan nama codewizard project file
anda.
CodeVisionAVR
• Tambahkan #include <delay.h>
• Pada main program, sisipkan perintah berikut
while (1)
{
// Place your code here
PORTD.4=0;PORTD.5=0;PORTD.6=0;
delay_ms(1000);
PORTD.4=1;PORTD.5=1;PORTD.6=1;
delay_ms(1000);
};
}
CodeVisionAVR
• Sebelum melakukan kompilasi, lakukan seting
berikut untuk pertama kali saja.
• Pilih Project Configure.
• Pastikan pada tab C Compiler nama chip dan clock
telah sesuai dengan IC yang terpasang pada board.
• Dan pada tab After Make pilih Program the Chip.
• Lalu tekan tombol OK.
• Pilih Settings Programmer, pilih Kanda System
STK200+/300 untuk AVR Chip Programmer Type.
• Lalu tekan tombol OK.
CodeVisionAVR
• Secara bertahap anda dapat melakukan
check syntax, compile, dan make.
• Atau langsung pilih Project Make. Bila tidak
ada error maka akan muncul kotak dialog
informasi.
• Siapkan board, nyalakan suplay
tegangannya, hubungkan kabel download
dari PC ke board.
• Kemudian tekan tombol Program.
CodeVisionAVR
• Bila tidak ada kesalahan maka
– ketiga LED akan menyala satu detik.
– Kemudian ketiga LED akan mati satu
detik.
– Demikian seterusnya.
Program Push Button
• Ketika tombol 1 ditekan maka 2 led menyala
• Ketika tombol 2 ditekan maka 1 led menyala
Program Push Button
while (1)
{
// Place your code here
PORTD.4=1;PORTD.5=1;PORTD.6=1;
if(PINB.0==0){PORTD.5=0;PORTD.6=0;}
if(PINB.1==0)PORTD.4=0;
};
}
Program PWM
• Menyalakan lampu berdasarkan nilai pwm
Program PWM
unsigned char x,pwm;
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Place your code here
x++;
if(x>=pwm)PORTD.4=1;
else PORTD.4=0;
}
…….
PORTD.4=1;PORTD.5=1;PORTD.6=1;
while (1)
{
// Place your code here
pwm=200;
};
}
Program Membaca sensor
• Membaca sensor dan menampilkan hasilnya di led.
• Bila sensor ke 1 aktif maka led menunjukkan nilai biner 1, bila
sensor ke 2 aktif maka led menunjukkan nilai biner 2, dst
Program Membaca sensor
while (1)
{
// Place your code here
PORTD.4=1;PORTD.5=1;PORTD.6=1;
sensor=PINB>>2;
switch(sensor) {
case 0://00000000
PORTD.4=1;PORTD.5=1;PORTD.6=1;break;
case 1://00000001
PORTD.4=0;PORTD.5=1;PORTD.6=1;break;
case 2://00000010
PORTD.4=1;PORTD.5=0;PORTD.6=1;break;
case 4://00000100
PORTD.4=0;PORTD.5=0;PORTD.6=1;break;
case 8://00001000
PORTD.4=1;PORTD.5=1;PORTD.6=0;break;
case 16://00010000
PORTD.4=0;PORTD.5=1;PORTD.6=0;break;
case 32://00100000
PORTD.4=1;PORTD.5=0;PORTD.6=0;break;
case 63://00111111
PORTD.4=0;PORTD.5=0;PORTD.6=0;break;
}
};
}
Program Menjalankan Motor
• Untuk menjalankan motor dengan pwm Pilih tab
Timers, setting Timer 0 dengan clock value: 10.800
kHz dan aktifkan cek Overflow Interrupt
Program Menjalankan Motor
unsigned char x,lpwm,rpwm;
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Place your code here
x++; while (1)
if(x>=lpwm)PORTD.0=0; {
else PORTD.0=1; // Place your code here
if(x>=rpwm)PORTD.2=0; PORTD.1=1;lpwm=200;
else PORTD.2=1; PORTD.3=1;rpwm=200;
} };
}
Program Multi Strategi
• Port yang digunakan pada robot
• Bagaimana cara robot berjalan lurus
• Bagaimana cara robot belok kanan
• Bagaimana cara robot belok kiri
• Bagaimana robot mendeteksi percabangan
• Bagaimana membuat program multi strategi
Port yang digunakan pada
robot
• PB2-PB7 Sensor
• PB0-PB1 Push Button
• PD0-PD1 Motor Kiri
• PD2-PD3 Motor Kanan
• PD4-PD6 Led
Bagaimana cara robot
berjalan lurus
• Motor dalam kondisi siap jalan
• Baca sensor
• Bila 2 sensor ditengah aktif maka motor kanan
kecepatannya sama dengan motor kiri
• Bila sensor di kiri aktif atau robot agak kekanan
maka motor kanan lebih cepat dari motor kiri
• Bila sensor di kanan aktif atau robot agak kekiri
maka motor kiri lebih cepat dari motor kanan
• program
Bagaimana cara robot belok
kanan
• Kecepatan pwm diturunkan
• Motor kiri bergerak kedepan dan motor
kanan bergerak ke belakang
• Sensor membaca data
• Loop sampai sensor bernilai 0
• Loop lagi sampai 2 sensor di kanan ketemu
garis
• program
Bagaimana cara robot belok
kiri
• Kecepatan pwm diturunkan
• Motor kanan bergerak kedepan dan motor
kiri bergerak ke belakang
• Sensor membaca data
• Loop sampai sensor bernilai 0
• Loop lagi sampai 2 sensor di kiri ketemu
garis
• program
Bagaimana robot mendeteksi
percabangan
• Baca sensor
• Bila sensor aktif semua berarti percabangan
• Motor jalan lurus
• Loop dan baca sensor sensor sehingga
kondisi sensor ada yang tidak aktif
• Hitung jumlah percabangan
• Program
Bagaimana membuat
program multi strategi
• Buat program menjadi fungsi misal
strategi_1() dan strategi_2()
• Baca tombol push button (PB) bila PB
1 ditekan maka fungsi strategi_1()
jalan, bila PB 2 ditekan maka fungsi
strategi_2() jalan
• Strategi_1()
• Strategi_2()

You might also like