A inspeção cuidadosa da página 35 (figura 58) da folha de dados do ADXL345 mostra que somente sob carregamento gravitacional, o chip usa um sistema de coordenadas para canhotos. Minhas próprias experiências com este chip confirmam isso.
Normalmente, uso apenas o chip para indicar o vetor de gravidade. Portanto, ao usar esse chip, simplesmente nego os valores para obter um sistema de coordenadas para a mão direita. Mas isso não parece certo. Suponho que exista uma explicação lógica e matemática para o sistema de coordenadas para canhotos, mas não consigo descobrir o que possa ser.
Respostas:
A resposta é que os acelerômetros de 3 eixos não têm um sistema de coordenadas para canhotos apenas pela gravidade. Em condição estática (isto é, se o acelerômetro não estiver acelerando em relação a qualquer estrutura inercial), eles medem o oposto da aceleração da gravidade, não a própria aceleração da gravidade.
Em termos mais gerais, os acelerômetros medem a diferença entre a aceleração real do sensor em relação a qualquer quadro inercial e a aceleração gravitacional: Essa "aceleração" medida pelo acelerômetro às vezes é chamada aceleração adequada .
Isso pode ser facilmente verificado verificando a medida de um acelerômetro em queda livre: como nesse caso a aceleração real do sensor será igual a , a medida do acelerômetro será .g 0
fonte
Isso não está usando um sistema de coordenadas para canhotos! Confira minhas edições brutas no diagrama.
Observe que cada sistema de coordenadas (RGB para XYZ, preto para gravidade) tem o vetor de gravidade alinhado na direção negativa do eixo apropriado, enquanto o diagrama mostra uma leitura positiva. Eu poderia tê-los desenhado de outra maneira, mas a aceleração real na ausência de gravidade seria ascendente para produzir a mesma leitura. Talvez seja por isso que negar os valores funcione para o seu aplicativo.
fonte
No final do dia, você pode usar uma matriz para transformar qualquer sistema de coordenadas usado no seu próprio sistema. Normalmente, esse é o caso em que é necessário colocar as peças em uma determinada direção devido a dificuldades de roteamento. Usando uma matriz 3x3 simples, você pode transformar as leituras X, Y, Z para que todas elas se alinhem em vários sensores. A matriz terá valores 0, 1 e -1 de acordo, dependendo de como a transformação deve ser feita.
fonte
Meu melhor palpite para isso seria que, com um sistema de coordenadas para canhotos, a gravidade é positiva quando você está do lado direito para cima e negativa quando está de cabeça para baixo. Como mencionado no meu comentário, tenha cuidado com o modo como você "transforma" seus sistemas de coordenadas - negar todos os valores apenas o move de um octante para outro.
fonte