가속도 센서는 가속도 값을 디지털로 출력 시키는 센서이다. 이 출력값이 G로 표현된다. 센서에 대해 문외한인 경우, G를 몰라 어려움을 겪는 경우가 많다. G가 무엇이고 어떻게 활용해야 하는지 알아보자.
* 가속도 센서란?
가속도 센서(acceleration sensor)는 물체의 가속도(accelerometer)를 디지털 정보로 출력시켜서 물체의 가속도, 충격량, 진동 등을 계산하기 위한 센서이다. 휴대폰이나 차량, 비행기 등에 주로 사용되며, 물체의 낙하(바닥에 떨어뜨림. free-fall detection ), 움직임 감지(motion detection), 두드림(휴대폰 탭(tap detection) ) 등의 다양한 기능을 구현하는데 이용할 수 있다.
가속도 센서(Acceleration sensor)는 자이로 센서 (Gyro sensor), 자기센서(Magnetic sensor) 등과 함께 많이 같이 사용되며, 하나의 모듈로 점점 경량화 되어서 현재는 매우 작은 IC로 제작되고 있다. 가격적인 이유로 "가속도" 또는 "가속도+자이로" 또는 "가속도+자이로+자기" 센서로 구성되어 제작된다. 여러가지 센서가 결합되는 이유는, 동작이나 위치등을 계산할 때 서로 다른 센서들이 서로를 보정해 주기 때문에, 함께 사용할 수록 정확도가 높아진다.
이러한 가속도 센서는 어떻게 구현된 것일까?
간단히 말해서 센서안에 소형 스프링을 달아서 각 방향으로 움직였을 때의 ADC 변화량을 측정하여 계산한다.
* 가속도 센서의 G는?
g는 우리가 잘아는 중력가속도(gravitational acceleration)의 약자로써, 물체에 가해지는 중력에 의한 가속도를 말한다. 1g 는 약 9.8m/s2 이다. 이는 중력에 의한 가속도로써, 하늘에서 떨어지는 물체의 속도를 생각하면 된다. 시간당 중력에 의해 얼마나 속도가 증가하는지를 나타낸다.
가속도는 이러한 중력가속도를 표준으로 하여 시간당 얼마나 빨라지는 지를 표현한다. 대문자 G 로 쓰며, 가속도 센서의 출력 단위로 사용된다. 소문자g는 중량의 단위이기 때문에 G로 쓰는 것을 권고한다.
1G = 중력가속도와 같은 9.8m/s² 이다.
즉, 초당 9.8m 씩 증가하는 속도량을 말한다.
1G는 예를 들면, 4초만에 100m 를 달리는 차량의 속도량과 비슷하다.
* 2G, 4G, 6G ?
가속도 센서를 설정할때, 2G, 4G, 6G 등의 범위를 설정하는데, 이것은 센서의 측정 가능한 범위를 표현한다 출력값이 -32768 ~ 32767 일때, ±2G로 설정하면, 값이 -32768이면 -2G가 되고, 32767이면 +2G가 된다. ±4G가 되면 -32768이 -4G가 되는 것이다. 즉, 가속도 센서의 ADC 값의 Scale 이 달라지게 된다.
* 가속도 센서값
가속도 센서값은 X, Y, Z 방향에 대한 G값이 출력된다. 다음과 같은 형식으로 출력될 것이다.
X Y Z
-0.092 0.0974 1.0168
-0.092 0.0985 1.0078
-0.0933 0.0988 1.0135
-0.0928 0.0975 1.008
-0.0967 0.0986 1.0105
-0.0876 0.0973 1.0107
-0.095 0.0973 1.0131
-0.0852 0.097 1.0102
센서의 설치 위치나 방향에 따라서 값이 달라 질수도 있다. 이럴때는 각 요소의 방향이 잘 설정되어 있는지 확인해야 한다.
센서의 최종값은 위와 같이 출력되어야 하지만, 센서의 데이터는 16bit 값으로 출력된다.
예를 들어 2G로 설정되어 있고 출력값이 11503이라고 가정해 보자.
16bit는 -32767~32768 의 범위에 있으므로, 2G로 설정되어 있다면 2/65535 가 한스텝이 된다.
그러므로 11503 * 2 / 65535 = 약 0.175 의 센서값을 얻을 수 있다.
설정 : 2G
센서 출력값 : 11503
값 = 11503 * 2 / 65535 = 0.175524
센서의 이 값을 이용하여 다양한 제품 개발에 사용해 보자.
'개발' 카테고리의 다른 글
[윈도우] 배치파일 명령어 setlocal 사용 방법 (0) | 2022.03.24 |
---|---|
[윈도우] 배치파일 문법 setlocal EnableDelayedExpansion 사용하기 (0) | 2022.03.24 |
자바스크립트(JavaScript) 기초 문법 - 초급 (0) | 2022.03.13 |
S-레코드 포맷 : Motorola S-record file format (0) | 2022.02.23 |
시리얼 통신 - VScode로 Serial log 보기 (Serial Port Helper) (0) | 2022.02.11 |
댓글