WiiMote no Linux com WMinput e WMgui

Pré-requisitos e instalação

Nosso objetivo aqui é utilizar um Wiimote como mouse. Ótimo em apresentações que exigem a utilização do mouse, navegar pelo Google Earth e jogar jogos de tiro. =D

Pré-requisitos:

Requisitos opcionais:

Distribuição utilizada: Ubuntu 9.10

Instalação:

$ sudo apt-get install wminput wmgui

Visualização com WMgui

O WMgui é uma interface para visualizar as funcionalidades do Wiimote/Nunchuck/Classic.

Nele você conseguirá ver os:

  • Botões funcionando;
  • Sensores infra-vermelhos;
  • Sensores de movimentos;
  • Controles direcionais
  • Valores de aceleração(Accel), rotação(Roll), afastamento(Pitch);
  • Conteúdo da memória interna do WiiMote;
  • LEDs e controlá-los.

Vamos aos passos:

1. Conecte o adaptador bluetooth (parece um passo óbvio, mas perdi 2 minutos xingando o controle até lembrar desse passo primordial).

2. Abra um terminal e execute o “wmgui“.

3. FILE > CONNECT, abrirá uma janela.

4. Aperte os botões “1” e “2” do controle, para entrar em “Discovery Mode”.

5. Enquanto os LEDs do controle piscam, aperte OK na janela que foi aberta.

6. Habilite todas as funcionalidades do WMgui em SETTINGS.

7. Divirta-se!

Para testar o IR (Infra-Vermelho) sem uma lanterna IR, após habilitá-lo no SETTINGS, aponte um controle de TV (ou algo do tipo) e aperte os botões do controle.

No campo IR do wmgui deve aparecer uns pontos pretos. Se não possuir um controle, aponte para o sol! 😉

Mapeamento com WMinput

Com a configuração padrão o WMinput já funciona bem, porém o controle do mouse é feito baseado no acelerômetro.

Para testá-lo primeiro temos que subir o módulo UINPUT.

1. sudo modprobe uinput

2. Aperte “1”+”2″ no wiimote

3. sudo wminput

Feito!

Já temos um protótipo funcionando.

Vamos ver mais a fundo os arquivos de configuração.

Todos os arquivos estão em /etc/cwiid/wminput/. Lá você encontrará:

  • default – Arquivo lido se não for especificado um arquivo de configuração. Link para acc_ptr
  • acc_ptr – Mouse baseado no acelerômetro
  • ir_ptr – Mouse baseado no infra-vermelho
  • gamepad – Configuração para usar o controle CLASSIC. – Não testei porque não tenho um… =(
  • nunchuk_acc_ptr – Mouse baseado no acelerômetro do Nunchuck
  • buttons – Mapeamento dos botões (outros arquivos incluem este em suas confs)
  • acc_led – Exemplo para acionar os LEDs do controle
  • fps_config – Uma configuração para jogos de tiro, vale a pena olhar e alterar
  • nunchuk_stick2btn – Configuração para utilizar o Nunchuck em jogos de tiro (Ex. Half-Life)
  • neverball – Teoricamente utiliza o acelerômetro de forma diferente, testei e não funcionou.

Teste com o infra-vermelho:

1. Coloque o LED IR na lanterna USB ou a pilha.

2. Ligue-a e posicione sobre ou sob o monitor.

3. Se você ainda não subiu módulo:

$ sudo modprobe uinput

4. Aperte “1”+”2″ no wiimote.

5. sudo wminput -c /etc/cwiid/wminput/ir_ptr

6. Assim que ele responder “Ready”, aporte para o LED e DIVIRTA-SE!

Caso apareça o seguinte erro:

Put Wiimote in discoverable mode now (press 1+2)…
No wiimotes found
unable to connect

1. Tire e coloque de novo a antena Bluetooth.

2. sudo wminput -c /etc/cwiid/wminput/ir_ptr

3. Aperte “1”+”2″ no wiimote.

4. Espere.

Às vezes ele demora uns segundos a mais para reconhecer, normal.

Rolar para cima