Recepción de datos
Recepción de datos
Recepción de información
Para recibir la información de los acelerómetros se debe seguir una configuración similar a la usada para recibir el estado general pero con otros valores en los parámetros:
cwiid_set_rpt_mode(wiimote, CWIID_RPT_ACC);
Contenido del mensaje
La información de los acelerómetros estará contenida en
- el elemento acc del miembro acc_mesg de los mensajes de tipo CWIID_MESG_ACC.
- el miembro acc de los mensajes de estado que tengan activado el bit CWIID_RPT_ACC en rpt_mode.
En ambos casos la información está contenida en un array de tres enteros sin signo, cada uno corresponde al valor en bruto de uno de los tres ejes del acelerómetro.
Para conocer la ubicación de cada eje dentro del array se dispone de tres constantes:
- CWIID_X para el eje X.
- CWIID_Y para el eje Y.
- CWIID_Z para el eje Z.
De forma que, si "acc" es el array que contiene los valores del acelerómetro, acc[CWIID_X] contendrá los valores para el eje X, acc[CWIID_Y] para el eje Y y acc[CWIID_Z] para el eje Z.
Calibrado
Para dar sentido físico a las medidas del acelerómetro el Wiimote ofrece unos valores de calibración:
- Offset de la medida.
- Factor de ajuste, transforma las medidas en bruto en unidades g.
Para obtener estos valores se usa la función cwiid_get_acc_cal:
int cwiid_get_acc_cal(struct wiimote *wiimote, enum cwiid_ext_type ext_type, struct acc_cal *acc_cal);
wiimote es el gestor del Wiimote que se desea calibrar.
ext_type es el tipo de extensión que se desea calibrar, se de usar CWIID_EXT_NONE para calibrar el propio Wiimote.
acc_cal devuelve la estructura con los parámetros de calibración.Devuelve cero si se consiguió obtener los valores de calibración, y un valor no nulo en caso de error.
La estructura acc_cal está compuesta por dos miembros:
- zero, array de tres enteros sin signo que contiene el offset de medida.
- one, array de tres enteros sin signo que contiene el factor de ajuste.
Estos arrays usan los mismos índices que el array acc del mensaje del acelerómetro.
Para obtener las medidas calibradas hay que aplicar las siguientes fórmulas:

Siendo:
- xraw, yraw, zraw los valores brutos devueltos por el Wiimote.
- x0, y0, z0 los offset de medida.
- x1, y1, z1 los factores de ajuste.
Tras realizar la calibración se obtendrán los valores en unidades g y sin offset.