Rev 879 Rev 900
Line 6... Line 6...
6 // pomocne konstanty 6 // pomocne konstanty
7 #define LEFT 0 7 #define LEFT 0
8 #define RIGHT 1 8 #define RIGHT 1
9   9  
10 // konstanty a promenne pro sledovani cary 10 // konstanty a promenne pro sledovani cary
11 #define SPACE 15 // urcuje, za jak dlouho robot vi, ze nic nevidi 11 #define SPACE 20 // urcuje, za jak dlouho robot vi, ze nic nevidi
12 #define SPD1 100 // rychlost pomalejsiho motoru, kdyz je cara hodne z osy 12 #define SPD1 100 // rychlost pomalejsiho motoru, kdyz je cara hodne z osy
13 #define SPD2 150 // rychlost pomalejsiho motoru, kdyz je cara z osy 13 #define SPD2 150 // rychlost pomalejsiho motoru, kdyz je cara z osy
14 #define SPD3 200 // rychlost rychlejsiho motoru pro vsechny pripady 14 #define SPD3 200 // rychlost rychlejsiho motoru pro vsechny pripady
15 #define SPD4 255 // pro oba motory - rovinka 15 #define SPD4 255 // pro oba motory - rovinka
16 // oblasti cary 16 // oblasti cary
Line 477... Line 477...
477 olsa_setup(); 477 olsa_setup();
478 beep(100,500); // pipni pri startu 478 beep(100,500); // pipni pri startu
479 printf("OK! \r\n"); 479 printf("OK! \r\n");
480 delay_ms(500); 480 delay_ms(500);
481 printf("VYBRAT MOD... \r\n"); 481 printf("VYBRAT MOD... \r\n");
-   482 // ============================ HLAVNI CAST PROGRAMU ===========================
482 while(true) 483 while(true)
483 { 484 {
-   485 // ================================ DIAGNOSTIKA ================================
-   486 if(BUMPL)
-   487 {
-   488 beep(100,500);
-   489 while(true)
-   490 {
-   491 diag();
-   492 }
-   493 }
484 // ============================ HLAVNI CAST PROGRAMU =========================== 494 // =============================== SLEDOVANI CARY ==============================
485 if(BUMPR) // spusteni hledani pravym naraznikem 495 if(BUMPR) // spusteni hledani pravym naraznikem
486 { 496 {
487 beep(100,500); 497 beep(100,500);
488 while(true) 498 while(true)
489 { 499 {
490 // =============================== SLEDOVANI CARY ============================== -  
491 old_position=position; // zaznamena predhozi polohu cary 500 old_position=position; // zaznamena predhozi polohu cary
492 read_olsa(); // precte a ulozi hodnoty z olsa 501 read_olsa(); // precte a ulozi hodnoty z olsa
493 olsa_position(); // vyhodnoti pozici cary 502 olsa_position(); // vyhodnoti pozici cary
494 read_blue_sensors(); // cte nouzove senzory 503 read_blue_sensors(); // cte nouzove senzory
495 if((line_l==0)&&(gap>SPACE)) // robot najede na levy nouzovy senzor 504 if((line_l==0)&&(gap>SPACE)) // robot najede na levy nouzovy senzor
496 { 505 {
497 l_motor_bwd(150); // prudce zatoc doleva 506 l_motor_bwd(150); // prudce zatoc doleva
498 r_motor_fwd(255); 507 r_motor_fwd(255);
499 line_sector=LEFT; // pamatuj, kde je cara 508 line_sector=LEFT; // pamatuj, kde je cara
500 delay_ms(200); 509 delay_ms(300);
501 } 510 }
502 if((line_r==0)&&(gap>SPACE)) // robot najede na pravy nouzovy senzor 511 if((line_r==0)&&(gap>SPACE)) // robot najede na pravy nouzovy senzor
503 { 512 {
504 l_motor_fwd(255); // prudce zatoc doprava 513 l_motor_fwd(255); // prudce zatoc doprava
505 r_motor_bwd(150); 514 r_motor_bwd(150);
506 line_sector=RIGHT; // pamatuj, kde je cara 515 line_sector=RIGHT; // pamatuj, kde je cara
507 delay_ms(200); 516 delay_ms(300);
508 } 517 }
509 if(position==0) // pokud neni videt cara 518 if(position==0) // pokud neni videt cara
510 { 519 {
511 position=old_position; // nastav predchozi pozici 520 position=old_position; // nastav predchozi pozici
512 gap++; // pocita, jak dlouho neni videt cara 521 gap++; // pocita, jak dlouho neni videt cara