Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| wiimote [Le 10/10/2010, 06:48] – Modification du lien vers la page de XBMC et corrections diverses Julius22 | wiimote [Le 11/09/2022, 11:45] (Version actuelle) – 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) moths-art | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>Hardy matériel bluetooth souris télécommande | + | {{tag>Xenial |
| ---- | ---- | ||
| Ligne 7: | Ligne 7: | ||
| 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. | ||
| + | |||
| + | |||
| + | <note aide>Si vous souhaitez juste utiliser votre Wiimote pour contrôler xbmc, une méthode plus simple est décrite dans la page [[: | ||
| ===== Pré-requis ===== | ===== Pré-requis ===== | ||
| - | * Posséder un émetteur/ | + | * Posséder un émetteur/ |
| * Avoir une Wiimote… ; | * Avoir une Wiimote… ; | ||
| * Allumer une // | * Allumer une // | ||
| - | < | + | < |
| - | <note important> | ||
| + | ===== Installation ===== | ||
| + | [[: | ||
| + | |||
| + | ===== Vérifier que tout fonctionne avec Wmgui ===== | ||
| - | ===== Sous Hardy et suivants ===== | + | Lancez l'application comme indiqué |
| - | + | ||
| - | Ayant suivi ce tuto de A à Z, je me suis demandé si depuis Gutsy, 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êts. | + | |
| - | + | ||
| - | Il suffit de lancer synaptic et d' | + | |
| - | + | ||
| - | [[: | + | |
| - | + | ||
| - | Ensuite, passez au chapitre | + | |
| - | Puis savoir comment | + | Si ça ne se lance pas, créer un lien symbolique à l'aide de la commande ci-dessous : |
| - | ===== Tester avec « wmgui » ===== | + | |
| - | Maintenant, on doit pouvoir lancer | + | Allez dans //File -> Connect// pour vous connecter à la Wiimote. |
| - | | + | < |
| - | + | Dans certains cas, enlever le clapet des piles afin d' | |
| - | < | + | Cliquez alors sur **Valider**. |
| - | sudo ln -s / | + | |
| - | </ | + | |
| - | + | ||
| - | Ce programme va nous permettre de vérifier que les capteurs de la Wiimote sont bien gérés par l' | + | |
| - | + | ||
| - | Utilisez //File -> Connect// pour vous connecter à la Wiimote. | + | |
| On peut afficher l' | On peut afficher l' | ||
| Ligne 50: | Ligne 41: | ||
| * //Settings -> IR data// | * //Settings -> IR data// | ||
| - | J'ai pu constater que l' | + | L' |
| - | Pour ceux qui auraient le message « Error establishing control channel connection », il faut positionner | + | <note warning>Pour ceux qui auraient le message « Error establishing control channel connection », il faut déclarer |
| WIIMOTE_BDADDR=uu: | WIIMOTE_BDADDR=uu: | ||
| 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 **~/ | + | Pour éviter de saisir ces commandes à chaque fois que vous lancez votre session, il suffit de placer ces lignes dans votre fichier **~/ |
| + | </ | ||
| + | ===== Faire fonctionner la Wiimote grâce à wminput ===== | ||
| - | ===== Lancer « wminput » ===== | + | Tout d' |
| - | Tout d' | ||
| - | |||
| - | Pour obtenir l' | ||
| lswm | lswm | ||
| - | Ce petit programme va vous demander de mettre votre Wiimote en mode découvrable | + | Ce petit programme va vous demander de mettre votre Wiimote en mode visible |
| - | + | ||
| - | < | + | |
| - | Mettez | + | < |
| sudo hidd --search | sudo hidd --search | ||
| L' | L' | ||
| - | < | + | < |
| - | Dans certains cas, il est utile de charger un module pour faire fonctionner « wminput ». Un « lsmod » vous le dira. Dans le doute, tapez | + | 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 89: | Ligne 77: | ||
| sudo wminput -c acc_ptr xx: | sudo wminput -c acc_ptr xx: | ||
| - | Cette commande permet d' | + | Cette commande permet d' |
| === Mode infrarouge === | === Mode infrarouge === | ||
| Ligne 95: | Ligne 83: | ||
| sudo wminput -c ir_ptr xx: | sudo wminput -c ir_ptr xx: | ||
| - | Cette commande permet d' | + | Cette commande permet d' |
| 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 | + | //(Fonctionne |
| sudo wminput -c nunchuk_acc_ptr xx: | sudo wminput -c nunchuk_acc_ptr xx: | ||
| Cette commande permet d' | Cette commande permet d' | ||
| - | < | + | < |
| sudo hidd --kill xx: | sudo hidd --kill xx: | ||
| </ | </ | ||
| - | < | + | < |
| / | / | ||
| - | Il est même possible de modifier/créer ses propres fichiers de configuration. | + | Il est même possible de modifier |
| </ | </ | ||
| ===== Pour aller plus loin ===== | ===== Pour aller plus loin ===== | ||
| - | ==== Résolutions de problèmes ==== | ||
| - | === Curseur enfermé dans une boîte ou souris inactive === | ||
| - | Si votre curseur semble " | ||
| - | < | ||
| - | Plugin.ir_ptr.X = ~ABS_X | ||
| - | Plugin.ir_ptr.Y = ~ABS_Y | ||
| - | </ | ||
| - | par | ||
| - | < | ||
| - | Plugin.ir_ptr.X = ABS_X | ||
| - | Plugin.ir_ptr.Y = ABS_Y | ||
| - | </ | ||
| - | |||
| ==== Configurations personnalisées / Mapping ==== | ==== Configurations personnalisées / Mapping ==== | ||
| Il est possible de personnaliser les actions de la Wiimote en assignant d' | Il est possible de personnaliser les actions de la Wiimote en assignant d' | ||
| Ligne 135: | Ligne 110: | ||
| Si on regarde le fichier / | Si on regarde le fichier / | ||
| - | On peut commencer sur la base de ir_ptr et ajouter dedans les boutons que l'on veut : | + | On peut commencer sur la base de acc_ptr (ou ir_ptr |
| + | sudo cp / | ||
| + | Si vous préférez l' | ||
| sudo cp / | sudo cp / | ||
| - | On peut ensuite éditer ce fichier (**Pensez à retirer la ligne " | + | On peut ensuite éditer ce fichier (**Pensez à retirer la ligne « include buttons » |
| - | Voici un exemple de fichier personnalisé | + | Voici un exemple de fichier personnalisé. |
| - | < | + | < |
| - | Plugin.ir_ptr.Y = ABS_Y | + | 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' | ||
| | | ||
| - | | + | Wiimote.A = |
| - | Wiimote.B | + | Wiimote.B = |
| - | Wiimote.Up | + | Wiimote.Up = KEY_UP # Touche Haut △ |
| - | Wiimote.Down | + | Wiimote.Down = KEY_DOWN # Touche Bas ▽ |
| - | Wiimote.Left | + | Wiimote.Left = |
| - | Wiimote.Right | + | Wiimote.Right = |
| - | Wiimote.Home | + | Wiimote.Home = |
| - | Wiimote.1 | + | Wiimote.1 = |
| - | Wiimote.2 | + | Wiimote.2 = |
| - | Wiimote.Plus | + | Wiimote.Plus = KEY_VOLUMEUP # Touche multimédia Volume + |
| - | Wiimote.Minus | + | Wiimote.Minus = KEY_VOLUMEDOWN # |
| </ | </ | ||
| - | Vous pouvez ensuite le tester avec la commande | + | Vous pouvez ensuite le tester avec la commande |
| sudo wminput -c ma_config XX: | sudo wminput -c ma_config XX: | ||
| - | La liste des boutons de la Wiimote est disponible à l' | + | La liste des boutons de la Wiimote est disponible à l' |
| - | La liste des touches gérées est disponible à l' | + | La liste des touches gérées est disponible à l' |
| + | ==== Tableau numérique interactif (TNI / whiteboard / TNWii) ==== | ||
| + | L' | ||
| - | ===== Références ===== | + | Les pilotes pour faire votre TNWii (sous Hardy, Intrepid et suivants...) : [[http:// |
| - | Articles dont je me suis très fortement « inspiré » : | + | Ou les sources par le svn : [[http:// |
| - | * http:// | + | Une autre version (qui devrait mieux fonctionner) existe également (GTKWhiteboard) |
| - | * http://www.elotrolado.net/showthread.php?s=&threadid=694072 | + | |
| + | Un tutoriel en français pour utiliser le tableau interactif Wiimote sous linux : | ||
| + | http:// | ||
| + | ==== Démon et auto-connexion ==== | ||
| + | Il est lassant d' | ||
| + | * **N' | ||
| + | * Le propriétaire du démon doit disposer des permissions en lecture/ | ||
| + | * Copiez ensuite le script ci-dessous dans ''/ | ||
| + | < | ||
| + | #! /bin/sh | ||
| + | ### BEGIN INIT INFO | ||
| + | # Provides: | ||
| + | # Required-Start: | ||
| + | # Required-Stop: | ||
| + | # Default-Start: | ||
| + | # Default-Stop: | ||
| + | # Short-Description: | ||
| + | # Description: | ||
| + | ### END INIT INFO | ||
| + | # Author: LvR | ||
| - | ===== Petit script qui automatise l' | + | # Do NOT "set -e" |
| - | Depuis que j'ai découvert ce tutoriel, je me suis lancé dans la fabrication d'un petit script | + | # PATH should only include /usr/* if it runs after the mountnfs.sh |
| + | PATH=/ | ||
| + | DESC=" | ||
| + | NAME=wminput | ||
| + | DAEMON=/ | ||
| + | DAEMON_ARGS=" | ||
| + | PIDFILE=/ | ||
| + | SCRIPTNAME=/ | ||
| - | Ce script nécessite d' | + | # Exit if the package is not installed |
| + | [ -x " | ||
| - | Il nécessite aussi des droits d' | + | # Read configuration variable file if it is present |
| + | [ -r / | ||
| - | Copiez ce code dans un fichier texte et rendez-le exécutable | + | # Load the VERBOSE setting and other rcS variables |
| - | < | + | . / |
| - | #!/bin/bash | + | |
| - | #Script réalisé par KicheTof pour les utilisateurs de WiiMote. | + | # Define LSB log_* functions. |
| - | #Script libre de toute modification sans aucune demande nécessaire :) | + | # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. |
| - | #Vive le libre :) | + | . /lib/lsb/ |
| - | | + | |
| - | if | + | # |
| - | exit 1 | + | # Function that starts the daemon/ |
| - | fi | + | # |
| - | [ $? -ne "0" ] && | + | do_start() |
| - | } | + | { |
| - | device=$(hcitool scan | tail -n +2 | while read line | + | # Be sure that uinput module is loaded |
| - | do | + | modprobe uinput |
| - | echo -n "$line" | sed -r " | + | |
| - | done | zenity | + | # Add specific daemon args |
| - | | + | |
| - | | + | [ -n "$WIIMOTEADDR" |
| - | | + | [ -n "$EXTRAOPTS" |
| - | quit; | + | |
| - | | + | |
| - | do | + | # Return |
| - | CHOIX_ACTION=$(zenity | + | # |
| - | --title "Choisissez quelle méthode pour utiliser la WiiMote" | + | # |
| - | --text "Pilotage par Accéléromètre, par Infrarouge, ou via le Nunchuk" | + | # |
| - | --radiolist \ | + | start-stop-daemon --start --quiet --background --make-pidfile --pidfile |
| - | --column " | + | || return |
| - | True Accéléromètre | + | start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE --exec $DAEMON -- \ |
| - | False Infrarouge | + | $DAEMON_ARGS |
| - | False Nunchuk | + | || return |
| - | quit; | + | # Add code here, if necessary, that waits for the process to be ready |
| - | if [ $CHOIX_ACTION == "Accéléromètre" ]; then | + | # to handle requests from services started subsequently which depend |
| - | action="acc_ptr"; | + | # on this one. As a last resort, sleep for some time. |
| - | elif [ $CHOIX_ACTION == "Infrarouge" | + | } |
| - | action="ir_ptr"; | + | |
| - | elif [ $CHOIX_ACTION | + | # |
| - | action="nunchuk_acc_ptr"; | + | # Function that stops the daemon/service |
| - | fi | + | # |
| - | done | + | do_stop() |
| - | zenity | + | { |
| - | wminput | + | # Return |
| + | # | ||
| + | # 1 if daemon was already stopped | ||
| + | # 2 if daemon could not be stopped | ||
| + | # other if a failure occurred | ||
| + | start-stop-daemon | ||
| + | RETVAL="$?" | ||
| + | [ "$RETVAL" | ||
| + | # 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. | ||
| + | # sleep for some time. | ||
| + | start-stop-daemon | ||
| + | [ "$?" | ||
| + | # Many daemons don't delete their pidfiles when they exit. | ||
| + | | ||
| + | return | ||
| + | } | ||
| + | |||
| + | # | ||
| + | # Function that sends a SIGHUP to the daemon/ | ||
| + | # | ||
| + | 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 | ||
| + | return 0 | ||
| + | } | ||
| + | |||
| + | case "$1" | ||
| + | | ||
| + | [ "$VERBOSE" | ||
| + | | ||
| + | case "$?" | ||
| + | 0|1) [ "$VERBOSE" | ||
| + | 2) [ "$VERBOSE" | ||
| + | | ||
| + | ;; | ||
| + | stop) | ||
| + | | ||
| + | | ||
| + | case "$?" | ||
| + | | ||
| + | 2) [ "$VERBOSE" | ||
| + | esac | ||
| + | ;; | ||
| + | # | ||
| + | # | ||
| + | # If do_reload() is not implemented then leave this commented out | ||
| + | # and leave 'force-reload' | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | #;; | ||
| + | restart|force-reload) | ||
| + | # | ||
| + | # If the "reload" | ||
| + | # 'force-reload' | ||
| + | # | ||
| + | log_daemon_msg | ||
| + | do_stop | ||
| + | case " | ||
| + | 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 " | ||
| + | echo " | ||
| + | exit 3 | ||
| + | | ||
| + | esac | ||
| + | |||
| + | exit 0 | ||
| </ | </ | ||
| - | ===== Tableau numérique interactif (TNI / whiteboard | + | Le fichier de configuration **/etc/default/ |
| + | 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: | ||
| + | < | ||
| + | # | ||
| + | # When wminput is started using the init script, the | ||
| + | # -d option is always used. | ||
| + | # | ||
| + | # Each setting is marked either " | ||
| + | # leaving any required setting unconfigured will cause | ||
| + | # the service to not start. | ||
| - | L' | + | # [optional] wiimote mac address : |
| + | WIIMOTEADDR=00: | ||
| - | Les pilotes pour faire votre TNWii (sous Hardy, Intrepid et suivants...) : [[http:// | + | # [optional] wminput configuration to use : |
| + | WMINPUTCONF=xbmc | ||
| - | Ou les sources par le svn : [[http:// | + | # [optional] extra command line options, if any: |
| + | EXTRAOPTS=< | ||
| - | Une autre version (qui devrait mieux fonctionner) existe également (GTKWhiteboard) : [[http:// | + | **__Rendez le service activable avec la commande ci-dessous.__** |
| - | Un tutoriel en français pour utiliser le tableau interactif Wiimote sous linux : | + | sudo chmod u+x /etc/init.d/wminput |
| - | http://trucsinformatiques.free.fr/articles.php? | + | |
| + | Pour ajouter le service au démarrage, il faut utiliser la commande suivante. | ||
| + | sudo update-rc.d -f wminput defaults | ||
| + | |||
| + | Pour lancer(/ | ||
| + | |||
| + | sudo service wminput start | ||
| + | |||
| + | Vous pouvez à présent connecter votre WiiMote simplement en appuyant sur 1+2, l' | ||
| + | ==== 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' | ||
| + | < | ||
| + | Plugin.ir_ptr.X = ~ABS_X | ||
| + | Plugin.ir_ptr.Y = ~ABS_Y | ||
| + | </ | ||
| + | par | ||
| + | < | ||
| + | Plugin.ir_ptr.X = ABS_X | ||
| + | Plugin.ir_ptr.Y = ABS_Y | ||
| + | </ | ||
| + | |||
| + | === 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 ''/ | ||
| + | Voici un exemple à placer dans ''/ | ||
| + | |||
| + | gksudo gedit / | ||
| + | < | ||
| + | |||
| + | === Problème avec les applications en plein écran === | ||
| + | Il est possible que la Wiimote, utilisée avec l' | ||
| + | |||
| + | sudo nano / | ||
| + | Ajoutez-y en-dessous de la grande ligne le petit code suivant. | ||
| + | < | ||
| + | Le problème est apparemment dû à l' | ||
| + | Néanmoins, si le bogue se produit dans un environnement spécifique (comme XBMC en // | ||
| + | ===== Références ===== | ||
| + | |||
| + | Articles dont je me suis très fortement inspiré : | ||
| + | |||
| + | * http:// | ||
| + | * http:// | ||
| + | Solution pour les applications fullscreen : http:// | ||
| ---- | ---- | ||
| - | // | + | // |
