Using a Wii Remote as a mouse with Ubuntu 8.04

wii_remote_imageMolti di voi avranno riconosciuto nell’immagine qui a fianco il Wii Remote, rivoluzionario controller che ha portato al successo la console di casa Nintendo.

In questo post vedremo come utilizzare come mouse (o più genericamente: come puntatore) il Wii Remote in abbinamento ad un PC dotato di una distribuzione linux, nel nostro caso una Ubuntu 8.04, e di un dongle bluetooth.

NOTA: lo so che questo argomento è già stato affrontato più volte sul web però io sono entrato in possesso di un Wii Remote solo di recente. Allo stesso modo mi scuso con i miei lettori per l’uso di una distribuzione così vecchia però il PC che uso come mediacenter ha questa a bordo e visto che per il lavoro che deve fare va benissimo non ho ancora provveduto ad aggiornare (anche perchè con la datacerd di H3G c’impiega una vita).

Ammesso che sul vostro sistema sia già presente e funzionante un dongle bluetooth possiamo procedere all’installazione dei pacchetti necessari, tutto ciò che ci è necessario lo si può installare col seguente comando:

paolomargara@mrcrow:~$ sudo apt-get install libcwiid1 lswm wmgui wminput

Wmgui è una comoda interfaccia utile per vedere ed analizzare i dati inviati dal Wii Remote al PC.

Lo step successivo consiste nell’ottenere l’indirizzo MAC del Wii Remote, per farlo è possibile usare hcitool

paolomargara@skaarj:~$ hcitool scan
Scanning ...
 00:1E:35:15:39:33    Nintendo RVL-CNT-01

…oppure con lswm:

paolomargara@skaarj:~$ lswm -l
Put Wiimotes in discoverable mode now (press 1+2)...
00:1E:35:15:39:33 0x002504 Nintendo RVL-CNT-01

PS: In entrambi i casi è necessario premere contemporaneamente i tasti 1 e 2 del Wii Remote.

Ora è necessario caricare il modulo necessario per usare il nostro Wii Remote come periferica di input:

paolomargara@skaarj:~$ sudo modprobe uinput

PS: probabilmente a questo punto vi verrà mostrato un messaggio di warning che potete tranquillamente ignorare.

Per automatizzare il caricamento è possibile editare il file /etc/modules inserendo il nome del modulo in esso:

paolomargara@skaarj:~$ more /etc/modules
...
uinput

Ora per utilizzare il Wii Remote come mouse col profilo di default basta digitare quanto segue:

paolomargara@mrcrow:~$ sudo wminput 00:1E:35:15:39:33

Ora con vostro sommo disappunto avrete scoperto che il profilo di default utilizza solo l’accelerometro per il puntamento e non ha alcun tasto configurato, si rende quindi necessario scegliere un altro profilo oppure scriverne uno custom per farlo funzionare nella maniera migliore. Nella cartella /etc/cwiid/wminput sono inclusi alcuni profili e suggerimenti di configurazione, il mio consiglio, se avete solo il Wii Remote è di utilizzare un file con la configurazione per i bottoni e il sistema di puntamento.

La scelta del sistema di puntamento si può fare fra accelerometro ed IR. IR è incredibilmente preciso però necessita di una sensor bar o di almeno due sorgenti di luce infrarossa, l’accelerometro è molto più difficile da usare ma si può usare anche senza sensor bar. Il mio consiglio è di utilizzare la sensor bar del Wii o di comprarvene una after-market.

Se volete usare la configurazione con l’accelerometro digitate…

paolomargara@skaarj:~$ sudo wminput -c acc_ptr 00:1E:35:15:39:33

…se volete usare la configurazione col puntamento infrarossi digitate:

paolomargara@skaarj:~$ sudo wminput -c ir_ptr 00:1E:35:15:39:33

…e questo è tutto.

Adesso non dovrete più alzarvi dal divano per andare fino alla tastiera del del PC o smadonnare con tastiriere e mouse ad infrarossi che non funzionano più oltre una certa distanza!!!

Be Sociable, Share!

    Related post:

    10 Comments

    1. ibart says:

      beh oddio, tanto rivoluzionario non è stato. Io uso il track-ir da una cosa come 10 anni :O

    2. pi3tr0 says:

      non ho capito se ANCHE il Wii funziona come mouse o se SOSTITUISCE il mouse

      prima di smanettarci vorrei capirlo perchè vorrei usarlo come input secondario, 99% uso il pc con mouse e solo nell’1% del tempo guardo video a schermo intero comodamente seduto sul divano ed effettivamente doversi alzare per metter in pausa o portare aventi/indietro è fastidioso, ma lo sarebbe ancora di più ritrovarsi senza il mouse funzionante

      a proposito, funziona anche su jaunty?

      • MRG says:

        Funziona anche come mouse, il mouse continua ad essere attivo.

        Non ho provato direttamente ma visto che wminput è presente anche in jaunty non c’è ragione per cui non dovrebbe funzionare.

        Tieni presente che puoi attivare il Wii Remote solo quando ti serve tramite wminput e disabilitarlo quando non ti serve più (io faccio così), non c’è ragione per tenerlo costantemente attivo.

    3. pi3tr0 says:

      grazie x la risposta

      ubuntu 9.04:

      hdctools trova il MAC solo premendo 1+2

      nel passo successivo
      sudo modprobe uinput

      ottengo
      WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/.

      che faccio?

      • MRG says:

        Che hcitool rilevi il MAC solo dopo che si sono premuti contemporaneamente i tasti 1 e 2 è normale, qui forse è meglio specificare, provvedo ad inserire una nota nel post.

        Il messaggio di warning che ti viene mostrato quando carichi uinput lo puoi tranquillamente ignorare, non pregiudica il corretto funzionamento (lo mostra anche a me). Anche qua inserisco una nota nel post.

    4. pi3tr0 says:

      funziona benissimo

      però bisognerebbe capire come poter personalizzarne l’uso

      ad esempio con VLC mi funziona da mouse, cosa scomoda se si vuole comandare dalla poltrona
      però con Totem 2 delle 4 frecce direzionali sono già configurate per portare avanti/indietro il video di 1 minuto

      in poche parole la mia esigenza sarebbe disattivarlo come puntatore e impostare i vari tasti come telecomando, es impostare un tasto per mettere in pausa, un tasto per attivare/disattivare sottotitoli, un altro x passare al video successivo contenuto nella directory etc.

      mi sai indicare un tutorial dove vengono spiegate queste impostazioni?

      • MRG says:

        Per farlo devi scriverti un profilo personalizzato.

        Mi spiego meglio, se usi il puntatore IR la configurazione presente nel profilo ir_ptr è la seguente:

        Plugin.ir_ptr.X = ~ABS_X
        Plugin.ir_ptr.Y = ~ABS_Y
        Wiimote.A = BTN_LEFT
        Wiimote.B = BTN_RIGHT
        Wiimote.Up = KEY_UP
        Wiimote.Down = KEY_DOWN
        Wiimote.Left = KEY_LEFT
        Wiimote.Right = KEY_RIGHT
        Wiimote.Minus = KEY_BACK
        Wiimote.Plus = KEY_FORWARD
        Wiimote.Home = KEY_HOME
        Wiimote.1 = KEY_PROG1
        Wiimote.2 = KEY_PROG2

        Di cui puoi prendere visione andando a guardare il contenuto dei file /etc/cwiid/wminput/ir_ptr e /etc/cwiid/wminput/buttons che viene incluso dal file precedente.

        Volendo potresti scriverti un profilo personalizzato a partire dalla configurazione precedente (da collocare nella directory /etc/cwiid/wminput/) oppure utilizzare solo il profilo buttons se a te interessano solo i bottoni, successivamente configurare le opportune shortcut nel pannello di controllo del player che intendi utilizzare.

    5. pi3tr0 says:

      perfetto, grazie ancora, vedrò di perderci un po’ di tempo 🙂