275891381
发表于 2018-1-27 13:15:42
野子yz 发表于 2018-1-27 11:46
请问一下,那个串口显示曲线的软件咋用的?
你百度一下就有了
野子yz
发表于 2018-1-27 16:02:08
275891381 发表于 2018-1-27 13:15
你百度一下就有了
好的,谢谢
topdog
发表于 2018-1-30 20:00:09
非常好的教程
jhwu999
发表于 2018-3-12 11:25:36
楼主 您好,请问需要修改mpu6050的量程,要怎么修改?百度找的都是给寄存器地址什么0,1,2,3代表2g,4g,8g,16g,不明白是i什么意思,请问代码要怎么写?就是单单修改量程的?
275891381
发表于 2018-3-13 09:27:37
本帖最后由 275891381 于 2018-3-13 09:29 编辑
jhwu999 发表于 2018-3-12 11:25
楼主 您好,请问需要修改mpu6050的量程,要怎么修改?百度找的都是给寄存器地址什么0,1,2,3代表2g,4g,8g ...
帖子里面写了呀FS_SEL改变就可以了
void MPU6050::initialize() {
setClockSource(MPU6050_CLOCK_PLL_XGYRO);
setFullScaleGyroRange(MPU6050_GYRO_FS_250);
setFullScaleAccelRange(MPU6050_ACCEL_FS_2);
setSleepEnabled(false); // thanks to Jack Elston for pointing this one out!
}
jhwu999
发表于 2018-3-18 15:52:44
275891381 发表于 2018-3-13 09:27
帖子里面写了呀FS_SEL改变就可以了
void MPU6050::initialize() {
但是这个要怎么申明啊?你看我错误!
sketch_sanzhouduqu:25: error: 'setFullScaleAccelRange' was not declared in this scope
setFullScaleAccelRange(MPU6050_ACCEL_FS_2);
jhwu999
发表于 2018-3-18 17:09:04
jhwu999 发表于 2018-3-18 15:52
但是这个要怎么申明啊?你看我错误!
sketch_sanzhouduqu:25: error: 'setFullScaleAccelRange' was not ...
而且我在帖子里面也没有看到这几行代码?还烦请楼主帮忙解答一下啊
275891381
发表于 2018-3-19 16:19:06
jhwu999 发表于 2018-3-18 15:52
但是这个要怎么申明啊?你看我错误!
sketch_sanzhouduqu:25: error: 'setFullScaleAccelRange' was not ...
#define MPU6050_GYRO_FS_250 0x00
#define MPU6050_GYRO_FS_500 0x01
#define MPU6050_GYRO_FS_1000 0x02
#define MPU6050_GYRO_FS_2000 0x03
#define MPU6050_ACONFIG_XA_ST_BIT 7
#define MPU6050_ACONFIG_YA_ST_BIT 6
#define MPU6050_ACONFIG_ZA_ST_BIT 5
#define MPU6050_ACONFIG_AFS_SEL_BIT 4
#define MPU6050_ACONFIG_AFS_SEL_LENGTH 2
#define MPU6050_ACONFIG_ACCEL_HPF_BIT 2
#define MPU6050_ACONFIG_ACCEL_HPF_LENGTH 3
#define MPU6050_ACCEL_FS_2 0x00
#define MPU6050_ACCEL_FS_4 0x01
#define MPU6050_ACCEL_FS_8 0x02
#define MPU6050_ACCEL_FS_16 0x03
头文件有定义,.cpp里面有代码,改就可以了
jhwu999
发表于 2018-3-20 10:16:20
275891381 发表于 2018-3-19 16:19
#define MPU6050_GYRO_FS_250 0x00
#define MPU6050_GYRO_FS_500 0x01
#define MPU6 ...
#include <I2Cdev.h>
#include <MPU6050.h>
#include <Wire.h>
MPU6050 accelgyro;
int16_t ax,ay,az;
int16_t gx,gy,gz;
//float ax_pianyi,ay_pianyi,az_pianyi; //加速度计偏移量
//float gx_pianyi,gy_pianyi,gz_pianyi; //陀螺仪偏移量
float ax_pianyi=739; //由500组原始数据得出的系统原始偏移误差
float ay_pianyi=386;
float az_pianyi=892;
float gx_pianyi=-372;
float gy_pianyi=162;
float gz_pianyi=118;
bool blinkstate=false;
void setup()
{
Wire.begin();
Serial.begin(9600);
accelgyro.initialize();
// setFullScaleGyroRange(MPU6050_GYRO_FS_250);
//setFullScaleAccelRange(MPU6050_ACCEL_FS_2);
// uint8_t getFullScaleAccelRange();
// void setFullScaleAccelRange(uint8_t 8);
/*unsigned short times = 200; //采样次数
for(int i=0;i<times;i++)
{
accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); //读取六轴原始数值
ax_pianyi += ax; ay_pianyi += ay; az_pianyi += az; //采样和
gx_pianyi += gx; gy_pianyi += gy; gz_pianyi += gz;
}
ax_pianyi /= times; ay_pianyi /= times; az_pianyi /= times; //计算加速度计偏移
gx_pianyi /= times; gy_pianyi /= times; gz_pianyi /= times; //计算陀螺仪偏移 */
}
void loop()
{
accelgyro.getMotion6(&ax,&ay,&az,&gx,&gy,&gz);
ax=ax-ax_pianyi;
ay=ay-ay_pianyi;
az=az-az_pianyi;
gx=gx-gx_pianyi;
gy=gy-gy_pianyi;
gz=gz-gz_pianyi;
/*Serial.print(ax-ax_pianyi);Serial.print(" ");
Serial.print(ay-ay_pianyi);Serial.print(" ");
Serial.print(az-az_pianyi);Serial.print(" ");
Serial.print(gx-gx_pianyi);Serial.print(" ");
Serial.print(gy-gy_pianyi);Serial.print(" ");
Serial.print(gz-gz_pianyi);Serial.print("\n");*/
Serial.print(ax);Serial.print(" ");
Serial.print(ay);Serial.print(" ");
Serial.print(az);Serial.print(" ");
Serial.print(gx);Serial.print(" ");
Serial.print(gy);Serial.print(" ");
Serial.print(gz);Serial.print("\n");
blinkstate=!blinkstate;
delay(100);
//Serial.print("\n");
}
以上是我的代码,请问要怎么改啊?真的不知道这个要怎么实现,在这里卡了很久了。我在头文件里面把量程的2改成8,但是传感器在静止时候,还是输出16384左右,也就是还是2g的量程,没有变化啊
275891381
发表于 2018-3-20 21:23:36
jhwu999 发表于 2018-3-20 10:16
#include
#include
#include
删掉 accelgyro.initialize();
添加:
accelgyro.setClockSource(MPU6050_CLOCK_PLL_XGYRO);
accelgyro.setFullScaleGyroRange(MPU6050_GYRO_FS_500);//角速度
accelgyro.setFullScaleAccelRange(MPU6050_ACCEL_FS_4);//加速度
accelgyro.setSleepEnabled(false);
试试
jhwu999
发表于 2018-3-21 14:10:31
275891381 发表于 2018-3-20 21:23
删掉 accelgyro.initialize();
添加:
哇,谢谢楼主,终于可以了。真的感谢!!!卡了这么久的问题解决了,谢谢谢谢!!!!!
275891381
发表于 2018-3-21 14:47:34
jhwu999 发表于 2018-3-21 14:10
哇,谢谢楼主,终于可以了。真的感谢!!!卡了这么久的问题解决了,谢谢谢谢!!!!!
要改别的幅值就按头文件或者之前给你的回复改就可以了
HX711学习者
发表于 2018-6-7 00:54:15
我是新人,这学期才接触单片机,表示会用你的,但不懂,拿走了,谢谢
我正研究DIY无人机
HX711学习者
发表于 2018-6-7 00:56:49
能解释下其它的角 角速度怎么算的吗?
无人机要用到3轴
Chase_998
发表于 2018-11-5 10:13:29
mark 感谢分享
页:
1
2
3
4
5
6
7
8
9
[10]
11