가속도계를 사용하여 경사를 계산합니까?


16

브레드 아웃 보드에 아날로그 장치 ADXL203 가속도계가 있으며이 장치를 사용하여 일부 장비의 주파수를 상당히 높은 주파수 (20-30Hz)로 측정하려고했습니다. 감지를 수행하기 위해 campbells cr3000 로거에 연결하고 있습니다. 누구나 센서 출력을 해석하는 방법에 대한 지침을 가지고 있습니다. 감사


의견을 주셔서 감사합니다. 매우 도움이 TROY
troy jensen

나는 내가 가장 높은 것을 알고 있지만, 당신이 내 마음에 들지 않으면 적어도 누군가의 것을 받아들입니다.
Kortuk

답변:


12

나는 여기에 말할 많은 것들이 있으며, 그들 중 일부는 pingswept에 동의하고 일부는 penjuin에 동의합니다.

cr3000

16 비트 및 100Hz에서의 cr3000 샘플링은 데이터에서 노이즈를 쉽게 제거 할 수 있도록 약간 느리게 샘플링되지만 정확도가 훨씬 높은 경우 사용할 수 있습니다. 꽤 좋은 필터링 알고리즘없이 13 또는 14 비트의 정밀도를 얻을 수 있을지 의심됩니다. 가속도계는 진동이 악마, 폭파 된 포논이라고 가르쳤다.

출력 커패시터

데이터 시트가 말하고 신호 이론을 나타내는대로해야합니다. 데이터 시트를 인용하려면 :

ADXL103 / ADXL203의 출력은 일반적인 대역폭이 2.5kHz입니다. 이 시점에서 신호를 필터링하여 앨리어싱 오류를 제한해야합니다. 앨리어싱을 최소화하려면 아날로그 대역폭이 아날로그-디지털 샘플링 주파수의 절반을 넘지 않아야합니다. 노이즈를 줄이고 해상도를 개선하기 위해 아날로그 대역폭을 더 줄일 수 있습니다.

즉, 속도를 50Hz 미만으로 유지하려면 커패시터를 선택해야합니다. 이 위에 배치하면 앨리어싱을 얻을 수 있으며 앨리어싱은 진동 노이즈를 거래에 서명 한 악마로 만듭니다. 그들은 장치에서 소음 수준을 계산하는 방법을 설명하고 50Hz 대역폭에서 피크 대 피크 잡음은 .006입니다 * 진동이있는 장치에서 중력은 눈에 띄지 않습니다.

데이터 해석

이것은 아마도 가장 관심이 있고 상대적으로 쉬운 일입니다. 장치가 평평하고 비교적 평평한 시간에 장치가 중립 상태 인 시간에 태그를 지정해야합니다. 이 시점에서 1-2 초를 주면이 데이터의 중앙값을 취해 G가없는 전압을 결정할 수 있습니다. 그런 다음 장치를 비교하는 지점으로 사용할 수 있습니다. 이제이 시점부터 데이터 시트를 직접 인용 할 수 있습니다.

가속도계가 중력에 직각 일 때, 출력은 기울기 당 거의 17.5 mg으로 변 합니다.

너무 많이 기울이지 않을 경우이 근사값을 간단히 사용할 수 있지만, 두 방향과 각도가 너무 작지 않은 경우 기울기를 사용하려면 형상을 사용해야합니다.

더 커질 예정이라면 방정식의 철자가 다음과 같습니다.

피치 = ASIN (AX / 1 g)
롤 = ASIN (AY / 1 g)

내가 전화를 걸 수있는 한 귀하의 장치는 1G의 가속에 대해 1V의 변화를줍니다. 보정 단계를 수행 한 경우 측정을 수행하고 오프셋을 빼면 Gs의 수를 경험할 수 있습니다.

문제가 발생하거나 접근 방식을 개선하기 위해 추가 정보를 원하는 경우가 아니면 여기에서 읽기를 중지하십시오.

샘플을 수행하는 장치를 프로그래밍하려는 빠르게 변화하는 시스템 또는 시스템에 대한 접근 방식을 개선하기 위해 다른 접근 방식과 방법에 대해 조금 더 이야기했습니다.

샘플링 주파수

초당 20-30 회 방향을 측정해야하므로 장치가 가속 방향을 변경하는 속도보다 훨씬 빠르게 샘플링해야합니다. 가속도계를 사용할 때 상당히 큰 것으로 밝혀진 다른 영향으로 인해 진동 소음과 가속을 걸러 낼 수있을 정도로 빠르게 측정 할 수 있어야합니다.

3 축 가속도계

둘째, 3 축 가속도계를 사용하는 경우 중력으로 인해 한 축이 가속의 일부를 잃을 때 (즉, z 축의 크기가 2m / s ^ 2만큼 줄어든 경우) 쉽게 알 수 있습니다. 다른 축에서 본 게인은 중력입니다). 이것은 여전히 ​​지저분하지만 일반적으로 방향을 변경하는 데 필요한 속도를 제공 한 다음 방향 변경으로 인한 가속도를 변경하여 방향을 인식 할 수있는 가속 기능이 추가됩니다.

2 축 문제

이것은 penjuin이 말했듯이 2 축 가속도계로는 거의 불가능하며 초당 20-30 개의 다른 방향을 가질 수있는 시스템이 있거나 정확한 방향을 측정 해야하는 경우 스케치 항상. 나는 석사 학생이 이것에 대해 꽤 좋은 논문을 쓸 수 있거나 박사 학위 가이 알고리즘 개선에 대한 논문을 쓸 수 있다고 확신합니다.

진동 소음

더 추가하면 장치를 장치의 움직임에 정적으로 고정 시키지만 진동을 약화시키는 것 위에 장치를 놓을 수 있다면 훨씬 더 나은 숫자를 얻을 수 있으며 많은 소프트웨어 필터링이 필요하지 않습니다. 가속도계와 장치 사이에 간단한 폼 타입 패딩을 배치 할 수 있으며 디지털 방식 인 경우 전기 노이즈를 증가시키지 않고 진동 노이즈를 흡수하는 데 도움이됩니다. 진동 소음에 문제가있는 경우에만 수행해야합니다.

디지털 가속도계

SPI를 사용하여 연결할 수있는 디지털 가속도계를 제안합니다. SPI가 다음 값 세트를 지속적으로로드하는 작업을 수행하므로 데이터를 매우 높은 속도로 클럭 아웃 할 수 있으며 뒤에서 작업 할 수 있습니다. 디지털 방식으로 수행하려면 멋진 마이크로 컨트롤러가 필요합니다. 당신이 원하는 것에 대해 더 구체적으로 설명 할 수 있다면 더 나은 피드백을 줄 수 있습니다. 기울기 감지에 기초한 경고를 원한다면 모든 아날로그를 사용하는 것이 매우 쉽지만 작동 중에 장비의 위치와 각도를 측정하려면 몇 가지 작업을 준비하십시오.

이 답변을보다 명확하게하거나 원하는 내용에 적용 할 수 있도록 추가 할 수있는 것이 있으면 알려주십시오.


1
기록적인면에서이 답변은 서사적입니다.
pingswept :

1
Kortuk 박사, 가속도계 박사! :-)
Jay Atkinson 2016 년

나는 무언가를 잊어 버렸다고 생각했기 때문에이 답변을 썼다. 그런데 그것이 조금 길다는 것을 깨달았고 답변을하는 방법을 실제로 빨리 추가했지만 사람들은 긴 대답을 선호하는 것처럼 보인다.
Kortuk

진동 소음에서 브러시리스 DC (BLDC) 모터의 존재로 인해 작동 시간 동안 더 많은 양이 있었을 수 있지만 전원을 켜기 전에 여전히 상당한 진동 수치가있었습니다.
Kortuk

3

나는 많은 미친 수학 아이디어 로이 답변을 여러 번 쓰고 다시 썼지 만 솔직히 이것이 정확하게 이루어질 수 있다고 생각하지 않습니다. 몇 가지 벡터 수학을 수행 할 수 있지만 다음과 같은 경우에는 어떻게됩니까?

  • 물체가 움직이지 않는다
  • 물체의 속도가 일정합니다
  • 물체가 부딪 치거나 부딪칩니다.
  • 경 사진 위로 이동하여 생성 된 힘은 Z 축의 해상도보다 낮습니다.

이런 종류의 일을 할 수있는 미친 해결 방법이 있다고 확신하지만 그만한 가치가 있는지는 확실하지 않습니다. 가속도계는 단순히이 작업을 위해 설계된 것이 아닙니다 (적어도 내 지식으로는). 당신이 달성하려고하는 것에 대해, 나는 위의 모든 문제에 상당히 저항 할 수있는 이들 하나를 사용하여 회전식 접근을 제안 할 것입니다.


가속도계는 실제로 이것을 위해 설계되었으며, 수행 방법에 대한 전체 섹션이 있습니다. 대부분의 경우 가속도계는 매우 저렴한 비용이며, 때로는 완벽한 기능보다 비용이 더 큰 문제입니다.
Kortuk

3
나는 항상 이것을 학생들에게 설명하려고 노력하며, 그것이 중요한 개념이라고 생각하기 때문에 여기에 추가 할 것입니다. 엔지니어링은 항상 최선의 방법으로하는 것이 아니라 사용자가 가격표 이외의 다른 점을 구별 할 수없는 방식으로하는 것입니다.
Kortuk

2
먼저 할 말이 있으며 마지막 사람보다 더 잘한다고 할 말이 많이 있습니다.
Kortuk

나는 동의하지만 그것은 당신의 동기에 달려 있습니다 (트로이가 언급하지 않은); 잘 작동하길 원합니까 아니면 배우고 싶습니까? 그것들은 반드시 상호 배타적이지는 않지만 컴파일러 디자인에 대해 배우고 싶지 않다면 LED를 깜박이기 위해 자신의 컴파일러를 작성하지는 않습니다.
penjuin 2016 년

그래, 나는 당신의 대답을 논의하기 위해 그것을 추가합니다. 일반적으로 그가 다른 방향을 초당 30 번 말할 수 있어야한다면 그것에 큰 가속이있을 것입니다. 결과적으로 100 개 이상의 샘플이 필요합니다. 둘째.
Kortuk

3

데이터 시트를 올바르게 이해하면 축 주위를 기울일 때 각 축의 출력이 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 이하로 가야합니다.
Kortuk

1
아, 나는 앨리어싱 관점에서 그것에 대해 생각하지 않았다. 나는 여전히 큰 뚜껑이 고주파 신호를 약화시킬 것이라고 생각하지만 실제로이 경우에는 좋은 것입니다. 예, 대역폭을 약 50Hz로 설정하는 것이 좋습니다.
Pingswept,

3

다른 답변이 커서 두 번째 답변을 추가하고 있으므로 간단하게 원할 수도 있습니다.

앨리어싱 속도 (50Hz) 이하로 유지하려면 필터 캡이 0.10 uF 이상이어야합니다. Z 방향의 모든 중력 가속도를 가진 장치 앉은 상태에서 몇 초의 교정 단계를 수행해야합니다. 이는 영점 G 점을 결정하는 것입니다.

제로 G 포인트에 대해 측정하는 전압은 아마도 X와 Y 방향에 따라 다를 수 있습니다. 얻을 수있는 전압을 모두 빼고 빼십시오. 오프셋을 뺀이 전압은 해당 방향으로 가고있는 G의 수입니다.

arcsin을 가지고 당신은 그 방향으로 각도를 얻을 것입니다.

이것은 노이즈 및 기타 가속을 무시합니다. NaN이 완전히 기울어 져 있고 소음이 있으면 NaN이 결과가되도록 준비하십시오.


0

각도를 얻으려면 X 방향과 Y 방향 모두에서 중력 가속도를 측정해야합니다. 0이 "가속 없음"이되도록 중간 전압 (2.5V)을 뺍니다.

이제 arcsin (y / x)로 각도를 찾을 수 있습니다. 그러나 그것은 나누기 때문에 그리고 기호가 모호하기 때문에 사용하기가 성가 시므로 실제로 C 함수 atan2 (y, x)를 원합니다. atan2 ()는 모든 360도에 대한 부호를 얻습니다.


주제를 제외하고는 마이크로를 사용하지 않기 때문에 : 마이크로 컨트롤러에서 사용할 atan2 ()를 찾고 있다면 내 웹 사이트에 atan2 () 생성기가 있습니다. http://vivara.net/cgi-bin/ cordic.cgi


0G에 대해 보장 된 2.5V는 아닙니다. 그는 아마도 컴퓨터를 사용하여 수학을 할 것이기 때문에 수학을하기 위해 사용하는 방법이 문제가 될지 의심 스럽다.
Kortuk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.