From 2f692688206584bf23e77873522bb151ee86aacc Mon Sep 17 00:00:00 2001 From: Sara Falcone <sara.falcone@cba.mit.edu> Date: Sun, 9 Dec 2018 21:47:22 -0500 Subject: [PATCH] hella added DASHES! wit PERIMETER! --- run-solleroot.py | 87 ++++++++++++++++++------------------------------ 1 file changed, 33 insertions(+), 54 deletions(-) diff --git a/run-solleroot.py b/run-solleroot.py index a56292b..76d5616 100644 --- a/run-solleroot.py +++ b/run-solleroot.py @@ -104,13 +104,16 @@ class RootDevice(gatt.Device): # save COLOR INFO to object for future use self.last_packet = new_data self.adjust_for_perimeter_if_needed(new_data) + return # If you're busy adjusting for perimeter, + # any senor data is used in that function and + # then no longer valid if type == "Color Sensor" and self.edge_following_enabled: print("new data - calling edge following") self.follow_edge(new_data) - if type == "Color Sensor" and self.patterning_lines_enabled: - print("new data - calling patterning") - self.dash_count(self.dash_count) - self.pattern_dashes(new_data, self.dash_count) +## elif type == "Color Sensor" and self.patterning_lines_enabled: +## print("new data - calling patterning") +## self.dash_count(self.dash_count) +## self.pattern_dashes(new_data) def adjust_for_perimeter_if_needed(self, message): @@ -123,9 +126,16 @@ class RootDevice(gatt.Device): for i in range(3,18): if message[i] in color_red: n += 1 + if n <= 3: + self.currently_adjusting_for_perimeter = False + self.drive_forward() + return + if not self.currently_adjusting_for_perimeter: + self.pen_up() + self.currently_adjusting_for_perimeter = True + if n > 13: #number of sensors read the color self.drive_backwards() - self.currently_adjusting_for_perimeter = True print("in all colors are red - driving backwards") return n = 0 @@ -134,7 +144,6 @@ class RootDevice(gatt.Device): n += 1 if n > 3: self.steer(90,10) - self.currently_adjusting_for_perimeter = True print("steering left") return n = 0 @@ -143,45 +152,24 @@ class RootDevice(gatt.Device): n += 1 if n > 3: self.steer(10,90) - self.currently_adjusting_for_perimeter = True print("steering right") return - print("OUT OF LOOP") - if self.currently_adjusting_for_perimeter: - self.currently_adjusting_for_perimeter = False - self.drive_forward() - return - - # thread for counting time pen down/up - def dash_count(self, count): - print("IN DASH COUNT") - threading.Timer(2.0, pattern_dashes).start() - self.dash_count += self.dash_count - print("incremented dash_count") - - def pattern_dashes(self, message, count): - print("IN PATTERN DASHES") - # pen down, pen up, so many times - print("count:", count) - num_dashes_wanted = 4 - - if count < num_dashes_wanted: - if (self.dash_count % 2 == 0): - print("pen-down, driving") - self.pen_down() - self.drive_forward() - return - else: - print("pen up, drive forward") - self.pen_up() - self.drive_forward() - return - if self.patterning_lines_enabled: - print("!!!!!!!!!!!!!!!!! turning patterning lines to FALSE") - self.patterning_lines_enabled = False - self.drive_forward() + def do_dash_movement(self): + print('doin it') + threading.Timer(1.0, self.do_dash_movement).start() + # if self.total_dash_count >= MAX_TOTAL_DASHES: + # return + if self.currently_adjusting_for_perimeter: return + if(self.dash_count % 2 == 0): + print("pen-down, driving") + self.pen_down() + # self.total_dash_count += 1 + else: + print("pen up, drive forward") + self.pen_up() + self.dash_count += 1 def follow_edge(self, message): @@ -268,7 +256,7 @@ class RootDevice(gatt.Device): def drive_root(command): angle = 0 - last_packet = manager.robot.last_packet +## last_packet = manager.robot.last_packet if command == "f": print ("Drive forward") @@ -308,20 +296,11 @@ def drive_root(command): if command == "edge": print ("edge") manager.robot.edge_following_enabled = True - manager.robot.follow_edge(last_packet) + manager.robot.follow_edge(manager.robot.last_packet) if command == "pattern lines": print ("pattern lines") - -## SOMETHING IS WRONG HERE CALLING THESE ATTRIBUTES - -## manager.robot.last_packet = 0 -## dash_count = self.dash_count(self.dash_count) - last_packet = manager.robot.last_packet - dash_count = manager.robot.dash_count - - manager.robot.patterning_lines_enabled = True - manager.robot.pattern_dashes(last_packet, dash_count) - + manager.robot.drive_forward() + manager.robot.do_dash_movement() # start here if run as program / not imported as module if __name__ == "__main__": -- GitLab