EdiShake (oavslutade projekt) (3 / 7 steg)
Steg 3: Accelerometern
Detaljerad förklaring
Den accelerometer mål var att känna igen ett handslag som skulle aktivera GPS i nästa steg.
Dock axlar erkänner ett handslag inte är så enkelt som erkänner en enkel linjär rörelse som det behövs för att innebär användning av alla 3. Vi gjorde en del efterforskningar och insåg att det fanns mycket begränsade resurser tillgängliga för nuvarande gest bibliotek. Vi hittade bara 2 väl polerade som kallas Wiigee och uWave.
Wiigee var problematiskt eftersom det var utformad för att känna igen gester från en WiiRemote och skulle ha varit alltför svårt att porten till den accelerometer sensorn på Edison med tanke på den extremt begränsad tidsramen under tävlingen.
uWave verkade å andra sidan vara den perfekta lösningen som det var ett bibliotek Skrivet av Zhen Wang, en nuvarande Googler för avhandlingen grundutbildning eller examen och kan användas på alla accelerometern i allmänhet. En kort förklaring av hur det fungerar:
-Det finns två lägen kan användaren använda i biblioteket:
1. de första posterna en fördefinierad gest av användaren i en logg fil med rå acceleration värden
2. andra kommer att försöka se om någon gest gör matchar posten en. Det andra steget är slutligen den mer komplexa som det gör ett antal delsteg:
a. det steg 1 men istället för att skriva till en fil, registreras bara i en matris
b. använda quantization, den konverterar raw analoga accelerationsvärdena till digitala sådana
c. jämförs värdena till de ursprungliga fördefinierade gest med en algoritm som kallas dynamisk tid skevhet (DTW).
d. baserat på jämförelser, känner det igen gesten antingen som tillräckligt exakta för att likna originalet registreras eller inte.
Slutligen, vi försökte importera uWave till sensor men det fanns några okända fel möjligen på grund av felaktigt konvertera c biblioteket i uWave till våra C++-program som hade biblioteket i våra sensorer. Vi slutade försöka förenkla koden i uWave att importera till vår kod men vi fick slut på tid/kvantisering och DTW är ganska komplexa algoritmer. Jag har lämnat den problematiska koden vi haft i två versioner, först försökte importera uWave bibliotek och den 2: a versionen försökt skriva en förenklad version av det (tillsammans med med en knapp sensor/LCD-skärm för felsökning ändamål).
Här är Wangs hemsida med uWave biblioteket för alla intresserade också och Wikipedias sida på DTW algoritm i specifika:
uWave bibliotek: http://zhen-wang.appspot.com/rice/projects_uWave...