TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: EdoVdd en 17 de Junio de 2010, 11:36:29

Título: El PIC rustico y Nunchuk como joystick para PC
Publicado por: EdoVdd 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 (http://www.edward8radical.wordpress.com)

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.
Título: Re: El PIC rustico y Nunchuk como joystick para PC
Publicado por: J1M en 17 de Junio de 2010, 12:17:10
Edo, bienvenido y gracias por compartir tu esfuerzo con el foro!
Título: Re: El PIC rustico y Nunchuk como joystick para PC
Publicado por: EdoVdd 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 (http://www.megaupload.com/?d=Y4PLIHIV) 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;
}