Bon, tout existe sur le net, oui, mais voilà, je voudrais m'affranchir des trop lourdes librairies et coder du bien bourrin dans les registres pour gagner du temps et de la place dans mon arduino...
Mon projet : pondre une fonction minimaliste qui me renseigne les variables suivantes à chaque fois que je l'appelle :
int NunJoyX, NunJoyY, NunAccX, NunAccY, NunAccZ;
boolean NunBtnZ, NunBtnC;
void NunInit(){
initialisation si nécessaire;
}
void NunDataCall(){
récupération et traitement des données du nunchuk;
// possibilité de filtrage des mouvements...
mise à jour des 7 variables Nunxxxx;
}
Les valeurs de "repos" (c-à-d manette fixe horizontale, joystick relâché) seront à 0, d'où l'utilisation du format int (de plus, on a les valeurs de l'accéléro sur 10 bits semble-t-il.
On parle vaguement d'une liaison série I2C, mais est-ce réel?
Est-il nécessaire d'envoyer 0x00 sur l'I2C avant chaque lecture des données comme suit?
void send_zero (){
Wire.beginTransmission (0x52); // transmit to device 0x52
Wire.send (0x00); // sends one byte
Wire.endTransmission (); // stop transmitting
}
Dans ces 6 octets renvoyés, a-t-on réellement ceci :
l'adresse I2C du nunchuk est-il vraiment 0x52?
J'en suis là pour l'instant... j'ai piqué ça sur http://www.windmeadow.com/node/42.
Par la suite, je compte passer directement dans les registres du TWI de l'arduino pour coder tout ça (je suis comme ça! )