뉴티씨



  • HOME
  • 고객지원
  • 자주하는 질문

 
3축 가속도 센서[AM-3AXIS-P V03 관련] 초기화 및 계산공식
 글쓴이 : 관리자
작성일 : 13-04-02 12:09
조회 : 3,016  
   가속도센서값_계산법.pdf (125.8K) [170] DATE : 2013-04-02 12:09:25
모듈을 일단, 수평하게 두면,
첨부한 그림에서 빨갛게 표시한 것처럼, 값이 나오게 됩니다.
즉, X, Y는 0g에 Z는 +1g가 나옵니다. 전압 값에의해 판별할수 있습니다.


이때, Self Test 핀을 1에 연결하면, Table3에서 말한 것처럼,
현재값보다 그 정도 높거나 낮은 값이 나옵니다.
우선, 거기에 나온 범위 내에있다면, 칩은 이상이 없다고 보면 됩니다.


그런 다음, 칩이 이상이 없다면, 다시 Self Test 핀을 0으로 놓고,
현재 놓은 위치에서 예상되는 값과의 차이를 본 다음, 그 값만큼 빼거나 더해서 보정해 줄 값을 찾습니다.

그런 다음은 전원이 OFF 될 때까지 그값만큼 빼거나 더해서 쓰면 되겠습니다.
온도 등에 따라 또 달라지는 보정 등도 생각해 볼 수 있겠구요.

이 센서는 그리 큰 오차는 없지만,
혹시라도, 외부회로구성에 따라서, 노이즈가 유입될 경우,

ATMEGA128의 데이터 시트를 봐도 그렇고 실제로 테스트 해 보아도, 보통 AVR은 15kHz가 ADC의 최대치라고 보시면 됩니다. 하지만, 가속도 센서 자체가 11kHz인가에서는 특성이 특별히 좋지 않아지므로, 10kHz 정도로 샘플링 하는 것이 좋겠습니다. AVR로는 거의 채널당 3kHz 정도가 이 가속도 센서로 좋은 데이터를 얻는 최대치라고 봐야 겠지요.

그 정도로 샘플링 한 후에, 크게 움직이면 생기게 되는 갑자기 생기는 물리적인 오류로 인한 이상한 샘플들을 제거하기 위하여 10개 샘플링 할 때마다 상위 2개 하위 2개 정도는 재하고, 중간값들을 소팅으로 정렬한 다음, 나머지 6개 정도의 값을 평균을 내서 하나의 값으로 사용합니다. 이러한 절차가 일종의 소프트웨어 필터 역할을 할 수 있으며, 많은 에러를 걸러주게 됩니다.

그렇게 되면 초당 채널마다 300개 정도의 샘플이 생기게 됩니다. 이 때의 시간 간격을 시간으로 환산하여, 적분할 때 시간축 델타T로 보면 되겠습니다.

초기에 위에서 얘기한 대로, 첨부한 AN3447을 이용 물리적인 에러들을 잡아내어 보정하고, 완전 평형한 상태에서(an3447을 참고) 완전 정지한 상태에서의 가속도 값을 알아내서, 중력 가속도 값으로 지정한 후, 첨부한 an3397에서 나온 것처럼 켈리브레이션 한 후에, 이중 적분으로 거리 계산을 해 내되, 불안정한 움직임을 보이는 경우 노이즈로 인식하여 zero로 만들어 줄 수도 있어야 겠습니다.

실제로 센서칩 자체도 +-1/2LSB의 에러가 있으며, AVR 자체도 +-1/2LSB의 에러가 발생하며, 또한, 전송 과정에서도 +-1LSB 정도의 에러는 발생할 수 있습니다. 최소한의 아날로그 신호의 전송선로를 사용하고, 또한 신호의 노이즈를 막아주는 PCB 설계 등으로 최대한 노이즈를 제거하는 것도 중요하겠습니다.

이를 통하여 거리를 계산하면 보다 정확해 지리라고 생각합니다.

참고로 말한다면, 중력 가속도가 X,Y,Z 축 각각에 따라 기울어짐에 따라서 또한 정적 가속도 값이 각 축마다 달라지게 되는 데, 이를 자이로 센서로 미리 측정하여 두었다가, 그 위치에서 빼는 중력 가속도 값을 불러와서 빼가면서 현재의 동적 가속도만을 알아내는 테크닉도 필요하겠습니다.


이 때는 분명히 자이로 센서의 값을 받아서 동적 가속도 값을 정확히 알아내기 위하여 현재의 기울어짐을 각속도로 정확히 측정하는 것도 필요하겠습니다. 이렇게 보정하면 보다 정확한 결과를 얻을 수 있을 것으로 생각됩니다.

보다 정확한 결과를 위하여, ADC를 외부에 별도로 달아서, 보다 정밀하게 ADC 하는 것도 도움이 될 것 같습니다.

3축 가속도 센서 V03 의 X, Y, Z 축값을 G 값으로 환산하는 수치 계산공식 등을 PDF파일로 첨부하니, 참고하시기 바랍니다.

수고하세요.