完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
1、前言
前面两次我们成功的将PPM信号的读取、储存和油门处理完成了,这次我们要开始真正的控制无人机,首先我们要了解无人机前后,左右,旋转,升降的原理。 2、动作原理 引用:https://blog.csdn.net/weixin_35703797/article/details/52072105 我觉得他的博客讲的非常清晰,大家可以阅读以下。 我直接使用博主的结论: *1号电机(前左)= 悬停油门 + 右倾的量 - 前飞的量 - 旋转的量 *2号电机(前右)= 悬停油门 - 右倾的量 - 前飞的量 + 旋转的量 *3号电机(后左)= 悬停油门 + 右倾的量 + 前飞的量 + 旋转的量 *4号电机(后右)= 悬停油门 - 右倾的量 + 前飞的量 - 旋转的量 3、程序设计 这里我预先加入了上锁解锁模式 /*****************************用于处理遥控器的命令和PID输出的综合控制程序********************************** *2021.2.17 完成没有PID干预的遥控器四通道(前后,左右,油门,转向)的综合控制,采用数据帧不排序直接处理 * * * * *1号电机(前左)= 悬停油门 + 右倾的量 - 前飞的量 - 旋转的量 *2号电机(前右)= 悬停油门 - 右倾的量 - 前飞的量 + 旋转的量 *3号电机(后左)= 悬停油门 + 右倾的量 + 前飞的量 + 旋转的量 *4号电机(后右)= 悬停油门 - 右倾的量 + 前飞的量 - 旋转的量 **************/ /** * 功能:将处理的数据控制电机 * 入口参数: * 返回值: */ void DataOutput_ToMOT(uint8_t rc_lock) { if(rc_lock == 0)//已解锁 { Rc.mot1 = Rc.THROTTLE+((int)Rc.ROLL-1500)-((int)Rc.PITCH-1500)-((int)Rc.YAW-1500); Rc.mot2 = Rc.THROTTLE-((int)Rc.ROLL-1500)-((int)Rc.PITCH-1500)+((int)Rc.YAW-1500); Rc.mot3 = Rc.THROTTLE+((int)Rc.ROLL-1500)+((int)Rc.PITCH-1500)+((int)Rc.YAW-1500); Rc.mot4 = Rc.THROTTLE-((int)Rc.ROLL-1500)+((int)Rc.PITCH-1500)-((int)Rc.YAW-1500); } else { Rc.mot1=0; Rc.mot2=0; Rc.mot3=0; Rc.mot4=0; } MOT_Control(Rc.mot1,Rc.mot2,Rc.mot3,Rc.mot4); } 其实非常简单,MOT_Control就是我在stm32基础篇的PWM驱动无刷电机中使用的程序,只需要将处理好的数据写入电机对应的定时器即可。 这里我预留了一个全局变量rc_lock(0,解锁;1,上锁),我现在直接软件设定为0,默认解锁模式,后面我们为了安全,可以将rc_lock通过遥控器控制改变。比如辅助通道1接收到信号,rc_lock=0,再一次=1,之类的都可以。 4、总结 PPM信号控制无人机非常重要,我们要确保数据正确,及时。只有这样后期的PID才能正常发挥作用。所以PPM信号一定要正确。这就是我为什么将接收PPM信号设计为5Hz的原因,就像,PPM信号没有不要紧,顶多就是动作多做一会儿,有PID在把关,不会出现很大错误,但为了追求速度而导致PPM信号出错,炸机是小事,炸到人就是大事了。 |
|
|
|
只有小组成员才能发言,加入小组>>
2388 浏览 0 评论
8918 浏览 4 评论
36496 浏览 19 评论
4986 浏览 0 评论
24319 浏览 34 评论
1379浏览 2评论
1633浏览 1评论
2022浏览 1评论
1445浏览 0评论
392浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 16:19 , Processed in 1.214687 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号