前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >开源MultiWii飞控

开源MultiWii飞控

作者头像
云深无际
发布2022-04-15 15:20:47
发布2022-04-15 15:20:47
1K00
代码可运行
举报
文章被收录于专栏:云深之无迹云深之无迹
运行总次数:0
代码可运行

U1S1,2022写这个也没有意思了,但是猛然之间看到源码了,还是感觉很棒,想分享一下。

首先代码量不是很大,但是功能完善,而且是arduino编译,减少了很多底层的抽象问题。比较专注在逻辑上面。

里面的ino是没有文件的,看前面的同名文件

这个地方是驱动部分要的硬件

config文件里面是要打开的功能,具体看下面的一些常用的功能

可以搜定义,不看行数

PWM控制

航模部分使用PPM,或是PWM控制

接下来的引脚是电源和姿态。

上个图。

还有我想说下关于电机驱动这块,空心杯电机驱动电路:

SI2302的内部电路图:

这幅图是crazyflie飞控板的电机驱动电路原理图,同样适用MWC飞控,肖吉特二极管BAT54用SS34替换(只要满足电压和电流以及通断时间就行,SS34远远大于需求,只是因为跟MOS管在同一家店所以买了),场效应管pmv31xn用SI2302替换。

场效应管是用电压控制电流,作用跟三级管类似(三极管是用电流控制电流),相比于三极管,场效应管体积更小功率更大。

肖吉特二极管的作用是续流。电机是电感元件,有阻碍电流变化的特性,控制电机转速的方法是用PWM信号控制场效应管的通断,当场效应管断开时,电机两端会产生极高的感应电压击穿场效应管,加上二极管后,电机的电流会通过二极管保持流通,防止电机产生过高的感应电压。

白色的是控制线,黑色和红色的是接电机的线。电机驱动电源部分要接一个拨动开关,防止Arduino nano上电时不受控制的转,也用于失控时给电机断电。

就是这样,ESP8266的无人机也是这样

如果config打开这个定义:

那么就会使用这样的写法,这就是功能的动态加载。

陀螺仪+地磁

IMU的信息打包

电压检测

不知道是啥

角度

这个初始化的代码太长了

这里是适配各种板子来打开串口

串口的波特率

电源的引脚,蜂鸣器的引脚

电机的驱动部分

均配置为输出模式

这个里面大量的AVR单片机的寄存器配置,我不太熟悉。

读取摇杆的设置

还有日志的打印功能需要打印什么。给上位机使用

功能开启

功能好多啊。。我研究一下,下次再写。

代码语言:javascript
代码运行次数:0
运行
复制
http://www.multiwii.com
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档