# Header
# Bibliotecas
# Conexão com a porta Serial
# Variaveis Globais
time_sleep = 1
wm ================================>> #Esta seria minha variavel global que seria setada somente quando o wiimote fosse selecionado
########################################################################
# Funcao que controla o envia e recebe de pacotes atraves do wiimote
########################################################################
def wiimote_setup():
print '1 e 2!!!!'
wm = cwiid.Wiimote()
#habilito o uso de botoes somente
wm.rpt_mode = cwiid.RPT_BTN
while True:
status = wiimote()
if status == False:
break
########################################################################
# Funcao que controla o envia e recebe de pacotes atraves do wiimote
########################################################################
def wiimote():
print 'Use as setas para controlar o carrinho'
while True:
if wm.state['buttons'] & cwiid.BTN_UP:
ir_frente()
envia_recebe()
break
return True
if wm.state['buttons'] & cwiid.BTN_DOWN:
ir_tras()
envia_recebe()
break
return True
if wm.state['buttons'] & cwiid.BTN_LEFT:
ir_esquerda()
envia_recebe()
break
return True
if wm.state['buttons'] & cwiid.BTN_RIGHT:
ir_direita()
envia_recebe()
break
return True
if wm.state['buttons'] & cwiid.BTN_1:
ir_reto()
envia_recebe()
break
return True
if wm.state['buttons'] & cwiid.BTN_2:
parar()
envia_recebe()
break
return True
if wm.state['buttons'] & cwiid.BTN_HOME:
break
return False
########################################################################
# Funcao principal
########################################################################
if __name__ == '__main__':
while True:
try:
# Imprime na tela o menu de opушes
print ' '
print '----------------------MENU--------------------------'
print 'Escolha um dos comandos abaixo e depois aperte enter'
print '----------------------------------------------------'
print '0 - Escolher outro carrinho (',ID_carrinho,')'
print '8 - Ir para frente:'
print '2 - Ir para tras:'
print '6 - Direita:'
print '4 - Esquerda:'
print '5 - Reto:'
print '1 - Parar:'
print 'W - Wiimote:'
print 'S - Para sair:'
print ' '
# Leitura da opусo do menu escolhida
Opcao = raw_input('Comando:')
if Opcao == "0": # troca id do carrinho
# Identificaусo do carrinho a ser acessado
ID_carrinho = raw_input('ID_carrinho:')
else:
#opсao de saьda
if Opcao == "s" or Opcao == "S": # caso o caracter digitado for s
ser.close() # fecha a porta COM
print 'Fim da Execuусo' # escreve na tela
break
if Opcao == "w": # Wiimote
wiimote_setup()
continue
# Verifica a opусo de menu escolhida
if Opcao == "8": # Ir para frente
ir_frente()
if Opcao == "2": # ir para tras
ir_tras()
if Opcao == "4": # Ir para esquerda
ir_esquerda()
if Opcao == "6": # Ir para direita
ir_direita()
if Opcao == "5": # Reto
ir_reto()
if Opcao == "1": # Parar
parar()
envia_recebe()
except KeyboardInterrupt:
ser.close()
break
Olá Galera,
Estou brincando um pouco com Radiuino + Wiimote + Python para controlar um carrinho :P
Enfim, meu problema é o seguinte: eu tenho um menu que permite a pessoa controlar o carrinho pelo teclado, e caso ela queira controlar pelo Wiimote ela aperta W. Apertando W, ela sera direcionada a uma função que fará a conexão com o wiimote, posteriormente será direcionada a uma função destinada a leitura do wiimote e não voltará mais ao menu. Como eu tenho duas funções que utilizam essa variavel de conexao do wiimote, eu deixei ela "global", porem como posso inicializar ela?
Pergunta
beuleal
Olá Galera,
Estou brincando um pouco com Radiuino + Wiimote + Python para controlar um carrinho :P
Enfim, meu problema é o seguinte: eu tenho um menu que permite a pessoa controlar o carrinho pelo teclado, e caso ela queira controlar pelo Wiimote ela aperta W. Apertando W, ela sera direcionada a uma função que fará a conexão com o wiimote, posteriormente será direcionada a uma função destinada a leitura do wiimote e não voltará mais ao menu. Como eu tenho duas funções que utilizam essa variavel de conexao do wiimote, eu deixei ela "global", porem como posso inicializar ela?
Obs: Dei uma limpadona no cod :D
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.