完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
` 做了个小四轴无人机,定位就是学习无人机硬件组成及飞控算法,使用的都是常用的IC和控制算法。源代码设计的初终是模块化、无缝移植化、结构清晰化,稍加修改即可移植到其它处理器平台。其它部分还是看附件文档及源代码学习吧。
基本参数: 1) 处理器:STM32F103RET6/512K ROM/64K RAM 2) 加/角速度:MPU6050 3) 气压计:BMP180 4) 通讯方式:WIFI(ESP8266)、蓝牙(HC-05)、2.4G射频(NRF24L01+) 5) 电机:8520空心杯 6) 电池:850mA锂电池 7) 遥控器:10K高精度遥杆、1.8寸TFT彩色液晶显示屏 8) 滤波算法:滑动平均、限幅 9) 姿态解算:默认卡尔曼,可通过地面站配置为一阶、二阶、四元数。 10) PID算法:串行PID控制算法 11) GPS:当前V1.0版本暂不支持 12) 图传:当前V1.0版本暂不支持 13) CREELINKS无人机交流群:623083844 无人机特点: 1) 开源所有的源代码及原理图(PCB暂不开源) 2) 支持代码无缝移植到其它平台 3) 支持WIFI方式连接地面站 4) 支持WIFI方式连接手机 5) 支持WIFI方式连接遥控器 6) 支持通过地面站配置PID参数及滤波参数 7) 支持通过地面站观察参数波形 8) 遥控器支持WIFI、蓝牙、2.4G射频三种通讯方式 /** * @brief CREELINKS平台主入口函数(裸奔) * @return 0 */ int main(void) { ceSystemOp.initial(); //Creelinks环境初始化 ceDebugOp.initial(Uart4); //通过Uart串口输出Debug信息到上位机 //TODO:请在此处插入模块初始化等操作 initialParment(); //结构体的参数初始化 initialModule(); //初始化所有功能模块 while (1) { ceTaskOp.mainTask(); //Creelinks环境主循环任务,请保证此函数能够被周期调用 //TODO:请在此处插入用户操作 acc = ce6DofOp.getAcceleration(&ce6Dof); //获取当前无人机加速度 gyr = ce6DofOp.getGyroscope(&ce6Dof); //获取当前无人机角速度 ceEnvirmont = ceBmp180Op.getEnvironmentAsync(&ceBmp180);//获取当前无人机大气压相关数据 ceNowAcc.x = acc->x ; //转存加速度数据 ceNowAcc.y = acc->y ; ceNowAcc.z = acc->z ; ceNowGyr.x = -gyr->x; //转存角速度数据 ceNowGyr.y = gyr->y; ceNowGyr.z = gyr->z; ceNowAngles.altitude = ceEnvirmont->altitude;//当前高度暂存 ceFilterOp.filter(&ceNowAcc,&ceNowGyr,&ceNowAngles,dtS); //对当前加速度、当前角速度进行姿态解析及滤波,以获取无人机姿态角数据,注:会将计算结果更新到三个指针参数所指内容。 ceDrivePower = cePIDOp.calculate(&ceNowAcc, &ceNowGyr, &ceNowAngles, &ceHopeAngles,dtS); //根据当前加速度及角速度、姿态角、还有期望姿态进行串级PID运算,并获得四个电机的驱动强度 ceMDOp.setDriverPower(&ceMD0,(uavStatus != UAV_STATUS_READY)? (ceDrivePower->driverPower0):0); //配置第0路电机驱动强度,0~1000 ceMDOp.setDriverPower(&ceMD1,(uavStatus != UAV_STATUS_READY)? (ceDrivePower->driverPower1):0); //配置第1路电机驱动强度,0~1000 ceMDOp.setDriverPower(&ceMD2,(uavStatus != UAV_STATUS_READY)? (ceDrivePower->driverPower2):0); //配置第2路电机驱动强度,0~1000 ceMDOp.setDriverPower(&ceMD3,(uavStatus != UAV_STATUS_READY)? (ceDrivePower->driverPower3):0); //配置第3路电机驱动强度,0~1000 sendStatusToCtl(); //整合当前数据,并发送给控制端 checkConnectStatus(); //检测连接是否断开,如果断开,无人机姿态规中并缓慢下降 calSystemRunCycle(); //计算程序执行周期时间 checkTurnOver(); //检测无人机是否翻机,如果是则关闭电机输出,以保护MOS管及电机 }; }
地面站源代码 V1.0.7z
(545.89 KB, 下载次数: 151
)
无人机源代码 V1.0.7z
(1.47 MB, 下载次数: 259
)
原理图及PCB V1.0.7z
(620.64 KB, 下载次数: 222
)
CREELINKS开源无人机教程01:无人机历史背景及发展现况 V1.0.pdf
(690.81 KB, 下载次数: 47
)
CREELINKS开源无人机教程05:无人机硬件框架设计 V1.0.pdf
(338.34 KB, 下载次数: 84
)
CREELINKS开源无人机教程06:无人机软件框架设计 V1.0.pdf
(551.02 KB, 下载次数: 69
)
CREELINKS开源无人机教程17:无人机串级PID功能详解 V1.0.pdf
(275.56 KB, 下载次数: 82
)
CREELINKS开源无人机教程22:无人机飞行指导手册 V1.0.pdf
(604.53 KB, 下载次数: 43
)
CREELINKS开源无人机教程23:代码移植及二次开发指南 V1.0.pdf
(366.91 KB, 下载次数: 106
)
CREELINKS开源无人机教程25:小四轴无人机调试过程中的那些坑 V1.0.pdf
(222.06 KB, 下载次数: 69
)
CREELINKS开源无人机教程28:数据打包及解包操作 V1.0.pdf
(313.1 KB, 下载次数: 64
)
`
|
|
|
相关推荐
|
|
|
学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习
|
|
|
|
|
|
|
|
|
资料齐全
,赞,赞,赞,赞,赞,赞,赞,赞,赞,赞
|
|
|
|
|
|
|
|
470 浏览 0 评论
532 浏览 0 评论
660 浏览 0 评论
822 浏览 0 评论
RT-Thread与英飞凌(infineon)合作得板子PSOC 6 板子学习
758 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
17026 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-13 02:57 , Processed in 1.025294 second(s), Total 99, Slave 80 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖