IMU 측정, 커맨드 및 응답 추가
This commit is contained in:
@@ -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__ */
|
||||
Reference in New Issue
Block a user