Stap 2: De code
De jongens van sparkfun heb samen wat voorbeeldcode voor het gebruik van de LSM9DS0, evenals de bibliotheken voor het gebruik van de Raad van bestuur;
https://github.com/Sparkfun/LSM9DS0_Breakout/
Na veel pijn, ik vond dat er een eigenaardigheid in de LSM9DS0, wat betekent is dat het niet altijd alle gegevens dat u verwachte resultaat aan, dus gebruik de bijgevoegde libraries in plaats daarvan, waar de kwestie wordt gewerkt rond. Zonder dit, kunt u het systeem vastlopen.
Ik gebruikte de voorbeeldcode van sparkfun te krijgen van de gyroscoop om de muis te bewegen. Ik combineer dat met de lezingen van de versnellingsmeter om te ontdekken wat manier het apparaat is gericht, en vertalen dat in x en y bewegingen van de muis. U vindt die code in het bijgevoegde bestand.
De code verwacht dat het apparaat op de rechterkant van je hoofd. Als u wilt hebben het aan de linkerkant, de berekening van de Y-as omkeren, zal anders het verplaatsen de muis naar beneden wanneer je hoofd omhoog beweegt.
De LSM9DS0 start niet zo snel als de processor, zodat de code wordt onderbroken voor 1s wanneer het eerst begint zodat de sensoren op de lijn te komen. Dan gooi ik weg de eerste 10 lezingen omdat de eerste lezingen lijken te zijn minder nauwkeurig.
De versnellingsmeter lijkt niet zeggen nul wanneer het stilstaat (beweging van de aarde misschien?), dus de code gemiddeld lezingen 10 tot en met 40 duurt als u het inschakelt, en die van latere lezingen om er stabiele wordt afgetrokken. Zorg ervoor dat de muis is stabiel wanneer u stekker in het stopcontact om die reden.
De knop wordt gebruikt om te pauzeren de interactie van de muis, en wanneer het begint opnieuw de stationaire zijn afgelezen weer, dus zorg ervoor dat het apparaat stabiel te houden bij het opstarten - bijvoorbeeld het op tafel gelegd.
Voor het gebruik van de code, maak een map genaamd SFE_LSM9DS0 onder {installatiemap} / Adruino/Bibliotheken, en SFE_LSM9DS0.cpp en SFE_LSM9DS0.h in die map. Vervolgens kunt u de headMouse2.ino openen en aan uw Arduino laden.