Étape 2: Le code
Les gars de sparkfun ont mis en place un exemple de code pour l’utilisation de la LSM9DS0, mais aussi des bibliothèques pour utiliser l’échiquier ;
https://github.com/Sparkfun/LSM9DS0_Breakout/
Après beaucoup de douleur, j’ai trouvé qu’il y avait une bizarrerie dans le LSM9DS0 ce qui signifie qu’il ne renvoie pas toujours toutes les données que vous l’attendiez, alors utilisez les bibliothèques attachés au lieu de cela, où la question se tricote en rond. Sans cela, vous pouvez trouver la pendaison de système.
J’ai utilisé l’exemple de code sparkfun pour obtenir le gyroscope à déplacer la souris. J’ai Combinez cela avec les lectures de l’accéléromètre pour détecter de quelle façon l’appareil est orienté et qui se traduisent par x et y des mouvements de la souris. Vous pouvez trouver ce code dans le fichier joint.
Le code prévoit que le périphérique soit sur le côté droit de votre tête. Si vous voulez avoir sur la gauche, inverser le calcul d’axe Y, sinon il se déplace la souris vers le bas quand votre tête se déplace vers le haut.
Le LSM9DS0 ne démarre pas aussi vite que le processeur, donc le code fait une pause de 1 s quand il commence tout d’abord à permettre les capteurs à venir en ligne. Puis j’ai jeter les 10 premières lectures car les premières lectures semblent être moins précis.
L’accéléromètre semble pour ne pas dire zéro lorsqu’il est immobile (mouvement de la terre peut-être?), donc le code prend en moyenne lectures 10 à travers 40 lorsque vous l’allumez et soustrait celles de lectures suivantes pour la rendre stable. Assurez-vous que la souris est stable lorsque vous le branchez pour cela.
Le bouton est utilisé pour mettre en pause l’interaction de la souris, et quand il commence à nouveau les lectures stationnaires sont effectuées à nouveau, donc n’oubliez pas de garder l’appareil stable lors du démarrage - par exemple le mettre sur la table.
Pour utiliser le code, créez un dossier appelé SFE_LSM9DS0 sous {répertoire d’installation} / Adruino/bibliothèques et mettre SFE_LSM9DS0.cpp et SFE_LSM9DS0.h dans ce dossier. Ensuite, vous pouvez ouvrir headMouse2.ino et charger votre Arduino.