- ESP32-C3 기반 IMU (MPU6050/9250) 센서 노드 시스템
- MPU6050 내부 DMP (Digital Motion Processor) 활용 쿼터니언 (Quaternion) 데이터 추출
- WiFi 연결 후 타겟 PC(서버)로 센서 데이터 UDP 실시간 전송
graph TD
ESP["ESP32-C3 (Client)"]
IMU["MPU6050/9250 (Sensor)"]
PC["Target PC (Server)"]
IMU -- "I2C (SDA: 21, SCL: 22)" --> ESP
ESP -- "UDP 패킷 전송 (Port: 4210)" --> PC
- MCU: ESP32-C3 (esp32-c3-devkitm-1)
- 센서: MPU6050 / GY-9250
- 핀 연결 (
include/Config.h기준): 3.3V↔VCCGND↔GND(AD0 핀 포함 GND 연결, I2C 주소 0x68 할당)GPIO 21↔I2C SDAGPIO 22↔I2C SCL
- 개발 환경: VSCode, PlatformIO
- 프레임워크: Arduino
- 주요 라이브러리:
electroniccats/MPU6050 @ ^1.0.0 - 라이선스: MIT License
include/: 프로젝트 공유용 헤더 파일 (Config.h,Network.h,Sensor.h,MadgwickFilters.h등) 위치src/: 메인 비즈니스 로직 소스 코드 (main.cpp,Network.cpp,Sensor.cpp등) 위치lib/: 프로젝트 종속 커스텀 정적 라이브러리 보관test/: 유닛 테스트(Unit Testing) 및 PlatformIO Test Runner 코드 보관legacy/: 이전 구동 테스트(WiFi 연결 테스트, 레지스터 직접 제어 방식 등) 백업 코드 보관
- 통신 방식: UDP (바이너리 스트림 전송)
- 패킷 구조 (
SensorPacket,#pragma pack적용): id(int): 센서 노드 식별자w,x,y,z(float): 추출된 쿼터니언 값