35
Workshop Teknologi Sensor & Aktuator Untuk Kontes Robot Indonesia 2009 [email protected] Teknik-Teknik Penyesuaian Sensor Teknik-Teknik Penyesuaian Sensor

Teknik-Teknik Penyesuaian Sensor · Teknik Lanjutan • Saat robot mulai berjalan motor berjalan pelan sensor diusahakan pada posisi tengah • Saat posisi sensor ditengah motor dipercepat

Embed Size (px)

Citation preview

Workshop Teknologi Sensor & AktuatorUntuk Kontes Robot Indonesia

[email protected]

Teknik-TeknikPenyesuaian Sensor

Teknik-TeknikPenyesuaian Sensor

Tim Robotika Politeknik Elektronika Negeri Surabaya

Materi1. Teknik-Teknik Penyesuaian Sensor2. Kalibrasi3. Pengamanan Sensor terhadap Lingkungan4. Sensor Pada Kecepatan Tinggi5. Code Vision 6. Program Membaca sensor7. Program Menjalankan Motor8. Program Multi Strategi

Tim Robotika Politeknik Elektronika Negeri Surabaya

Teknik-Teknik PenyesuaianSensor• Jumlah sensor 6 buah• Ada dua sensor berada di dalam garis

Tim Robotika Politeknik Elektronika Negeri Surabaya

Teknik-Teknik PenyesuaianSensor• Bila robot bergerak agak kekiri• Satu sensor terkena garis

Tim Robotika Politeknik Elektronika Negeri Surabaya

Teknik-Teknik PenyesuaianSensor• Bila robot bergerak agak kekanan• Satu sensor terkena garis

Tim Robotika Politeknik Elektronika Negeri Surabaya

Teknik-Teknik PenyesuaianSensor• Bila robot berada pada percabangan• Semua sensor terkena garis

Tim Robotika Politeknik Elektronika Negeri Surabaya

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

Tim Robotika Politeknik Elektronika Negeri Surabaya

Pengamanan Sensor Terhadap Lingkungan• Menerangkan lampu led• Menggunakan led warna

merah• Membungkus sensor• Jarak sensor terhadap

lantai

Tim Robotika Politeknik Elektronika Negeri Surabaya

Sensor Pada KecepatanTinggi• Pada saat motor dalam kecepatan

tinggi posisi sensor bisa pada posisipaling kanan atau kiri

5 4 3 2 1 0

Tim Robotika Politeknik Elektronika Negeri Surabaya

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 posisisetengah ukuran robot putar robot sambil sensor mendeteksi ada garis

• Bila semua sensor lepas dari garis yang dilakukanadalah mencatat kondidi terakhir sensor yang terbaca

Tim Robotika Politeknik Elektronika Negeri Surabaya

CodeVisionAVR• Jalankan software CodeVisionAVR

Tim Robotika Politeknik Elektronika Negeri Surabaya

CodeVisionAVR• Buatlah project baru. • Pilih File New. • Pilih project lalu tekan tombol OK.

Tim Robotika Politeknik Elektronika Negeri Surabaya

CodeVisionAVR• Kemudian muncul

dialog apakah akanmenggunakanCodeWizardAVRuntukmempermudahmerancangkerangka program.

• Pilih YES.

Tim Robotika Politeknik Elektronika Negeri Surabaya

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

Tim Robotika Politeknik Elektronika Negeri Surabaya

CodeVisionAVR• Kemudian pilih File Generate, Save and

Exit.

Tim Robotika Politeknik Elektronika Negeri Surabaya

CodeVisionAVR

• Simpan pada direktori d:\workshop.• Beri nama source file, nama project

file, dan nama codewizard project file anda.

Tim Robotika Politeknik Elektronika Negeri Surabaya

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);

};}

Tim Robotika Politeknik Elektronika Negeri Surabaya

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.

Tim Robotika Politeknik Elektronika Negeri Surabaya

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 suplaytegangannya, hubungkan kabel download dari PC ke board.

• Kemudian tekan tombol Program.

Tim Robotika Politeknik Elektronika Negeri Surabaya

CodeVisionAVR

• Bila tidak ada kesalahan maka– ketiga LED akan menyala satu detik.– Kemudian ketiga LED akan mati satu

detik.– Demikian seterusnya.

Tim Robotika Politeknik Elektronika Negeri Surabaya

Program Push Button• Ketika tombol 1 ditekan maka 2 led menyala• Ketika tombol 2 ditekan maka 1 led menyala

Tim Robotika Politeknik Elektronika Negeri Surabaya

Program Push Buttonwhile (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;

};}

Tim Robotika Politeknik Elektronika Negeri Surabaya

Program PWM• Menyalakan lampu berdasarkan nilai pwm

Tim Robotika Politeknik Elektronika Negeri Surabaya

Program PWMunsigned char x,pwm;// Timer 0 overflow interrupt service routineinterrupt [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 herepwm=200;};

}

Tim Robotika Politeknik Elektronika Negeri Surabaya

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

Tim Robotika Politeknik Elektronika Negeri Surabaya

Program Membaca sensorwhile (1)

{// Place your code here

PORTD.4=1;PORTD.5=1;PORTD.6=1;sensor=PINB>>2;switch(sensor) {

case 0://00000000PORTD.4=1;PORTD.5=1;PORTD.6=1;break;

case 1://00000001PORTD.4=0;PORTD.5=1;PORTD.6=1;break;

case 2://00000010PORTD.4=1;PORTD.5=0;PORTD.6=1;break;

case 4://00000100PORTD.4=0;PORTD.5=0;PORTD.6=1;break;

case 8://00001000PORTD.4=1;PORTD.5=1;PORTD.6=0;break;

case 16://00010000PORTD.4=0;PORTD.5=1;PORTD.6=0;break;

case 32://00100000PORTD.4=1;PORTD.5=0;PORTD.6=0;break;

case 63://00111111PORTD.4=0;PORTD.5=0;PORTD.6=0;break;

}};

}

Tim Robotika Politeknik Elektronika Negeri Surabaya

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

Tim Robotika Politeknik Elektronika Negeri Surabaya

Program Menjalankan Motorunsigned char x,lpwm,rpwm;// Timer 0 overflow interrupt service routineinterrupt [TIM0_OVF] void timer0_ovf_isr(void){// Place your code here

x++;if(x>=lpwm)PORTD.0=0;else PORTD.0=1;if(x>=rpwm)PORTD.2=0;else PORTD.2=1;

}

while (1){// Place your code here

PORTD.1=1;lpwm=200;PORTD.3=1;rpwm=200;

};}

Tim Robotika Politeknik Elektronika Negeri Surabaya

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

Tim Robotika Politeknik Elektronika Negeri Surabaya

Port yang digunakan padarobot• PB2-PB7 Sensor• PB0-PB1 Push Button• PD0-PD1 Motor Kiri• PD2-PD3 Motor Kanan• PD4-PD6 Led

Tim Robotika Politeknik Elektronika Negeri Surabaya

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

Tim Robotika Politeknik Elektronika Negeri Surabaya

Bagaimana cara robot belokkanan• 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

Tim Robotika Politeknik Elektronika Negeri Surabaya

Bagaimana cara robot belokkiri• 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

Tim Robotika Politeknik Elektronika Negeri Surabaya

Bagaimana robot mendeteksipercabangan• 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

Tim Robotika Politeknik Elektronika Negeri Surabaya

Bagaimana membuatprogram 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 fungsistrategi_2() jalan

• Strategi_1()• Strategi_2()