Workshop Teknologi Sensor & AktuatorUntuk Kontes Robot Indonesia
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• 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()