树梅派
python实验室
独学而无友,则孤陋寡闻
展开
-
树梅派linux编成,i2c读取mpu9250数据
最近刚买了块树梅派3b,打算重新玩下linux驱动等,正好身边有mpu9250模块,用来研究正好。操作环境:1.PC:FEDORA282.交叉编译环境3.树莓派3b,并且系统为linux4.mpu9250模块5.MotionSensorExample以上的第五点就是在github上的一份案例代码,修改一部分就可以用。main函数在main.c,lib–I2Cdev是i2c读取的一些...原创 2018-12-07 19:33:58 · 2296 阅读 · 1 评论 -
MPU6050初始化及数据过滤,滤波效果
接上一篇,这里说下树莓派飞控的硬件初始化以及过滤数据中的噪音。飞机在高速转动下,陀螺仪和加速度计由于噪音的存在,传递给解算姿态的数据也会有问题,导致解算姿态结果不理想。实验环境 树莓派,mpu6050,qmc5883l,接口都是使用IIC(建议都改过树莓派iic的传输速率,默认只有100k/s,速度不够快。代码初始化 6050的初始化不算难,主要设置陀螺仪,加速度计量程,采集频率等...原创 2019-08-07 22:51:23 · 3423 阅读 · 1 评论 -
树莓派飞控之心得体会整体模块和参数调试
螺旋桨刚拆下来,目前已经在调试PID,roll和pitch的自稳效果已经有成效,这大半年来的努力准备要飞起来了,在这里做刚总结。目前需要的硬件清单如下:MPU6050,QMC5833L,PCA9685,减震板,大疆电机4个,9450桨4个(建议多备),树莓派3b一个。sbus接受,遥控器配对。硬件说完了,代码框架如下。这里要非常感谢原子哥的开源代码和cleanflight的代码,目前最终的...原创 2019-07-25 23:06:49 · 2448 阅读 · 0 评论 -
树莓派I2C读写MPU6050不同方式效率对比
树莓派I2C读写MPU6050不同方式效率对比 近期在调整PID参数的时候,发现mpu6050滤波后的姿态严重滞后,查看该线程的周期时间,一次循环是16000us以上,频率才60多HZ,调整其他参数仍然无法优化达到自稳。想来单片机都可以做到很高的频率,其他前辈都能用树莓派做飞控,没理由我的树莓派运行效率这么慢。 对比了别人的MPU6050代码,我使用的是wiringpi这个库的i2c...原创 2019-06-26 21:34:23 · 1112 阅读 · 0 评论 -
# MPU6050之2阶低通滤波,滤波效果非常好
自从打算搞无人机之后,最终倒在了姿态的问题上,每次到了调参数PID,飞机都不稳。之后锁定了几个可能的因素,一是参数没做到最佳,二就是电机高转速下,6050受到震动的情况下,姿态乱了,导致PID无法做到最佳。 经过各种排查,试过各种减震,效果还是不明显,无意中接触了穿越机的F3飞控,经过实验,发现穿越机在没有做减震的情况下,输出的数据非常平滑,看了代码,6050输出...原创 2019-06-20 21:03:58 · 6226 阅读 · 9 评论 -
树莓派之PCA9685驱动无刷电机
最近开始做无刷电机的驱动方法,用PCA9685来做。关于该模块作用,大家百度下。使用的是I2C驱动。关于i2c驱动 关于I2C驱动,这里用的是wiringPi做进一步封装,I2C驱动的函数如下:#include <stdbool.h>int checkI2cDeviceIsExist(unsigned char devAddr);bool writeBy...原创 2019-05-29 18:36:37 · 5145 阅读 · 5 评论 -
树莓派飞控PID调节之XJB调
最近代码已经整理差不多,开始了漫长的调试,试图在电机转动的时候调节到平衡状态。遇到了飞机震动造成的姿态也随之起伏的问题。 看了下前辈的说法,是飞机共振。需要减震,需要滤波,关于滤波,用的是卡尔漫滤波,目前还没什么好方法解决。而且也不太懂原理。float pidUpdate(PidObject* pid, const float error){float output;...原创 2019-05-20 21:54:20 · 987 阅读 · 0 评论 -
树莓派之linux网络编程:socket非阻塞模式实现,方便调试PID
最近开始左pid调节了,多环串级PID,总共6个参数,每次都要改参数,重新启动太麻烦,于是计划用pythonGUI编程结合socket通信,做一个假单多pid调节。花了几天时间,功能实现了,虽然bug还不少,能用了。界面很简单,里面用到了python,tkinter,socket,多线程等库。由于socket默认是阻塞多,这里需要做成非阻塞的形式,才不至于等待数据多接收而等待,这样程序没有意义...原创 2019-04-22 22:19:06 · 463 阅读 · 0 评论 -
树莓派wifi连接路由器的设置方法
因为有时候要出差,带着树莓派又想着能在酒店继续玩,又不想带着网线。现在记录下来设置的方法。1树莓派系统:官方linux版本。2建议多带一条网线,如果WIFI实在连接不上,还可以做备选。3读卡器。原有的方法1在boot分区新建空ssh文件。2在boot分区新建wpa_supplicant.conf,并且写入以下内容ctrl_interface=/var/run/wpa_supplica...原创 2019-03-20 22:40:32 · 3755 阅读 · 1 评论 -
MPU6050单轴双浆姿态平衡PID调戏之姿态解算
最近看群里部分小伙伴对于6050如何计算姿态比较感兴趣,自己也想对这段时间的学习做个总结,这次来说说姿态计算的方法,其实还不懂其中数学原理,正好自己也当作学习。解算姿态的前提一定要确认MPU6050的加速度计:AX, AY, AZ,陀螺仪:GX, GY, GZ的数据没有问题。比如一下几种:1.初始化后,静止平放的时候,数据跳变非常频繁,而且幅度比较大,例如:AX:100 100 100 1...原创 2019-03-10 18:36:55 · 1761 阅读 · 0 评论 -
MPU6050单轴双浆姿态平衡PID调戏之MPU6050初始化篇
这个其实是为了直观的观察PID的调节过程,因为本人对于数学并不擅长,又说PID是比较依赖经验,看着老外搭建了一个实验的设备,我也画了葫芦做了一个。以下是需要的设备介绍。需要的设备硬件介绍树莓派3bMPU6050PCA96852个有浆无刷电机(浆要两个不一样的,转的时候要抵消)编程平台树莓派运行官方Linux系统,编辑器用交叉编译工具(arm-linux-g++)。MPU60...原创 2019-03-03 11:30:37 · 3589 阅读 · 2 评论 -
单轴PID调节测试,距离做无人机又近了一步
经过几个星期的修改代码,单轴PID调节有点意思了。硬件:树莓派3bmpu6050pca9685无刷电机 X 2```struct PID{float kp; //< proportional gain调整比例参数float ki; //< integral gain调整积分参数float kd; //&l...原创 2019-01-27 21:52:36 · 481 阅读 · 3 评论 -
python之3D散点图,mpu9250获取的YAW,PITCH,ROLL做3D图
这段时间买了块数梅派,做了一个I2C驱动mpu9250的测试,成功输出了yaw,pitch,roll三个姿态角。但是鉴于不懂这数据是如何描述的,想来先看看用python坐下3D图试试。pitch是围绕X轴旋转,也叫做俯仰角。当X轴的正半轴位于过坐标原点的水平面之上(抬头)时,俯仰角为正,否则为负。yaw是围绕Y轴旋转,也叫偏航角。即机头右偏航为正,反之为负。roll是围绕Z轴旋转,也叫翻滚角...原创 2018-12-05 23:28:49 · 1962 阅读 · 0 评论 -
树莓派飞控之姿态解算流程与心得
树莓派飞控之姿态解算代码流程 写这篇的时候,目前飞机可以达到在60%的油门下,达到自稳的情况。但是无法悬停,计划把姿态解算相关的代码左下解读。欢迎交流。这里不做数学原理等推导,因为本人才疏学浅。实验环境飞控:树莓派传感器:mpu6050,qmc5883l。(都是iic接口驱动)。算法:9轴数据融合,转换4元数。最终使用ROLL,PITCH,YAW表示飞控的姿态。代码流程/* 传...原创 2019-08-06 13:46:31 · 1277 阅读 · 1 评论