답변:
나는 여기에 말할 많은 것들이 있으며, 그들 중 일부는 pingswept에 동의하고 일부는 penjuin에 동의합니다.
16 비트 및 100Hz에서의 cr3000 샘플링은 데이터에서 노이즈를 쉽게 제거 할 수 있도록 약간 느리게 샘플링되지만 정확도가 훨씬 높은 경우 사용할 수 있습니다. 꽤 좋은 필터링 알고리즘없이 13 또는 14 비트의 정밀도를 얻을 수 있을지 의심됩니다. 가속도계는 진동이 악마, 폭파 된 포논이라고 가르쳤다.
데이터 시트가 말하고 신호 이론을 나타내는대로해야합니다. 데이터 시트를 인용하려면 :
즉, 속도를 50Hz 미만으로 유지하려면 커패시터를 선택해야합니다. 이 위에 배치하면 앨리어싱을 얻을 수 있으며 앨리어싱은 진동 노이즈를 거래에 서명 한 악마로 만듭니다. 그들은 장치에서 소음 수준을 계산하는 방법을 설명하고 50Hz 대역폭에서 피크 대 피크 잡음은 .006입니다 * 진동이있는 장치에서 중력은 눈에 띄지 않습니다.
이것은 아마도 가장 관심이 있고 상대적으로 쉬운 일입니다. 장치가 평평하고 비교적 평평한 시간에 장치가 중립 상태 인 시간에 태그를 지정해야합니다. 이 시점에서 1-2 초를 주면이 데이터의 중앙값을 취해 G가없는 전압을 결정할 수 있습니다. 그런 다음 장치를 비교하는 지점으로 사용할 수 있습니다. 이제이 시점부터 데이터 시트를 직접 인용 할 수 있습니다.
너무 많이 기울이지 않을 경우이 근사값을 간단히 사용할 수 있지만, 두 방향과 각도가 너무 작지 않은 경우 기울기를 사용하려면 형상을 사용해야합니다.
더 커질 예정이라면 방정식의 철자가 다음과 같습니다.
내가 전화를 걸 수있는 한 귀하의 장치는 1G의 가속에 대해 1V의 변화를줍니다. 보정 단계를 수행 한 경우 측정을 수행하고 오프셋을 빼면 Gs의 수를 경험할 수 있습니다.
샘플을 수행하는 장치를 프로그래밍하려는 빠르게 변화하는 시스템 또는 시스템에 대한 접근 방식을 개선하기 위해 다른 접근 방식과 방법에 대해 조금 더 이야기했습니다.
초당 20-30 회 방향을 측정해야하므로 장치가 가속 방향을 변경하는 속도보다 훨씬 빠르게 샘플링해야합니다. 가속도계를 사용할 때 상당히 큰 것으로 밝혀진 다른 영향으로 인해 진동 소음과 가속을 걸러 낼 수있을 정도로 빠르게 측정 할 수 있어야합니다.
둘째, 3 축 가속도계를 사용하는 경우 중력으로 인해 한 축이 가속의 일부를 잃을 때 (즉, z 축의 크기가 2m / s ^ 2만큼 줄어든 경우) 쉽게 알 수 있습니다. 다른 축에서 본 게인은 중력입니다). 이것은 여전히 지저분하지만 일반적으로 방향을 변경하는 데 필요한 속도를 제공 한 다음 방향 변경으로 인한 가속도를 변경하여 방향을 인식 할 수있는 가속 기능이 추가됩니다.
이것은 penjuin이 말했듯이 2 축 가속도계로는 거의 불가능하며 초당 20-30 개의 다른 방향을 가질 수있는 시스템이 있거나 정확한 방향을 측정 해야하는 경우 스케치 항상. 나는 석사 학생이 이것에 대해 꽤 좋은 논문을 쓸 수 있거나 박사 학위 가이 알고리즘 개선에 대한 논문을 쓸 수 있다고 확신합니다.
더 추가하면 장치를 장치의 움직임에 정적으로 고정 시키지만 진동을 약화시키는 것 위에 장치를 놓을 수 있다면 훨씬 더 나은 숫자를 얻을 수 있으며 많은 소프트웨어 필터링이 필요하지 않습니다. 가속도계와 장치 사이에 간단한 폼 타입 패딩을 배치 할 수 있으며 디지털 방식 인 경우 전기 노이즈를 증가시키지 않고 진동 노이즈를 흡수하는 데 도움이됩니다. 진동 소음에 문제가있는 경우에만 수행해야합니다.
SPI를 사용하여 연결할 수있는 디지털 가속도계를 제안합니다. SPI가 다음 값 세트를 지속적으로로드하는 작업을 수행하므로 데이터를 매우 높은 속도로 클럭 아웃 할 수 있으며 뒤에서 작업 할 수 있습니다. 디지털 방식으로 수행하려면 멋진 마이크로 컨트롤러가 필요합니다. 당신이 원하는 것에 대해 더 구체적으로 설명 할 수 있다면 더 나은 피드백을 줄 수 있습니다. 기울기 감지에 기초한 경고를 원한다면 모든 아날로그를 사용하는 것이 매우 쉽지만 작동 중에 장비의 위치와 각도를 측정하려면 몇 가지 작업을 준비하십시오.
이 답변을보다 명확하게하거나 원하는 내용에 적용 할 수 있도록 추가 할 수있는 것이 있으면 알려주십시오.
나는 많은 미친 수학 아이디어 로이 답변을 여러 번 쓰고 다시 썼지 만 솔직히 이것이 정확하게 이루어질 수 있다고 생각하지 않습니다. 몇 가지 벡터 수학을 수행 할 수 있지만 다음과 같은 경우에는 어떻게됩니까?
이런 종류의 일을 할 수있는 미친 해결 방법이 있다고 확신하지만 그만한 가치가 있는지는 확실하지 않습니다. 가속도계는 단순히이 작업을 위해 설계된 것이 아닙니다 (적어도 내 지식으로는). 당신이 달성하려고하는 것에 대해, 나는 위의 모든 문제에 상당히 저항 할 수있는 이들 중 하나를 사용하여 회전식 접근을 제안 할 것입니다.
데이터 시트를 올바르게 이해하면 축 주위를 기울일 때 각 축의 출력이 1.5V ~ 3.5V로 달라집니다. 디바이스가 평평한 경우 (± 1도 패키지 정렬 오류 무시) 두 출력 모두 2.5V로 표시되어야합니다.
한 방향으로 만 기울기를 측정해야하는 경우 2.5V에서 편차의 아크 인을 가져와 각도를 라디안으로 가져온 다음 각도로 변환 할 수 있습니다. 장치가 어느 방향 으로든 기울일 수 있으면 두 각도를 계산 한 다음 그로부터 복합 각도를 계산할 수 있습니다.
명시 적으로 : 한 축 주위의 각도 = (180 / π) * arcsin (Vout-2.5)
좋은 주파수 응답을 얻으려면 작은 출력 커패시터 Cx 및 Cy가 필요합니다. 페이지 6의 각주 6에서 데이터 시트의 3에서 0.02uF는 250Hz의 대역폭을 제공하는 것으로 보입니다. 이는 아마도 샘플 속도에 적합 할 것입니다. 대역폭을 50Hz로 제한하면서 0.1uF까지 올라갈 수 있지만 신호가 감쇠되기 시작합니다.
다른 답변이 커서 두 번째 답변을 추가하고 있으므로 간단하게 원할 수도 있습니다.
앨리어싱 속도 (50Hz) 이하로 유지하려면 필터 캡이 0.10 uF 이상이어야합니다. Z 방향의 모든 중력 가속도를 가진 장치 앉은 상태에서 몇 초의 교정 단계를 수행해야합니다. 이는 영점 G 점을 결정하는 것입니다.
제로 G 포인트에 대해 측정하는 전압은 아마도 X와 Y 방향에 따라 다를 수 있습니다. 얻을 수있는 전압을 모두 빼고 빼십시오. 오프셋을 뺀이 전압은 해당 방향으로 가고있는 G의 수입니다.
arcsin을 가지고 당신은 그 방향으로 각도를 얻을 것입니다.
이것은 노이즈 및 기타 가속을 무시합니다. NaN이 완전히 기울어 져 있고 소음이 있으면 NaN이 결과가되도록 준비하십시오.
각도를 얻으려면 X 방향과 Y 방향 모두에서 중력 가속도를 측정해야합니다. 0이 "가속 없음"이되도록 중간 전압 (2.5V)을 뺍니다.
이제 arcsin (y / x)로 각도를 찾을 수 있습니다. 그러나 그것은 나누기 때문에 그리고 기호가 모호하기 때문에 사용하기가 성가 시므로 실제로 C 함수 atan2 (y, x)를 원합니다. atan2 ()는 모든 360도에 대한 부호를 얻습니다.
주제를 제외하고는 마이크로를 사용하지 않기 때문에 : 마이크로 컨트롤러에서 사용할 atan2 ()를 찾고 있다면 내 웹 사이트에 atan2 () 생성기가 있습니다. http://vivara.net/cgi-bin/ cordic.cgi