Ejemplo n.º 1
0
def car_drive():
    global is_capture_running, key
    key = 4
    pygame.init()
    pygame.display.set_mode((1, 1))
    car_control.car_stop()

    while is_capture_running:
        # 获取人输入的驾驶指令
        events = pygame.event.get()
        for evt in events:
            if evt.type == pygame.KEYDOWN:
                key_input = pygame.key.get_pressed()
                print(key_input[pygame.K_w], key_input[pygame.K_a],
                      key_input[pygame.K_d])
                if key_input[pygame.K_w] and not key_input[
                        pygame.K_a] and not key_input[pygame.K_d]:
                    print('Forward')
                    key = 2
                    car_control.car_move_forward()
                elif key_input[pygame.K_a]:
                    print('Left')
                    car_control.car_turn_left()
                    sleep(0.1)
                    key = 0
                elif key_input[pygame.K_d]:
                    print('Right')
                    car_control.car_turn_right()
                    sleep(0.1)
                    key = 1
                elif key_input[pygame.K_s]:
                    print('Backward')
                    car_control.car_move_backward()
                    sleep(0.1)
                    key = 3
                elif key_input[pygame.K_q] or key_input[pygame.K_e]:
                    print("Barricade")
                    car_control.car_stop()
                    key = 5
            elif evt.type == pygame.KEYUP:
                key_input = pygame.key.get_pressed()
                if key_input[pygame.K_w] and not key_input[
                        pygame.K_a] and not key_input[pygame.K_d]:
                    print('Forward')
                    key = 2
                    car_control.car_turn_straight()
                    car_control.car_move_forward()
                elif key_input[pygame.K_s] and not key_input[
                        pygame.K_a] and not key_input[pygame.K_d]:
                    print('Backward')
                    key = 3
                    car_control.car_move_backward()
                else:
                    print('Stop')
                    car_control.car_stop()
                # car_control.clean_GPIO()
    car_control.clean_GPIO()
Ejemplo n.º 2
0
def main():
	"""get data, then predict the data, edit data, then control the car"""
	global model, graph

	model_loaded = glob.glob('model/*.h5')
	for single_model in model_loaded:
		model = load_model(single_model)
	graph = tf.get_default_graph()
	
	try:
		with picamera.PiCamera(resolution = (160,120)) as camera:
			# uncomment this line and the camera images will be upside down
			# camera.vflip = True
			time.sleep(2)
			output = ProcessOutput()
			camera.start_recording(output, format='mjpeg')
			while not output.done:
				camera.wait_recording(1)
			camera.stop_recording()
	finally:
		car_control.clean_GPIO()
Ejemplo n.º 3
0
def my_car_control():
    global is_capture_running, key
    key = 4
    pygame.init()
    pygame.display.set_mode((1, 1))  # 窗口
    zth_car_control.car_stop()
    sleep(0.1)
    print("Start control!")
    angle = 90
    while is_capture_running:
        # get input from human driver

        for event in pygame.event.get():
            # 判断事件是不是按键按下的事件
            if event.type == pygame.KEYDOWN:

                key_input = pygame.key.get_pressed()  # 可以同时检测多个按键
                print(key_input[pygame.K_w], key_input[pygame.K_a],
                      key_input[pygame.K_d])
                # 按下前进,保存图片以2开头
                if key_input[pygame.K_w] and not key_input[
                        pygame.K_a] and not key_input[pygame.K_d]:
                    print("Forward")
                    key = 2
                    zth_car_control.car_move_forward()
                # 按下左键,保存图片以0开头
                elif key_input[pygame.K_a]:
                    print("Left")
                    angle = angle - 5
                    zth_car_control.car_turn_left(angle)
                    sleep(0.1)
                    key = 0
                # 按下d右键,保存图片以1开头
                elif key_input[pygame.K_d]:
                    print("Right")
                    angle = angle + 5
                    zth_car_control.car_turn_right(angle)
                    sleep(0.1)
                    key = 1
                # 按下s后退键,保存图片为3开头
                elif key_input[pygame.K_s]:
                    print("Backward")
                    zth_car_control.car_move_backward()
                    key = 3
                # 按下k停止键,停止
                elif key_input[pygame.K_k]:
                    zth_car_control.car_stop()
            # 检测按键是不是抬起
            elif event.type == pygame.KEYUP:
                key_input = pygame.key.get_pressed()
                # w键抬起,轮子回正
                #if key_input[pygame.K_w] and not key_input[pygame.K_a] and not key_input[pygame.K_d]:
                #  print("Forward")
                # key = 2
                # zth_car_control.car_turn_straight()
                #zth_car_control.car_move_forward()
                # s键抬起
                if key_input[pygame.K_s] and not key_input[
                        pygame.K_a] and not key_input[pygame.K_d]:
                    print("Backward")
                    key = 3
                    zth_car_control.car_move_backward()
                else:
                    print("Stop")
                    zth_car_control.car_stop()
                #car_control.cleanGPIO()
    zth_car_control.clean_GPIO()
Ejemplo n.º 4
0
                    car_control.car_move_forward()
                elif key_input[pygame.K_s] and not key_input[
                        pygame.K_a] and not key_input[pygame.K_d]:
                    print('Backward')
                    key = 3
                    car_control.car_move_backward()
                else:
                    print('Stop')
                    car_control.car_stop()
                # car_control.clean_GPIO()
    car_control.clean_GPIO()


if __name__ == '__main__':
    global train_labels, train_img, is_capture_running, key

    print('Capture Thread')
    print('-' * 50)
    capture_thread = threading.Thread(target=pi_capture, args=())
    capture_thread.setDaemon(True)  # 随主线程一起结束
    capture_thread.start()

    car_drive()

    while is_capture_running:
        pass

    print('Done!')
    car_control.car_stop()
    car_control.clean_GPIO()
Ejemplo n.º 5
0
                # s键抬起
                if key_input[pygame.K_s] and not key_input[
                        pygame.K_a] and not key_input[pygame.K_d]:
                    print("Backward")
                    key = 3
                    zth_car_control.car_move_backward()
                else:
                    print("Stop")
                    zth_car_control.car_stop()
                #car_control.cleanGPIO()
    zth_car_control.clean_GPIO()


if __name__ == '__main__':
    global train_labels, train_img, key

    print("capture thread")
    print('-' * 50)
    capture_thread = threading.Thread(target=pi_capture, args=())  # 开启线程
    capture_thread.setDaemon(True)
    capture_thread.start()

    my_car_control()

    while is_capture_running:
        pass

    print("Done!")
    zth_car_control.car_stop()
    zth_car_control.clean_GPIO()