void pot_test() { long start = get_ms(); char elapsed_ms; int value; set_analog_mode(MODE_10_BIT); print_long(read_trimpot()); print(" "); // to clear the display while((elapsed_ms = get_ms() - start) < 100) { value = read_trimpot(); play_frequency(value, 200, 15); if(value < elapsed_ms*10) { red_led(0); green_led(1); } else { red_led(1); green_led(0); } } }
void wait_with_message(char *str) { play_frequency(200, 50, 14); delay_ms(75); play_frequency(300, 50, 14); play_frequency(200, 50, 14); delay_ms(75); play_frequency(300, 50, 14); lcd_goto_xy(0,0); print(str); while(!button_is_pressed(BUTTON_B)); delay_ms(500); }
void test_leds() { while(!button_is_pressed(ALL_BUTTONS)) { clear(); printf("Check\n"); printf("Red"); red_led(1); play_frequency(440,50,15); delay_ms(250); if(button_is_pressed(ALL_BUTTONS)) break; red_led(0); delay_ms(250); if(button_is_pressed(ALL_BUTTONS)) break; clear(); printf("Check\n"); printf("Green"); green_led(1); play_frequency(880,50,15); delay_ms(250); if(button_is_pressed(ALL_BUTTONS)) break; green_led(0); delay_ms(250); } while(button_is_pressed(ALL_BUTTONS)); delay_ms(100); }
void test_delay() { play_frequency(440,250,8); // should take exactly 250 ms delay_ms(200); printf("\ndelay1"); assert(is_playing()); delay_ms(100); printf("\ndelay2"); assert(!is_playing()); }
int main() { init_sensors(); int SET_POINT_VALUE = get_int_from_user("SetPnt=?", 20, 5); int END_POINT_VALUE = get_int_from_user("EndPnt=?", 145, 1); wait_with_message("Press B"); count_down(2); int front = 0; int left = 0; int right = 0; int balance = 0; int left_speed = 0; int right_speed = 0; int set_point = 0; while(1) { left = analog_read(6); right = analog_read(5); front = analog_read(7); balance = 0; if (left > 20 || right > 20) { balance = right - left - 20; } if(front < SET_POINT_VALUE) { left_speed = 110 - (1.0 * 0.54838709677419354838709677419355 * front); right_speed = 110 - (1.0 * 0.54838709677419354838709677419355 * front); } else { while(left_speed > 25 || right_speed > 25) { left_speed--; right_speed--; set_motors(left_speed + balance,right_speed - balance); play_frequency(200, 50, 14); } } if (set_point == 0 && front > END_POINT_VALUE) { set_point = 1; set_motors(25,25); } else { set_motors(left_speed + balance,right_speed - balance); } if (set_point == 1 && front < END_POINT_VALUE) { break; } } halt(); clear(); print("f="); print_long(front); // end while(1); }
void deuxiemePassage() { int m=0; //pour parcourir le tableau position = read_line(sensors, IR_EMITTERS_ON); //mesure la position while (!(sensors[0] >=1000 && sensors[1] >=1000 && sensors[2] >=1000 && sensors[3] >=1000 && sensors[4] >=1000)) //tant que pas fin { position = read_line(sensors, IR_EMITTERS_ON); //mesure la position clear(); print_hex(parcours[m]); //suivi chemin if (ligne()) { suivreChemin(); } //angle else if(angleGauche()) // seul chemin possible à gauche { tourneGauche(); delay_ms(500); } else if(angleDroit()) //seul chemin possible à droite { tourneDroit(); delay_ms(500); } else if (divGaucheDroite() || divGaucheToutDroit || divDroiteToutDroit() ) { play_frequency(5000, 250, 15); if (parcours[m]==1) { tourneGauche(); delay_ms(120); set_motors(50,50); delay_ms(100); play_frequency(5000, 250, 15); position = read_line(sensors, IR_EMITTERS_ON); //mesure la position suivreChemin(); delay_ms(50); } else if (parcours[m]==2) { toutDroit(); } else if (parcours[m]==3) { tourneDroit(); delay_ms(120); set_motors(50,50); delay_ms(100); play_frequency(5000, 250, 15); position = read_line(sensors, IR_EMITTERS_ON); //mesure la position suivreChemin(); delay_ms(50); } m++; } } }