- int turn_around_time = 2500;
-
- int actual_left_ping_time = ping(left_trigger_pin, left_echo_pin);
- int actual_right_ping_time = ping(right_trigger_pin, right_echo_pin);
-
- /* int left_led_value = (int)(actual_left_ping_time / 16.0); */
- /* int right_led_value = (int)(actual_right_ping_time / 16.0); */
-
- /* Serial.print("left led value = "); */
- /* Serial.print(left_led_value); */
- /* Serial.print(", right led value = "); */
- /* Serial.print(right_led_value); */
-
- /* analogWrite(left_led_pin, left_led_value); */
- /* analogWrite(right_led_pin, right_led_value); */
-
- Serial.print("left ping = ");
- Serial.print(actual_left_ping_time);
- Serial.print("\tright_ping = ");
- Serial.println(actual_right_ping_time);
-
- // if the left sonar senses a table, keep driving left side forward,
- // otherwise, stop left side
- if(actual_left_ping_time < left_max_ping_time_over_table){
- left_speed = forward_speed;}
- else{
- left_speed = stop_speed;}
- // if the right sonar senses a table, keep driving right side forward,
- // otherwise, stop right side
- if(actual_right_ping_time < right_max_ping_time_over_table){
- right_speed = forward_speed;}
- else{
- right_speed = stop_speed;}
-
- // if both sonars detect being off the table, backup and turn around
- // otherwise, go the correct speed for each wheel
- if(actual_left_ping_time >= left_max_ping_time_over_table
- && actual_right_ping_time >= right_max_ping_time_over_table){
- Serial.println("backing up");
- backup(backup_time);
- Serial.println("turning around");
- turn_around(turn_around_time);}
- else{
- Serial.println("going");
- go(left_speed, right_speed);}}
-
-void follow() {
- Serial.println("following!");
- delay(100); }
-
-void loop() {
- digitalWrite(LED_BUILTIN, digitalRead(button_pin)); }