0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

无人机设计中STM32库实现的模拟i2c代码

5RJg_mcuworld 来源:互联网 作者:佚名 2018-07-19 09:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

目前发现国内正儿八机器人无人机并且还能活跃地上网关注行业前沿动向、热爱写科普文章的研究人员原来越少。因此所有的研究回答里都没有人真正说明白无人机到底是什么,而理解无人机到底是什么才是回答这个问题的先决条件。

什么是无人机

首先,无人机就是不载人的飞行器,而说到飞行器,通常我们又可以把飞行器分为三类。

1、固定翼(fixed wing)。平时坐的波音747空客A380,还有F-16歼-15之类的都是固定翼飞机。顾名思义就是翅膀形状固定,靠流过机翼的风提供升力。动力系统包括桨和助推发动机。固定翼根据机翼尺寸的不同还有很多小的分类,在此不细说。固定翼飞行器的优点是在三类飞行器里续航时间最长、飞行效率最高、载荷最大,缺点是起飞的时候必须要助跑,降落的时候必须要滑行。

2、直升机(helicopter)。特点是靠一个或者两个主旋翼提供升力。如果只有一个主旋翼的话,还必须要有一个小的尾翼抵消主旋翼产生的自旋力。为了能往前后左右飞,主旋翼有极其复杂的机械结构,通过控制旋翼桨面的变化来调整升力的方向。动力系统包括发动机、整套复杂的桨调节系统、桨。直升机的优点是可以垂直起降,续航时间比较中庸,载荷也比较中庸。缺点是极其复杂的机械结构导致了比较高的维护成本。

3、多旋翼(multi-rotor)。四个或者更多个旋翼的直升机,也能垂直起降,但是通常只有直升机叫直升机,多旋翼就叫多旋翼,而不叫多旋翼直升机。四旋翼特别叫做quadrotor。多旋翼机械结构非常简单,动力系统只需要电机直接连桨就行。下图是直升机的动力系统结构,再下图是多旋翼的动力系统结构。不懂机械的人也能看出多旋翼简单得多。多旋翼的优点是机械简单,能垂直起降,缺点是续航时间最短,载荷也最小。

给大家介绍下四旋翼无人机,看看啥是真正的技术,吼吼吼......

1.i2c通信方式

因为我不是学电类专业,最开始对i2c这些是没有一点概念,最后通过Google了解了一些原理,然后发现STM32的开发库是带有i2c通信的相关函数的,但是我最后还是没有用这些函数。

我通过GPIO模拟i2c,这样也能获得mpu6050的数据,虽然代码多了一些,但是比较好的理解i2c的原理。

STM32库实现的模拟i2c代码(注释好像因为编码问题跪了):

2.PID控制算法

由于简单的线性控制不可能满足四轴飞行器这个灵敏的系统,引入PID控制器来更好的纠正系统。

简介:PID实指“比例proportional”、“积分integral”、“微分derivative”,这三项构成PID基本要素。每一项完成不同任务,对系统功能产生不同的影响。

以Pitch为例:

error为期望角减去实时角度得到的误差;

iState为积分i参数对应累积过去时间里的误差总和;

if语句限定iState范围,繁殖修正过度;

微分d参数为当前姿态减去上次姿态,估算当前速度(瞬间速度);

总调整量为p,i,d三者之和;

这样,P代表控制系统的响应速度,越大,响应越快。

I:用来累积过去时间内的误差,修正P无法达到的期望姿态值(静差);

D:加强对机体变化的快速响应,对P有抑制作用。

PID各参数的整定需要综合考虑控制系统的各个方面,才能达到最佳效果。

3.输出PWM信号

PID计算完成之后,便可以通过STM32自带的定时资源很容易的调制出四路pwm信号,采用的电调pwm格式为50Hz,高电平持续时间0.5ms-2.5ms;

我以1.0ms-2.0ms为每个电机的油门行程,这样,1ms的宽度均匀的对应电调的从最低到最高转速。

至此,一个用STM32和mpu6050搭建的飞控系统就算实现了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2313

    文章

    11191

    浏览量

    374603
  • 无人机
    +关注

    关注

    237

    文章

    11372

    浏览量

    196664
  • GPIO
    +关注

    关注

    16

    文章

    1333

    浏览量

    56444

原文标题:实例:用STM32单片机搞定四旋翼无人机飞控

文章出处:【微信号:mcuworld,微信公众号:嵌入式资讯精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    无人机抗风测试怎么做?能用到哪些设备?测试费用是多少?

    无人机在飞行过程,若遭遇强风,可能会导致无人机失控、飘移,甚至坠毁,造成财产损失甚至人身伤害。通过抗风测试,可以评估无人机在不同风速下的稳定性和可靠性,从而保障飞行的安全。同时,通过
    的头像 发表于 04-17 16:02 98次阅读
    <b class='flag-5'>无人机</b>抗风测试怎么做?能用到哪些设备?测试费用是多少?

    基于FPGA的I2C控制模块设计

    I2C_WRITE_WDATA.v模块实现I2C写时序,I2C_Controller (I2C控制器)例化了
    的头像 发表于 12-26 09:48 5934次阅读
    基于FPGA的<b class='flag-5'>I2C</b>控制模块设计

    陀螺仪在无人机的应用:无人机精准飞行的关键保障

    在当今无人机广泛应用的时代,从影视拍摄、测绘勘探到物流配送、农业植保,无人机已深度融入各个行业领域,为人们的生产生活带来极大便利。然而,在无人机飞行过程,保持 稳定、精准 的飞行姿态
    的头像 发表于 10-09 10:24 1071次阅读
    陀螺仪在<b class='flag-5'>无人机</b><b class='flag-5'>中</b>的应用:<b class='flag-5'>无人机</b>精准飞行的关键保障

    离轴技术:赋能无人机精准配送的核心芯片应用

    识别金属结构、高压线等障碍物的磁场特征,0.2 秒内就能触发避障,让无人机灵活躲开危险。 在城市物流无人机配送,离轴技术大显身手。某物流企业要实现 20 公里内精准投递,给
    发表于 09-05 16:32

    深入剖析I2C协议

    I2C是由Philips开发的简单的双向两线总线,在深入浅出理解SPI协议,我们区分了单工,半双工,全双工协议数据流向的区别,根据特征,I2C协议属于半双工协议(即同一时刻,数据单向流动)。此外
    的头像 发表于 08-21 15:10 3877次阅读
    深入剖析<b class='flag-5'>I2C</b>协议

    太阳光模拟器 | 在无人机老化测试的应用

    无人机技术飞速发展的当下,其户外作业环境复杂多变,长期暴露在阳光照射下,部件老化问题日益凸显,严重影响无人机的性能与寿命。紫创测控Luminbox专注于太阳光模拟器技术创新与精密光学测试系统开发
    的头像 发表于 08-20 18:02 1043次阅读
    太阳光<b class='flag-5'>模拟</b>器 | 在<b class='flag-5'>无人机</b>老化测试<b class='flag-5'>中</b>的应用

    见闻|日本公司用纸造军用无人机

    普通的无人机,它是一款可以完成军事任务的无人机设备。Airkamuy150Airkamuy150采用纸板组装,主要用于边境巡逻,自杀式攻击,军事训练用途。这款无人
    的头像 发表于 07-27 04:02 1671次阅读
    见闻|日本公司用纸造军用<b class='flag-5'>无人机</b>

    低空物流:无人机开启未来配送新篇章

    无可替代的社会价值。 展望未来,低空物流的潜力远不止于此。预计到2030年,无人机物流将在城市短距配送和中长距运输实现全面成熟,公共起降场、低空服务站等基础设施将遍地开花。无论是企业寻求降本增效,还是消费者追求更便捷的生活
    发表于 07-04 10:42

    STM32H7CubeMX配置硬件I2C,读写失败是什么问题呀?

    STM32H7CubeMX配置硬件I2C,读写失败什么问题呀,同样的操作F4和F1都能正常使用,应该不存在i2c地址错误,操作都是一样的,但H7就是用不了。I2C_WaitOnFlag
    发表于 06-12 06:21

    SPC574s如何使用SPC5Studio自带的I2C实现I2C通信?

    SPC574s并没有硬件I2C外设,可以使用SPC5Studio自带的SW I2C实现,但是由于SPC5Studio软件资料太少,I2C
    发表于 06-09 06:22

    使用 Betaflight 和树莓派实现 FPV 无人机自主飞行!

    开始利用Betaflight飞行控制器、简单的10个Python文件和树莓派,为你的FPV战斗无人机构建自己的自动驾驶仪。FPV无人机搭载树莓派在“KillHouse”机库飞行
    的头像 发表于 06-07 08:32 5387次阅读
    使用 Betaflight 和树莓派<b class='flag-5'>实现</b> FPV <b class='flag-5'>无人机</b>自主飞行!

    SPC574s如何使用SPC5Studio自带的I2C实现I2C通信?

    SPC574s并没有硬件I2C外设,可以使用SPC5Studio自带的SW I2C实现,但是由于SPC5Studio软件资料太少,I2C
    发表于 06-05 08:17

    SPC574s如何使用SPC5Studio自带的I2C实现I2C通信?

    SPC574s并没有硬件I2C外设,可以使用SPC5Studio自带的SW I2C实现,但是由于SPC5Studio软件资料太少,I2C
    发表于 05-14 07:10

    stm32f103c8t6主控芯片无人机原理图

    stm32f103c8t6主控芯片无人机原理图
    发表于 04-29 17:02 3次下载

    STM32F103C8T6主控板+无人机原理图

    stm32无人机原理图资料
    发表于 04-29 15:57