eu queria cadastrar um movimento definido pelo usuario usando o acelerometro do android .
por ex:
o usuario começa o cadastro do movimento ai ele faz um movimento com o celular e aperta ok e o sistema guarda esse movimento num banco de dados. Isso é para que o sistema execute algo quando o usuario fizer um determinado movimento com o celular.
existe como capturar esse movimento do acelerometro do android? como eu faria isso?
O que você pode fazer é capturar os dados do acelerômetro gerados durante o movimento. Com estes dados você pode gerar um gráfico pra verificar o padrão. Com isto em mãos, você precisará desenvolver um algoritmo para reconhecer esse padrão e disparar o evento pretendido. Eu fiz um algoritmo para reconhecer o padrão gerado por apenas um acelerômetro e marcar quantos passos uma pessoa deu e vou te dizer que é um servicinho danado, mas legal de se fazer.
amigo, vc pode me passar os passos pra reconhecer o padrão ?
pq n tenho ideia por onde começar… o q me veio em mente agora foi definir por porcentagens de dados… por ex: verificarr quantos por cento os dados sao parecidos… se for 90% parecido entao considera-se o movimento… mas acho que isso n deve funcionar neh ?! hehehe
O que fiz foi o seguinte:
1 - gravei os dados do acelerômetro fazendo a movimentação que eu pretendia.
2 - peguei esses dados e joguei no excel para gerar um gráfico.
3 - identifiquei no gráfico os dados referentes àquele movimento, no meu caso eram passos de caminhada, então o gráfico eram parábolas, subindo e descendo, como uma frequência. Entendi que se criar um algoritmo que identifica o pico e o vale dessa frequência, eu tenho o meu padrão e executo a ação necessária.
Foi basicamente isso que fiz, mas no meu caso, o reconhecimento do padrão é contínuo, a fim de detectar cada passo. Havia também a posição ideal do celular no corpo, a média da variação para ser classificada como passo, pois qualquer movimento faz o gráfico subir e descer, o que não necessariamente quer dizer que faz parte do padrão. Eu também identifiquei ruídos nos dados, mas não afetou significativamente no resultado.
PS: só precisei de dados de apenas um sensor do acelerômetro, o resto eu descartei, mas provavelmente você precise trabalhar com 2 ou 3, nesse caso você, talvez você precise identificar os padrões nos sensores e ainda verificar se ocorreram no momento certo, ex: se o padrão ocorreu em um sensor e também ocorreu no outro em momentos diferentes, apesar de ser o padrão correto, não é o movimento correto, o certo é reconhecer os dois no tempo devido.