IMU 측정, 커맨드 및 응답 추가

This commit is contained in:
geniushyun
2026-04-12 18:42:54 +09:00
parent 8dcf4adf31
commit 6ac0490263
7 changed files with 250 additions and 1 deletions
+36
View File
@@ -0,0 +1,36 @@
/*******************************************************************************
* @file imu_i2c.h
* @brief ICM42670P IMU 드라이버 (Zephyr I2C API)
*
* 기존 VesiScan-Basic(nRF5 SDK)의 imu_read_direct() 방식을 Zephyr로 포팅.
* 드라이버 API 없이 직접 I2C 레지스터 읽기/쓰기 방식 사용.
*
* 핀 배치:
* SCL: P1.14
* SDA: P1.15
* I2C 주소: 0x68
******************************************************************************/
#ifndef IMU_I2C_H__
#define IMU_I2C_H__
#include <stdint.h>
/**
* @brief IMU 초기화 — I2C 버스 준비 및 WHOAMI 확인
* @return 0 성공, 음수 에러
*/
int imu_init(void);
/**
* @brief IMU 1회 측정
*
* 센서 설정 → 전원 ON → 80ms 대기 → 12바이트 읽기 → 전원 OFF
*
* @param accel 가속도 XYZ (int16, ±4g, 100Hz)
* @param gyro 자이로 XYZ (int16, ±2000dps, 100Hz)
* @return 0 성공, 음수 에러
*/
int imu_read(int16_t accel[3], int16_t gyro[3]);
#endif /* IMU_I2C_H__ */