Program Line Follower

Program ini dipakai robot saya yang diatas Microbot 096 v2 yang kemarin menjadi semifinalis lomba airrobocop. Untuk rangkainnya saya posting di artikel selanjutnya. Di tunggu saja .. dipelajari dulu programnya .. J
Chipset yang saya pakai untuk program ini adalah At mega 8535 karena mempunyai memory yang besar. Dalam program ini akan dijelaskan beberapa pemograman dasar line follower microkonstroller diantaranya :
//sub program menggerakkan motor maju
void maju(unsigned char kiri,unsigned char kanan)
{
PORTD.1=0;
PORTD.2=1;
PORTD.3=0;
PORTD.6=1;
pwmka=kanan;
pwmki=kiri;
}
Program diatas adalah perintah menggerakkan robot maju. PortD 1 dan 2 adalah input ke driver motor kanan dan PortD 3 dan 6 input ke driver motor kiri. Driver motor yang saya pakai adalah L298. pwmka dan pwmki adalah definisi untuk kecepatan motornya.Angka 0 dan 1 menunjukkan nilai input ke drivernya. Nilai 0 berarti input negatif dan nilai 1 berarti positif.
void countersimpang(unsigned char xcounter)
{
unsigned char counter;
unsigned int i;
counter=0;
while(counter<xcounter)
{ for(i=0;i<1000;i++) while ((sendat & 0b01111111)!=0b01111111)pdc();
for(i=0;i<90;i++) while ((sendat & 0b01111111)==0b01111111)pdc();
counter++;
};
stop();
}
void stop()
{
PORTD.1=1;
PORTD.2=1;
PORTD.3=1;
PORTD.6=1;
pwmka=0;
pwmki=0;
}
Untuk program pemberhenti robot semua input ke driver motor 1 semua. Agar motor mendapat input postif di kedua kutubnya, sehingga robot berhenti. Pwmka dan pwnki di beri nilai 0 berarti motor di setting berkecepatan 0 pwm. Input ke driver motor boleh di beri 0 semua tapi proses berhenti robot lebih lama dibanding dengan nilai 1.
Oke .. jika ada masalah atau hal yang kurang dimengerti bisa komentar .. saya siap membantu.
Download Sini : Program Line Follower
//sub program menggerakkan motor maju
void maju(unsigned char kiri,unsigned char kanan)
{
PORTD.1=0;
PORTD.2=1;
PORTD.3=0;
PORTD.6=1;
pwmka=kanan;
pwmki=kiri;
}
Program diatas adalah perintah menggerakkan robot maju. PortD 1 dan 2 adalah input ke driver motor kanan dan PortD 3 dan 6 input ke driver motor kiri. Driver motor yang saya pakai adalah L298. pwmka dan pwmki adalah definisi untuk kecepatan motornya.Angka 0 dan 1 menunjukkan nilai input ke drivernya. Nilai 0 berarti input negatif dan nilai 1 berarti positif.
void countersimpang(unsigned char xcounter)
{
unsigned char counter;
unsigned int i;
counter=0;
while(counter<xcounter)
{ for(i=0;i<1000;i++) while ((sendat & 0b01111111)!=0b01111111)pdc();
for(i=0;i<90;i++) while ((sendat & 0b01111111)==0b01111111)pdc();
counter++;
};
stop();
}
Program yang ini adalah subprogram untuk membaca persimpangan jika robot menjumpai jalan perimpangan. Robot akan membaca apabila semua sensor membaca garis hitam semua " 0b01111111 ". Setelah membaca persimpangan robot bisa berbelok ke kiri , ke kanan atau stop sesuai dengan program yang pasang untuk robot. Dalam program diatas robot akan stop karena saya pasang program stop " stop(); "
void stop()
{
PORTD.1=1;
PORTD.2=1;
PORTD.3=1;
PORTD.6=1;
pwmka=0;
pwmki=0;
}
Untuk program pemberhenti robot semua input ke driver motor 1 semua. Agar motor mendapat input postif di kedua kutubnya, sehingga robot berhenti. Pwmka dan pwnki di beri nilai 0 berarti motor di setting berkecepatan 0 pwm. Input ke driver motor boleh di beri 0 semua tapi proses berhenti robot lebih lama dibanding dengan nilai 1.
Oke .. jika ada masalah atau hal yang kurang dimengerti bisa komentar .. saya siap membantu.
Download Sini : Program Line Follower
0 comments:
Post a Comment