2024-4-12 18:29:33 [显示全部楼层]
145浏览
查看: 145|回复: 0

[ESP8266/ESP32] FireBeetle 2 ESP32 C6 Arduino 驱动BMI160 获取陀螺仪值

[复制链接]
本帖最后由 5oliuLt0 于 2024-4-12 18:30 编辑

FireBeetle 2 ESP32 C6 拿到手也有一段时间了, 手上有一块带BMI160 的扩展板子,可以验证相关参数;
硬件扩展板子为Infineon CY8CKIT-028-TFT; 板载资源还是比较丰富,包括
1、2.4寸 240*320  8080 接口的LCD 屏;
2、BMI160 三轴加速度+三轴陀螺仪;
3、PDM 接口的PDM MIC
4、I2S 接口的Audio CODEC
FireBeetle 2 ESP32 C6  Arduino 驱动BMI160 获取陀螺仪值图1


本次验证BMI160 ;

FireBeetle 2 ESP32 C6  Arduino 驱动BMI160 获取陀螺仪值图2

扩展包为I2C 接口模式;
直接采用BMI160 库文件;
  1. #include <BMI160Gen.h>
  2. const int select_pin = 10;
  3. const int i2c_addr = 0x68;
  4. void setup() {
  5.   Serial1.begin(115200); // initialize Serial communication
  6.   // initialize device
  7.   Serial1.println("Initializing IMU device...");
  8.   //BMI160.begin(BMI160GenClass::SPI_MODE, /* SS pin# = */10);
  9.   BMI160.begin(BMI160GenClass::I2C_MODE);
  10.   uint8_t dev_id = BMI160.getDeviceID();
  11.   Serial1.print("DEVICE ID: ");
  12.   Serial1.println(dev_id, HEX);
  13.    // Set the accelerometer range to 250 degrees/second
  14.   BMI160.setGyroRange(250);
  15.   Serial1.println("Initializing IMU device...done.");
  16. }
  17. void loop() {
  18.   int gxRaw, gyRaw, gzRaw;         // raw gyro values
  19.   float gx, gy, gz;
  20.   // read raw gyro measurements from device
  21.   BMI160.readGyro(gxRaw, gyRaw, gzRaw);
  22.   // convert the raw gyro data to degrees/second
  23.   gx = convertRawGyro(gxRaw);
  24.   gy = convertRawGyro(gyRaw);
  25.   gz = convertRawGyro(gzRaw);
  26.   // display tab-separated gyro x/y/z values
  27.   Serial1.print("g:\t");
  28.   Serial1.print(gx);
  29.   Serial1.print("\t");
  30.   Serial1.print(gy);
  31.   Serial1.print("\t");
  32.   Serial1.print(gz);
  33.   Serial1.println();
  34.   delay(500);
  35. }
  36. float convertRawGyro(int gRaw) {
  37.   // since we are using 250 degrees/seconds range
  38.   // -250 maps to a raw value of -32768
  39.   // +250 maps to a raw value of 32767
  40.   float g = (gRaw * 250.0) / 32768.0;
  41.   return g;
  42. }
复制代码
添加代码,编译,下载输出;
FireBeetle 2 ESP32 C6  Arduino 驱动BMI160 获取陀螺仪值图3
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail