11,9 → 11,11 |
okolo_cihly ridic; // V jakem jsme stavu objizdeni cihly |
int8 vzdalenost; |
|
touch=0; // Indikator detekce cary pri objizdeni |
|
cihla: |
|
rr=20; |
rr=20; //!!! Rozumna rychlost pro objizdeni cihly (bylo by lepsi rychlost zvysovat) a pri detekci pohybu zase snizit |
disp(0x99); |
set_pwm1_duty(0); // zabrzdi levym kolem, prave vpred |
set_pwm2_duty(150); |
38,7 → 40,6 |
}; |
|
//------ Objeti cihly v konstantni vzdalenosti ------ |
touch=0; |
ridic=pred_carou; |
cas=CASAVR-CASMIN; // rovne |
output_low(MOT_L); // vpred |
45,8 → 46,21 |
output_low(MOT_R); |
while(true) |
{ |
if(!input(IRRX)) // hrozi celni srazka s cihlou v prubehu objizdeni |
if(BUMPER) // Narazili jsme do cihly, musime couvnout! |
{ |
set_pwm1_duty(0); // couvni, rovne dozadu |
set_pwm2_duty(0); |
output_high(MOT_L); |
output_high(MOT_R); |
disp(0xA5); |
SetServo(CASAVR-CASMIN); |
SaveLog(log-1); // Zapis Black Boxu do EEPROM |
goto cihla; // Znovu zacni cihlu objizdet |
// Pozor! Pamatuje se, jestli jsme uz neprejeli caru! |
}; |
|
if(IRRX) // hrozi celni srazka s cihlou v prubehu objizdeni |
{ |
cas=CASMIN; |
} |
else |
140,24 → 154,3 |
|
output_low(MOT_L); // oba motory vpred |
output_low(MOT_R); |
/* |
set_pwm1_duty(0); // vypni motory |
set_pwm2_duty(0); |
|
SetServo(CASAVR-CASMIN); // doprostred |
|
set_pwm1_duty(255); // max. vpred |
set_pwm2_duty(255); |
output_low(MOT_L); |
output_low(MOT_R); |
odocounter=get_timer1(); // Poznamenej aktualni stav odometrie |
while(get_timer1()<(odocounter+2)) // Ujed kousek |
{ |
set_adc_channel(LMAX); // Levy UV sensor |
delay_us(40); |
if(read_adc()<THR) {cas=CASMIN; break;}; // Prejeli jsme caru vlevo |
set_adc_channel(RMAX); // Pravy UV sensor |
delay_us(40); |
if(read_adc()<THR) {cas=CASMAX; break;}; // Prejeli jsme caru vpravo |
}; |
*/ |