COMPOSANT POUR GÉRER WIIMOTE(S) + NUNCHUK

Utilisateur anonyme - 22 nov. 2007 à 09:28
dotdot6 Messages postés 1 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 août 2008 - 26 août 2008 à 09:37
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44791-composant-pour-gerer-wiimote-s-nunchuk

dotdot6 Messages postés 1 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 26 août 2008
26 août 2008 à 09:37
Any chance of implementing the Guitar Hero Guitar and balance board like in the Wiimotelib for VB.NET ?
mabas31 Messages postés 3 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 6 février 2021
4 juin 2008 à 15:33
J'ai trouvé cela sur la wiifit, en c# et en japonnais...

#########
[DataContract()]
public struct BalanceBoardCalibrationInfo
{
[DataMember]
public int A0, A1, A2;
[DataMember]
public int B0, B1, B2;
[DataMember]
public int C0, C1, C2;
[DataMember]
public int D0, D1, D2;
}
#########
[DataContract()]
public struct BalanceBoardState
{
[DataMember]
public BalanceBoardCalibrationInfo CalibrationInfo;
}
############
[DataContract()]
public class WiimoteState
{
...
[DataMember]
public BalanceBoardState BalanceBoardState = new BalanceBoardState();
}
#########
private void InitializeExtension()
{
...
else if(buff[0] == (byte)ExtensionType.ClassicController && buff[1] == (byte)ExtensionType.ClassicController)
mWiimoteState.ExtensionType = ExtensionType.ClassicController;
else if( buff[ 0 ] == 0x04 && buff[ 1 ] == 0x02 ) // ?????????
mWiimoteState.ExtensionType = ExtensionType.BalanceBoard;
else if( buff[ 0 ] == 0xff ) // partially inserted case...reset back to nothing inserted
...
switch(mWiimoteState.ExtensionType)
{
case ExtensionType.BalanceBoard:
buff = ReadData( REGISTER_EXTENSION_CALIBRATION + 4, 12 );
mWiimoteState.BalanceBoardState.CalibrationInfo.A0 = ( buff[ 0 ] << 8 ) + buff[ 1 ];
mWiimoteState.BalanceBoardState.CalibrationInfo.B0 = ( buff[ 2 ] << 8 ) + buff[ 3 ];
mWiimoteState.BalanceBoardState.CalibrationInfo.C0 = ( buff[ 4 ] << 8 ) + buff[ 5 ];
mWiimoteState.BalanceBoardState.CalibrationInfo.D0 = ( buff[ 6 ] << 8 ) + buff[ 7 ];
buff = ReadData( REGISTER_EXTENSION_CALIBRATION + 12, 12 );
mWiimoteState.BalanceBoardState.CalibrationInfo.A1 = ( buff[ 0 ] << 8 ) + buff[ 1 ];
mWiimoteState.BalanceBoardState.CalibrationInfo.B1 = ( buff[ 2 ] << 8 ) + buff[ 3 ];
mWiimoteState.BalanceBoardState.CalibrationInfo.C1 = ( buff[ 4 ] << 8 ) + buff[ 5 ];
mWiimoteState.BalanceBoardState.CalibrationInfo.D1 = ( buff[ 6 ] << 8 ) + buff[ 7 ];
buff = ReadData( REGISTER_EXTENSION_CALIBRATION + 20, 12 );
mWiimoteState.BalanceBoardState.CalibrationInfo.A2 = ( buff[ 0 ] << 8 ) + buff[ 1 ];
mWiimoteState.BalanceBoardState.CalibrationInfo.B2 = ( buff[ 2 ] << 8 ) + buff[ 3 ];
mWiimoteState.BalanceBoardState.CalibrationInfo.C2 = ( buff[ 4 ] << 8 ) + buff[ 5 ];
mWiimoteState.BalanceBoardState.CalibrationInfo.D2 = ( buff[ 6 ] << 8 ) + buff[ 7 ];
break;
...
}
}
#########
private bool ParseInput(byte[] buff)
{
InputReport type = (InputReport)buff[0];

switch(type)
{
case (InputReport)0x32:
ParseExtension( buff, 16 );
break;
...
}
}
#########
private void ParseExtension(byte[] buff, int offset)
{
switch(mWiimoteState.ExtensionType)
{
case ExtensionType.BalanceBoard:
int a = ( buff[ 3 ] << 8 ) + buff[ 4 ];
int b = ( buff[ 5 ] << 8 ) + buff[ 6 ];
int c = ( buff[ 7 ] << 8 ) + buff[ 8 ];
int d = ( buff[ 9 ] << 8 ) + buff[ 10 ];
...
}
}
lofo18 Messages postés 30 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 29 septembre 2010
31 mai 2008 à 17:51
Salut Acosta11 et Mabas31,

J'ai tr?s bien compris ton probl?me Acosta11, mais je ne suis pas sur de pouvoir faire quelque chose au niveau de mon composant qui pourrait le r?soudre. Mais en attendant que j'y jette un coup d'œil, le plus simple pour le moment ,serait que tu thread tes fonctions pour que ton application ne se fige pas pendant leurs ex?cution, pour qu'elle continue "d'?couter" les ?v?nements provenant du composant.

Pour ce qui est de la balance board de Wiifit, je ne l'ai pas encore achet?, donc pour le moment je n'ai pas pr?vue de r?aliser ce genre de composant, mais ?a pourrai ?tre tr?s int?ressant aussi.
Si tu ne trouve pas d'infos, c'est surement parce que personne n'as encore compl?tement d?cod? les trames de la balance, mais je pense que le syst?me de connexion est identique ? celui de la wiimote.
Acosta11 ? donn? un lien tr?s int?ressant et tr?s complet sur les p?riph?riques de la Wii, (http://wiibrew.org/index.php?title=Wiimote), et il faut aussi regarder sur les liens que je donne plus haut pour avoir quelques infos.
Mais je pense quand m?me me pencher sur la Guitare de Guitare Heroe III avant la balance board (ce qui ne devrait pas prendre ?norm?ment de temps).
je vous tiendrez au courant des avancements.

Bonne continuation.
mabas31 Messages postés 3 Date d'inscription mercredi 10 septembre 2003 Statut Membre Dernière intervention 6 février 2021
31 mai 2008 à 17:23
Bonjour,
excellent composant.
Mais j'ai une autre question :
je ne trouve aucunes infos concernant la wiifit..
Fonctionne-t-elle comme la wiimote.
Ou peut-on trouver les infos sur la wiifit.
Penses-tu developper un compos sur elle.

je voudrais faire la même chose avec la wiifit.
acosta11 Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 juin 2008
29 mai 2008 à 15:42
Salut lofo18,

j ai encore une petite question a propos de ton composant. J aimerais pouvoir par exemple apuyer sur la touche A de la wiimote et rentrer dans l évenement respectif et y faire une procédure longue sans sortir de l évenement. Mon probleme est que tant que je ne quitte pas l évenement du boutton A, aucun autre évenement des autres boutons ne sera executé, par exemple si j appuye sur la touche home... Je voudrais savoir si il y a une maniere de faire en sorte que ce soit possible de garantir que l evenement d une touche se produise meme si le code é dans l evenement d une autre touche! J espere n avoir pas été trop confus!

Merci d avance!
acosta11 Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 juin 2008
17 avril 2008 à 10:03
Bonjour a tous, Salut Lofo18,

En ce moment je pense que la lecture des infrarouges n'a plus de grands secrets pour moi.. Par contre ce qui est du nunchuk et de l accéléromètre je ne m y connais pas car je ne les utilize pas pour mon project de tableau interactif. Je ne sais pas si tu connais déjà ce site

http://wiibrew.org/index.php?title=Wiimote

mais si tu ne connais pas, je t aconseille vivement une lecture de ce dernier, quand tu auras décider de te pencher sur ton composant. Tout y est... Mais très franchement, je pense que tu as fait le plus dur en faisant ton composant actuel! Mais si tu as un doute n hésite pas a demander, j aiderai si je peux.

Voilá, bon courage pour la suite!

Salutations!
lofo18 Messages postés 30 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 29 septembre 2010
17 avril 2008 à 08:19
Bonjours!

Je suis désolé de ne pas avoir répondu depuis ... (wouha! un mois déjà! ^^) mais je suis pas mal pris par d'autres projets, mais comme tu la très bien expliqué, j'utilise effectivement le mode :
0x37: Core Buttons and Accelerometer with 10 IR bytes and 6 Extension Bytes

mais je ne te cache pas que je ne me suis pas penché sur les différentes trames d'initialisation (ce qui est une grosse erreur de ma part d'ailleurs ). Donc si tu arrive à te mettre en mode :
0x3e / 0x3f: Interleaved Core Buttons and Accelerometer with 36 IR bytes
je te serai grandement reconnaissant si tu pourrai m'expliquer la trame exacte à envoyer pour que je l'ajoute à mon composant.

Je ne me suis pas penché non plus sur la configuration de la sensibilité de la camera infrarouge, mais il est vrai que ce n'est pas une chose à négliger.

Je dirai également que dans la programmation de mon composant il y a un léger problème, c'est que je ne me souci pas de l'adresse à la quelle je reçois les données, et c'est un gros problème, car en ajoutant la possibilité de lire à différentes adresses pourrai me permettre de récupérer d'autres données (tel que l'initialisation des accéléromètres de la wiimote et du nunchuk, le type d'extension raccordée à la wiimote etc...) J'espere avoir le temps un de ces jours pour me remettre dessus, mais c'est pas gagné.

Je vois que tu te renseigne et comprend tres bien, et je t'encourage vivement à continuer!

Romano58, j'avoue que ta remarque n'est peut etre pas "d'une grande utilité" ^^, mais ça montre que cette discussion fait réagir, et plus il y aura de personne intéressée, plus il y a de chance de rassembler des informations pour s'aider les un les autres =)

Bonne continuation à tous!!
Utilisateur anonyme
17 mars 2008 à 21:03
Je ne suis pas d'une grande utilité là mais je trouve sa passionnant... Il faut que je récupère ma wii !!
acosta11 Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 juin 2008
17 mars 2008 à 10:23
Cher LOFO18,

Tout d'habord je dois faire un recul dans ce que j'ai dit, car efectivement la Wiimote ne detecte que 4 points a la fois, et tant qu'ils ne sont que 4, leur position se maintient (Dot1, Dot2, ...), mais une fois plus que 4, la Wiimote fais des lectures aléatoires, toujours 4 points, mais les 4 sont choisis a chaque fois de maniere aléatoire parmis les points detectés. C'est ce que j'ai cru comprendre en tout cas!

Pour la trame, je comprend ce que tu veux dire, mais comme le Nunchuk ne m intéresse pas, je ne vais pas utilizé ce genre de report. Il me semble que tu utilizes pas défaut dans ton composant le mode

0x37: Core Buttons and Accelerometer with 10 IR bytes and 6 Extension Bytes

a1) 37 BB BB AA AA AA II II II II II II II II II II EE EE EE EE EE EE

je me trompe? Je suis entraint d essayer de comprendre comment changer ça pour le mode

0x3e / 0x3f: Interleaved Core Buttons and Accelerometer with 36 IR bytes

(a1) 3e BB BB AA II II II II II II II II II II II II II II II II II II
(a1) 3f BB BB AA II II II II II II II II II II II II II II II II II II
donc je pense que je recevrais les 2 premiers points avec le Report ID $3e et les deux dernier avec le Report ID $3f (juste??), ceci avec une fréquence deux fois plus petite que dans le autre modes, par conséquance! J'aurais donc 9 bytes de donnés par point, avec X, Y, Size et Intensity!

Pour ce qui est du LED IR utilizé par Johnny Lee, il indique dans son site que la référence est Vishay TSAL6400s.

Une chose que je ne sais pas si tu as fait, c'est de configurer la sensibilité du senseur IR. En effet il y a une procédure de initialization a faire:

The following procedure should be followed to turn on the IR Camera:
Enable IR Camera (Send 0x04 to Output Report 0x13) 1.
Enable IR Camera 2 (Send 0x04 to Output Report 0x1a) 2.
Write 0x08 to register 0xb00030 3.
Write Sensitivity Block 1 to registers at 0xb00000 4. //Configure
Write Sensitivity Block 2 to registers at 0xb0001a 5. //la sensibilité
Write Mode Number to register 0xb00033 6.
Write 0x08 to register 0xb00030 (again)

donc je vais essayer de comprendre comment faire ça en utilizant ton composant sur Delphi.

Bonne journée et bon courage pour le Csharp!

Salutations!
lofo18 Messages postés 30 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 29 septembre 2010
17 mars 2008 à 09:13
Salut acosta11

Lorsque j'ai voulu faire le stylo LED, je me suis posé les mêmes questions que toi, j'ai même envoyé un mail à Johnny Lee (sans réponse) pour avoir plus d'information sur la LED à utiliser, don au final, j'ai démonté une télécommande pour me servir de la Diode (je ne connais donc pas la référence). Peut de temps après mon mail, un forum à été mis en place sur lequel tu pourra trouver les infos que tu cherche : http://www.wiimoteproject.com/index.php?board=6.0 . pour ce qui est de la porté entre la wiimote et la LED, je n'ai pas mesuré, mais en plein jour, j'arrivai à ~3 mètres, mais le signal n'était pas stable du tout. donc j'imagine qu'avec la Diode adéquat et dans l'obscurité les performances doivent être bonne.

Pour ce qui est de la détections du nombre de points, c'est vrai que c'est plus une hypothèse qu'une affirmation. Mais dans la doc, il est indiqué que la trame de données envoyé est la suivante :

(A1) 3E 37 20 00 86 80 A1 11 06 65 C4 08 FF FF FF FF FF 7F 7D 2D DF 6C A6 ...
----------- ----------------------------- -----------------
Wiimote IR sensor Nunchuck

puisque 3 octets correspondent à 1 point, on peut voir que seul la détection de 3 points est possible lorsque le nunchuck est connecté. mais je pense que sans le Nunchuck, le nombre de point peut être plus important.
et un test ma fait pensé la même chose, pendant les périodes de fête, je me suis amusé a pointer la wiimote vers mon sapin de noël en mettant la wii en mode de calibration IR, et j'ai pu voir ma guirlande sur mon écran de télévision, et le nombre de point était bien plus important, mais il est tout a fait vrai que c'était peut être qu'une "illusion" du fait que les points bougeai trop vite ce qui me donnai l'impression de voir plus d'une dizaine de points.
Je vais me renseigner sur la camera infrarouge pour en savoir plus.

Pour le moment, je ne pense pas me remettre sur mon composant, parce que je suis entrain d'apprendre un autre langage (le C#), et du fait que je sois développeur de métier, je n'ai pas trop la motivation à me mettre dans le code en rentrant chez moi, mais dès que la motivation sera revenu, je pense l'améliorer, et si tu a des suggestions, je suis preneur.

J'espère avoir répondu à tes questions, et je vais me renseigner sur la camera infrarouge.

Bonne continuation.
acosta11 Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 juin 2008
14 mars 2008 à 22:50
Bonsoir a tous.

Cher LOFO18, peut tu me dire la référence du LED IR que tu as utilisé sur ton stylo, et la portée que tu a réussi a avoir? Dans mon cas j'ai utilisé un LED IR que j'avais déjà a disposition, mais la portée ne dépasse pas 1m en vérité, alors que je pense que l'on peut ateindre les 3m de distance, aproximativement. L'idéal se serait de connaitre la référence des LED IR de la Sensor Bar, mais je ne trouve pas cette information sur Internet.

Pour ce qui est de la détections des points IR, je suis sur a 99% que la Wiimote n'arrive que a detecté 4 points a la fois, et que c'est elle qui les choisis, par ordre de visualisation, et ignore tous les eventuels points détectables qui puissent surgir au dela des 4 premier points, donc je ne comprend pas trop pourquoi tu dis que théoriquement il est possible de detecter beaucoup plus que 4 points.

Vas tu continuer a améliorer ton composant? Moi je pense que je vais juste essayer de le perfectioner au niveau de la détection des 4 points infrarouge et de boutons de la Wiimote, ignorant les donnés du giroscope/accelerometre et oubliant l utilization de Nunchuk et companie, pour me limiter a la confection d'une WhiteBoard, probablement avec 2 Wiimotes et un stylo avec 3 ou 4 LED IR pour voir aussi l orientation du stylo et jouer un peu avec ça.

Pour l instant je pense juste faire des experiences avec un LED IR e une Wiimote pour voir la réelle capacité de résolution du Senseur Infrarouge.

Bonne soirée a tous et merci a toi LOFO18
lofo18 Messages postés 30 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 29 septembre 2010
13 mars 2008 à 20:01
Salut,

pour la valeur de la batterie c'est vrai qu'après quelques test je ne me suis jamais retrouvé avec une valeur supérieur à 100, mais tu fait bien de me le dire, je remettrai à 200 la valeur max à ce moment.

Je suis complètement d'accord avec toi pour ce qui est de la manière "pas très correct" pour savoir si un point est détecté ou non, mais c'est une manière rapide pour faire. Et c'est de cette manière que la Dll pour C# et VB.NET détecte les points (http://blogs.msdn.com/coding4fun/archive/2007/03/14/1879033.aspx).j'ai vu qu'il y a moyen de savoir si des points sont détecté (toujours sur Wiili.org ^^ http://www.wiili.org/Wiimote#HID_Interface), mais malheureusement, seulement pour les points 1 et 2. donc à voir...

Je me suis également penché sur le "Multi-touch Whiteboard" de Johnny lee (je trouve d'ailleurs que ce mec c'est un génie!! :p) j'avais commencé à faire un bout de code pour la calibration, mais c'est à base de calculs matriciel, et c'est pas du tout mon truc ^^.
Alors je me suis quand même fait le stylo à LED et ça marche très bien.
Et apparemment, il y aurai moyen avec une loupe de lentille de lecteur cd de pouvoir focaliser et amplifier le rayon infrarouge et ne plus être obligé de "coller" le stylo sur la surface, donc en gros de pouvoir pointer l'écran de loin avec le stylo.

Et tu na pas besoin de mon accord pour modifier mon composant, je suis pour le partage des connaissances ^^ fait ce que tu veux avec, et si tu arrive à détecter au moins 4 points (parce qu'il est théoriquement possible d'en détecter beaucoup plus), fait moi signe, parce que ça m'intéresse beaucoup!

Bon courage pour ton projet.

++ all
acosta11 Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 juin 2008
13 mars 2008 à 19:34
Bonsoir,

Je confirme que ton Wiimote1.Battery fonctionne bien, le probleme était que je ne faisait qu une lecture pour essayer, et je la faisait au moment de la création du form, trop tot donc, d ou la lecture d un '0', étant donné que je n avais pas encore reçu l information de la Wiimote. Par contre, dans mon cas, et comme l indique Wiili.org, je constate aussi que la valeur maximale de la baterie est aproximativement 200 (decimal).
Pour ce qui est du contage du nombre de points IR, il me parait pas tres correct de éliminer l existence d un point avec les coordonées x 1023 ET y1023 ET size = 15. La wiimote n as aucune maniere de nous indiquer directement quand elle a detecter un nouveau point, ou quelle en a perdu un, et combien elle detecte a un moment? Genre avoir des evenements pour ça?

Je suis Portugais, j étudie a Porto et je fais le travail final de mes études en ce moment, je vais faire quelque chose dans ce genre, mais biensur avec quelques nouveautés que je n'ai pas encore définies. Donc je préfere avoir les 4 points IR et je n ai pas besoin de nunchuk et de trucs comme ça, donc je pense que je vais essayer de faire quelques modification a ton composant, avec ton accord bien sur. D un autre coté j espere que tu vas continuer a améliorer ton composant ;)

Bonne soirée a tous.
lofo18 Messages postés 30 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 29 septembre 2010
12 mars 2008 à 21:38
et je pense aussi que je vais essayé de voir si la récupération des données de la guitare de guitar hero est possible ;)

++
lofo18 Messages postés 30 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 29 septembre 2010
12 mars 2008 à 21:34
Salut ACOSTA11,
Je suis content de voir que mon composant intéresse du monde!

C'est très étrange le fait que la Wiimote1.Battery ne te renvoi rien, je ne sais pas à quel point tu est allé dans l'étude de mon composant, mais il faudrait que tu aille voir dans la procédure "WiiConnectDeviceData" U_Wiimote.pas, voir si l'appel à la fonction : "AnalyzeStatus" se fait bien, je suis désolé, je pourrai pas t'aider beaucoup plus, parce que je viens de faire un test sur mes deux wiimotes, et ça fonctionne très bien chez moi, je t'invite a allé à cette adresse, ça pourra peut être t'aider pour comprendre ce qu'il ne vas pas: http://www.wiili.org/Wiimote#Batteries.

Pour ce qui est de la détection du nombre de sources infrarouge détectées par le récepteur, je l'avais inclus dans une dernière version du composant, mais après un formatage intempestif ^^ , j'ai perdu ces modifications.
Si je ne me trompe pas, tu peu vérifier pour chacun des points si la valeur en x ET y ET la taille soit différent de leur valeur maximale.
on peut donc dire que si
Dot1.x <> 1023 ET Dot1.y <> 1023 ET Dot1.size <> 15 alors le point 1 est allumé.
si tu fait pareil pour les 2 autres points, tu pourra les compter.
j'ai bien insisté sur les ET, parce qu'il arrive que des données "parasites" arrivent et modifient une des valeurs x ou y et donne l'impression qu'un point et détecté, alors que ce n'est pas le cas.
Je ferai une petite mise a jour d'ici quelque temps pour intégrer la détection des points (du genre Dot1.enabled), et avoir un moyen de les compter (Dots.Count) voila!

Si tu as encore besoin d'aide n'hésite pas! et je t'encourage a continuer ton développement!

et Quequejh, je me suis mit au C# pour Windows Mobile depuis peu pour pouvoir tester la wiimote sur pocket pc, mais il faudra être patient avant que j'arrive à être assez a l'aise pour me lancer dans un gros développement comme ça (je viens juste de réussir à faire un chronomètre XD)

bonne prog a tous!
acosta11 Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 juin 2008
12 mars 2008 à 14:35
Bonjour,

Tout d'habord un grand merci pour ton bon travail. Avec ton composant j'ai créé une aplication qui permet de connecter deux wiimotes en même temps, cependant, je n'arrive pas a montrer l'état correct de la baterie, car le inttostr(Wiimote1.Battery) retourne '0' avec n'importe quelle wiimote. Une autre dificultée que j'ai rencontrée c'est avec le senseur IR. Je voudrais indiqué combient de dots sont detectés (de 0 a 3, on oublie le 4eme pour l'instant), mais je ne vois pas avec quelle code je pourrais le faire, il me semble que tu fais comme si tu avais en permanance 3 points visibles. Toute aide est la bien venue! Encore une fois bravo pour ton excellent travail!

Salutations!
quequejh Messages postés 3 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 3 mars 2008
3 mars 2008 à 20:04
Salut,

Félicitation pour ton investissement, perso je trouve le c# très bien pour les petite appli en .NetCompact.

bonne continuation.
lofo18 Messages postés 30 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 29 septembre 2010
2 mars 2008 à 13:57
Salut Quequejh,

je me suis acheté depuis peu un pocket pc avec windows mobile 6. le ppc détecte tres bien la wiimote, reste a voir si avec un peu de programmation, il devrai etre possible d'initialiser la connexion... je vai me penché sur le .Net (surment pas en delphi) pour essayé de faire ça.

bonne continuation
quequejh Messages postés 3 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 3 mars 2008
17 janv. 2008 à 18:59
Merci,

Je cherche de mon coté aussi, je vous tiens au courant si je trouve quelque chose.

@+
lofo18 Messages postés 30 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 29 septembre 2010
17 janv. 2008 à 14:13
Salut QueQuejh,

A vrai dire, je n'en sais rien,
si ton pda à du bluetooth, j'imagine qu'il doit etre possible de faire une communication entre les deux appareils.

Je vais essayer de me renseigner à ce sujet, ça pourrai etre tres interessant si c'est la cas! :D

a+
quequejh Messages postés 3 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 3 mars 2008
17 janv. 2008 à 13:05
Salut,

Félicitation pour ton appli.

Peux-tu me dire si il est possible de connecter une Wiimote sur pda?

Merci

@+
lofo18 Messages postés 30 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 29 septembre 2010
3 déc. 2007 à 20:00
J'ai rajouté la gestion de l'infra rouge, mais je n'ai pas réussi à le faire fonctionner en même temps que le Nunchuk, donc pour le moment, c'est soit l'un soit l'autre :P

Je me suis quand même débrouillé pour que l'on puisse passer de l'un à l'autre sans forcement refaire l'initialisation complète de la wiimote.

Mais je vais continuer à chercher pour que tout fonctionne au mieu. @+
lofo18 Messages postés 30 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 29 septembre 2010
27 nov. 2007 à 15:02
non, ça ne sert pas à rien de me donner des idées pour me servir de ce composant (je suis trés friant de petits programmes de ce genre ^^).
Le programme WiinRemote dont je donne l'adresse un peu plus haut permet justement de gérer la souris, le son de l'ordinateur, et d'autres choses encore.

J'ai justement essayé de le faire assé simple et le plus complet pour pouvoir réaliser ce genre de programme.
Je rajouterai surment quelques exemples de ce gout là dans le zip une fois que j'aurai fini mon composant.
Pour le moment, je suis sur la reception infrarouge, je n'arrive pas encor à gérer l'infrarouge et le nunchuck en même temps, mais ça viendra ;)

J'ai aussi un doute sur la gestion de la rotation de la wiimote, je me suis servit de la fonction "ArcTan2" en fonction des accélérations dans les différents axes, mais vu que je suis nul en math, je pense que je ne prend pas tout en compte, ce qui fait que dans certains angles, les valeurs s'affolent. Si quelqu'un trouve une meilleure solution, je suis preneur :P

++
Utilisateur anonyme
27 nov. 2007 à 10:36
Je fait mes études a Dijon et je n'ai pas ma wii avec moi mais je t'encourage a développer ton composant. Ensuite tu pourrait faire un programme qui ce loge dans le systray et qui permettrais de gérer quelques truc de l'ordis avec la wiimote...

Ce commentaire n'a rien de super et ne sert pas a grand choses mais bon j'éxprime mes idée ;)
Aller bonne continuation et a+
lofo18 Messages postés 30 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 29 septembre 2010
27 nov. 2007 à 09:35
Salut Julesouley,
tout d'abord merci a toi pour ton commentaire! :D

J'ai fait quelques tests d'installation du composant, mais je n'ai pas rencontré ce probleme.
La class TInitialisations se trouve dans l'unité U_Wiimote_Constantes, qui est appelée dans les uses de U_Wiimote, tu peu essayer de rajouter la ligne:
U_Wiimote_Constantes in '..\Composant TWiimote\U_Wiimote_Constantes.pas',
Mais ça me parait quand même bizard que tu ai toutes ces déclarations.
normalement seule les 2 premieres suffisent:
Uses
Forms,
Unit1 in 'Unit1.pas' {Form1}

si tu as bien installé le composant, tu as juste à le récupérer dans l'onglet Wiimote, et le poser sur la fiche. Tu risque d'avoir une erreur sur le U_Wiimote.dcu, mais tu as juste à renseigner le chemin de bibliotheque dans les options d'environnement, et ça doit suffire.
Est ce que tu as essayé avec le petit programme test que j'ai mis avec le composant? (que je vais devoir modifier, car j'ai oublié de refaire les liens entres les evenements et les composants)

tiens moi au courant si tu as trouvé une solution, je continu à chercher de mon coté.
cs_julesouley Messages postés 11 Date d'inscription dimanche 26 juin 2005 Statut Membre Dernière intervention 23 février 2011
26 nov. 2007 à 23:55
bonjour
je trouve ça vraiment génial !!!grand bravo !! mais malheurement j'ai testé chez moi mais pas moyen de compiler..voila l'erreur que j'ai en premier
[Error] U_Wiimote.pas(95): Undeclared identifier: 'TInitialisations'

si tu as une idee..
voila le code source final du projet WiiMote.dpr apres avoir installé tous les composants:

program WiiMote;

uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
U_Wiimote in '..\Composant TWiimote\U_Wiimote.pas',
JvHidControllerClass in '..\..\HIDKomponente\JvHidControllerClass.pas',
Hid in '..\..\HIDKomponente\HID.pas',
DBT in '..\..\HIDKomponente\DBT.pas',
SetupApi in '..\..\HIDKomponente\SetupApi.pas',
ModuleLoader in '..\..\HIDKomponente\ModuleLoader.pas',
WinConvTypes in '..\..\HIDKomponente\WinConvTypes.pas';

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
lofo18 Messages postés 30 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 29 septembre 2010
22 nov. 2007 à 19:41
Salut Romano58, merci pour ton commentaire c'est toujours motivant!!!

je rajouterai certainement une doc pour savoir comment s'en servir (bien que j'ai essayé de le faire le plus simple à utiliser possible) parce que je n'explique pas, par exemple, comment bien calibrer les accélérometres et le joystick du Nunchuk. Pour le moment, j'ai mis des valeurs qui me paraissaient juste, mais je ne garanti pas que ce soit le cas pour toutes les wiimotes.

je suis preneur pour toutes remarque qui me permettrai d'améliorer mon code!
Utilisateur anonyme
22 nov. 2007 à 09:28
je n'ai pas tester, mais sa me plait bien de voir des programmes comme sa. Etant moi même fan de console et de programmation je t'encourage a continuer ! Et vive le homebrew.