Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
wiimote [Le 23/04/2010, 23:22]
draco31.fr suppr lien mort
wiimote [Le 11/09/2022, 11:45] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>Hardy matériel bluetooth souris télécommande ​BROUILLON}}+{{tag>Xenial ​matériel bluetooth souris télécommande}}
 ---- ----
  
Ligne 8: Ligne 8:
 Vous pourrez alors utiliser votre Wiimote en tant que souris, sans aucun effort, ou presque. Vous pourrez alors utiliser votre Wiimote en tant que souris, sans aucun effort, ou presque.
  
-===== Pré-requis ===== 
  
-  * Posséder un émetteur/​récepteur Bluetooth +<note aide>Si vous souhaitez juste utiliser votre Wiimote ​pour contrôler xbmc, une méthode plus simple est décrite dans la page [[:​xbmc#​piloter xbmc avec une wiimote]].</​note>​
-  * Avoir une Wiimote… +
-  * Allumer ​une sensorbar (barre infrarouge) ou une bougie voire un projecteur infrarouge (facilement trouvable dans le commerce et pas cher)+
  
-<​note>​Pour les bougies, une peut suffire, mais si vous avez un écran large, deux bougies espacées de 20 centimètres peuvent faire l'​affaire pour couvrir tout l'​écran</​note>​ +===== Pré-requis ​=====
- +
-<note important>​Si vous souhaitez juste utiliser votre wiimote pour controler xbmc, une methode plus simple est décrite dans la page [[:​xbmc#​utiliser_une_wiimote_avec_xmbc]]</​note>​ +
- +
- +
- +
- +
-=====Sous Hardy et suivants=====  +
- +
-Ayant suivi ce tuto de A à Z, je me suis demandé si depuis Gusty, il n'y avait pas un moyen un peu plus simple après tout ce temps. En fait, il existe effectivement des paquets tout prêt.+
  
-il suffit de lancer synaptic et d'​avoir les dépots univers/multiverse, et vous tapez Wii dans le moteur de recherche.+  * Posséder un émetteur/récepteur Bluetooth. La liste du matériel supporté par la wiimote est [[http://​wiibrew.org/​wiki/​List_of_Working_Bluetooth_Devices|ici]] ; 
 +  * Avoir une Wiimote… ; 
 +  * Allumer une //​sensorbar//​ (barre infrarouge) ou une bougie voire un projecteur infrarouge (facilement trouvable ​dans le commerce et pas cher).
  
-[[:​tutoriel:​comment_installer_un_paquet|Installez ​les paquets]] **[[apt://​lswm,wmgui,wminput|lswmwmgui, wminput]]**+<​note>​Pour ​les bougiesune peut suffiremais si vous avez un écran largedeux bougies espacées de 20 centimètres peuvent faire l'​affaire pour couvrir tout l'​écran.</​note>​
  
-Ensuite, passez au chapitre [[#Tester avec wmgui]] pour tester votre wiimote. 
  
-Puis savoir comment l'​activer en tant que pointeur. +===== Installation ​=====
-===== Tester avec « wmgui » =====+
  
-Maintenant, on doit pouvoir lancer la commande ​:+[[:tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​lswm,​wmgui,​wminput,​libcwiid1|lswm,​ wmgui, wminput, libcwiid1]]**. 
 +   
  
-   wmgui+===== Vérifier que tout fonctionne avec Wmgui =====
  
-notechez moi cela ne se lançait pas, j'ai du faire :+Lancez l'​application comme indiqué [[:tutoriel:​comment_lancer_application|ici]] ou via le [[:​terminal]] (toutes [[:​versions]] ou [[:​variantes]] d'Ubuntu) avec la [[:​commande_shell|commande]] suivante <​code>​wmgui</​code>​
  
-   sudo ln -s /​usr/​local/​lib/​libcwiid.so.1.0 /​usr/​lib/​libcwiid.so.1+Si ça ne se lance pas, créer un lien symbolique à l'aide de la commande ci-dessous :​ <​code>​sudo ln -s /​usr/​local/​lib/​libcwiid.so.1.0 /​usr/​lib/​libcwiid.so.1</​code>​
  
-Ce programme va nous permettre de vérifier que les capteurs de la wiimote sont bien gérés par le PC.+Allez dans //File -> Connect// pour vous connecter à la Wiimote.
  
-Utilisez //File -Connect// pour vous connecter à la Wiimote. ​Pour mettre la Wiimote en mode synchro, on presse simultanément les boutons 1 et 2 ((mais ça vous le saviez déjà ;-)))ou dans certains cas enlever le clapet des piles afin d'​accéder à un petit bouton rouge, une fois appuyé les led bleue clignotent, la Wiimote est alors en mode synchro, cliquez ​alors sur **Valider**.+<note tip>Pour mettre la Wiimote en mode de synchronisation (ou mode visible), on presse simultanément les boutons 1 et 2. 
 +Dans certains casenlever le clapet des piles afin d'​accéder à un petit bouton rouge. Une fois ce dernier ​appuyéles DÉL bleues ​clignotent. La Wiimote est alors en mode de synchronisation.</​note>​ 
 + ​Cliquez ​alors sur **Valider**.
  
 On peut afficher l'​état courant de la Wiimote connectée : On peut afficher l'​état courant de la Wiimote connectée :
-  * //Settings -> Acc data// permet d'​afficher les données concernant l'​accéléromètre +  * //Settings -> Acc data// permet d'​afficher les données concernant l'​accéléromètre ​; 
-  * //Settings -> IR data// ​ permet d'​afficher les données concernant l'​infrarouge+  * //Settings -> IR data// ​ permet d'​afficher les données concernant l'​infrarouge.
  
-J'ai pu constater que l'​accéléromètre ​marche ​bien. Pour vérifier l'IR, vous devez brancher une sensorbar ou utiliser une simple bougie (chez moi ça marche ​!). L'​idée est d'​avoir une source ponctuelle d'​infrarouge pour que le wiimote ​se repère.+L'​accéléromètre ​fonctionne plutôt ​bien. Pour vérifier l'infrarouge, vous devez brancher une barre de détection (//sensorbar//, en anglais) ​ou utiliser une simple bougie (ça fonctionne ​chez moi !). L'​idée est d'​avoir une source ponctuelle d'​infrarouge pour que la Wiimote ​se repère.
  
-Pour ceux qui auraient le message +<note warning>Pour ceux qui auraient le message ​« Error establishing control channel connection ​», il faut déclarer ​la variable d'​environnement **WIIMOTE_BDADDR** comme ci-dessous (avec uu:​vv:​ww:​xx:​yy:​zz qui est l'​adresse ​Mac de votre WiiMote).
->Error establishing control channel connection +
- +
-Il faut positionner ​la variable d'​environnement **WIIMOTE_BDADDR** comme ci dessous (avec uu:​vv:​ww:​xx:​yy:​zz qui est l'​adresse ​MAC de votre WiiMote)+
  
   WIIMOTE_BDADDR=uu:​vv:​ww:​xx:​yy:​zz   WIIMOTE_BDADDR=uu:​vv:​ww:​xx:​yy:​zz
   export WIIMOTE_BDADDR   export WIIMOTE_BDADDR
  
-Pour éviter de saisir ces commandes à chaque fois que vous lancez votre session il suffit de placer ces lignes dans votre fichier **~/​.bashrc** ​  +Pour éviter de saisir ces commandes à chaque fois que vous lancez votre sessionil suffit de placer ces lignes dans votre fichier **~/​.bashrc**. 
 +</​note>​
  
  
  
-===== Lancer « wminput ​» =====+===== Faire fonctionner la Wiimote grâce à wminput =====
  
-Tout d'​abord,​ on va chercher l'​adresse de notre Wiimote.+Tout d'​abord,​ on va chercher l'​adresse ​Mac de notre Wiimote. Pour l'​obtenir,​ tapez la commande ci-dessous dans un **[[terminal]]**.
  
-Pour obtenir l'​adresse Mac de votre Wiimote, tapez dans un **[[terminal]]**:​ 
   lswm   lswm
  
-Ce petit programme va vous demander de mettre votre Wiimote en mode découvrable ​(appuyer ​sur 1 et 2 en même temps) et vous renvoi ​l'​adresse ​mac de la Wiimote.+Ce petit programme va vous demander de mettre votre Wiimote en mode visible ​(appuyez ​sur 1 et 2 en même temps) et vous renvoie ​l'​adresse ​Mac de la Wiimote.
  
-<​note>​Si vous n'​arrivez pas à utiliser cette méthode, voici une méthode plus "classique" +<​note>​Si vous n'​arrivez pas à utiliser cette méthode, voici une méthode plus « classique ​» mettez ​la Wiimote ​en mode visible ​(1 et 2 en même temps), puis exécutez la commande ​ci-dessous ​dans un **[[terminal]]**.
- +
-Mettez ​la wiimote ​en mode "​découvrable" ​(1 et 2 en même temps), puis executez cette commande dans un **[[terminal]]**:+
  
   sudo hidd --search   sudo hidd --search
  
 L'​adresse est de la forme « xx:​xx:​xx:​xx:​xx:​xx ».</​note>​ L'​adresse est de la forme « xx:​xx:​xx:​xx:​xx:​xx ».</​note>​
-<​note>​Vous aurez peut être besoin [[:​tutoriel:​comment_installer_un_paquet|d'​installer le paquet]][[apt://​libcwiid1-dev|libcwiid1-dev]]</​note>​ +<​note>​Vous aurez peut-être besoin [[:​tutoriel:​comment_installer_un_paquet|d'​installer le paquet]][[apt://​libcwiid1-dev|libcwiid1-dev]].</​note>​ 
-Dans certains cas, il est utile de charger un module pour faire fonctionner « wminput ». Un « lsmod » vous le dira. Dans le doute, ​taper :+Dans certains cas, il est utile de charger un module pour faire fonctionner « wminput ». Un « lsmod » vous le dira. Dans le doute, ​tapez la commande ci-dessous.
  
   sudo modprobe uinput   sudo modprobe uinput
Ligne 92: Ligne 77:
   sudo wminput -c acc_ptr xx:​xx:​xx:​xx:​xx:​xx   sudo wminput -c acc_ptr xx:​xx:​xx:​xx:​xx:​xx
  
-qui permet d'​utiliser uniquement l'​accéléromètre pour le contrôle de la souris. Il faut la pencher en avant/arrière et la tourner sur elle-même.+Cette commande ​permet d'​utiliser uniquement l'​accéléromètre pour le contrôle de la souris. Il faut la pencher en avant & en arrière et la tourner sur elle-même.
  
 === Mode infrarouge === === Mode infrarouge ===
Ligne 98: Ligne 83:
   sudo wminput -c ir_ptr xx:​xx:​xx:​xx:​xx:​xx   sudo wminput -c ir_ptr xx:​xx:​xx:​xx:​xx:​xx
  
-qui permet d'​utiliser le pointeur ​Infrarouge ​de la Wiimote. Il faut au préalable avoir une sensorbar sous tensionou simplement une bougie vers l'​ordinateur. Une vieille ​télecommande infra-rouge ​et un élastique ​fonctionne ​également.+Cette commande ​permet d'​utiliser le pointeur ​infrarouge ​de la Wiimote. Il fautau préalableavoir une //sensorbar// sous tension ou simplement une bougie ​éclairant ​vers la Wiimote. Une vieille ​télécommande infrarouge ​et un élastique ​fonctionnent ​également.
 Sans doute la plus utile. Si ça ne fonctionne pas tout de suite, il faut redémarrer la machine. Sans doute la plus utile. Si ça ne fonctionne pas tout de suite, il faut redémarrer la machine.
  
  
  
-=== Mode nunchuk ===  +=== Mode nunchuk === 
-//(fonctionne ​sur la version 0.6.00)//+//(Fonctionne ​sur la version 0.6.00.)//
   sudo wminput -c nunchuk_acc_ptr xx:​xx:​xx:​xx:​xx:​xx   sudo wminput -c nunchuk_acc_ptr xx:​xx:​xx:​xx:​xx:​xx
  
-qui permet d'​utiliser l'​accéléromètre du nunchuk pour contrôle de la souris. L'​utilisation est similaire au mode accéléromètre.+Cette commande ​permet d'​utiliser l'​accéléromètre du nunchuk pour le contrôle de la souris. L'​utilisation est similaire au mode accéléromètre.
  
-<​note>​Si vous n'​arrivez pas à l'​activer, ​faite cette commande avant de lancer wminput:+<​note>​Si vous n'​arrivez pas à l'​activer, ​utilisez la commande ​suivante ​avant de lancer wminput.
   sudo hidd --kill xx:​xx:​xx:​xx:​xx:​xx   sudo hidd --kill xx:​xx:​xx:​xx:​xx:​xx
 </​note>​ </​note>​
  
  
-<​note>​Plus généralement,​ les différents modes (nunchuk, gamepad, ir_ptr...) sont disponibles à l'​emplacement ​:+<​note>​Plus généralement,​ les différents modes (nunchuk, gamepad, ir_ptr, etc.) sont disponibles à l'​emplacement ​indiqué ci-dessous.
   /​etc/​cwiid/​wminput   /​etc/​cwiid/​wminput
-Il sera même possible de modifier/créer ​vos propres fichiers de configuration.+Il est même possible de modifier ​et de créer ​ses propres fichiers de configuration.
 </​note>​ </​note>​
  
 ===== Pour aller plus loin ===== ===== Pour aller plus loin =====
-==== Résolutions de problèmes ​==== +==== Configurations personnalisées / Mapping ​==== 
-=== Curseur enfermé dans une boite === +Il est possible ​de personnaliser les actions ​de la Wiimote en assignant ​d'autres touches à ses boutons.
-Si votre curseur semble "​**enfermé dans une boite invisible**"​ en mode Infra Rouge, c'est que la caméra ​de la wiimote a une résolution ​de 1024x768 et que les réglages initiaux indiquent à la wiimote ​d'utiliser sa résolution nativePour régler ce problème il faut éditer le fichier /​etc/​cwiid/​wminput/​ir_ptr et remplacer ​+
  
-  Plugin.ir_ptr.X = ~ABS_X +Si on regarde le fichier /​etc/​cwiid/​wminput/​ir_ptr, on observe que celui-ci inclut le fichier buttons qui régit les touches et assigne une manière de gérer les axes de la souris.
-  Plugin.ir_ptr.Y = ~ABS_Y+
  
-par+On peut commencer sur la base de acc_ptr (ou ir_ptr si vous préférez l'​infrarouge) et ajouter dedans les boutons que l'on veut à l'aide de la commande ci-dessous.
  
-  ​Plugin.ir_ptr.X = ABS_X +  ​sudo cp /​etc/​cwiid/​wminput/​acc_ptr /​etc/​cwiid/​wminput/​ma_config 
-  ​Plugin.ir_ptr.Y = ABS_Y+Si vous préférez l'​infrarouge,​ vous pouvez utiliser la commande suivante
 +  ​sudo cp /​etc/​cwiid/​wminput/​ir_ptr ​/​etc/​cwiid/​wminput/​ma_config
  
-==== Configurations personnalisées / Mapping ==== +On peut ensuite éditer ce fichier (**Pensez ​à retirer la ligne « include buttons » pour éviter les conflits !**).
-Il est possible de personnaliser les actions de la wiimote en assignant d'​autres touches ​à ses boutons.+
  
-Si l'on regarde le fichier ​/​etc/​cwiid/​wminput/​ir_ptr,​ on observe que celui-ci inclu le fichier buttons qui régit les touches et assigne une manière de gérer les axes de la souris.+Voici un exemple de fichier ​personnalisé. 
 +<​file>​ 
 +Plugin.acc.X = REL_X 
 +Plugin.acc.Y = ​-REL_Y # Je trouve ça plus naturel en négatif 
 +Plugin.led.Battery = 1 # Pour afficher l'​état ​de la batterie quand on appuie simultanément sur A et B 
 +   
 +Wiimote.A = BTN_LEFT # Clic gauche 
 +Wiimote.B = BTN_RIGHT #​ Clic droit 
 +Wiimote.Up = KEY_UP # Touche Haut △ 
 +Wiimote.Down = KEY_DOWN # Touche Bas ▽ 
 +Wiimote.Left = KEY_LEFT # Touche Gauche ◁ 
 +Wiimote.Right = KEY_RIGHT #​ Touche Droite ▷ 
 +Wiimote.Home = KEY_HOMEPAGE #​ Touche multimédia Home (Dossier personnel) 
 +Wiimote.1 = KEY_PLAYPAUSE #​ Touche multimédia Jouer/Pause ▸ 
 +Wiimote.2 = KEY_NEXTSONG #​ Touche multimédia Titre suivant 
 +Wiimote.Plus = KEY_VOLUMEUP #​ Touche multimédia Volume + 
 +Wiimote.Minus = KEY_VOLUMEDOWN #​ Touche multimédia Volume - 
 +</​file>​
  
-On peut commencer sur la base de ir_ptr et ajouter dedans les boutons que l'on veut:+Vous pouvez ensuite le tester avec la commande ci-dessous.
  
-  sudo cp /etc/cwiid/wminput/ir_ptr /​etc/​cwiid/​wminput/​ma_config''​+  sudo wminput ​-c ma_config ​XX:​XX:​XX:​XX:​XX:​XX
  
-et l'éditer ensuite, **Pensez à retirer la ligne "​include buttons"​ pour éviter les conflits!**+La liste des boutons de la Wiimote est disponible à l'adresse suivante : http://​abstrakraft.org/​cwiid/​browser/​doc/​wminput.list.
  
-Voici un exemple de fichier personnalisé ​: +La liste des touches gérées est disponible à l'​adresse suivante ​http://​abstrakraft.org/​cwiid/​browser/​wminput/​action_enum.txt.
-  Plugin.ir_ptr.X = ABS_X +
-  Plugin.ir_ptr.Y = ABS_Y +
-   +
-  Wiimote.A ​              = KEY_LEFTALT ​          # ALT +
-  Wiimote.B ​              = BTN_LEFT ​             # Click! +
-  Wiimote.Up ​     = KEY_UP ​               # Up +
-  Wiimote.Down ​   = KEY_DOWN ​             # Down +
-  Wiimote.Left ​   = KEY_LEFTCTRL ​         # CTRL +
-  Wiimote.Right ​  = BTN_RIGHT ​            # Right Click +
-  Wiimote.Home ​   = BTN_MIDDLE ​           # Middle Click +
-  Wiimote.1 ​              = KEY_ENTER ​                    # +
-  Wiimote.2       = KEY_SPACE ​                    # +
-  Wiimote.Plus    = KEY_VOLUMEUP ​         # Turn up volume +
-  Wiimote.Minus   = KEY_VOLUMEDOWN ​       # Turn down Volume+
  
 +====  Tableau numérique interactif (TNI / whiteboard / TNWii) ====
  
-Vous pouvez ensuite le tester avec la commande ​:+L'​origine du TNWii [[http://​www.cs.cmu.edu/​~johnny/​projects/​wii/​]].
  
-  sudo wminput -c ma_config XX:XX:XX:XX:XX:XX+Les pilotes pour faire votre TNWii (sous Hardy, Intrepid et suivants...) ​[[http://​code.google.com/​p/​linux-whiteboard/​downloads/​list]].
  
-La liste des boutons de la wiimote ​: http://abstrakraft.org/cwiid/​browser/trunk/doc/wminput.list+Ou les sources par le svn [[http://linux-whiteboard.googlecode.com/svn/trunk/]].
  
-La liste des touches gérées ​http://abstrakraft.org/cwiid/​browser/​trunk/​wminput/​action_enum.txt+Une autre version (qui devrait mieux fonctionner) existe également (GTKWhiteboard) ​[[https://forum.ubuntu-fr.org/viewtopic.php?​id=208957&​p=3]] (ce lien mêne au forum qui présente également d'​autres ressources sur le TNWii).
  
 +Un tutoriel en français pour utiliser le tableau interactif Wiimote sous linux :
 +http://​trucsinformatiques.free.fr/​articles.php?​lng=fr&​pg=32 (obsolète, les paquets cités ci-dessus sont plus récents).
  
 +==== Démon et auto-connexion ====
 +Il est lassant d'​avoir à saisir toutes ces commandes avant de pouvoir profiter de sa wiimote. On peut lancer un démon chargé de se (re-)connecter automatiquement à votre Wiimote quand elle est détectée.
  
-===== Références =====+  * **N'​oubliez pas de personnaliser le fichier de configuration.** 
 +  * Le propriétaire du démon doit disposer des permissions en lecture/​écriture sur ''/​dev/​uinput''​ (regardez [[:​wiimote#​resolutions_de_problemes|du côté de udev]]). 
 +  * Copiez ensuite le script ci-dessous dans ''/​etc/​init.d/​wminput''​. 
 +<​file>​ 
 +#! /bin/sh
  
-Articles dont je me suis très fortement « inspiré »:+### BEGIN INIT INFO 
 +# Provides         ​wiimote 
 +# Required-Start: ​   $local_fs $syslog $remote_fs bluetooth udev 
 +# Required-Stop:​ 
 +# Default-Start: ​    2 3 4 5 
 +# Default-Stop: ​     0 1 6 
 +# Short-Description:​ Wminput for wiimote initscript 
 +# Description: ​      ​Wiimote for wiimote initscript : should be placed in /​etc/​init.d. 
 +### END INIT INFO
  
-  * http://​www.jeuvinux.net/​article.php3?​id_article=109 +# AuthorLvR
-  * http://​www.elotrolado.net/​showthread.php?​s=&​threadid=694072+
  
 +# Do NOT "set -e"
  
 +# PATH should only include /usr/* if it runs after the mountnfs.sh script
 +PATH=/​sbin:/​usr/​sbin:/​bin:/​usr/​bin
 +DESC="​wminput initscript"​
 +NAME=wminput
 +DAEMON=/​usr/​bin/​$NAME
 +DAEMON_ARGS="​-d"​
 +PIDFILE=/​var/​run/​$NAME.pid
 +SCRIPTNAME=/​etc/​init.d/​$NAME
  
 +# Exit if the package is not installed
 +[ -x "​$DAEMON"​ ] || exit 0
  
 +# Read configuration variable file if it is present
 +[ -r /​etc/​default/​$NAME ] && . /​etc/​default/​$NAME
  
 +# Load the VERBOSE setting and other rcS variables
 +. /​lib/​init/​vars.sh
  
-===== Petit script qui automatise l'​utilisation =====+# Define LSB log_* functions. 
 +# Depend on lsb-base (>3.0-6) to ensure that this file is present. 
 +. /​lib/​lsb/​init-functions
  
-Depuis que j'ai découvert ce tutorielje me suis lancé dans la fabrication d'un petit script permettant l'​exécution en mode graphique.+
 +# Function that starts the daemon/​service 
 +
 +do_start() 
 +
 +        # Be sure that uinput module is loaded 
 +        modprobe uinput 
 +         
 +        # Add specific daemon args 
 +        [ -n "​$WMINPUTCONF"​ ] && DAEMON_ARGS="​$DAEMON_ARGS -c $WMINPUTCONF"​ 
 +        [ -n "​$WIIMOTEADDR"​ ] && DAEMON_ARGS="​$DAEMON_ARGS $WIIMOTEADDR"​ 
 +        [ -n "​$EXTRAOPTS" ​  ] && DAEMON_ARGS="​$DAEMON_ARGS $EXTRAOPTS" ​        
 +         
 +         
 +        # Return 
 +        #   0 if daemon has been started 
 +        #   1 if daemon was already running 
 +        #   2 if daemon could not be started 
 +        start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ 
 +                || return 1 
 +        start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE --exec $DAEMON -- \ 
 +                $DAEMON_ARGS \ 
 +                || return 2 
 +        # Add code hereif necessary, that waits for the process to be ready 
 +        # to handle requests from services started subsequently which depend 
 +        # on this one.  As a last resort, sleep for some time. 
 +}
  
-Ce script nécessite d'​avoir installé au préalable tout ce qu'il faut pour utiliser sa WiiMote, ainsi que zenity.+
 +# Function that stops the daemon/​service 
 +
 +do_stop() 
 +
 +        # Return 
 +        #   0 if daemon has been stopped 
 +        #   1 if daemon was already stopped 
 +        #   2 if daemon could not be stopped 
 +        #   other if a failure occurred 
 +        start-stop-daemon --stop --quiet --retry=TERM/​30/​KILL/​5 --pidfile $PIDFILE --name $NAME 
 +        RETVAL="​$?"​ 
 +        [ "​$RETVAL"​ = 2 ] && return 2 
 +        # Wait for children to finish too if this is a daemon that forks 
 +        # and if the daemon is only ever run from this initscript. 
 +        # If the above conditions are not satisfied then add some other code 
 +        # that waits for the process to drop all resources that could be 
 +        # needed by services started subsequently. ​ A last resort is to 
 +        # sleep for some time. 
 +        start-stop-daemon --stop --quiet --oknodo --retry=0/​30/​KILL/​5 --exec $DAEMON 
 +        [ "​$?"​ = 2 ] && return 2 
 +        # Many daemons don't delete their pidfiles when they exit. 
 +        rm -f $PIDFILE 
 +        return "​$RETVAL"​ 
 +}
  
-Il nécessite aussi des droits d'​administration donc il faut le lancer avec gksudo.+
 +# Function that sends a SIGHUP to the daemon/​service 
 +
 +do_reload() { 
 +        # 
 +        # If the daemon can reload its configuration without 
 +        # restarting (for example, when it is sent a SIGHUP), 
 +        # then implement that here. 
 +        # 
 +        start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME 
 +        return 0 
 +}
  
-Copiez ce code dans un fichier texte et rendez le exécutable : Clique droit --> Propriétés ​--> Permissions --> Exécution ​cochez la case autorisant+case "​$1"​ in 
 +  start) 
 +        [ "​$VERBOSE"​ != no ] && log_daemon_msg "​Starting $DESC" "​$NAME"​ 
 +        do_start 
 +        case "​$?"​ in 
 +                0|1) [ "​$VERBOSE"​ != no ] && log_end_msg 0 ;; 
 +                2) [ "​$VERBOSE"​ != no ] && log_end_msg 1 ;; 
 +        esac 
 +        ;; 
 +  stop) 
 +        [ "​$VERBOSE"​ != no ] && log_daemon_msg "​Stopping $DESC" "​$NAME"​ 
 +        do_stop 
 +        case "​$?"​ in 
 +                0|1) [ "​$VERBOSE"​ != no ] && log_end_msg 0 ;; 
 +                2) [ "​$VERBOSE"​ != no ] && log_end_msg 1 ;; 
 +        esac 
 +        ;; 
 +  #​reload|force-reload) 
 +        # 
 +        # If do_reload() is not implemented then leave this commented out 
 +        # and leave 'force-reload'​ as an alias for '​restart'​. 
 +        # 
 +        #​log_daemon_msg "​Reloading $DESC" "​$NAME"​ 
 +        #​do_reload 
 +        #​log_end_msg $? 
 +        #;; 
 +  restart|force-reload) 
 +        # 
 +        # If the "​reload"​ option is implemented then remove the 
 +        # 'force-reload'​ alias 
 +        # 
 +        log_daemon_msg "​Restarting $DESC" "​$NAME"​ 
 +        do_stop 
 +        case "​$?"​ in 
 +          0|1) 
 +                do_start 
 +                case "​$?"​ in 
 +                        0) log_end_msg 0 ;; 
 +                        1) log_end_msg 1 ;; # Old process is still running 
 +                        *) log_end_msg 1 ;; # Failed to start 
 +                esac 
 +                ;; 
 +          *) 
 +                # Failed to stop 
 +                log_end_msg 1 
 +                ;; 
 +        esac 
 +        ;; 
 +  *) 
 +        #echo "​Usage:​ $SCRIPTNAME {start|stop|restart|reload|force-reload}" ​>&2 
 +        echo "Usage$SCRIPTNAME {start|stop|restart|force-reload}"​ >&​2 
 +        exit 3 
 +        ;; 
 +esac
  
-  #​!/​bin/​bash +exit 0 
-  #Script réalisé par KicheTof pour les utilisateurs de WiiMote. +</file>
-  #Script libre de toute modification sans aucune demande nécessaire :) +
-  #Vive le libre :) +
-  function quit { +
- if  [ $? != "​0"​ ]; then +
- exit +
- fi +
- [ $? -ne "0" ] && exit 2 +
-   } +
-   ​device=$(hcitool scan | tail -n +2 | while read line +
-   do +
- echo -n "​$line"​ | sed -r "s/\s*([0-9A-Fa-f:​]+)\s*(.*)/​\1\n\2\n/"​ +
-   done | zenity --list \ +
-              --title "​Utilisation de la WiiMote comme souris : 3 méthodes !" \ +
-              --text "​Maintenez la touche 1 et 2 en même temps pour activer le mode détection.\nChoisissez la WiiMote dans la liste (Nintendo RVL-CNT)"​ \ +
-              --column "​id"​ --column "​appareil bluetooth"​) +
-   ​quit;​ +
-   while [ ! "​$CHOIX_ACTION"​ ] +
-   do +
- CHOIX_ACTION=$(zenity --list --width "​600"​ --height "​200"​ \ +
- --title "​Choisissez quelle méthode pour utiliser la WiiMote"​ \ +
- --text "​Pilotage par Accéléromètre,​ par Infrarouge, ou via le Nunchuk"​ \ +
- --radiolist \ +
- --column "​Choix"​ --column "​Pilotage"​ --column "​Description"​ \ +
- True Accéléromètre "​Utilisation de la position de la WiiMote"​ \ +
- False Infrarouge "​Utilisation de l'​infrarouge à l'aide d'une bougie, par exemple"​ \ +
- False Nunchuk "​Utilisation du nunchuk pour piloter la souris"​) +
- quit; +
- if [ $CHOIX_ACTION == "​Accéléromètre"​ ]; then +
- action="​acc_ptr";​ +
- elif [ $CHOIX_ACTION == "​Infrarouge"​ ]; then +
- action="​ir_ptr";​ +
- elif [ $CHOIX_ACTION == "​Nunchuk"​ ]; then +
- action="​nunchuk_acc_ptr";​ +
- fi +
-   ​done +
-   ​zenity --info --title "​Attention"​ --text "Si les led's ne clignotent plus, réappuyez sur 1 et 2 !\n\nPour quitter le script, pressez 3 secondes le bouton \"​power\"​ de la WiiMote ! :)"; +
-   ​wminput -c $action $device;+
  
 +Le fichier de configuration **/​etc/​default/​wminput** :​
 + Dans cet exemple il faut penser à remplacer « xbmc » par le fichier de configuration des boutons de son choix (voir 5.1 Configurations personnalisées / Mapping). Il faut aussi remplacer 00:​21:​BD:​25:​51:​C6 par l'​adresse Mac de sa Wiimote (voir 4 Faire fonctionner la Wiimote grâce à wminput).
 +<​file>#​ This file is sourced by /​etc/​init.d/​wminput
 +#
 +# When wminput is started using the init script, the
 +# -d option is always used.
 +#
 +# Each setting is marked either "​required"​ or "​optional";​
 +# leaving any required setting unconfigured will cause
 +# the service to not start.
  
-=====  Tableau Numérique Interactif (TNI / whiteboard / TNWii) =====+# [optional] wiimote mac address : 
 +WIIMOTEADDR=00:​21:​BD:​25:​51:​C6
  
-L'​origine du TNWii : [[http://​www.cs.cmu.edu/​~johnny/​projects/​wii/​]]+[optional] wminput configuration to use : 
 +WMINPUTCONF=xbmc
  
-Les pilotes pour faire votre TNWii (sous HardyIntrepid et suivants...) : [[http://​code.google.com/​p/​linux-whiteboard/​downloads/​list]]+# [optional] extra command line optionsif any: 
 +EXTRAOPTS=<​/file>
  
-ou les sources par le svn [[http://​linux-whiteboard.googlecode.com/​svn/​trunk/​]]+**__Rendez ​le service activable avec la commande ci-dessous.__**
  
-Une autre version (qui devrait fonctionner mieux) existe également (GTKWhiteboard) : [[http://forum.ubuntu-fr.org/viewtopic.php?​id=208957&​p=3]] (ce lien même au forum qui présente également d'​autres ressources sur le TNWii).+  sudo chmod u+x /etc/init.d/wminput
  
-Un tutorial en français pour utiliser ​le tableau interactif wiimote sous linux : +Pour ajouter le service au démarrage, il faut utiliser ​la commande suivante.
-http://​trucsinformatiques.free.fr/​articles.php?​lng=fr&​pg=32 (obsolète, les paquets cités ci-dessus sont plus récents)+
  
 +  sudo update-rc.d -f wminput defaults
  
 +Pour lancer(/​stopper/​relancer) le démon, il faut utiliser la commande ci-dessous.
 +
 +  sudo service wminput start
 +
 +Vous pouvez à présent connecter votre WiiMote simplement en appuyant sur 1+2, l'​éteindre (en maintenant le bouton POWER) et la ré-allumer sans avoir à lancer quoique ce soit.
 +==== Résolutions de problèmes ====
 +=== Curseur enfermé dans une boîte ou souris inactive ===
 +Si votre curseur semble « **enfermé dans une boîte invisible** » ou « **reste bloqué** » en mode infrarouge, c'est que la caméra de la Wiimote a une résolution de 1024x768 et que les réglages initiaux indiquent à la Wiimote d'​utiliser sa résolution native. Pour régler ce problème il faut éditer le fichier ''/​etc/​cwiid/​wminput/​ir_ptr''​ et remplacer ​
 +<​file>​
 +  Plugin.ir_ptr.X = ~ABS_X
 +  Plugin.ir_ptr.Y = ~ABS_Y
 +</​file>​
 +par
 +<​file>​
 +  Plugin.ir_ptr.X = ABS_X
 +  Plugin.ir_ptr.Y = ABS_Y
 +</​file>​
 +
 +=== Problème de droits avec udev ===
 +Pour piloter correctement la wiimote, il faut les droits, en lecture et en écriture, sur le périphérique ''/​dev/​uinput''​. Étrangement,​ udev refuse d'​appliquer le CHMOD. Pour y remédier, on va demander à udev d'​appliquer le CHMOD de la règle le plus tard possible en remplaçant le ''​=''​ par un '':​=''​.
 +Voici un exemple à placer dans ''/​etc/​udev/​rules.d/''​. Il faut créer un nouveau fichier. Donc, pensez à la commande suivante, par exemple.
 +
 +  gksudo gedit /​etc/​udev/​rules.d/​wiimote
 +<​file>​KERNEL=="​uinput",​ CHMOD:​="​0666"</​file>​
 +
 +=== Problème avec les applications en plein écran ===
 +Il est possible que la Wiimote, utilisée avec l'​infrarouge,​ fonctionne mal avec les applications en plein écran. Pour cela, il faut éditer le fichier ''/​etc/​environment''​ via la commande suivante.
 +
 +  sudo nano /​etc/​environment
 +Ajoutez-y en-dessous de la grande ligne le petit code suivant.
 +<​code>​SDL_VIDEO_X11_DGAMOUSE=0</​code>​
 +Le problème est apparemment dû à l'​utilisation de la librairie libSDL.
 +Néanmoins, si le bogue se produit dans un environnement spécifique (comme XBMC en //​standalone//​),​ il est préférable d'​ajouter ceci au script correspondant à l'​environnement.
 +===== Références =====
 +
 +Articles dont je me suis très fortement inspiré :
 +
 +  * http://​www.jeuvinux.net/​article.php3?​id_article=109
 +  * http://​www.elotrolado.net/​showthread.php?​s=&​threadid=694072
  
 +Solution pour les applications fullscreen : http://​www.crutzi.info/​xbmc-fullscreen-pointer-issues
 ---- ----
-//​Contributeurs : [[utilisateurs:​liberator|Liberator]],​ [[utilisateurs:​kichetof|kichetof]],​ [[utilisateurs:​Fabien26]],​[[utilisateurs:​sunab]],​ [[utilisateurs:​alexmic]].//+//​Contributeurs : [[utilisateurs:​liberator|Liberator]],​ [[utilisateurs:​kichetof|kichetof]],​ [[utilisateurs:​Fabien26]],​ [[utilisateurs:​sunab]],​ [[utilisateurs:​alexmic]], [[utilisateurs:​tintou]],​ [[utilisateurs:​nover]]//
  • wiimote.1272057777.txt.gz
  • Dernière modification: Le 23/04/2010, 23:22
  • par draco31.fr