' + re_word; if(data.autoList[i].PROD_NAME != ''){ html += ' '+data.autoList[i].PROD_NAME+''; } html += '
' html += '' + comma(Math.floor(data.autoList[i].PROD_PRICES)) + ' 원'; html += '' + re_word + '
'; html += '' + comma(Math.floor(data.resultList[i].prod_priceS)) + ' 원'; html += ''+data.catgStep1List[i].split('@@')[1]+'
'; html += '
안녕하세요, 여러분~!
오늘 전자부품 기초 시간에서는 스마트폰부터 드론, 자동차까지 우리 일상 속 첨단 기기의 자세와 움직임을 제어하는 핵심 부품인 가속도 센서와 자이로스코프(Gyroscope) 센서에 대해 깊이 있게 알아보겠습니다.
눈에 보이지 않는 움직임과 회전을 기계가 어떻게 수치화하여 인식하는지 그 신기한 물리적 원리부터, 실제 산업 및 일상에서의 응용 분야를 살펴볼 것입니다. 나아가 국민 마이크로컨트롤러인 아두이노(Arduino) 우노를 활용하여 센서의 데이터를 직접 시리얼 모니터로 출력해 보는 실습 프로젝트까지 완벽하게 배워보도록 하겠습니다.
공간 상에서 물체의 움직임을 파악하기 위해서는 크게 두 가지 물리량이 필요합니다. 바로 '직선으로 이동하는 속도의 변화량'과 '회전하는 각도의 변화량'입니다.
가속도(Accelerometer) 센서는 물체가 특정 방향으로 얼마나 빠르게 가속하고 있는지, 즉 속도의 변화를 측정합니다. 또한 지구가 끌어당기는 중력 가속도를 항상 측정하고 있기 때문에 센서가 어느 방향으로 기울어져 있는지도 알 수 있습니다.
반면, 자이로스코프(Gyroscope) 센서는 가속도 센서와 비슷해 보이지만 조금 다른 역할을 수행합니다. 물체가 x축, y축, z축을 중심으로 초당 얼마나 회전하고 있는지(각속도)를 정밀하게 측정합니다. 가속도 센서만으로는 물체가 제자리에서 팽이처럼 도는 회전 운동을 감지하기 어렵기 때문에 이 두 센서는 항상 짝꿍처럼 함께 쓰입니다.
오늘 아두이노 실습에서 사용할 부품은 바로 이 가속도 센서(3축)와 자이로스코프 센서(3축)가 하나의 작은 칩에 통합된 MPU-6050 6축 센서 모듈입니다. 이를 통해 3차원 공간에서의 복잡한 자세와 각속도를 동시에 측정할 수 있습니다.
그렇다면 이렇게 작은 칩이 어떻게 물리적인 움직임을 알아채는 것일까요? 지금부터 그 놀라운 원리를 들여다보겠습니다.
MPU-6050과 같은 현대의 소형 센서 모듈 내부에는 반도체 제조 공정을 활용하여 만든 초소형 기계 장치가 들어있습니다. 이 혁신적인 기술을 MEMS (Micro-Electro-Mechanical Systems, 미세 기계 전자 시스템)라고 부릅니다.
과거의 자이로스코프는 비행기나 선박에 들어가는 거대한 팽이 모양의 기계 장치였지만, MEMS 기술의 발전으로 인해 머리카락 굵기보다 얇은 미세한 기계적 구조물과 이를 제어하는 전자 회로를 손톱보다 작은 실리콘 칩 하나에 결합할 수 있게 되었습니다.

이 초소형 센서 칩 내부에는 미세한 질량체(Mass)와 빗살 무늬 모양의 전극이 얽혀있는 구조가 있습니다. 센서 모듈이 움직이거나 회전하게 되면, 관성의 법칙과 코리올리 힘(Coriolis force)에 의해 칩 내부의 미세한 질량체도 미세하게 떨리거나 한쪽으로 쏠리며 운동하게 됩니다.
이렇게 구조물이 움직이면 전극 사이의 간격이 미세하게 좁아지거나 넓어지게 되는데, 이때 발생하는 정전 용량(Capacitance, 전기를 띠는 성질)의 변화량을 전자 회로가 즉각적으로 읽어내어 우리가 눈으로 확인할 수 있는 디지털 가속도 및 각속도 데이터로 변환해 주는 것입니다.
우리가 모르는 사이, 이 6축 센서는 현대 사회의 필수적인 전자 부품으로 자리 잡았습니다. 가장 대표적인 예가 바로 우리가 매일 손에 쥐고 있는 스마트폰입니다.
유튜브나 넷플릭스를 볼 때 스마트폰을 가로로 눕히면 화면이 자동으로 회전하는 것을 경험하셨을 겁니다. 이것은 기기 내부에 탑재된 센서가 중력의 방향 변화를 감지하여 화면 방향을 전환해 주는 것입니다. 또한, 사용자의 흔들림 패턴을 가속도 센서가 분석하여 하루 동안의 걸음 수를 측정하는 만보기 기능도 수행합니다.
하늘을 나는 드론(Drone)에게 이 센서는 생명줄과도 같습니다. 드론이 공중에서 돌풍을 맞아도 뒤집히지 않고 수평을 완벽하게 유지할 수 있는 이유는 자이로스코프 센서가 기체의 기울어짐을 1초에도 수백 번씩 측정하여 모터의 회전 속도를 보정해 주기 때문입니다.
이 외에도 자동차의 차체 자세 제어 장치(ESC), 게임기의 모션 컨트롤러, 가상현실(VR) 기기의 헤드 트래킹 등 움직임과 균형을 제어해야 하는 거의 모든 첨단 장치에 사용되고 있습니다.
이제 본격적으로 아두이노 코딩을 통해 MPU-6050 센서의 값을 읽어보겠습니다.
[ 실습 준비물 ]
본 실습을 위해 아래의 전자 부품들이 필요합니다.
| 품목명 |
|---|
| 아두이노 우노 보드 (Arduino Uno) |
| 가속도·자이로 6축 센서모듈 (MPU-6050) |
| 수/수, 수/암 점퍼 케이블 |
| 회로 테스트용 브레드보드 |


MPU-6050 센서는 아두이노와 I2C(Inter-Integrated Circuit) 통신 방식을 사용하여 단 4가닥의 선만으로 데이터를 주고받습니다.
센서의 복잡한 통신 규약을 쉽게 다루기 위해 외부 라이브러리를 사용합니다.


아두이노 IDE(통합 개발 환경) 상단 메뉴에서 스케치 > 라이브러리 포함하기 > 라이브러리 관리를 클릭합니다. 라이브러리 매니저 검색창에 Adafruit MPU6050과 Adafruit Unified Sensor를 차례로 검색하여 최신 버전으로 설치해 줍니다.

코드 업로드 후 데이터를 원활하게 확인하기 위해, 시리얼 모니터 창을 열고 우측 하단의 통신 속도(Baud Rate)를 115200 baud로 변경해 주어야 외계어처럼 문자가 깨지는 현상을 막을 수 있습니다.
아래의 코드를 복사하여 아두이노 IDE에 붙여넣기 한 후 보드에 업로드합니다.
코드를 업로드한 뒤 브레드보드에 꽂힌 자이로 센서 모듈을 손으로 잡고 좌우로 기울이거나 빠르게 회전시켜 보세요. 시리얼 모니터에 출력되는 X, Y, Z 축의 가속도 값과 각속도 값이 움직임에 따라 즉각적으로 변하는 것을 눈으로 직접 확인할 수 있습니다.
이 기초적인 센서 데이터를 응용하여 모터를 제어하는 코드를 추가한다면, 스스로 균형을 잡는 밸런싱 로봇이나 나만의 RC 비행기를 만들어 볼 수도 있겠죠? 전자회로와 코딩의 세계는 아이디어만 있다면 무궁무진하게 확장될 수 있습니다!
해당 프로젝트에서 나온 상품은 아래에서 확인가능합니다 ▼