def autoDect(speed): move.motorStop() servo.ahead() time.sleep(0.3) getMiddle = ultra.checkdist() print('M%f' % getMiddle) servo.ahead() servo.lookleft(100) time.sleep(0.3) getLeft = ultra.checkdist() print('L%f' % getLeft) servo.ahead() servo.lookright(100) time.sleep(0.3) getRight = ultra.checkdist() print('R%f' % getRight) if getMiddle < range_min and min(getLeft, getRight) > range_min: if random.randint(0, 1): servo.turnLeft() else: servo.turnRight() move.move(speed, 'forward') time.sleep(0.5) move.motorStop() elif getLeft < range_min and min(getMiddle, getRight) > range_min: servo.turnRight(0.7) move.move(speed, 'forward') time.sleep(0.5) move.motorStop() elif getRight < range_min and min(getMiddle, getLeft) > range_min: servo.turnLeft(0.7) move.move(speed, 'forward') time.sleep(0.5) move.motorStop() elif max(getLeft, getMiddle) < range_min and getRight > range_min: servo.turnRight() move.move(speed, 'forward') time.sleep(0.5) move.motorStop() elif max(getMiddle, getRight) < range_min and getLeft > range_min: servo.turnLeft() move.move(speed, 'forward') time.sleep(0.5) move.motorStop() elif max(getLeft, getMiddle, getRight) < range_min: move.move(speed, 'backward') time.sleep(0.5) move.motorStop() else: servo.turnMiddle() move.move(speed, 'forward') time.sleep(0.5) move.motorStop()
def set(motor, power): """ Execute the 'setRobotMotorPower' command. """ # C.command_send(motor,power) # Set the power of left motor. if motor == "A": if power > 0: move.move(power, 'forward') #FORWARD_POWER_LEFT.ChangeDutyCycle(power) #BACKWARD_POWER_LEFT.ChangeDutyCycle(0) elif power == 0: move.motorStop() #FORWARD_POWER_LEFT.ChangeDutyCycle(0) #BACKWARD_POWER_LEFT.ChangeDutyCycle(0) else: move.move(-power, 'backward') #FORWARD_POWER_LEFT.ChangeDutyCycle(0) #BACKWARD_POWER_LEFT.ChangeDutyCycle(-power) elif motor == "B": if power > 0: move.move(power, 'backward') #FORWARD_POWER_RIGHT.ChangeDutyCycle(power) #BACKWARD_POWER_RIGHT.ChangeDutyCycle(0) elif power == 0: move.motorStop() #FORWARD_POWER_RIGHT.ChangeDutyCycle(0) #BACKWARD_POWER_RIGHT.ChangeDutyCycle(0) else: move.move(-power, 'forward') #FORWARD_POWER_RIGHT.ChangeDutyCycle(0) #BACKWARD_POWER_RIGHT.ChangeDutyCycle(-power) if motor == 'Left': servo.turnLeft(float(power / 255)) # led.setcolor('R',power) elif motor == 'Right': servo.turnRight(float(power / 255)) # led.setcolor('G',power) elif motor == 'Middle': servo.turnMiddle() # led.setcolor('B',power) return 0
def run(): global turn_status, speed, angle_rate, color_select, led, check_true_out, backing, last_turn status_right = GPIO.input(line_pin_right) status_middle = GPIO.input(line_pin_middle) status_left = GPIO.input(line_pin_left) #print('R%d M%d L%d'%(status_right,status_middle,status_left)) if status_right == color_select: check_true_out = 0 backing = 0 print('left') led.colorWipe(0, 255, 0) turn_status = -1 last_turn = -1 servo.turnLeft(angle_rate) move.move(speed, 'forward') elif status_left == color_select: check_true_out = 0 backing = 0 print('right') turn_status = 1 last_turn = 1 led.colorWipe(0, 0, 255) servo.turnRight(angle_rate) move.move(speed, 'forward') elif status_middle == color_select: check_true_out = 0 backing = 0 print('middle') led.colorWipe(255, 255, 255) turn_status = 0 servo.turnMiddle() move.move(speed, 'forward') # time.sleep(0.2) else: print('none') led.colorWipe(255, 0, 0) if not backing == 1: if check_true_out == 1: check_true_out = 0 if turn_status == 0: if last_turn == 1: servo.turnRight(angle_rate) else: servo.turnLeft(angle_rate) move.move(speed, 'backward') time.sleep(0.3) elif turn_status == 1: time.sleep(0.3) servo.turnLeft(angle_rate) else: time.sleep(0.3) servo.turnRight(angle_rate) move.move(speed, 'backward') backing = 1 # time.sleep(0.2) else: time.sleep(0.1) check_true_out = 1
def run(): global servo_move, speed_set, servo_command, functionMode, init_get, R_set, G_set, B_set, SR_mode servo.servo_init() move.setup() findline.setup() direction_command = 'no' turn_command = 'no' servo_command = 'no' speed_set = 100 rad = 0.5 info_threading = threading.Thread( target=info_send_client) #Define a thread for FPV and OpenCV info_threading.setDaemon( True ) #'True' means it is a front thread,it would close when the mainloop() closes info_threading.start() #Thread starts servo_move = Servo_ctrl() servo_move.start() servo_move.pause() findline.setup() while True: data = '' data = str(tcpCliSock.recv(BUFSIZ).decode()) if not data: continue elif 'forward' == data: direction_command = 'forward' move.move(speed_set, direction_command) elif 'backward' == data: direction_command = 'backward' move.move(speed_set, direction_command) elif 'DS' in data: direction_command = 'no' move.move(speed_set, direction_command) elif 'left' == data: # turn_command = 'left' servo.turnLeft() elif 'right' == data: # turn_command = 'right' servo.turnRight() elif 'TS' in data: # turn_command = 'no' servo.turnMiddle() elif 'Switch_1_on' in data: fpv.Sounds(1) tcpCliSock.send(('Switch_1_on').encode()) elif 'Switch_1_off' in data: fpv.Sounds(0) tcpCliSock.send(('Switch_1_off').encode()) elif 'Switch_2_on' in data: #switch.switch(2,1) fpv.Radar(1) tcpCliSock.send(('Switch_2_on').encode()) elif 'Switch_2_off' in data: #switch.switch(2,0) fpv.Radar(0) tcpCliSock.send(('Switch_2_off').encode()) elif 'Switch_3_on' in data: switch.switch(3, 1) tcpCliSock.send(('Switch_3_on').encode()) elif 'Switch_3_off' in data: switch.switch(3, 0) tcpCliSock.send(('Switch_3_off').encode()) elif 'Switch_A_on' in data: tcpCliSock.send(('Switch_A_on').encode()) elif 'Switch_A_off' in data: tcpCliSock.send(('Switch_A_off').encode()) elif 'Switch_B_on' in data: tcpCliSock.send(('Switch_B_on').encode()) elif 'Switch_B_off' in data: tcpCliSock.send(('Switch_B_off').encode()) elif 'Switch_C_on' in data: fpv.HaarJJ(1) tcpCliSock.send(('Switch_C_on').encode()) elif 'Switch_C_off' in data: fpv.HaarJJ(0) tcpCliSock.send(('Switch_C_off').encode()) elif 'Face_Track_on' in data: # functionMode = 3 fpv.FaceTrack(1) tcpCliSock.send(('Face_Track_on').encode()) elif 'Face_Track_off' in data: # functionMode = 0 fpv.FaceTrack(0) tcpCliSock.send(('Face_Track_off').encode()) elif 'function_1_on' in data: servo.ahead() time.sleep(0.2) tcpCliSock.send(('function_1_on').encode()) radar_send = servo.radar_scan() tcpCliSock.sendall(radar_send.encode()) print(radar_send) time.sleep(0.3) tcpCliSock.send(('function_1_off').encode()) elif 'function_2_on' in data: functionMode = 2 fpv.FindColor(1) tcpCliSock.send(('function_2_on').encode()) elif 'function_2_off' in data: functionMode = 0 fpv.FindColor(0) switch.switch(1, 0) switch.switch(2, 0) switch.switch(3, 0) tcpCliSock.send(('function_2_off').encode()) elif 'function_3_on' in data: functionMode = 3 fpv.WatchDog(1) tcpCliSock.send(('function_3_on').encode()) elif 'function_3_off' in data: functionMode = 0 fpv.WatchDog(0) tcpCliSock.send(('function_3_off').encode()) elif 'function_4_on' in data: functionMode = 4 servo_move.resume() tcpCliSock.send(('function_4_on').encode()) elif 'function_4_off' in data: functionMode = 0 servo_move.pause() move.motorStop() tcpCliSock.send(('function_4_off').encode()) elif 'function_5_on' in data: functionMode = 5 servo_move.resume() tcpCliSock.send(('function_5_on').encode()) elif 'function_5_off' in data: functionMode = 0 servo_move.pause() move.motorStop() tcpCliSock.send(('function_5_off').encode()) elif 'function_6_on' in data: if MPU_connection: functionMode = 6 servo_move.resume() tcpCliSock.send(('function_6_on').encode()) elif 'function_6_off' in data: functionMode = 0 servo_move.pause() move.motorStop() init_get = 0 tcpCliSock.send(('function_6_off').encode()) #elif 'function_1_off' in data: # tcpCliSock.send(('function_1_off').encode()) elif 'lookleft' == data: servo_command = 'lookleft' servo_move.resume() elif 'lookright' == data: servo_command = 'lookright' servo_move.resume() elif 'up' == data: servo_command = 'up' servo_move.resume() elif 'down' == data: servo_command = 'down' servo_move.resume() elif 'stop' == data: if not functionMode: servo_move.pause() servo_command = 'no' pass elif 'home' == data: servo.ahead() elif 'CVrun' == data: if not FPV.CVrun: FPV.CVrun = 1 tcpCliSock.send(('CVrun_on').encode()) else: FPV.CVrun = 0 tcpCliSock.send(('CVrun_off').encode()) elif 'wsR' in data: try: set_R = data.split() R_set = int(set_R[1]) led.colorWipe(R_set, G_set, B_set) except: pass elif 'wsG' in data: try: set_G = data.split() G_set = int(set_G[1]) led.colorWipe(R_set, G_set, B_set) except: pass elif 'wsB' in data: try: set_B = data.split() B_set = int(set_B[1]) led.colorWipe(R_set, G_set, B_set) except: pass elif 'pwm0' in data: try: set_pwm0 = data.split() pwm0_set = int(set_pwm0[1]) servo.setPWM(0, pwm0_set) except: pass elif 'pwm1' in data: try: set_pwm1 = data.split() pwm1_set = int(set_pwm1[1]) servo.setPWM(1, pwm1_set) except: pass elif 'pwm2' in data: try: set_pwm2 = data.split() pwm2_set = int(set_pwm2[1]) servo.setPWM(2, pwm2_set) except: pass elif 'Speed' in data: try: set_speed = data.split() speed_set = int(set_speed[1]) except: pass elif 'Save' in data: try: servo.saveConfig() except: pass elif 'CVFL' in data: if not FPV.FindLineMode: FPV.FindLineMode = 1 tcpCliSock.send(('CVFL_on').encode()) else: move.motorStop() FPV.FindLineMode = 0 tcpCliSock.send(('CVFL_off').encode()) elif 'Render' in data: if FPV.frameRender: FPV.frameRender = 0 else: FPV.frameRender = 1 elif 'WBswitch' in data: if FPV.lineColorSet == 255: FPV.lineColorSet = 0 else: FPV.lineColorSet = 255 elif 'lip1' in data: try: set_lip1 = data.split() lip1_set = int(set_lip1[1]) FPV.linePos_1 = lip1_set except: pass elif 'lip2' in data: try: set_lip2 = data.split() lip2_set = int(set_lip2[1]) FPV.linePos_2 = lip2_set except: pass elif 'err' in data: try: set_err = data.split() err_set = int(set_err[1]) FPV.findLineError = err_set except: pass elif 'FCSET' in data: FCSET = data.split() fpv.colorFindSet(int(FCSET[1]), int(FCSET[2]), int(FCSET[3])) elif 'setEC' in data: #Z ECset = data.split() try: fpv.setExpCom(int(ECset[1])) except: pass elif 'defEC' in data: #Z fpv.defaultExpCom() elif 'police' in data: if LED.ledfunc != 'police': tcpCliSock.send(('rainbow_off').encode()) LED.ledfunc = 'police' ledthread.resume() tcpCliSock.send(('police_on').encode()) elif LED.ledfunc == 'police': LED.ledfunc = '' ledthread.pause() tcpCliSock.send(('police_off').encode()) elif 'rainbow' in data: if LED.ledfunc != 'rainbow': tcpCliSock.send(('police_off').encode()) LED.ledfunc = 'rainbow' ledthread.resume() tcpCliSock.send(('rainbow_on').encode()) elif LED.ledfunc == 'rainbow': LED.ledfunc = '' ledthread.pause() tcpCliSock.send(('rainbow_off').encode()) elif 'sr' in data: if not SR_mode: if SR_dect: SR_mode = 1 tcpCliSock.send(('sr_on').encode()) sr.resume() elif SR_mode: SR_mode = 0 sr.pause() move.motorStop() tcpCliSock.send(('sr_off').encode()) else: pass print(data)
def run(): global servo_move, speed_set, servo_command, functionMode, init_get, R_set, G_set, B_set, SR_mode servo.servo_init() move.setup() findline.setup() direction_command = "no" turn_command = "no" servo_command = "no" speed_set = 100 rad = 0.5 info_threading = threading.Thread( target=info_send_client ) # Define a thread for FPV and OpenCV info_threading.setDaemon( True ) #'True' means it is a front thread,it would close when the mainloop() closes info_threading.start() # Thread starts servo_move = Servo_ctrl() servo_move.start() servo_move.pause() findline.setup() while True: data = "" data = str(tcpCliSock.recv(BUFSIZ).decode()) if not data: continue elif "forward" == data: direction_command = "forward" move.move(speed_set, direction_command) elif "backward" == data: direction_command = "backward" move.move(speed_set, direction_command) elif "DS" in data: direction_command = "no" move.move(speed_set, direction_command) elif "left" == data: # turn_command = 'left' servo.turnLeft() elif "right" == data: # turn_command = 'right' servo.turnRight() elif "TS" in data: # turn_command = 'no' servo.turnMiddle() elif "Switch_1_on" in data: switch.switch(1, 1) tcpCliSock.send(("Switch_1_on").encode()) elif "Switch_1_off" in data: switch.switch(1, 0) tcpCliSock.send(("Switch_1_off").encode()) elif "Switch_2_on" in data: switch.switch(2, 1) tcpCliSock.send(("Switch_2_on").encode()) elif "Switch_2_off" in data: switch.switch(2, 0) tcpCliSock.send(("Switch_2_off").encode()) elif "Switch_3_on" in data: switch.switch(3, 1) tcpCliSock.send(("Switch_3_on").encode()) elif "Switch_3_off" in data: switch.switch(3, 0) tcpCliSock.send(("Switch_3_off").encode()) elif "function_1_on" in data: servo.ahead() time.sleep(0.2) tcpCliSock.send(("function_1_on").encode()) radar_send = servo.radar_scan() tcpCliSock.sendall(radar_send.encode()) print(radar_send) time.sleep(0.3) tcpCliSock.send(("function_1_off").encode()) elif "function_2_on" in data: functionMode = 2 fpv.FindColor(1) tcpCliSock.send(("function_2_on").encode()) elif "function_3_on" in data: functionMode = 3 fpv.WatchDog(1) tcpCliSock.send(("function_3_on").encode()) elif "function_4_on" in data: functionMode = 4 servo_move.resume() tcpCliSock.send(("function_4_on").encode()) elif "function_5_on" in data: functionMode = 5 servo_move.resume() tcpCliSock.send(("function_5_on").encode()) elif "function_6_on" in data: if MPU_connection: functionMode = 6 servo_move.resume() tcpCliSock.send(("function_6_on").encode()) # elif 'function_1_off' in data: # tcpCliSock.send(('function_1_off').encode()) elif "function_2_off" in data: functionMode = 0 fpv.FindColor(0) switch.switch(1, 0) switch.switch(2, 0) switch.switch(3, 0) tcpCliSock.send(("function_2_off").encode()) elif "function_3_off" in data: functionMode = 0 fpv.WatchDog(0) tcpCliSock.send(("function_3_off").encode()) elif "function_4_off" in data: functionMode = 0 servo_move.pause() move.motorStop() tcpCliSock.send(("function_4_off").encode()) elif "function_5_off" in data: functionMode = 0 servo_move.pause() move.motorStop() tcpCliSock.send(("function_5_off").encode()) elif "function_6_off" in data: functionMode = 0 servo_move.pause() move.motorStop() init_get = 0 tcpCliSock.send(("function_6_off").encode()) elif "lookleft" == data: servo_command = "lookleft" servo_move.resume() elif "lookright" == data: servo_command = "lookright" servo_move.resume() elif "up" == data: servo_command = "up" servo_move.resume() elif "down" == data: servo_command = "down" servo_move.resume() elif "stop" == data: if not functionMode: servo_move.pause() servo_command = "no" pass elif "home" == data: servo.ahead() elif "CVrun" == data: if not FPV.CVrun: FPV.CVrun = 1 tcpCliSock.send(("CVrun_on").encode()) else: FPV.CVrun = 0 tcpCliSock.send(("CVrun_off").encode()) elif "wsR" in data: try: set_R = data.split() R_set = int(set_R[1]) led.colorWipe(R_set, G_set, B_set) except: pass elif "wsG" in data: try: set_G = data.split() G_set = int(set_G[1]) led.colorWipe(R_set, G_set, B_set) except: pass elif "wsB" in data: try: set_B = data.split() B_set = int(set_B[1]) led.colorWipe(R_set, G_set, B_set) except: pass elif "pwm0" in data: try: set_pwm0 = data.split() pwm0_set = int(set_pwm0[1]) servo.setPWM(0, pwm0_set) except: pass elif "pwm1" in data: try: set_pwm1 = data.split() pwm1_set = int(set_pwm1[1]) servo.setPWM(1, pwm1_set) except: pass elif "pwm2" in data: try: set_pwm2 = data.split() pwm2_set = int(set_pwm2[1]) servo.setPWM(2, pwm2_set) except: pass elif "Speed" in data: try: set_speed = data.split() speed_set = int(set_speed[1]) except: pass elif "Save" in data: try: servo.saveConfig() except: pass elif "CVFL" in data: if not FPV.FindLineMode: FPV.FindLineMode = 1 tcpCliSock.send(("CVFL_on").encode()) else: move.motorStop() FPV.FindLineMode = 0 tcpCliSock.send(("CVFL_off").encode()) elif "Render" in data: if FPV.frameRender: FPV.frameRender = 0 else: FPV.frameRender = 1 elif "WBswitch" in data: if FPV.lineColorSet == 255: FPV.lineColorSet = 0 else: FPV.lineColorSet = 255 elif "lip1" in data: try: set_lip1 = data.split() lip1_set = int(set_lip1[1]) FPV.linePos_1 = lip1_set except: pass elif "lip2" in data: try: set_lip2 = data.split() lip2_set = int(set_lip2[1]) FPV.linePos_2 = lip2_set except: pass elif "err" in data: try: set_err = data.split() err_set = int(set_err[1]) FPV.findLineError = err_set except: pass elif "FCSET" in data: FCSET = data.split() fpv.colorFindSet(int(FCSET[1]), int(FCSET[2]), int(FCSET[3])) elif "setEC" in data: # Z ECset = data.split() try: fpv.setExpCom(int(ECset[1])) except: pass elif "defEC" in data: # Z fpv.defaultExpCom() elif "police" in data: if LED.ledfunc != "police": tcpCliSock.send(("rainbow_off").encode()) LED.ledfunc = "police" ledthread.resume() tcpCliSock.send(("police_on").encode()) elif LED.ledfunc == "police": LED.ledfunc = "" ledthread.pause() tcpCliSock.send(("police_off").encode()) elif "rainbow" in data: if LED.ledfunc != "rainbow": tcpCliSock.send(("police_off").encode()) LED.ledfunc = "rainbow" ledthread.resume() tcpCliSock.send(("rainbow_on").encode()) elif LED.ledfunc == "rainbow": LED.ledfunc = "" ledthread.pause() tcpCliSock.send(("rainbow_off").encode()) elif "sr" in data: if not SR_mode: if SR_dect: SR_mode = 1 tcpCliSock.send(("sr_on").encode()) sr.resume() elif SR_mode: SR_mode = 0 sr.pause() move.motorStop() tcpCliSock.send(("sr_off").encode()) else: pass print(data)
def appCommand(data_input): global direction_command, turn_command, servo_command if data_input == 'forwardStart\n': direction_command = 'forward' move.move(speed_set, direction_command) elif data_input == 'backwardStart\n': direction_command = 'backward' move.move(speed_set, direction_command) elif data_input == 'leftStart\n': turn_command = 'left' servo.turnLeft() move.move(speed_set, direction_command) elif data_input == 'rightStart\n': turn_command = 'right' servo.turnRight() move.move(speed_set, direction_command) elif 'forwardStop' in data_input: if turn_command == 'no': move.motorStop() elif 'backwardStop' in data_input: if turn_command == 'no': move.motorStop() elif 'leftStop' in data_input: turn_command = 'no' servo.turnMiddle() move.motorStop() elif 'rightStop' in data_input: turn_command = 'no' servo.turnMiddle() move.motorStop() if data_input == 'lookLeftStart\n': servo_command = 'lookleft' servo_move.resume() elif data_input == 'lookRightStart\n': servo_command = 'lookright' servo_move.resume() elif data_input == 'downStart\n': servo_command = 'down' servo_move.resume() elif data_input == 'upStart\n': servo_command = 'up' servo_move.resume() elif 'lookLeftStop' in data_input: servo_move.pause() servo_command = 'no' elif 'lookRightStop' in data_input: servo_move.pause() servo_command = 'no' elif 'downStop' in data_input: servo_move.pause() servo_command = 'no' elif 'upStop' in data_input: servo_move.pause() servo_command = 'no' if data_input == 'aStart\n': if LED.ledfunc != 'police': LED.ledfunc = 'police' ledthread.resume() elif LED.ledfunc == 'police': LED.ledfunc = '' ledthread.pause() elif data_input == 'bStart\n': if LED.ledfunc != 'rainbow': LED.ledfunc = 'rainbow' ledthread.resume() elif LED.ledfunc == 'rainbow': LED.ledfunc = '' ledthread.pause() elif data_input == 'cStart\n': switch.switch(1, 1) switch.switch(2, 1) switch.switch(3, 1) elif data_input == 'dStart\n': switch.switch(1, 0) switch.switch(2, 0) switch.switch(3, 0) elif 'aStop' in data_input: pass elif 'bStop' in data_input: pass elif 'cStop' in data_input: pass elif 'dStop' in data_input: pass print(data_input)
def appCommand(data_input): global direction_command, turn_command, servo_command if data_input == "forwardStart\n": direction_command = "forward" move.move(speed_set, direction_command) elif data_input == "backwardStart\n": direction_command = "backward" move.move(speed_set, direction_command) elif data_input == "leftStart\n": turn_command = "left" servo.turnLeft() move.move(speed_set, direction_command) elif data_input == "rightStart\n": turn_command = "right" servo.turnRight() move.move(speed_set, direction_command) elif "forwardStop" in data_input: if turn_command == "no": move.motorStop() elif "backwardStop" in data_input: if turn_command == "no": move.motorStop() elif "leftStop" in data_input: turn_command = "no" servo.turnMiddle() move.motorStop() elif "rightStop" in data_input: turn_command = "no" servo.turnMiddle() move.motorStop() if data_input == "lookLeftStart\n": servo_command = "lookleft" servo_move.resume() elif data_input == "lookRightStart\n": servo_command = "lookright" servo_move.resume() elif data_input == "downStart\n": servo_command = "down" servo_move.resume() elif data_input == "upStart\n": servo_command = "up" servo_move.resume() elif "lookLeftStop" in data_input: servo_move.pause() servo_command = "no" elif "lookRightStop" in data_input: servo_move.pause() servo_command = "no" elif "downStop" in data_input: servo_move.pause() servo_command = "no" elif "upStop" in data_input: servo_move.pause() servo_command = "no" if data_input == "aStart\n": if LED.ledfunc != "police": LED.ledfunc = "police" ledthread.resume() elif LED.ledfunc == "police": LED.ledfunc = "" ledthread.pause() elif data_input == "bStart\n": if LED.ledfunc != "rainbow": LED.ledfunc = "rainbow" ledthread.resume() elif LED.ledfunc == "rainbow": LED.ledfunc = "" ledthread.pause() elif data_input == "cStart\n": switch.switch(1, 1) switch.switch(2, 1) switch.switch(3, 1) elif data_input == "dStart\n": switch.switch(1, 0) switch.switch(2, 0) switch.switch(3, 0) elif "aStop" in data_input: pass elif "bStop" in data_input: pass elif "cStop" in data_input: pass elif "dStop" in data_input: pass print(data_input)
def appCommand(data_input): global direction_command, turn_command, servo_command # 0riv3r: # The following code fixes the un-synced app buttons with their respective functions # ================================================================================== # # The commands that arrive from the phone are not sync with the phone app buttons # original: # full-arrows on the right side of the app's pannel # fixing the arrows by changing the arrived data # arrow drawing | arrived-text | text-changed-to # ------------- | ------------ --------------- # < | downStart, downStop | lookLeftStart, lookLeftStop # > | upStart, upStop | lookRightStart, lookRightStop # ^ | lookLeftStart, lookLeftStop | upStart, upStop # v | lookRightStart, lookRightStop | downStart, downStop # ----------------------------------------------------------------------------------------- # letters | arrived-text | command-changed-to # ------- | ------------ --------------- # A | aStart, aStop - begin police/end police # B | bStart, bStop - start changing/illuminating back lights | servo.ahead() # C | cStart, cStop - turn off some lights on the raspberry-pi head # D | dStart, dStop - turn on some lights on the raspberry-pi head if data_input == 'lookLeftStart\n': data_input = 'upStart\n' elif data_input == 'lookRightStart\n': data_input = 'downStart\n' elif data_input == 'upStart\n': data_input = 'lookRightStart\n' elif data_input == 'downStart\n': data_input = 'lookLeftStart\n' elif 'lookLeftStop' in data_input: data_input = 'upStop\n' elif 'lookRightStop' in data_input: data_input = 'downStop\n' elif 'downStop' in data_input: data_input = 'lookLeftStop\n' elif 'upStop' in data_input: data_input = 'lookRightStop\n' # ================================================================================== if data_input == 'forwardStart\n': direction_command = 'forward' move.move(app.speedControl(), direction_command) elif data_input == 'backwardStart\n': direction_command = 'backward' move.move(app.speedControl(), direction_command) elif data_input == 'leftStart\n': turn_command = 'left' servo.turnLeft() move.move(app.speedControl(), direction_command) elif data_input == 'rightStart\n': turn_command = 'right' servo.turnRight() move.move(app.speedControl(), direction_command) elif 'forwardStop' in data_input: if turn_command == 'no': move.motorStop() elif 'backwardStop' in data_input: if turn_command == 'no': move.motorStop() elif 'leftStop' in data_input: turn_command = 'no' servo.turnMiddle() move.motorStop() elif 'rightStop' in data_input: turn_command = 'no' servo.turnMiddle() move.motorStop() if data_input == 'lookLeftStart\n': servo_command = 'lookleft' servo_move.resume() elif data_input == 'lookRightStart\n': servo_command = 'lookright' servo_move.resume() elif data_input == 'downStart\n': servo_command = 'down' servo_move.resume() elif data_input == 'upStart\n': servo_command = 'up' servo_move.resume() elif 'lookLeftStop' in data_input: servo_move.pause() servo_command = 'no' elif 'lookRightStop' in data_input: servo_move.pause() servo_command = 'no' elif 'downStop' in data_input: servo_move.pause() servo_command = 'no' elif 'upStop' in data_input: servo_move.pause() servo_command = 'no' if data_input == 'aStart\n': app.btn_A() elif data_input == 'bStart\n': app.btn_B() elif data_input == 'cStart\n': switch.switch(1,1) switch.switch(2,1) switch.switch(3,1) elif data_input == 'dStart\n': switch.switch(1,0) switch.switch(2,0) switch.switch(3,0) elif 'aStop' in data_input: pass elif 'bStop' in data_input: pass elif 'cStop' in data_input: pass elif 'dStop' in data_input: pass print(data_input)