dimanche 31 décembre 2006

Application en C#

Voici une information qui devrait intéresser les programmeurs Windows.

Voici une application en C# [.NET 2.0] permettant de communiquer avec la Wiimote via HID.
Le code source de cette application est disponible ici :
http://szymonbanka.com/~kari/

Vous pouvez utiliser Visual Studio 2005 Pro (Gratuit pour les étudiants Français) ou Visual C# 2005 Express Edition (Gratuit pour tout le monde) afin de modifier le code source.

Si vous êtes intéressés, consultez régulièrement l'url ci-dessus, les fonctionnalités suivantes devraient être ajouté :

- Optimisation de la runtine HID.
- Support du pointeur IR
- Contrôle de la Souris, Joystick
- Réglage de la sensitivité
- Calibrage
...

mercredi 27 décembre 2006

[Sensor Bar] compléments

En complément au tutorial pour créér une sensor bar : http://wiipiicii.blogspot.com/2006/12/construire-une-sensor-bar.html

Vous pouvez commander vos composants électroniques sur ce site :
http://www.selectronic.fr le magasin est situé a Paris place de la Nation

Vous pouvez également vous faire livrer par la Poste, mais il y aura des frais de port de minimum 6€.

J'ai fait une liste des différents lots possibles pour réaliser une sensor bar :

Lot 1 : Alimentation sur pile 9V

Plaque d'essai : http://www.selectronic.fr/article.asp?article_ref_entier=70.2330-2 ou http://www.selectronic.fr/article.asp?article_ref_entier=70.2330-1 => 1,50€ ou 2,90€
Connecteur pour l'alimentation : http://www.selectronic.fr/article.asp?article_ref_entier=70.0759-9999 => 0,30€
Fils (1m) : http://www.selectronic.fr/article.asp?article_ref_entier=70.4491-2 => 0,60€

2 LED Infrarouge : http://www.selectronic.fr/article.asp?article_ref_entier=70.6785-9999 => 1,20 €
2 LED de couleur visible : http://www.selectronic.fr/article.asp?article_ref_entier=70.7821-9999 => 0,30€
Résistance d'environ 100 Ohms : http://www.selectronic.fr/article.asp?article_ref_entier=70.4802-9999 => 0,30€

Total : 4,2€ ou 5,6€ (+ 6€ de frais de port)

Lot 2 : Alimentation sur 4 piles 1.5V AAA (6V)

Alimentation : http://www.selectronic.fr/article.asp?article_ref_entier=70.0761-9999 => 0,90€
Plaque d'essai : http://www.selectronic.fr/article.asp?article_ref_entier=70.2330-2 ou http://www.selectronic.fr/article.asp?article_ref_entier=70.2330-1 => 1,50€ ou 2,90€
Connecteur pour l'alimentation : http://www.selectronic.fr/article.asp?article_ref_entier=70.0759-9999 => 0,30€
Fils (1m) : http://www.selectronic.fr/article.asp?article_ref_entier=70.4491-2 => 0,60€

2 LED Infrarouge : http://www.selectronic.fr/article.asp?article_ref_entier=70.6785-9999 => 1,20 €
2 LED de couleur visible : http://www.selectronic.fr/article.asp?article_ref_entier=70.7821-9999 => 0,30€

Total : 4,8€ ou 6,2€ (+ 6€ de frais de port)

pas besoin de fer à souder.

3ème solution proposé par Saiyan78
Alimentation par USB :
http://soj.mesdiscussions.net/overclex/Electronique/Montage/creer-leds-sensorbar-sujet_4882_1.htm#t75494

mardi 19 décembre 2006

[GlovePIE] Intégration du nunchuk

La nouvelle version de GlovePIE (0.27) permet de gérer les nunchuks des wiimotes.
On peut donc dès maintenant utiliser les 2 boutons du nunchuk, son joystick et ses capteurs de mouvements.

Les variables concernant les 2 boutons (C et Z) sont celles-ci :
Wiimote.Nunchuk.CButton Wiimote.Nunchuk.ZButton

Les variables permettant de détecter les mouvements sur les axes X,Y et Z :
Wiimote.Nunchuk.RawForceX
Wiimote.Nunchuk.RawForceY
Wiimote.Nunchuk.RawForceZ


Et les 2 variables permettant de connaitre la position du joystick analogique :
Wiimote.Nunchuk.JoyX Wiimote.Nunchuk.JoyY

Voici un petit schéma que j'ai fait pour plus de précision sur le fonctionnement du joytick analogique (cliquez pour agrandir) :

Il faudra donc utiliser la trigonométrie si vous voulez connaitre l'angle du joystick, vive les maths :)

Lien pour télécharger GlovePIE 0.27 :
http://wiipiicii.free.fr/GlovePIE027.zip

Pour pouvoir utiliser le joystick, il faut installer un joystick virtuel à l'aide du logiciel PPJoy :
http://www.geocities.com/deonvdw/Docs/PPJoyMain.htm

Puis aller dans le Menu PPJoy de GlovePIE.

MISE A JOUR : J'ai pu jouer à Goldneye 64 et Zelda OoT avec le nunchuk et la wiimote, ça marche parfaitement. J'ai utilisé Project64 pour cela.
Les autres jeux N64 devrait marcher parfaitement, ainsi que tous les jeux utilisant un joystick.
De plus le combo nunchuk/wiimote est maintenant possible sur les FPS PC.

Il y a eu une mise à jour de Wiitar qui prend maintenant en compte le nunchuk :
http://www.wiili.org/forum/wiitar-30---(nunchuck-wiitar)-t450.html

Une nouvelle version de GlovePIE est sorti prenant en compte la manette classique (version 0.28)

lundi 18 décembre 2006

Acheter une sensor bar

Une société vends des sensor bars "sans fil", fonctionnant sur pile 9V.
Malheureusement pour nous (ou tant mieux), elle est disponible uniquement pour les Américains, les Anglais et les Japonais !

Son prix est de 31$ pour les USA
38 $ pour les Anglais
et 39$ pour les Japonais

Ca fait chère pour 4 LED et un bouton...

Si vous êtes bricoleur, vous pouvez aussi en fabriquer une pour bien moins chère, ou encore utiliser 2 bougies en évitant de brûler votre TV/PC :D


Le site de la sensor "sans fil" :
http://www.wirelesssensorbar.com/

vendredi 15 décembre 2006

WiiTar

Après WiiSports et WiiOrchestra sur Wii, voici WiiTar sur PC.
Le but? jouer de la guitare avec 2 wiimotes connectées au PC :



Ce script utilise les fonctions du synthétizer MIDI de votre carte son

B to start/stop play

Il vous faut bien évidement le logiciel GlovePIE pour utiliser ces scripts.

MISE A JOUR : Intégration du Nunchuk :

http://www.wiili.org/forum/wiitar-30---(nunchuck-wiitar)-t450.html

jeudi 14 décembre 2006

Echangez vos Mii Avatar

Wii Transfer est un programme pour Windows permettant de transférer ses Mii Avatars depuis sa wiimote sur son PC, et vice versa.
Permettant ainsi de s'échanger ou de sauvegarder ses Mii Avatar.

Lien vers Mii Transfer :
http://wiipiicii.free.fr/WDML9.0.rar

Nouvelle version de GlovePIE

Une nouvelle version de l'interface permettant de faire joujou avec la Wiimote sur Windows est sortie.
La version 0.25 :
- permet l'affichage du niveau des piles via la variable "Wiimote.Battery"
- contient plusieurs scripts pour différents jeux et applications dans le répertoire WiimoteScripts
- les données d'accélération et de rotation sont maintenant séparé, on a le tangage, le roulis, et les accélérations sur les 3 axes à l'aide de "RemoveUnits(Wiimote.Pitch)",RemoveUnits(Wiimote.Roll),"Wiimote.RelAccX","Wiimote.RelAccY" et "Wiimote.RelAccZ"
l'accélération est affichée en m/s²
- permet le calibrage de la Wiimote
- ajout de bugs
- suppression de bugs
- permet d'extraire les Mii Avatar contenu dans la mémoire interne de la Wiimote
- et d'autres améliorations mineures

Par contre, le nunchuk et le haut parleur ne sont toujours pas gérés.

Lien pour télécharger GlovePIE 0.25 :
http://wiipiicii.free.fr/GlovePIE025.zip

La wiimote est un sabre Laser


Un script est disponible pour GlovePIE (sous Windows donc) permettant de transformer la wiimote en un sabre Laser de Star Wars !
En fonction des mouvements effectués avec la wiimote, différents sons sont émis.
Pour activer le sabre laser, il suffit d'appuyer sur le bouton B de la Wiimote, et sur A pour le désactiver, la wiimote vibre également en fonction de vos mouvements.
Si vous rester appuyer sur B, des sons de collisions seront émis.
De même si vous laissez la flèche bas enfoncé.

Pour cela il vous faut télécharger le script ET les sons :
http://wiipiicii.free.fr/WiinSaber_v0.8.2.rar
Il suffit d'extraire ceci dans le repertoire de GlovePIE, et de lancer le script WiinSaber.

D'autres scripts sont disponibles pour jouer de la guitare ou du violon avec la Wiimote, je vais les mettre bientôt sur ce blog.

Et voila une vidéo :

vendredi 8 décembre 2006

Mario Kart 64

La Wii est donc sortie en France, j'ai donc pu tester la wiimote et particulièrement la connexion avec un PC.
Ma sensor bar marche assez bien même si j'ai quelques réglages à faire pour l'améliorer.

J'ai testé la détection de mouvements sur un vieux jeux bien fun : Mario Kart 64.
J'ai donc écrit un script pour GlovePIE pour pouvoir contrôler le Kart avec la Wiimote (comme un volant).

Voici une vidéo que j'ai réalisé (note : La luminosité est un peu crade sur la première course de la vidéo, on voit un peu mieux sur la 2ème course):

Lien Google Vidéo : http://video.google.fr/videoplay?docid=8045286269079287118

Et le script à mettre dans GlovePIE :

Up = Wiimote.Up
Down = Wiimote.Down
Left = Wiimote.Left
Right = Wiimote.Right
A = Wiimote.A
B = Wiimote.B
One = Wiimote.One
Two = Wiimote.Two
Home = Wiimote.Home
Minus = Wiimote.Minus
Equals = Wiimote.Plus

if Wiimote.A then
Wiimote.Rumble = true
else
Wiimote.Rumble = false
end if

if Wiimote.RawForceZ > -1 then
var.RotationZ = Wiimote.RawForceZ
Right = true
Left = false
Wiimote.Led1 = true
Wiimote.Led4 = false
else if Wiimote.RawForceZ < -9 then
var.RotationZ = Wiimote.RawForceZ
Left = true
Right = false
Wiimote.Led4 = true
Wiimote.Led1 = false
else
Right = false
Left = false
Wiimote.Led1 = false
Wiimote.Led4 = false
end if

mercredi 6 décembre 2006

Applications PC pour la wiimote

Le pointeur InfraRouge en action

Cette vidéo montre la précision du pointeur infrarouge :


Le pointeur InfraRouge sous Linux



Wiimote DJ

D'après cette vidéo, on pourrait utiliser la wiimote pour mixer de la musique techno, je ne sais pas si c'est un fake ou non...


WiiDrum Machine

Une autre application utilisant la wiimote comme instrument de musique : http://www.youtube.com/watch?v=8FftLxuYzRA

WiinRemote


Cette application pour Windows, permet de déplacer la souris à l'aide des accéléromètres de la wiimote.
C'est pas très précis...
Ce programme affiche un graphique en temps réel des données reçues par la wiimote.



Lien : http://onakasuita.org/wii/index-e.html

DarwiinRemote
Une autre application pour Mac OS X.
Qui fait à peu près la même chose :
- détection des mouvements sur les 3 axes
- détection des appuis sur les boutons (sauf le bouton on/off)
- contrôle des 4 LED
- contrôle du vibro :)

La croix directionnelle permet de simuler les touches flèches du clavier, le bouton A => clic gauche de la souris, B=> Retour arrière, Home => Echap...
Les améliorations futures :

# calibrage
# support du pointeur IR
# Support du port d'extension (nunchuk, manette classique...)
# Support du haut parleur de la wiimote
# Reconnaissance de mouvements complexes



Lien : http://blog.hiroaki.jp/2006/12/000433.html

NFS Most Wanted avec la wiimote

Une vidéo d'un gars utilisant la wiimote comme volant sous Need For Speed Most Wanted sur PC bien sûr :


Half Life 2 à la Wiimote

Et pour finir une vidéo d'un gars qui essaye de jouer à Half Life 2 avec sa wiimote (sans le nunchuk...), c'est injouable mais à part ça, ça va :)
Il faudra attendre le support du nunchuk et utiliser le pointeur infrarouge pour pouvoir jouer correctement sur des FPS...



Google Earth


mardi 5 décembre 2006

Le fonctionnement du pointeur infrarouge décrypté

Après l'accéléromètrie, c'est au tour de la fonction pointeur Infrarouge d'être décodé.
A partir de maintenant, il est possible d'utiliser ce pointeur à la place de la souris.
Le pointeur Infrarouge est beaucoup plus précis que la souris qu'on a pue voir dans les précédentes vidéos, qui se basait sur les accélérations de la wiimote sur les 3 axes (X,Y,Z), et qui paressait être des fakes pour certains, à cause de la latence entre le mouvement et la re-transcriptions à l'écran.

Pour le moment il n'y a pas de vidéo mais ça devrait pas tarder.
Le programme GlovePie a été mis à jour et il est donc possible d'utiliser le pointeur sur Windows, mais également sous Linux (à l'aide d'un script en Python).

Lien vers GlovePie pour Windows : http://carl.kenner.googlepages.com/glovepie_download
Et utiliser ce script : http://www.wiili.org/forum/wiimote-ir-data-from-glovepie-t365.html

Lien vers le script pour Linux : http://davr.org/wiimotulator.py.txt

Je rappelle qu'une sensor bar (2 Groupes de LED Infrarouge, cf billet précédent) est obligatoire pour pouvoir utiliser le pointeur contrairement à l'accélérométrie. En effet la wiimote est munie d'une caméra infrarouge, et par triangulation des 2 sources lumineuses cela permet de savoir où se trouve le joueur.

dimanche 3 décembre 2006

Construire une sensor bar

"Pour déterminer sa position par rapport à la console, la Wiimote a besoin d'une "Sensor Bar", reliée à la console, qui se place au-dessus ou en-dessous de la télévision. Cette barre comprend deux série de LED Infrarouge, que la Wiimote repère grâce a un capteur infrarouge. Grâce a ces deux série de LED, la Wiimote peut calculer précisément et rapidement sa position par rapport a la barre et pointer un point précis sur l'écran. Mais elle a besoin pour cela d'être pointée approximativement vers l'écran (De façon a avoir la barre dans son "champ de vision")."

Pour pouvoir utiliser la gyroscopie et la fonction pointeur de la wiimote, il vous faudra une "sensor bar" artisanale, sauf si vous préférez laisser allumé votre Wii pendant que vous utilisez votre wiimote sur un PC.
La sensor bar n'est pas très compliqué à fabriquer, il suffit d'avoir seulement 2 LED Infrarouge...
Voici un petit shéma du montage à réaliser :


J'ai mis 2 LED de couleurs pour pouvoir voir si la sensor bar est en fonctionnement, étant donné qu'on ne peut pas voir les infrarouges. Mais c'est optionnel, de même vous pouvez implanter une résistance pour limiter le courant circulant dans la sensor bar.

J'ai utilisé une alimentation de 6V/300mA max pour alimenter mes 4 LED. Il faut entre 1,2V et 2V par LED pour avoir une intensité lumineuse suffisante sans griller les composants...

Il faut 25 cm d'écart entre les 2 LED, vous pouvez l'adapter en fonction de la taille de votre écran, et de la distance à laquelle vous allez utiliser la Wiimote.

Voici des photos du "bricolage" :




En fonctionnement :

Et cette fois ci, avec le mode vision nocturne (pour voir la lumière infrarouge) :


EDIT : Voici un commentaire d'Eldrad pour le calcul de la résistance :
"Alors pour etre clair pour calculer une résistance il faut connaitre la loi d'ohm qui est U=R*I donc R=U/I

Par exemple vous avez 2 LED bleue et deux LED infrarouges (que vous métré en série > (bleu+ir+ir+bleu)
Il faut prendre la tension de seuil de chaqu'une et la soustraire a la valeur de votre alimentation (car les led sont en direct).
Par exemple:
Us led bleu=3.5V
Us led infrarouges=1.5V
Et nous posédons une alimentation de 12V donc U-Usb1-Usir1-Usir2-Usb2
=12-3.5-1.5-1.5-3.5= 2V

Maintenant pour connaitre la valeur de la résistance je prend cette valeur et je la divise par le nombre d'intensité que je ve qui arrive dans les led ex: 2/20= 0.1 soir 100 ohm :) (j'ai pris 20mA pour ne pas niquer les led ps= ne pas dépasser 30 mA)
et voila j'ai la valeur de ma résistance. Soit 100 ohm :)"

La Wiimote et le PC : 3ème phase

C'est fait, un driver est disponible pour utiliser la Wiimote sous Windows, vivement vendredi pour pouvoir tester tout ça !

Pour utiliser la wiimote sous Windows, il vous faudra une clé USB bluetooth (10€ environ), et une sensor bar (4 LED IR => 2€).

Extrait de la doc de GlovePie (en anglais)
Wiimote (Nintendo Wii Remote)

Warning! This feature is completely untested, as Wiimotes haven’t been released in Australia yet. The Wiimote support will be improved in later versions.

If your computer has Bluetooth, you can control games with the Nintendo Wii Remote. Currently the pointer functionality is not implemented. But you can use the Wiimote’s accelerometers, and buttons for input, and the Wiimote’s rumble and LEDs for output.

Before you can use the Wiimote, you will need to “sync” or “pair” it with your PC. The PC can only discover the Wiimote when you either hold down both the 1 and 2 buttons on the Wiimote at once, or when you hold down the Sync button (near the battery compartment). You may also need to use some sort of Bluetooth software. Do this before starting GlovePIE.

You can use the GUI to assign the Wiimote’s actions, or you can use scripting with the “Wiimote” object. The GUI’s automatic detect input feature will work with the Wiimote.

Buttons

The Wiimote has the following buttons, which are either true or false:

Up, Down, Left, Right,
A, B,
Minus, Home, Plus
One, Two

The power button isn’t implemented yet.

Motion Sensing

The Wiimote also has three raw force values:

RawForceX, RawForceY, and RawForceZ

They use the standard left-handed coordinate system used by everything in GlovePIE, not the Wiimote coordinate system.

Note that a stationary Wiimote has a force of 1 G holding it up, otherwise it would be falling due to gravity’s 1 G force. The other forces should be 0 on a stationary Wiimote.

Note that RawForceX, RawForceY and RawForceZ are in unknown units, and they are offset slightly due to manufacturing differences in the Wiimote hardware. Your GlovePIE script will need to take this into account.

Rotations

The Wiimote doesn’t contain gyros (BOO!!!), so it has no way of determining the yaw rotation without using an imitation sensor bar. But it can sort-of tell which way is down, based on the force of gravity. This allows it to measure pitch and roll rotations.

LEDs

You can set the 4 LEDs on the Wiimote by setting:

Wiimote.Leds

to a value between 0 and 15. It is binary.

Force Feedback

You can activate force feedback by setting:

Wiimote.Rumble

to either true or false

Nunchuck and Classic Controllers

GlovePIE will stop detecting buttons and motion when you plug in a classic controller or a nunchuck attachment. But GlovePIE can tell when they are plugged in like this:

Wiimote.HasNunChuck
Wiimote.HasClassic

They will be true when that attachment is plugged in, and false otherwise.

Unplugging the attachment will not make the buttons and motion work again. You need to restart the Wiimote to get it back working. This may require syncing again, or it may require removing and replacing the batteries.



Quand vous appuyez sur une touche, que vous secouez la wiimote, que vous tournez la wiimote, un petit programme qui tourne en tâche de fond va simuler l'appui sur une touche de votre clavier, un clic de souris etc...

Donc ça marchera avec tous les jeux windows ! Il n'y a pas besoin que le jeu gère la wiimote dans son code source.
Par exemple dans trackmania vous pourrez piloter une voiture en inclinant la wiimote comme un volant etc...

Pour l'instant ça ne gère pas toute les fonctionnalités de la wiimote, mais c'est un très bon début.

Lien pour télécharger le driver :
http://carl.kenner.googlepages.com/glovepie

Topic très cérébral sur WiiLi :
http://www.wiili.org/forum/download-windows-driver-here-t294.html

Widéos de la souris piloté par les accéléromètres (pas très précis pour le moment) :
http://www.youtube.com/watch?v=85OzSIDwwv8&eurl=
http://www.youtube.com/watch?v=A_ytdW6Ys2A&eurl=