Old:Wiimote: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
contrassegnata da adottare e rimosso template versioni compatibili
(contrassegnata da adottare e rimosso template versioni compatibili)
(22 versioni intermedie di 6 utenti non mostrate)
Riga 1: Riga 1:
{{stub}}
{{Guida da adottare}}


=Introduzione=
=Introduzione=
Il Wiimote e' un controller prodotto dalla Nintendo usato come controller per la console Wii.
Il Wiimote è 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  
È 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++.
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=
=Installazione=
Ci sono varie librerie a disposizione, il sito di riferimento e' sicuramente http://www.wiili.org/, per questa mini-guida si utilizzera'
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.
la libreria Cwiid che e' la piu' completa e testata.
 
==WiiMote come sistema di puntamento==
<pre>aptitude install lswm wminput wmgui</pre>
<pre>modprobe uinput</pre>
 
==La WiiLD==
<pre>aptitude install gtkwhiteboard</pre>


==Configurazione del sistema==
==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
Per poter utilizzare il Wiimote sotto Linux è necessario che sia attivo il modulo del kernel relativo al usbhid, in Ubuntu digitare:
modprobe usbhid  
<pre># modprobe usbhid</pre>


altrimenti [[Debian Kernel Howto |Ricompilare il kernel]] e attivarne il modulo.
altrimenti [[Debian Kernel Howto |Ricompilare il kernel]] e attivarne il modulo.
Riga 18: Riga 41:
==Pacchetti necessari==
==Pacchetti necessari==
Installare i seguenti pacchetti con il nostro amato apt-get:
Installare i seguenti pacchetti con il nostro amato apt-get:
apt-get install autoconf awk, bison, flex, bluez-utils bluez-hcidump  
<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
# 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
Ora lanciamo hcitool scan premendo contemporaneamente i tasti 1 e 2
   
   
j3no@kropotkin:~$ hcitool  scan
<pre>$ hcitool  scan
  Scanning ...
  Scanning ...
         00:19:1D:6B:3D:A3      Nintendo RVL-CNT-01
         00:19:1D:6B:3D:A3      Nintendo RVL-CNT-01</pre>


Se l'operazione riesce il sistema e' pronto per essere utilizzato
Se l'operazione riesce il sistema è pronto per essere utilizzato.


=Utilizzo della libreria Cwiid=
=Utilizzo della libreria Cwiid=
A disposizione avrete dei comandi che vi permetteranno di utilizzare il vostro controller:
A disposizione avrete dei comandi che vi permetteranno di utilizzare il vostro controller:
*wminput: permette di utilizzare il wiimote come un mouse  
*wminput: permette di utilizzare il wiimote come un mouse;
*wmgui: e' un'interfaccia grafica per testare tutti gli eventi del controller
*wmgui: è un'interfaccia grafica per testare tutti gli eventi del controller;


==Esempio di implementazione in un programma C ==
==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
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
sorgenti del programma http://abstrakraft.org/cwiid/downloads/cwiid-0.6.00.tgz nella directory wmdemo.
[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.
 


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.
{{Autori
Prima di far questo ci sara' una fase di connessione (cwiid_open) che chiedera' il BBSID, un codice identificativo che abbiamo precedentemente visto
|Autore= [[Utente:Risca86 | Risca]]
durante la chiamata del comando "hcitool scan"
(originariamente scritta da [[Utente:J3no|J3no]])
}}


--[[Utente:J3no|J3no]] 10:00, 3 giu 2008 (CDT)
[[Categoria:Hack it!]]
982

contributi

Menu di navigazione