3 581
contributi
m (→Introduzione) |
m (ha spostato Wiimote a Old:Wiimote) |
||
(25 versioni intermedie di 7 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Old}} | |||
=Introduzione= | |||
Il Wiimote è un controller prodotto dalla Nintendo usato come controller per la console Wii. | |||
È possibile utilizzarlo per controllare numerose applicazioni nell'ambiente Linux, questa guida fornisce una descrizione del suo utilizzo e | |||
di come sfruttare la libreria [http://abstrakraft.org/cwiid/ Cwiid ] per il suo uso all'interno di una applicazione in C o C++. | |||
===Funzionamento=== | |||
Il funzionamento è spiegato bene [http://en.wikipedia.org/wiki/Wii_Remote nelle pagine wikipedia]. | |||
Riassumendo brevemente, il controller è composto da una telecamera infrarossi che punta verso la parte anteriore, i vari tasti e un trasmettitore interno Bluetooth. Dopo aver effettuato il collegamento sarà possibile ricevere i comandi del joypad nonché le immagine raccolte dalla mini-videocamera. Proprio grazie a quest'ultime sarà possibile, eseguendo la triangolazione della luce emanata dai led infrarosso, calcolare la direzione in cui punta il WiiMote. | |||
== | Una alternativa è quella di utilizzare il comando Wii come telecamera fissa e quindi di adoperare una penna IR per scrivere sul video come se si fosse su una lavagna luminosa. Con questa grande intuizione nasce l'economica, ma funzionante e funzionale, '''WiiLD'''. | ||
===Hardware necessario=== | |||
Per poter adoperare il WiiMote sono necessari, oltre al controller stesso: | |||
* una serie di led infrarossi, può essere sia la barra fornita con la Wii stessa sia 4/5 led infrarossi sciolti da posizionare lungo un bordo del televisore [modalità di solo puntamento]; | |||
* un trasmettitore bluetooth per ricevere i segnali sul computer; | |||
* una penna IR [modalità WiiLD], facilmente autocostruibile. | |||
====Come costruire la penna IR==== | |||
Attenzione al LED utilizzato. | |||
Lista esempi: | |||
= | =Installazione= | ||
Ci sono varie librerie a disposizione, il sito di riferimento è sicuramente http://abstrakraft.org/cwiid/, sito di sviluppo della libreria Cwiid che è la più completa e testata. Vediamo cosa installare a seconda dell'uso di cui andremo a fare del nostro Wii. | |||
==WiiMote come sistema di puntamento== | |||
<pre> | <pre>aptitude install lswm wminput wmgui</pre> | ||
<pre>modprobe uinput</pre> | |||
</pre> | |||
==La WiiLD== | |||
<pre>aptitude install gtkwhiteboard</pre> | |||
== | ==Configurazione del sistema== | ||
Per poter utilizzare il Wiimote sotto Linux è necessario che sia attivo il modulo del kernel relativo al usbhid, in Ubuntu digitare: | |||
<pre># modprobe usbhid</pre> | |||
altrimenti [[Debian Kernel Howto |Ricompilare il kernel]] e attivarne il modulo. | |||
==Pacchetti necessari== | |||
Installare i seguenti pacchetti con il nostro amato apt-get: | |||
<pre># 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</pre> | |||
Ora lanciamo hcitool scan premendo contemporaneamente i tasti 1 e 2 | |||
<pre>$ hcitool scan | |||
<pre> | Scanning ... | ||
</pre> | 00:19:1D:6B:3D:A3 Nintendo RVL-CNT-01</pre> | ||
Se l'operazione riesce il sistema è 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: è un'interfaccia grafica per testare tutti gli eventi del controller; | |||
= | ==Esempio di implementazione in un programma C == | ||
Un [http://abstrakraft.org/cwiid/browser/trunk/wmdemo/wmdemo.c?rev=179 esempio ] lo si trova sul sito di cwiid oppure all'interno della directory con i | |||
[http://abstrakraft.org/cwiid/downloads/cwiid-0.6.00.tgz sorgenti] del programma nella directory wmdemo. | |||
In linea generale c'è 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 sarà una fase di connessione (cwiid_open) che chiederà il BBSID, un codice identificativo che abbiamo precedentemente visto | |||
durante la chiamata del comando "hcitool scan". | |||
=Problematiche varie= | |||
Per risolvere eventuali problemi vi invito sia a postare sulla pagina "discussioni" sia sul forum debianizzati.org. La guida è ancora in fase di stesura, quindi ogni critica e consiglio sarà ben voluto. | |||
==Problematiche hardware== | |||
===Videocamera IR=== | |||
Attenzione che altre fonti di luce possono emettere raggi infrarossi. Ad esempio candele, ma soprattutto il sole. Se adoperato in piena luce solare la telecamera potrebbe essere accecata o fortemente disturbata. | |||
===LED IR=== | |||
Attenzione che i led sono direzionali (con un angolo di puntamento in genere attorno ai 30°) quindi attenzione a non utilizzarli storti. Per utilizzare la WiiLD sarebbe meglio adoperare un led IR ad alta potenza rispetto ai classici in commercio. |
contributi