|
[예제소스] 자이로 각도 구하기(ICCAVR V7, WINAVR)입니다.
|
|
|
글쓴이 :
administrato…
작성일 : 12-01-12 01:09
조회 : 9,537
|
GYRO.zip (79.4K) [486] DATE : 2012-01-12 01:09:25 | GYRO_FINDING_ANGLE_AVR Studio WINAVR.zip (170.9K) [80] DATE : 2014-11-29 02:03:58 |
안녕하세요? 고객님,
자이로 각도 구하기(ICCAVR V7, WINAVR)입니다. FAQ에 자세한 설명이 있고, 소스가 있었는 데, 여기다 다시 올려드립니다.
( 소스의 목적) 아래소스는 3.3V 기준 전압으로 0~3.3V 사이를 AD하여 계산하는 자이로센서로 각도 구하는 소스입니다. 5V 기준 전압시는 아래 소스 설명을 참고하여, 수정하여 사용하세요.
( 소스 설명 ) 1. AVR adc 전압 스케일이 3.3 볼트 일때 vref(계산을 위해 mV 로변경)기준으로 계산합니다. - 1024는 adc의 1024단계의 분해능을 의미 - 3300mV adc의 vref인 3.3V를 의미함
2. 1024 분해능에서 1 변동할때의 전압값(Vref = 3.3V) : 3300mV / 1024 = 3.22265625mV * 참고적으로 1024 분해능에서 1 변동할때의 전압값(Vref = 5V) ( 0~5V 사이를 AD 하고, 실제로는 0~3.3V를 사용하므로, 분해능의 단계수를 다시 계산해야합니다. 즉, 3.3/(5/1024) = 675.84 단계 약 676 값이 3.3 볼트입니다. 0~3.3V의 값을 보려면, 0~676의 값으로 계산하면 됩니다. 1024 분해능에서 1 변동할때의 전압값(Vref = 5V) : 3300mV / 676 = 4.8816568mV )
3. 감도(Sensitivity) 값 관련 AM-GYRO V01 ( 즉, IDG300)의 감도(Sensitivity) 2mV/degree/sec AM-GYRO V02 (즉, IDG650)의 감도(Sensitivity) 0.5mV/degree/sec
4. 최종적인 각도 계산을 위한 Scale Vector 값 관련
AM-GYRO V01 ( 즉, IDG300) 이용시, - 1024 분해능에서 1 변동할때의 각속도 값(Vref = 3.3V) : 3.22265625 mV / ( 2mV/degree/sec) = 1.611328125 degree/sec - 1024 분해능에서 1 변동할때의 각속도 값(Vref = 5V) : 4.8816568mV / ( 2mV/degree/sec) = 2.4408284 degree/sec
AM-GYRO V02 ( 즉, IDG650) 이용시, - 1024 분해능에서 1 변동할때의 각속도 값(Vref = 3.3V) : 3.22265625 mV / ( 0.5mV/degree/sec) = 6.4453125 degree/sec - 1024 분해능에서 1 변동할때의 각속도 값(Vref = 5V) : 4.8816568mV / ( 0.5mV/degree/sec) = 9.7533136 degree/sec
5. 즉, 정리하여 보면, 각속도 구하는 기본식은 ( 각속도 초기 adc값 - 센서 회전된 adc 값 ) * scale vector 여기서 adc 샘플링 시간을 누적시키면 각도가 됩니다.(적분) adc 샘플링 주기가 예로 0.01초이면 degree += (( 각속도 초기 adc값 - 센서 회전된 adc 값 ) * scale vector ) * 0.01sec
수고하세요~
|
|