Change-Id: Ic9fe97fd7a4e7d5a25cafe6e69b6d1d9b6c8f36f
off(right_trigger_pin);}
void stay_on_table(){
off(right_trigger_pin);}
void stay_on_table(){
+ Serial.print("stay on table");
int left_speed;
int right_speed;
int left_speed;
int right_speed;
/* analogWrite(left_led_pin, left_led_value); */
/* analogWrite(right_led_pin, 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);
+ /* Serial.print("left ping = "); */
+ /* Serial.print(actual_left_ping_time); */
+ /* Serial.print("\tright_ping = "); */
+ /* Serial.print(actual_right_ping_time); */
// if the left sonar senses a table, keep driving left side forward,
// otherwise, stop left side
// if the left sonar senses a table, keep driving left side forward,
// otherwise, stop left side
// 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){
// 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");
+ /* Serial.print("backing up"); */
- Serial.println("turning around");
+ /* Serial.print("turning around"); */
turn_around(turn_around_time);}
else{
turn_around(turn_around_time);}
else{
- Serial.println("going");
+ /* Serial.print("going"); */
go(left_speed, right_speed);}}
void follow() {
go(left_speed, right_speed);}}
void follow() {
- Serial.println("following!");
+ Serial.print("following!");
-void loop() {
- digitalWrite(LED_BUILTIN, digitalRead(button_pin)); }
+enum class Behavior {stay_on_table, follow};
+Behavior behavior = Behavior::stay_on_table;
-/*
-enum Behavior {STAY_ON_TABLE, FOLLOW};
-Behavior behavior = STAY_ON_TABLE;
+enum class Button_state {up, down};
-enum Button_state {UP, DOWN};
-Button_state prior_button_state = UP;
+Button_state prior_button_state = Button_state::up;
-enum Button_state get_button_state() {
- return
- (digitalRead(button_pin) == LOW)
- ? DOWN
- : UP; }
-void loop_asdf() {
- static Button_state button_state = getButtonState();
+void loop() {
+ static int count = 0;
+ Serial.print(count);
+ Serial.print(" ");
+ count++;
+
+ Button_state button_state =
+ (digitalRead(button_pin) == HIGH)
+ ? Button_state::up
+ : Button_state::down;
+ switch(button_state) {
+ case Button_state::up: Serial.print("up "); break;
+ case Button_state::down: Serial.print("down "); break; }
// if button was just pressed
// if button was just pressed
- if (prior_button_state == UP && button_state == DOWN) {
+ if (prior_button_state == Button_state::up
+ && button_state == Button_state::down) {
// indicate button press recognized
on(LED_BUILTIN);
// turn off motors, to allow robot to be set down
go(0, 0);
delay(1000);
switch(behavior) {
// indicate button press recognized
on(LED_BUILTIN);
// turn off motors, to allow robot to be set down
go(0, 0);
delay(1000);
switch(behavior) {
- case STAY_ON_TABLE: behavior = FOLLOW; break;
- case FOLLOW: behavior = STAY_ON_TABLE; break; }
+ case Behavior::stay_on_table: behavior = Behavior::follow; break;
+ case Behavior::follow: behavior = Behavior::stay_on_table; break; }
off(LED_BUILTIN); }
switch(behavior) {
off(LED_BUILTIN); }
switch(behavior) {
- case STAY_ON_TABLE: stay_on_table(); break;
- case FOLLOW: follow(); break; }
+ case Behavior::stay_on_table: stay_on_table(); break;
+ case Behavior:: follow: follow(); break; }
+
+ prior_button_state = button_state;
- prior_button_state = button_state; }
-*/