# 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
# 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() breakOlá 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.