본문 바로가기

쪼물락 비젼 AI

소스 분석 & Compile & Run

728x90

Codebot 상태 단계

	typedef enum {
		STEP_NONE = 0,
		STEP_ASK_LOGIN, // 유저 이름을 물어보는 단계입니다. 유저이름을 모를때는 계속 유저이름을 입력할때까지 물어봅니다.
		STEP_LOGIN_OK,
		STEP_ASK_MAP_MISSION,
        STEP_ASK_NEXT_MAP_MISSION,
        STEP_SELECT_MAP,
        STEP_SELECT_MISSION,
        STEP_WAIT_FOR_STARTING_GAME,
		STEP_PLAY_GAME,
		STEP_ASK_NEXT_GAME,
		STEP_MAX,
	} step_t;

 

ASK_AI.py는 라즈베리파이로 명령을 전달합니다.

라즈베리파이+카메라에서는 사진촬영을 하고 데이터를 서버로 전송합니다.

import socket
import os
from time import sleep

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('', 0))

addr = '192.168.100.7', 4000
output = 'camera capture'
print('send')
sock.sendto(output.encode('utf-8'), addr)
sleep(0.1)

sock.close()

import json
import socket
import time
import os
import keyboard

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('', 0))

def sendto(text) :
	sock.sendto(text, ('192.168.100.8',12345))

while True:
    if keyboard.is_pressed('b'):
        message = 'test,블럭모드로변경합니다,BLOCK_MODE'
        sendto(message.encode('utf8'))
        time.sleep(2)    
    if keyboard.is_pressed('v'):
        message = 'test,음성모드로변경합니다,VOICE_MODE'
        sendto(message.encode('utf8'))
        time.sleep(2)    
    if keyboard.is_pressed('up'):
        message = 'test,오늘쪽으로턴,MOVE_FRONT'
        sendto(message.encode('utf8'))
        time.sleep(2)    
    if keyboard.is_pressed('down'):
        message = 'test,뒤로한칸이동,MOVE_BACK'
        sendto(message.encode('utf8'))
        time.sleep(2)    
    if keyboard.is_pressed('right'):
        message = 'test,우회전,TURN_RIGHT'
        sendto(message.encode('utf8'))
        time.sleep(2)    
    if keyboard.is_pressed('left'):
        message = 'test,좌회전,TURN_LEFT'
        sendto(message.encode('utf8'))
        time.sleep(2)

    if keyboard.is_pressed('a'):
        message = 'test,영상을분석합니다,ASK_AI'
        sendto(message.encode('utf8'))
        time.sleep(2)

    if keyboard.is_pressed('d'):
        message = 'test,test,ask_differnt_map'
        sendto(message.encode('utf8'))
        time.sleep(2)
    if keyboard.is_pressed('n'):
        message = 'test,내이름은철수야,answer_name'
        sendto(message.encode('utf8'))
        time.sleep(2)
        
    
        
#message = ',한,MOVE_FRONT'
#message = 'test,내이름은 철수야,LED_ON'
#message = 'test,음성모드로변경합니다,VOICE_MODE'
#message = 'test,앞으로한칸이동,MOVE_FRONT'
#message = 'test,뒤로한칸이동,MOVE_BACK'
#message = 'test,블럭모드로변경합니다,BLOCK_MODE'
#message = 'test,무슨그림이니,AI'
#sendto(message.encode('utf8'))

sock.close()

테스트 영상

음성 명령에 따라 코드봇이 동작합니다.

영상을 촬영하고 서버에서 분석하여 코드봇이 TTS를 이용하영 문자를 음성으로 내보내줍니다.