STM32F107RCT6_单片机开发板工作原理

STM32F107RCT6_单片机开发板工作原理基于STM32F103C8T6开发板+GY521加速度计模块制作的有刷四轴飞控,成本不到20元,效果很不错

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

前几天制作了无刷四轴飞控板(STM32F103C8T6开发板+GY521制作NAZE32飞控板详细图文教程),效果还不错,在此基础上加了MOS驱动电路,把这个飞控装在了空心杯小四轴上,成功把它救活。现把制作过程记录如下。

1.材料清单

CH340串口下载模块1个(2.5元)

STM32F107RCT6_单片机开发板工作原理

STM32F103C8T6黑色开发板1个(11.5元,也可以使用蓝色板)

STM32F107RCT6_单片机开发板工作原理

GY-521加速度计模块1个(3.8元)

STM32F107RCT6_单片机开发板工作原理

IRLML2502TRPBF N沟道MOSFET贴片4个

STM32F107RCT6_单片机开发板工作原理

1N5819肖特基二极管2个

STM32F107RCT6_单片机开发板工作原理

SS8050三极管2个

STM32F107RCT6_单片机开发板工作原理

470Ω电阻4个,1k电阻1个,10k电阻5个

STM32F107RCT6_单片机开发板工作原理

还有线材、插针若干,以上这些材料大部分可以一站式购齐的,其中一些耗材简直电子爱好者必备,可以适当多买点。

2.焊接飞控板

飞控板原理图如下,要焊接的引脚不多,只是注意一下走线,按照自己的意愿来就可以了。

有三种接收机模式可以选择:SBUS(三根线)、PPM(三根线)、PWM(每个通道都要接线-8根线)。

4个空心杯电机的正负极有讲究,对角线上的接法相同(转向相同)。不装桨的情况下轻触转轴判断转向,如果和软件中转向不同,则需要对调电机的正负接线。

MOS管建议用大电流的,笔者一开始用的AO3400最大电流只有2.8A,带不动电机很容易烧,后来换了IRLML2502TRPBF最大电流4.2A很给力!

STM32F107RCT6_单片机开发板工作原理

飞控板接线 

 STM32F107RCT6_单片机开发板工作原理

四个空心杯的MOS驱动板正面(只有一个按键大小)

STM32F107RCT6_单片机开发板工作原理

背面(元件较密集,焊接好后先量一下是否有短路,10k电阻用了贴片的) 

STM32F107RCT6_单片机开发板工作原理

装到飞机里面的效果 

STM32F107RCT6_单片机开发板工作原理

3.烧写Betaflight固件

将STM32F103C8T6开发板上的两个boot引脚如下设置为Bootloader模式:

b0–>b+

b1–>b-

蓝色板的短接帽接法如下图:

STM32F107RCT6_单片机开发板工作原理

将飞控板与CH340串口下载器连接,接线关系如下:

GND-GND;

V3–3V3;

A9(RX)–RXD;

A10(TX)–TXD

如果连接不上电脑,可以尝试把RX/TX对调一下,也可以另接一个5V电源到飞控板上(防止串口下载器供电不足)。

下载Betaflight_NAZE固件:Release Betaflight 3.2.5 · betaflight/betaflight · GitHub

笔者也将文件上传到百度网盘了

链接:https://pan.baidu.com/s/1tEI8hrCcxtwFa4gWNcR5PQ 
提取码:71cn

STM32F107RCT6_单片机开发板工作原理
   打开Betaflight Configurator调参软件(可移步百度网盘下载);

链接:https://pan.baidu.com/s/1tEI8hrCcxtwFa4gWNcR5PQ 
提取码:71cn

选择串口下载器对应的COM口,点击更新固件;

如果你的电脑无法识别串口,需要安装CH340驱动,商家会赠资料,或者找网上教程。

STM32F107RCT6_单片机开发板工作原理

打开无重启序列选项 (因为我们已经设置为Bootloader模式了),点击从本地电脑加载固件,选择刚才下载的hex文件;

STM32F107RCT6_单片机开发板工作原理  点击烧写固件;

STM32F107RCT6_单片机开发板工作原理

开始烧写; 

STM32F107RCT6_单片机开发板工作原理 烧写成功!再点一次更新固件退出这个页面。

STM32F107RCT6_单片机开发板工作原理

这个时候要把boot0引脚帽更换一下了,接法如下:

b0–>b-

b1–>b-

蓝色板接线如下图:

STM32F107RCT6_单片机开发板工作原理

 进入下一步设置betaflight参数。

4.软件调试

 打开Betaflight Configurator调参软件,选择串口下载器对应的COM口,点击连接;

STM32F107RCT6_单片机开发板工作原理

将四轴水平放置,在设置界面里点击 校准加速度计,这时可以上下左右翻转四轴,康康加速度计和图中显示是否一样;

STM32F107RCT6_单片机开发板工作原理 端口界面,打开UART2串行数字接收机,因为我们要用其作为SBUS接收机输入(若用PPM接收机也要打开,但PWM接收机就不用打开了);STM32F107RCT6_单片机开发板工作原理

配置界面里,混控模型选择默认即可,也可根据自己的电机布置选择其他类型,只要符合自己四轴的转向;

电调协议为BRUSHED,用来驱动空心杯;

打开MOTOR_STOP,防止启动时发生意外;

STM32F107RCT6_单片机开发板工作原理

陀螺仪更新频率不能超过2kHz;

STM32F107RCT6_单片机开发板工作原理

接收机选择串行数字接收机,协议选择SBUS;

STM32F107RCT6_单片机开发板工作原理

 动力&电池界面,我们没有在飞控板上焊接测电压电路,选择无电压计;STM32F107RCT6_单片机开发板工作原理

 默认的PID参数不稳定,笔者经过试飞,调试好的PID参数如下:

STM32F107RCT6_单片机开发板工作原理

Rate参数可以根据自己的情况调节,deg/s越大,摇杆的角度反馈越大(飞行时摇杆拨动一点,飞机就会倾转很大角度); 

STM32F107RCT6_单片机开发板工作原理 用杜邦线连接SBUS接收机,打开遥控器拨动摇杆,可以看到软件中对应通道变化,大小变化不一致时需要调节遥控器的通道正反。摇杆低位阈值要设置的比油门最小值大一些,否则无法解锁;

STM32F107RCT6_单片机开发板工作原理

 设置解锁通道和自稳开关,对于新手来说一定要打开自稳开关,否则飞机很难控制; 

点击 添加范围,拨动遥控器上的任何一个扭子开关,可以看到软件中的标志位变化,拖动滑块至对应的开关区域即可;

STM32F107RCT6_单片机开发板工作原理

不装螺旋桨的情况下,打开我已了解风险,上电拖动滑块,对应通道的电机即可旋转。用手轻触电机侧面,判断电机转向是否与软件中相同;

STM32F107RCT6_单片机开发板工作原理

CLI命令行里面,可以设置命令设置、查看飞控参数 ,比如输入resource回车会显示所有引脚使用情况;输入set回车会显示参数设置;get beeper回车会显示所有与beeper相关的命令,更多可以参考GitHub – betaflight/betaflight: Open Source Flight Controller Firmware

这里我们把led 1引脚改一下,因为STM32F103C8T6黑色开发板上已经提供了一个led位于PB12,蓝色板改为PC13;

resource LED 1 B12

输入以上命令,回车,再输入save回车保存设置; 

STM32F107RCT6_单片机开发板工作原理 所有设置已经完成了,现在可以装桨试飞啦~~~

5.试飞效果

飞行视频已上传B站

[DIY] 制作有刷四轴飞控刷Betaflight固件,改造空心杯小四轴

试飞时最好找块松软的草地,一定要打开自稳模式!

相关资料下载

链接:https://pan.baidu.com/s/1tEI8hrCcxtwFa4gWNcR5PQ 
提取码:71cn

参考链接

https://www.jianshu.com/p/e5c6d30dec51

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/191427.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • AVX2浮点向量运算[通俗易懂]

    AVX2浮点向量运算[通俗易懂]在C/C++程序中,使用AVX2指令有很多种方法。嵌入汇编是一般的方法,但是对于不熟悉汇编语言的人来说,有点勉为其难。gcc编译支持AVX2指令的编程。程序中需要使用头文件和,这样通过调用其中定义的一些函数,达到使用AVX2指令的目的,即用C/C++调用SIMD指令(单指令多数据)。这里给出的样例程序是有关浮点向量运算的例子。其中函数_mm_add_ps()实现的是浮点向量(4个数

  • 计算机能不能升级固态硬盘,老电脑升级固态硬盘真的能变快吗?「建议收藏」

    计算机能不能升级固态硬盘,老电脑升级固态硬盘真的能变快吗?「建议收藏」怎样去DIY一台主机呢?它可以满足自己的工作、游戏需求,还要颜值高、噪音小、最重要的是价格要便宜,质量要好。本系列为让装机零基础的朋友可以轻松了解,所以尽量避免专业参数。(每周二更新)老电脑升级固态硬盘是第一选择,然而很多同学购买了固态硬盘,却发现没有想象的那么快,用测速工具测试后发现读写速度不能达到标称,是买到假货了吗?其实不然,固态硬盘读写速度受很多因素影响,本期《装机不求人》就和大家讲解…

  • cefsharp文档在哪_hdfs创建目录

    cefsharp文档在哪_hdfs创建目录参考:https://github.com/cefsharp/CefSharp/issues/601https://gist.github.com/BlackBooth/19ce027c4f68c1eb4fc1144988ca6662关键点:(1)设置CefSettings的BrowserSubprocessPath属性为对应的CefSharp.BrowserSubprocess.exe的…

  • matlab循环读取文件「建议收藏」

    matlab循环读取文件「建议收藏」一般情况下,假如我要读取一个名为a.txt的文件,只需要利用下面的语句:a=load(‘a.txt’);现在假如我需要循环读取saif_1.txt,saif_2.txt,,,一直到saif_10.txt,可以利用下面的语句:forN=1:10a=load([‘saif_’,num2str(N),’.txt’]);end其中,[‘a’,‘.txt’]可以实现对于字符串的连接,结果为a.txt,配合for循环和num2str函数,可以轻松地实现循环读取文件。ref:https://blog

  • 浙江新增python课程_浙江教育新规重磅来袭:今年9月起,八年级新增Python编程课程…

    浙江新增python课程_浙江教育新规重磅来袭:今年9月起,八年级新增Python编程课程…浙江新学期将会对信息课程做调,三到九年级信息技术课将同步替换新器材。其中最大的变化是,八年级将新增Python课程内容。新高一信息技术编程语言由VB替换为Python,大数据、人工智能、程序设计与算法按照教材规划五六年级开始接触。有网友疑惑:“这算不算是超前教育了呢?”其实不然。早在2012年,日本就在中小学中普及编程教育科目;2014年,英国教育部把编程列入了学校的必修课程,让5岁以上的孩子都必…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号