Hardware/ESP

ESP32-S3로 MPU-6050 센서 사용하기

초인로크 2023. 3. 12. 23:06
반응형

MPU-6050 센서를 ESP-WROOM-32로는 사용해 봤는데,

 

Espressif ESP32-S3-DevKitC-1 보드로는 사용해 본 적이 없어서

 

어떻게 사용하는가 자료를 찾아보는데,

 

인터넷에는 ESP32-S3으로 이용하는 샘플을 찾을 수가 없어서 좀 헤맸다.

 

 

 

 

아주 심플한 기본코드는 아래의 링크에 있는 코드인데,

 

ESP-WROOM-32로는 I2C 핀이 정해져 있어서 문제가 되지 않지만,

 

ESP32-S3에서는 핀을 내가 설정을 해 주어야 한다.

 

 

https://github.com/yash-sanghvi/ESP32/blob/master/MPU6050/MPU6050.ino

 

GitHub - yash-sanghvi/ESP32

Contribute to yash-sanghvi/ESP32 development by creating an account on GitHub.

github.com

 

 

따라서 아래의 예시와 같이 샘플코드에 약간 수정을 가해 줬다.

 

 

 

 

1. SDA, SCL 핀의 설정: 여기에서는 1번과 2번 핀을 사용하였다.

 

그리고 전원은 3.3V에 연결하였다.

 

int sda_pin = 2; 

int scl_pin = 1;

 

 

전체적인 결선은 아래의 표를 참고하길 바란다.

SDA SCL GND VCC
2번핀 1번핀 GND 3.3V

 

 

2. Wire.begin 에서 핀설정 대입: 21번과 22번은 ESP-WROOM-32의 설정이므로 수정해 준다.

Wire.begin(sda_pin, scl_pin, 1000000); // sda, scl

 

 

3. 소스코드의 수정: 아랫부분의 빨간색 부분이 원래는 [true]로 되어있는 것을 [false]로 고쳐줬다.

Wire.endTransmission(false);
Wire.requestFrom(MPU_ADDR, 14, true); // request a total of 14 registers

 

 

 

소스코드를 제대로 수정을 해 주고 선을 잘 연결했다면 아래와 같이 작동되는 것을 알 수 있다.

 

 

 

 

이 데이터를 Serial Plotter로 표시하면 아래와 같이 나온다.

 

이게 측정속도가 너무 빨라서 delay(50)을 넣어줬다.

 

 

 

 

데이터는 가속도 (X, Y, Z)와 자이로 (X, Y, Z)로 출력되어 나온다.

 

약간만 손봐주면 웬만한 샘플들은 ESP32-S3에 다 적용이 가능한 것 같다.

 

핀 설정도 마음대로 되고 이전보다 자유도가 훨씬 높아지는 것 같네.

 

이 시스템을 이용하면 제스처 인식 시스템 같은 것도 만들 수 있을 거 같다.

 

 

https://www.hackster.io/Yukio/gesture-classification-with-esp32-and-tinyml-dab252

 

Gesture Classification with Esp32 and TinyML

Classificate gestures using an Esp32, MPU6050 and Edge Impulse. By João Vitor Yukio Bordin Yamashita.

www.hackster.io

https://eloquentarduino.com/gesture-classification/

 

Gesture Classification

Classify accelerometer's data with blazing fast spectral features extraction

eloquentarduino.com

 

 

역시...

 

내가 생각하는건 세상 누군가가 해 놓은 게 많다.

 

연구에서 새로운 요소를 넣기가 힘들다..

 

 

반응형