

perubahan nilai |PQ| membuat perjalanan sedikit bergelombang dikarenakan nilai |PQ| tersebut mempengaruhi nilai dari PWM motor(kecepatan motor pada masing2 roda), dan pada kasus yang biasa terjadi gelombang tersebut dapat diperhalus lagi dengan menggunakan sistem PID dengan nilai |PQ| sebagai nilai errornya, tapi tenang penggunaan kali ini belum sampai pada penambahan sistem PID untuk bentuk sederhananya bisa seperti berikut :
void euclid(){
r=20cm; //misal jarak untuk referensi untuk pingp
s=20cm; //misal jarak untuk referensi untuk pingq
pingp(); //untuk memanggil pingp dan mengambil jaraknya
pingq(); //untuk memanggil pingq dan mengambil jaraknya
pr=pingp-r ;
qs=pingq-s ;
maxpwm=255; /*bisa diatur sesuai kebutuhan robot, (tiap robot memiliki kecepatan berbeda-beda)*/

if(pingp //posisi robot miring kekiri
for(a=0;a<=pq;a++){
lpwm=maxpwm-pq; rpwm=maxpwm;
}
goto keluar;
}
else if(pingp>pingq){ //posisi robot miring kekanan
for(a=0;a<=pq;a++){
lpwm=maxpwm; rpwm=maxpwm-pq;
}
goto keluar;
}
else if(pingp==pingq){ //posisi robot sejajar tembok
if(pq==0){
goto keluar;}
else if((pingp<20)&&(pingq<20)){
for(a=0;a<=pq;a++){
lpwm=maxpwm-pq; rpwm=maxpwm;
}
goto keluar;}
else if((pingp>20)&&(pingq>20)){
for(a=0;a<=pq;a++){
lpwm=maxpwm; rpwm=maxpwm-pq;
}
goto keluar;
}
}
keluar:
}
semoga membantu !!
Referensi : http://robotika.blog.gunadarma.ac.id/
Belum ada tanggapan untuk "EUCLIDEAN UNTUK PELURUSAN PADA ROBOT MAZE"
Posting Komentar