CoCube传感器MPU6050笔记

news/2024/11/24 11:48:08/

参考:

输出x,y,z角度信息:

#include <MPU6050_tockn.h>
#include <Wire.h>MPU6050 mpu6050(Wire);void setup() {Serial.begin(9600);Wire.begin();mpu6050.begin();mpu6050.calcGyroOffsets(true);
}void loop() {mpu6050.update();Serial.print("angleX : ");Serial.print(mpu6050.getAngleX());Serial.print("\tangleY : ");Serial.print(mpu6050.getAngleY());Serial.print("\tangleZ : ");Serial.println(mpu6050.getAngleZ());
}

效果如下:


发送到ROS绘制曲线或做其他用途的,晚些时候补充。

CoCube显示测试笔记

结合这一篇,使用CoCube自带显示进行姿态反馈?

再补充一个全部信息:


#include <MPU6050_tockn.h>
#include <Wire.h>MPU6050 mpu6050(Wire);long timer = 0;void setup() {Serial.begin(9600);Wire.begin();mpu6050.begin();mpu6050.calcGyroOffsets(true);
}void loop() {mpu6050.update();if(millis() - timer > 1000){Serial.println("=======================================================");Serial.print("temp : ");Serial.println(mpu6050.getTemp());Serial.print("accX : ");Serial.print(mpu6050.getAccX());Serial.print("\taccY : ");Serial.print(mpu6050.getAccY());Serial.print("\taccZ : ");Serial.println(mpu6050.getAccZ());Serial.print("gyroX : ");Serial.print(mpu6050.getGyroX());Serial.print("\tgyroY : ");Serial.print(mpu6050.getGyroY());Serial.print("\tgyroZ : ");Serial.println(mpu6050.getGyroZ());Serial.print("accAngleX : ");Serial.print(mpu6050.getAccAngleX());Serial.print("\taccAngleY : ");Serial.println(mpu6050.getAccAngleY());Serial.print("gyroAngleX : ");Serial.print(mpu6050.getGyroAngleX());Serial.print("\tgyroAngleY : ");Serial.print(mpu6050.getGyroAngleY());Serial.print("\tgyroAngleZ : ");Serial.println(mpu6050.getGyroAngleZ());Serial.print("angleX : ");Serial.print(mpu6050.getAngleX());Serial.print("\tangleY : ");Serial.print(mpu6050.getAngleY());Serial.print("\tangleZ : ");Serial.println(mpu6050.getAngleZ());Serial.println("=======================================================\n");timer = millis();}}

程序简洁,应该直接能看懂,不需要赘述。 


结合角度信息给显示赋值。


#include <MPU6050_tockn.h>
#include <Wire.h>
#include <Adafruit_NeoPixel.h>

// Which pin on the Arduino is connected to the NeoPixels?
#define PIN       16 // On Trinket or Gemma, suggest changing this to 1

// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 64 // Popular NeoPixel ring 

MPU6050 mpu6050(Wire);
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

unsigned char DELAYVAL=1; // Time (in milliseconds) to pause between pixels

void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu6050.begin();
  mpu6050.calcGyroOffsets(true);
  pixels.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
}

void loop() {
  mpu6050.update();
//  Serial.print("angleX : ");
//  Serial.print(mpu6050.getAngleX());
//  Serial.print("\tangleY : ");
//  Serial.print(mpu6050.getAngleY());
//  Serial.print("\tangleZ : ");
//  Serial.println(mpu6050.getAngleZ());
  
  for(int i=0; i<NUMPIXELS; i++) { // For each pixel...
    pixels.setPixelColor(i, pixels.Color(16*(abs(mpu6050.getAngleX())/180.0), 16*(abs(mpu6050.getAngleY())/180.0), 16*(abs(mpu6050.getAngleZ())/180.0)));
    pixels.show();   // Send the updated pixel colors to the hardware.
//    delay(DELAYVAL); // Pause before next pass through loop
  }
}


补充:

MPU-6000(6050)的角速度全格感测范围为±250、±500、±1000与±2000°/sec (dps),可准确追踪快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g±8g与±16g。产品传输可透过最高至400kHz的IIC或最高达20MHz的SPI(MPU-6050没有SPI)。MPU-6000可在不同电压下工作,VDD供电电压介为2.5V±5%、3.0V±5%或3.3V±5%,逻辑接口VDDIO供电为1.8V± 5%(MPU6000仅用VDD)。MPU-6000的包装尺寸4x4x0.9mm(QFN),在业界是革命性的尺寸。其他的特征包含内建的温度感测器、包含在运作环境中仅有±1%变动的振荡器。

NeoPixels也被称为WS2812 LED彩带,是连接在一起的全彩色led灯串。你可以设置他它们的红色,绿色和蓝色值, 在0到255之间。neopixel模块可通过精确的时间控制,生成WS2812控制信号。


 


http://www.ppmy.cn/news/527520.html

相关文章

Khadas VIM3 (Amlogic A311D) uboot去掉烦人的乱七八糟的打印1——BL2 BL3x

BL2 BL30 BL31 DDRFW改造串口静默 BL2拖到IDA64&#xff0c;以ARM LittleEndian 64bit反汇编&#xff0c;很轻易的找到puts putchar函数&#xff0c; ROM:000000000000B4B8 putchar ; CODE XREF: sub_613428↑p ROM:…

linux3.4.0 按键驱动程序分析(pandaboard omap4460)

linux3.4.0 按键驱动程序分析&#xff08;pandaboard omap4460&#xff09; 在内核中&#xff0c;按键的驱动程序已经设计好了&#xff0c;要使自己板上的按键工作起来&#xff0c;需要做的是在相应的文件中添加硬件信息&#xff0c;然后对内核进行正确的配置。 以下先使按键工…

STM32HAL库驱动MPU6050

STM32HAL库驱动MPU6050 STM32CubeMX配置 System Core->RCC->HSE->Crystal/Ceramic Resonator System Core->SYS->Debug->Serial Wire Connectivity->I2C1->I2C->I2C 这里使用PB6/PB7分别作为IIC1的SCL时钟线/SDA数据线&#xff0c;可以分别设置…

异核通信框架(1)——SMP和AMP架构

0.前言 我是菜鸡&#xff0c;很久没有发表文章了。老样子&#xff0c;今天推荐一本书《局外人》。别像主人公似的认为任何事情都没有意义。 目录 1. SMP和 AMP架构 1.1 同构和异构 1.1.1 同构 1.1.2 异构 1.2 SMP和AMP 1.2.1 对称多处理结构(SMP) 1.2.2 非对称多处理…

OPC DA的DCom配置

目录 一、OPC DA的Dcom配置文档 1.1、OPCDA的DCOM配置PDF文档下载 1.2、DCOM在线参考配置&#xff08;英文版&#xff09; 二、配置OPC DA准备内容 2.1、说明 2.2、OPC运行库 三、配置OPC DA操作流程 3.1、创建用户并赋予访问权限 3.2、修改操作系统 Firewall&#xf…

STM32 HAL库编写MPU6050输出六轴原始数据, 移植DMP输出自身姿态角,欧拉角

--------------------------------------------------------- 记录自学过程 ------------------------------------------------------------- 可能有些说明不对的地方&#xff0c;请大家提出来&#xff0c;共同解决 .共同学习 .共同进步. | 程序链接(主函数读取版) | 程序链接…

六轴加速陀螺仪MPU6500/MPU6050使用及DMP库移植,含记步器功能

本篇博客为博主学习使用MPU6500完成后的学习记录&#xff0c;故在这只做主要讲解&#xff0c;如有博友看完后仍不知如何使用&#xff0c;可在下方留言问我&#xff0c;或发邮件问我&#xff08;dayou1024qq.com&#xff09;&#xff0c;因邮件有QQ和微信提示&#xff0c;故我能…

hdl_graph_slam三维激光雷达+GPS+IMU+ODOM

系统ubuntu16.04 源代码位置参考&#xff1a;https://github.com/koide3/hdl_graph_slam 知乎里的算法解析说的很详细&#xff1a;https://zhuanlan.zhihu.com/p/89014435 hdl_graph_slam是由日本风桥科技大学的Kenji Koide在github上开源的六自由度三维激光SLAM算法。主要由…