Updated class Search with finding line in forward mode, included stop when edge found

This commit is contained in:
Tanja Sukal 2023-09-19 13:18:28 +00:00
parent 2d92c52e40
commit 9277c635cd

View File

@ -54,12 +54,14 @@ def search ():
nr_orange, o_block = pixy2.get_blocks(orange, 2) nr_orange, o_block = pixy2.get_blocks(orange, 2)
nr_green, g_block = pixy2.get_blocks(green, 2) nr_green, g_block = pixy2.get_blocks(green, 2)
if cs.reflected_light_intensity < 15: # if outline is reached change state to edge if cs.reflected_light_intensity < 15: # if outline is reached change state to edge
tank.stop()
last_state = state last_state = state
state = 5 state = 5
elif us.distance_centimeters < 10: # if a block is currently in the arms change to sort elif us.distance_centimeters < 10: # if a block is currently in the arms change to sort
last_state = state last_state = state
state = 3 state = 3
elif nr_orange > 0: # when orange block is found then change to get elif nr_orange > 0: # when orange block is found then change to get
tank.stop()
last_state = state last_state = state
state = 2 state = 2
elif nr_green > 0: # when green block is found then change to avoid elif nr_green > 0: # when green block is found then change to avoid
@ -70,6 +72,10 @@ def search ():
tank.on(fast,fast) tank.on(fast,fast)
sleep(0.2) sleep(0.2)
j+=1 j+=1
if cs.reflected_light_intensity <= 8 :
tank.stop()
last_state = state
state = 5
gyro.reset() gyro.reset()
j=0 # Reset control variable j=0 # Reset control variable
@ -116,6 +122,7 @@ def get ():
m_right.on(SpeedPercent(-slow)) m_right.on(SpeedPercent(-slow))
m_left.on(SpeedPercent(slow)) m_left.on(SpeedPercent(slow))
if cs.reflected_light_intensity < 15: # robot detected line change to edge if cs.reflected_light_intensity < 15: # robot detected line change to edge
tank.stop()
last_state = state last_state = state
state = 5 # When colorsensor detects line then switch state state = 5 # When colorsensor detects line then switch state
@ -132,6 +139,7 @@ def sort ():
# search for green blocks # search for green blocks
nr_green, g_block = pixy2.get_blocks(green, 2) nr_green, g_block = pixy2.get_blocks(green, 2)
if cs.reflected_light_intensity < 15: # when reached line change to edge if cs.reflected_light_intensity < 15: # when reached line change to edge
tank.stop()
last_state = state last_state = state
state = 5 state = 5
elif nr_green > 0: elif nr_green > 0: