Old:Wiimote
Attenzione: questo articolo è ancora incompleto e in fase di scrittura da parte del suo autore.
Sentitevi liberi di contribuire, proponendo modifiche alla guida tramite l'apposita pagina di discussione, in modo da non interferire con il lavoro portato avanti sulla voce. Per altre informazioni si rimanda al template. |
Introduzione
Il Wiimote e' un controller prodotto dalla Nintendo usato come controller per la console Wii. E' possibile utilizzarlo per controllare numerose applicazioni nell'ambiente Linux, questa guida e una descrizione pratica del suo utilizzo e di come sfruttare la libreria Cwiid per il suo uso all'interno di una applicazione in C o C++.
Installazione
Ci sono varie librerie a disposizione, il sito di riferimento e' sicuramente http://www.wiili.org/, per questa mini-guida si utilizzera' la libreria Cwiid che e' la piu' completa e testata.
Configurazione del sistema
Per poter utilizzare il Wiimote sotto Linux e' necessario che sia attivo il modulo del kernel relativo al usbhid, in Ubuntu digitare
modprobe usbhid
altrimenti Ricompilare il kernel e attivarne il modulo.
Pacchetti necessari
Installare i seguenti pacchetti con il nostro amato apt-get:
apt-get install autoconf awk, bison, flex, bluez-utils bluez-hcidump apt-get install hcitool autotools-dev libbluetooth2-dev libgtk2.0-dev flex bison libcwiid1 libcwiid1-dev
Ora lanciamo hcitool scan premendo contemporaneamente i tasti 1 e 2
j3no@kropotkin:~$ hcitool scan Scanning ... 00:19:1D:6B:3D:A3 Nintendo RVL-CNT-01
Se l'operazione riesce il sistema e' pronto per essere utilizzato
Utilizzo della libreria Cwiid
A disposizione avrete dei comandi che vi permetteranno di utilizzare il vostro controller:
- wminput: permette di utilizzare il wiimote come un mouse
- wmgui: e' un'interfaccia grafica per testare tutti gli eventi del controller
Esempio di implementazione in un programma C
Un esempio lo si trova sul sito di cwiid http://abstrakraft.org/cwiid/browser/trunk/wmdemo/wmdemo.c?rev=179 oppure all'interno della directory con i sorgenti del programma http://abstrakraft.org/cwiid/downloads/cwiid-0.6.00.tgz nella directory wmdemo.
In linea generale c'e' una struttura dati messa a disposizione dall'API (cwiid_state) che viene passata ad una chiamata (cwiid_get_state) la quale aggiorna la descrizione dello stato dei sensori presenti sul wiimote in quel momento. Prima di far questo ci sara' una fase di connessione (cwiid_open) che chiedera' il BBSID, un codice identificativo che abbiamo precedentemente visto durante la chiamata del comando "hcitool scan"
--J3no 10:00, 3 giu 2008 (CDT)