Bege dig mus - spelenhet eller funktionshinder stöd (2 / 7 steg)
Steg 2: Koden
Sparkfun killarna har satt ihop några exempelkod för med LSM9DS0, samt bibliotek för att använda styrelsen;
https://github.com/Sparkfun/LSM9DS0_Breakout/
Efter mycket smärta, fann jag att det finns en sarkasm i LSM9DS0 vilket innebär att det alltid inte returnerar alla data som du förväntat, så Använd de bifogade bibliotek i stället där frågan är arbetade runt. Utan detta kan du hitta systemet hängande.
Jag brukade sparkfun exempelkoden få gyroskopet till flytta musen. Jag kombinera det med avläsningarna från accelerometern att upptäcka vad vägen enheten är orienterad, och översätta det i x och y rörelser för musen. Du hittar denna kod i den bifogade filen.
Koden förväntar sig enheten ska vara på högra sidan av huvudet. Om du vill ha det till vänster, Invertera Y axeln beräkningen, annars det kommer att flytta musen när huvudet flyttas upp.
LSM9DS0 startar inte så fort processorn, så koden pausar för 1s när det startar att sensorerna komma på rad. Sedan kasta jag bort de första 10 avläsningarna för den första behandlingen verkar vara mindre korrekta.
Accelerometern verkar inte säga noll när det står stilla (förflyttning av jorden kanske?), så koden tar i genomsnitt av avläsningar 10 genom 40 när du slår på den, och subtraherar de från efterföljande avläsningar att göra det stabilt. Se till att musen är stabil när du ansluter den därför.
Knappen används för att pausa mus interaktion, och när det börjar igen den stationära behandlingen tas igen, så se till att hålla enheten stadigt när du startar - t.ex. lägga den på bordet.
Att använda koden, skapa en mapp som heter SFE_LSM9DS0 under {installationskatalogen} / Adruino/bibliotek och sätta SFE_LSM9DS0.cpp och SFE_LSM9DS0.h i den mappen. Du kan sedan öppna headMouse2.ino och ladda den till din Arduino.