실제로 "Register 0x31—DATA_FORMAT"에 어떤 값을 저장 했습니까?
해당 레지스터에 아무것도 저장하지 않았다고 가정하여 여전히 재설정 값 00으로 설정되어 있습니다. 즉, 데이터를 수집하는 동안 (표 16 및 ADXL345 데이터 시트의 17 페이지 ) :
- 레지스터 0x31—DATA_FORMAT == 00.
- FULL_RES == 0. 따라서 장치는 10 비트 모드에 있으며 범위 비트는 최대 g 범위 및 스케일 팩터를 결정합니다.
- Justify Bit == 0. 부호 확장이있는 오른쪽 정렬 모드.
- 범위 비트 == 00. 따라서 +-2g 범위.
가장 먼저해야 할 일은 가속도계에서 읽은 원래 16 비트 값을 복구하는 것입니다. (즉, 내가 원래 데이터를 부주의하게 버리고 남은 것은 오프셋을 빼서 계산하고 잘못된 스케일 팩터를 곱하여 계산 한 "g"단위의 숫자이면 수집 된 데이터를 동일한 (잘못된) 배율로 나눈 다음 오프셋을 추가하여 원래 값에 가까운 것을 복구하십시오.
그런 다음 데이터를 그래프로 표시하고 "포화", "선형"또는 "롤오버"(아래 설명 참조)와 유사한 지 확인합니다.
센서가 2g보다 큰 가속을 경험할 때 발생하는 일에 대해서는 데이터 시트가 매우 모호합니다.
접선
기술 작가가 수동적 인 목소리로 글을 쓰려고 할 때 얼마나 짜증나는지 말해 주었습니까? 작가가 당신이 인용 한 문장에서 수동태를 사용하면
"롤오버를 피하려면 ± 16g 범위를 제외한 모든 데이터를 클리핑해야합니다." (17 페이지)
이 클리핑을 누가 정확히 수행해야하는지 알 수 없습니다.
많은 사람들이 적극적인 목소리를 사용하는 것이 좋습니다 . 이러한 권장 사항을 따르면 일반적으로 누가 무엇을하는지에 대한 글이 더 명확 해집니다. 사람들이 "보다 전문적인"또는 "보다 학술적으로"생각하는 속임수를 쓰는 스타일을 사용하는 것보다 이해하기 쉬운 물건을 쓸 때 더 좋지 않습니까?
자동 클리핑
가장 좋은 추측은 가속도계가 자동으로이 클리핑을 수행한다는 것입니다.
포화 : 당신이 그럴듯한 값을 통해 가속 램프가 올라가는 것을 볼 때, 신비롭게 고원에 붙어 + 2g에 가까워지면서 가속도계가 데이터를 "도움이되도록"잘랐습니다. 클리핑 후 "top"값은 더 이상 "+ 2g에 매우 가까운 가속도"를 나타내지 않지만 이제는 "적어도 2g 이상, 아마도 훨씬 더 많은 가속도를 말할 방법이 없음"을 나타냅니다.
10 비트 오른쪽 정렬 모드에 있었기 때문에 16 비트 값을 일반적인 16 비트 부호있는 정수로 해석하면
- 0x01FF = +511로 1.992g 이상을 나타냅니다. 아마도 훨씬 더.
- 0x01FE = +510, 510 / 256g ~ = 1.992g
- 0x01FD = +509, 510 / 256g ~ = 1.988g
- ...
- 1 / 256g = 0.0039g을 나타내는 0x0001 = +1
- 0g을 나타내는 0x0000 = 0
- 0xFFFF = -1, -1 / 256g = 0.0039를 나타냄
- ...
- 0xFE02 = -510, -510/256 = -1.992g을 나타냅니다.
- 0xFE01 = -511, -511/256 = -1.996g
- 0xFE00 = -512, 더 부정적인 것을 나타냅니다 -1.996g. 아마도 훨씬 더 부정적 일 것입니다.
(예,이 센서에는 소수점 이하 4 자리의 정밀도가 필요하지 않습니다.) (일부 장치는 -511 또는 -510과 같은 다른 지점에서 포화되는 것을 보았습니다. 일반적으로 데이터를보고 실제 포화 점을 알아낼 수 있습니다).
당신은 복구 할 수 있습니다 어떤 이 클리핑 된 데이터 세트에서 유용한 데이터를. 예를 들어 가속이 1.5 g 이상인 밀리 초 수를 측정하는 데 사용할 수 있습니다. 아아, 이런 종류의 데이터 세트에서 고원을 볼 때 최대 가속도 또는 총 임펄스를 측정하는 것은 불가능합니다. "최고 가속도는 최소 2g 이상일 것입니다. ", 총 임펄스가 적어도 (일부) 뉴턴 * 초인 것으로 계산합니다 ."
대안
가속도계가 데이터에서 클리핑되는지 여부를 파악할 수 있어야합니다. (램프 업 측면에서 "포화", "선형"및 "롤오버"에 대해 설명했습니다. 일부 데이터 세트에서는 램프 다운을보다 명확하게 볼 수 있습니다.)
linear : 그럴듯한 값을 통해 가속 램프가 증가한 경우 계속 높은 값 (512 이상의 값 또는 -512보다 음의 값)으로 계속 상승하면 가속도계가 실제로 클리핑을 수행하지 않은 것입니다. 전체 범위에 유효한 데이터가 있습니다.
롤오버 : 가속 값이 그럴듯한 값을 통해 증가하고 +2 g에 도달하기 직전에 -2 g 근처의 비 물리적으로 현실적인 값으로 즉시 점프 한 다음 계속 상승합니다. 0을 통해 + 2g에 다시 접근하고 다시 -2g 근처로 다시 점프하면 롤오버 랩 어라운드가 발생합니다. 운이 좋으면 값이 매우 매끄럽게 변경되어 각 롤오버를 감지하고 이러한 값을 "포장 해제" 하여 실제 g 힘을 회복 할 수 있습니다.
ps : Open Circuits : Rocket Computer를 자유롭게 편집하십시오 .