Autor Tema: El PIC rustico y Nunchuk como joystick para PC  (Leído 3057 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado EdoVdd

  • PIC10
  • *
  • Mensajes: 3
El PIC rustico y Nunchuk como joystick para PC
« en: 17 de Junio de 2010, 11:36:29 »
Queria ofreceros una manera de hacer los circuitos de manera mas o menos sencilla, aunque cutre, que es hacerlos a mano.
Lo he orientado a los no experimentados en esto de los PIC's.

He hecho tres tutoriales y los he subido en mi blog:

Mi Blog

Los dos primeros son proyectos de gente del foro y el ultimo es un proyecto mio.
El primero es el ART2003 , el segundo el GTP-USB-LITE y el tercero es el del nunchuk de la Wii.
Gracias a ellos quiero conseguir que gente que estuviese igual de perdida que yo en esto de los PIC's
encuentre una manera rapida de divertirse con ellos sin pasar antes por aprender teoria.

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: El PIC rustico y Nunchuk como joystick para PC
« Respuesta #1 en: 17 de Junio de 2010, 12:17:10 »
Edo, bienvenido y gracias por compartir tu esfuerzo con el foro!

Desconectado EdoVdd

  • PIC10
  • *
  • Mensajes: 3
Re: El PIC rustico y Nunchuk como joystick para PC
« Respuesta #2 en: 19 de Junio de 2010, 11:50:46 »
Gracias a ti por tu magnifico GTP-USB-LITE, me funciona fenomenal. Aunque he leido que ahora mismo hay programadores mas interesantes para montarse.
De paso queria pedir ayuda para poder terminar mi ultimo tutorialultimo tutorial en el que consigo hacer un circuito para el nunchuk de la Wii con el fin de usarlo como un HID conectandolo al PC por USB, lo trato como un joystick de 5 ejes y 2 botones. Lo he probado y funciona muy bien el PAD y los dos botones, pero los tres ejes del acelerometro no los lee el PC.

Os dejo la parte de codigo donde creo que debe estar mi error:
(los comentarios los he quitado, el codigo viene mejor explicado en mi tutorial: "El Nunchaku Wii.doc")

Código: [Seleccionar]
void conversionFlujos(int8 *fE,int8 *fS)
{
   int16 X,Y,Rx,Ry,Rz;
   int8 capsulaInfoBotones;
  
   X=0x0000;
   Y=0x0000;
   Rx=0x0000;
   Ry=0x0000;
   Rz=0x0000;
  
   X=fE[0];
   Y=fE[1];

   Rx=Rx+ (fE[2]*2*2);
   Ry=Rx+ (fE[3]*2*2);
   Rz=Rx+ (fE[4]*2*2);

   capsulaInfoBotones=0x00+ (fE[5]>>0)& 0x03;

   Rx=Rx+(fE[5]>>2)& 0x03;
   Ry=Ry+(fE[5]>>4)& 0x03;
   Rz=Rz+(fE[5]>>6)& 0x03;

   fS[0]=X;
   fS[1]=0x00;    
   fS[2]=Y;
   fS[3]=0x00;
   fS[4]=Rx;
   fS[5]=(Rx>>8);
   fS[6]=Ry;
   fS[7]=(Ry>>8);
   fS[8]=Rz;
   fS[9]=(Rz>>8);
   fS[10]=capsulaInfoBotones;
}