ImageSeconda parte della guida che descrive il procedimento di installazione e configurazione del controller Nintendo Wiimote su un PC: questa volta ci occupiamo di Linux.


Indice:

Parte I: Windows 

Parte II: Linux

 

 1. Introduzione

Negli ultimi mesi, in ambito Linux, c'è una forte spinta allo sviluppo di librerie ad hoc per il Wiimote e in generale per il reverse engineering del Wiimote. A questo link, ad esempio, si trovano diverse informazioni utili al riguardo:
http://www.wiili.org/index.php/Wiimote_Reverse_Engineering

Molte features sono state già implementate, altre ancora mancano: nella lista TODO, al momento, ci sono il corretto funzionamento del bottone di accensione (power button) e poche altre funzionalità ancora da mappare.
Nella sezione "Drivers" della pagina http://www.wiili.org/index.php/Wiimote#See_Also:, sotto la voce "Linux" troviamo vari progetti: CWiid, WMD, Perlwiimote, libwiimote, lg3d-wii. Sono tutti validi, scegliete quello che più si addice alle vostre conoscenze di programmazione.

Oltre ai driver, solitamente sono necessarie delle librerie aggiuntive:

  • BlueZ (bluez-libs, bluez-utils, etc)

  • Eventuali dipendenze (in base alla distro)

 

 2. Test dei driver

Il primo progetto che ho testato è stato WMD: http://forthewiin.org/
WMD è un acronimo che sta per “Wiiwanna Motte Damniit”, ovvero un simpatico gioco di parole e fonetica per dire all'incirca “anche noi vogliamo giocare con il Wii!”. Il progetto, basato sul linguaggio Python, attualmente è stabile alla versione 0.1.2. Il corretto funzionamento della libreria, tuttavia, richiede alcune dipendenze e alcune piccole modifiche ad altre librerie, ragion per cui non mi sento di consigliare WMD al momento (nel file README sono comunque indicati chiaramente i passi da seguire). In ogni caso è risultata perfettamente funzionante su SuSE 10.1.
Video esempio di Ubuntu con Beryl su dual screen controllato tramite Wii-Mote con sensore a infrarossi:

La libreria che sto utilizzando ora con soddisfazione e che consiglio è libwiimote:
http://libwiimote.sourceforge.net/
Molto leggera, basata puramente su linguaggio C (quindi molto efficiente) e con poche dipendenze, libwiimote attualmente è alla versione 0.4. La versione da me testata è stata la 0.3: il pacchetto scompattato comprende i sorgenti in C da ricompilare tramite il classico “make” dalla directory di riferimento (ad es. libwiimote/). Prima ovviamente è necessario aver installato le BlueZ lib (se non presenti nel vostro sistema).

Eventuali errori di compilazione, se ce ne saranno, sono riconducibili a ulteriori dipendenze, che andranno soddisfatte scaricando e installando i pacchetti necessari tramite il vostro packet manager preferito.
Fatto questo, nella sotto-directory bin/ verranno compilati alcuni eseguibili di test.

 

 3. Test del Wiimote

Alcuni degli eseguibili compilati della libreria richiederanno come primo argomento l'indirizzo esatto del vostro Wii-Mote, per saperlo è sufficiente effettuare i seguenti passi:

  • 1. Abilitare la vostra interfaccia BlueTooth.

  • 2. Abilitare il WiiMote in stato di attesa (tasti '1' e '2' premuti insieme)

  • 3. Digitare da shell:

# hcitool scan

Quindi l'output dovrebbe somigliare a questo:

Scanning ...
        00:19:1D:95:63:xx       Nintendo RVL-CNT-01

Laddove, ovviamente, il codice esadecimale rappresenta l'indirizzo univoco del nostro Wiimote.

A questo punto non resta che posizionarsi sulla directory bin/, ripetere il passo 2 (Wii-Mote in attesa) e lanciare uno dei test, passando eventualmente primo argomento proprio il suddetto indirizzo. Utilizzando un indirizzo preciso invece che l'auto-riconoscimento (comunque possibile) si garantisce la sicurezza che solo il proprio wiimote possa controllare il PC.

I test visualizzano in generale alcuni dati a schermo: e.g. batteria rimanente, test di rumble, led, accelerometro, wiimote multipli, etc...

 

 4. Test  di interfacciamento con Beryl/Compiz

Il piccolo programma in C che ho creato, utilizzando la libreria libwiimote, permette tramite il modulo “uinput” di interpretare i segnali o movimenti del wii-mote e trasformarli in eventi tastiera o altro. Le possibili estensioni sono molte, anche in vista della desiderata e tanto attesa fusione tra i progetti Beryl e Compiz.
Il video che ho creato mostra alcune delle funzionalità implementate, tra cui zoom, volume, rotazione cubo e altro:

  • 2. Prima di compilare il programma è sufficiente modificare la seguente riga con l'indirizzo del vostro Wiimote, in modo tale da ascoltare solamente quella determinata periferica:

#define MY_WIIMOTE_ADDR        "00:19:1D:95:XX:XX"
  • 3. Quindi compilate il codice

  • 4. Successivamente come utente root, occorre dare il comando:

# modprobe uinput
  • 5. Infine avviate l'eseguibile come mostrato nel video sopra.

Il programma è ancora in fase di test, quindi da utilizzare a proprio rischio e pericolo. Qualsiasi contributo che serva a migliorare il programma o a estenderne le funzionalità è benvenuto.

<< Pagina precedente: Nintendo Wiimote su PC. Parte I. Windows
Nintendo Wiimote su PC. Parte I. Windows  
Nintendo Wiimote su PC. Parte II. Linux  
Google News
Le notizie e le recensioni di Notebook Italia sono anche su Google News. Seguici cliccando sulla stellina

Commenti