Home Articoli Tutorial: Nintendo Wiimote su PC. Parte II. Linux

Tutorial: Nintendo Wiimote su PC. Parte II. Linux

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  
 

Commenti (0) 

RSS dei commenti
Scrivi un commento
Si deve essere connessi al sito per poter inserire un commento. Registratevi se non avete ancora un account.

busy