DIY四旋翼(穿越机)软硬件设计

2023-05-16

今天教教大家怎么真正意义上的DIY四旋翼飞行器,我将从机架入手DIY穿越机。
下面是我的步骤:
1、设计机架三维图纸;
2、导出机架的二维图纸并做修改;
3、设计飞控板;
4、试飞。
step 1. 我们先设计穿越机的三维图纸,我这里使用的是solidworks软件设计的,有很多学机械的学生画了这么多年的图纸却也没有运用过。计算机辅助设计,设计出来的图纸是可以用于实际的生产的。设计小零件,在装配图上看装配效果。莫问如何就能设计出这个形状,飞机看多了,胸中自有丘壑。工具软件在学校多学学,艺多不压身。这个世界上没有什么困难能阻挡勤劳的脑子和勤劳的双手。首先还是要确定使用材料的,使用的2mm厚的层板。
穿越机1
当然,在画图前要先确定飞机的轴距,用多大的螺旋桨(桨长了会打到中间的电池和控制板的),鄙人设计的参数是对角轴距是280mm,选用的是6040的桨。所以主要设计的还是底下的那块主要的板,其余的都是一些为了放置电池飞控板的构件和加强筋。下面这张图给出了我的设计思路,可供参考。打辅助线是为了更好的设计。
穿越机2
然后设计出加强筋,打孔是最后设计的,在起不到加强的地方镂空减少机架的质量。最后使用软件设计出来的效果如下图:
穿越机3
step 2. 接下来的工作比较简单,把三维图纸中每一个零件转化成二维的CDA图纸,由于我们使用的是2mm的层板,所以打孔时要主要对接的地方要用2mm的孔。下面是CAD图纸,如果想要CAD图纸的朋友可以给我留言,我看到便会给你发。
穿越机3
材料的加工是通过激光切割机的。面积比较大,激光切割机切割时最好夺走几遍,确保切透。当然如果没有相应的设备可以去网络上找人加工。鄙人运气比较好,鄙人学校有多台工业级的激光切割机。只要是做科技创新相关的项目,自己去打通关系都是可以使用的。下面是切割出来的零件拼装好的图片:
穿越机4
切割好的层板零件使用环氧树脂粘贴。
step 3.设计飞控板这个是一个技术活,不过没有关系也不是想象种的那么难。只要功夫深再加上脑子好使,技术道路上是没有困难的。学习是一个比较痛苦的过程,但是不自己学习做伸手党的话就会失去探索世界的真理的快乐,并且是永远的失去。飞控板的原理非常简单,无非就是使用MCU获得传感器的数据,解算出自身姿态然后控制电机就好了(博主是过来人,实事就是这么简单,对于懒人来说是很难的)。做一个勤劳的人,哪怕花上几个月半年总能学好的。下面制作飞控的硬件。使用的MCU是STM32F103芯片,传感器选用mpu6050。这里还需要学习一款软件,AD用于设计PCB电路图纸,只要用得到就去学习,这个才是作为工科生应该具有的素养。一个要往工程师方向发展的人如果不会以下的这些技能别说在不要在社会上混,就是大学也别呆了,丢不起那人(不过很多学校还是丢得起那人的)。1、熟悉使用工程上经常用到的一些软件,比如CAD和一些三维软件;2、至少熟悉掌握一门或者多门计算机语言;3、基本的物理知识过关,基本原理都能知道,至少知道怎么查书和手册力学定律(F=ma或者换成力矩的形式在控制中几乎无处不在);4、基本的高等数学知识,尤其是微积分原理(控制工程上经常用到)。5、有主动学习的意向和能力。一句话说明就是你不要太懒!言归正传,飞控实用STM32F103芯片,通过查找其数据手册和淘宝上各种最小系统板和开发板设计出最小系统板是一点问题都没有的。MPU6050的资源也是非常之多的,有个条件就是把英语学好。把需要用到的信号线引出来作为接口,遥控器接口和电机接口,下面这个是多年前设计的PCB:
穿越机5
焊接好芯片的PCB板,当年博主出手还是比较阔绰的
飞控板
陀螺仪加速度计芯片MPU6050使用的通信方式是I2C,这个通信方式都是很简单的,稍微看看文档就能掌握其时序。仔细阅读数据数据手册就可以知道怎么设置其内部寄存器(电子工程师所具备的基本素养)。姿态决算比较复杂一点,要想实实在在的理解需要学习四元数,不过也不难,专心看看秦永元老师的《惯性导航》就好了,捡需要的用到的看,我这里有一句话比较靠谱,凡是用角速度来获得角度的都是在做积分处理,其余的都是在滤波和规范化角度,姿态解算最重要的一环还是使用加速度矫正角度。说到滤波,最有效的滤波基本都还是在取均值,取均值的方法不一样而已(这里就有很多比较靠谱的滤波方法了比如:卡尔曼滤波、均值滤波、互补滤波),处理均值滤波其余的两个滤波基本做的就是根据之前的状态估计当前的数据,然后加入当前采集到的数据加权获得比较好的估计值,简单列一下kalman滤波的一个公式吧,有此基础学习也比较容易理解,X’ = x(k-1)+kg*(x(k)-x(k-1)),kg是kalman增益,这是一个0到1的数字如果等于0代表相信数据是一成不变的永远是一个数,这是不可能的,等于1代表的是直接取当前数据估计也就没有效果,所以kalman滤波主要的就是确定这个增益kg,kg通过空间状态来获得,具体的可以去各种网站查找资料查找论文。飞控系统的编程是一个工程量比较大的软件工程,可以参考各大开源的飞控代码,在国内就有很多的开源飞控。这些组织都开源了代码,而且通俗易懂。使用天地飞7通道遥控器作为飞行器的遥控,天地飞7遥控和许多其他遥控提供的接收信号都是PWM脉冲,使用MCU捕获其脉宽来获得数据。天地飞信号的脉宽数据为周期是2020us的信号,高电平占空为1020到2020,对于油门信号1020时代表为油门为零,2020时满油门,对于其他通道常值为中间值1520us,使用TIM定时器设置时基单位为1us。用下面一幅图讲解一下串级PID
穿越机6
好好理解一下图中内容理解飞行器控制的串级PID控制一点都不难。串级PID使用的是角度外环加角速度内环,内环的输出是直接用于生成控制电机的PWM信号,外环的输入直接用于内环的目标输入。一般而言外环只用到了比例控制,内环有比例(P),积分(I),微分(D)控制。很多人的理解是积分应该放在外环,这里不做太多的解释,积分放在内环可以对陀螺仪获得的角速度零点漂移在控制器中的矫正。外环的输出就是内环的输入也就是说外环的输出就是期望的角速度。如此理解便可以调好串级PID的参数。对于航向角来说,航向角的值就是通过积分获得的,难免有误差,在控制上我们就不用再做积分为角度拿来做外环。所以对内环的控制就直接使用角速度环控制。试想,我期望的角速度为零不就是控制期望航向角稳定吗。如果叫上罗盘获得绝对角度就可以增加航向角的角度外环,此时由于罗盘的矫正没有累计误差。下图是机架加上控制板组装好的整机。
穿越机7
step 4.调试
调试最后飞行的视频:http://v.youku.com/v_show/id_XMjk1OTk1OTIyNA==.html?spm=a2h3j.8428770.3416059.1
拍摄的姿势不对,见笑了。
由于机架是层板做的,在强度上跟碳纤维差远了。不算加工费(我是借用了学校的切割机)这个机架也就是10块钱不到。飞机被折腾一遍之后下场自然大家都能想象,下面是我失手撞树上掉下来后的样子(如果保证不撞东西,不坠机还是能玩些时日的)。
穿越机8

工作量比较大,过程中问题比较多,感谢所有帮助过我的,南昌航空大学的老师学生。这里着重感谢昌航缪老师,为我提供了极好的实验室环境,让我能够安静的完成所有的工作,同时还帮我解答各种疑难问题。使我的整个制作过程极其的顺利。有这么多的好老师好同学帮助,没白来大学走一朝。

                                           --山东大学某硕士
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DIY四旋翼(穿越机)软硬件设计 的相关文章

  • Openwrt 新增平台编译

    1 说明 本文主要介绍 xff0c 如何在openwrt系统中 xff0c 新增一个平台进行编译 如原本的openwrt 包含了adm5120 arc770 ath25 imx6等平台 xff0c 现在需要新增一个sc9820平台的编译 本
  • Docker概述(一)(标贝科技)

    Docker概述 xff08 一 xff09 顺便介绍下 xff1a 我们是一家致力于智能语音交互的AI公司 xff0c 我们提供了语音识别 语音合成 声纹识别 声音复刻 声音转换等技术产品供小伙伴们测试调用 xff0c 感兴趣的 xff0
  • 树莓派网络配置

    1 说明 1 树莓派有线网络配置 1 树莓派系统WIFI 静态IP设置 2 树莓派系统DNS地址 etc resolv conf 开机后被还原为空或者192 168 1 1处理方法 2 环境 软件环境 xff1a 树莓派3 0 系统 硬件环
  • Linux 读写memory操作,devmem直接访问物理内存地址

    1 说明 由于开发需要 xff0c 需要通过memory传输数据 xff0c 所以使用devmem 方式读写数据 xff0c 操作linux 内存数据 devmem的方式是提供给驱动开发人员 xff0c 在应用层能够侦测内存地址中的数据变化
  • Open3D+vs配置以及使用教程

    Open3d 0 8 0 43 Cmake 43 vs2015 1 下载 简要看一下官网 xff1a Open3D Home Page Github主页 xff1a Open3D Github 注意下载版本 xff0c 一定要与vs相匹配
  • 彻底明白ip地址,区分localhost、127.0.0.1和0.0.0.0

    通俗的了解IP地址是什么 对于IP地址 xff0c 大家并不陌生 xff0c 特别是在网络访问中我们会经常使用到 xff08 平时对域名如百度的www baidu com的访问 xff0c 本质就是对域名所绑定的IP地址的访问 xff09
  • C3927 “->“: 非函数声明符后不允许尾随返回类型等错误

    C3927 34 gt 34 非函数声明符后不允许尾随返回类型等错误 xff0c 如下所示 xff1a 解决方法 xff1a 在VS2015版本 Visual Studio 2015 Update 2 xff0c 增加一个编译选项 utf
  • c++ nan或inf

    nan xff1a not a number 非数字 注意事项 xff1a 对负数开方sqrt 1 0 对负数求对数 log 1 0 0 0 0 0 0 0 inf inf inf inf inf这些操作都会得到nan 0 0会产生操作异常
  • 膨胀、腐蚀、开、闭运算——数字图像处理中的形态学

    膨胀 腐蚀 开 闭运算是数学形态学最基本的变换 形态学通常用于二值图像 一 膨胀与腐蚀能够实现以下作用 xff1a 1 消除噪声 2 分割出独立的图像元素 xff0c 在图像中连接相邻的元素 3 寻找图像中的明显的极大值区域或者极小值区域
  • c语言中&与&&区别

    c语言中 amp 与 amp amp 的区别 amp xff1a 按照位与操作 xff0c 例如 xff1a 0010 amp 1101 xff0c 结果为0000 amp 是java中的位逻辑运算 xff1a eg xff1a 2 amp
  • 网格搜索法

    网格搜索法是指定参数值的一种穷举搜索方法 xff0c 通过将估计函数的参数通过交叉验证的方法进行优化来得到最优的学习算法 即 xff0c 将各个参数可能的取值进行排列组合 xff0c 列出所有可能的组合结果生成 网格 然后将各组合用于SVM
  • pytorch模型从训练到LibTorch部署(标贝科技)

    标贝科技 https ai data baker com source 61 qwer12 填写邀请码fwwqgs xff0c 每日免费调用量还可以翻倍 1 pytorch和libtorch安装 标贝科技 PyTorch 是Torch7 团
  • C++Debug Assertion Failed!到底出错在哪里?

    总结来说这种错误存在两种情况 xff0c 其一就是野指针 另一种情况就是内存泄露 在调试的时候一定是在自己编写的函数上找错 xff0c 不要一只跟着调试顺序在库函数里找错 注意事项 单步调试找到错误 xff0c 祝好运 以上为百度出来的结果
  • 截止频率概念

    截止频率 fc xff08 1HZ 100HZ xff09 xff0c 代表什么意思 截止频率fc xff0c 用来描述一个滤波器或一个放大器频率特性的指标 一个滤波器或一个放大器 xff0c 当保持输入信号的幅度不变 xff0c 改变信号
  • C语言中EOF什么意思

    在C语言中 xff0c 或更精确地说成C标准函数库中表示文件结束符 xff08 end of file xff09 在while循环中以EOF作为文件结束标志 xff0c 这种以EOF作为文件结束标志的文件 xff0c 必须是文本文件 在文
  • C++里面的LPBYTE是什么意思

    BYTE 为 unsigned char LPBYTE 为 unsigned char
  • ORACLE 字符串聚合函数 strCat

    create or replace type strcat type as object currentstr varchar2 4000 currentseprator varchar2 8 static function ODCIAgg
  • 1.unity3d Astar pathfinding 第一个例子

    1 场景准备 先建立一个scene 添加一个plane xff0c 让其坐标处于 0 0 0 xff0c 并三方向scale都为10 添加一个新的layer xff0c 命名为Ground xff0c 并将上面建立的plane设置为Grou
  • [STM32]开源多功能DAP 脱机烧录器 DAPLink仿真下载器

    网上已经有很多开源脱机烧录器的了 xff0c XVIN1987的很小巧 xff0c 很有参考价值 xff0c 志明的很庞大 xff0c 源码较多较复杂 xff0c 于是自己在无线DAP的基础上 xff0c 添加了脱机烧录功能 xff0c u
  • 全志V3S 入门 RTL8723BS 连接wifi

    开发板 xff1a 荔枝派zero linux xff1a 5 10 rootfs xff1a buildroot 2017 8 1 使用最新的主线linux内核5 10 xff0c 主线5 10内核linux make ARCH 61 a

随机推荐

  • ESP32蓝牙 华为手机容易断连解决

    在长达两年的售后中 xff0c 收到华为手机连接ESP32蓝牙是最容易断开连接的 xff0c 一开始小米手机 苹果手机都没问题 xff0c 就只有华为 xff0c 一连上就断开 xff0c 所以我们认为是APP问题 xff0c 于是我们去找
  • ESP32-S3 LVGL http下载B站头像 JPG显示

    最近在用ESP32S3获取B站JPG头像进行显示 记录一下 xff0c 开发板链接 xff1a ESP32 S3 LVGL 开发板 人工智能语音识别 人脸识别 触摸 音频 淘宝网 taobao com 直接上代码 xff1a 第一种下载方式
  • Docker概述(二)(标贝科技)

    标贝科技 https ai data baker com source 61 qwer12 填写邀请码fwwqgs xff0c 每日免费调用量还可以翻倍 Docker概述 xff08 二 xff09 文章目录 Docker概述 xff08
  • 【串口通信】K210与STM32串口通信、K210与OpenMV串口通信

    串口通信 K210与STM32串口通信 K210与OpenMV串口通信 串口通信前言为何需要串口通信 K210如何进行串口通信K210串口配置K210串口发送相关定义K210串口发送测试K210串口接收相关定义K210串口接收测试 STM3
  • 【ESP32S3系列】1、使用ESP32S3开发板点亮WS2812

    开发板链接 xff1a ESP32 S3 LVGL 开发板BLE人工智能语音人脸识别触摸 音频芯片wifi 淘宝网 taobao com 板子上的LED是WS2812 xff0c 它的引脚分别是 xff1a VDD xff1a 电源 xff
  • win10 使用sonarqube扫描ESP32 C语言工程代码

    社区版的扫描不了C代码 xff0c 所以要找个破解的 项目场景 xff1a 最近项目上霍尼韦尔要求使用sonarqube来扫描代码得出漏洞报告 xff0c 网上找了一圈没有比较容易成功的 xff0c 总结下经验 电脑里要有visual st
  • ESP32 如何引入静态库lib.a

    只需要在Cmakelist txt里这样写 xff1a 如果这个lib正常运行的话需要用到json和lwip相关的函数 xff0c 那就添加一个PRIV REQUIRES 这个component的名字即可
  • OPENMV结合PIX飞控实现四轴定点 循迹 2017电赛

    本文章代码已上传Github xff1a https github com Kevincoooool 2017 Follow 有兴趣的可以加个STAR 自从17年国赛之后 xff0c 自己做了openmv xff0c 加了很多群 xff0c
  • 简易旋转倒立摆设计报告

    完整文档和源码 xff1a https github com Kevincoooool inverted pendulum 43 2017年成都信息工程大学 第六届 电协杯 电子设计竞赛 简易旋转倒立摆及控制装置 xff08 I题 xff0
  • OpenMV-IDE 免KEY提示 编译教程

    很多人在购买了OpenMV之后都没有购买key xff0c 虽然key作为一种捐赠开发者的形式存在 xff0c 但大多数人都是不愿意每次使用都看到那三个提示框的 xff0c 而且不愿意去购买key xff0c 附上我的编译教程 xff1a
  • OpenMV H7也就是OpenMV4来啦 最新

    17年开始做过了四个版本的openmv 可谓是电赛好帮手 开发了两年的openmv xff0c 我的目的就是让openmv变得便宜 目前官方的第四代openmv还在众筹中 xff1a https www kickstarter com pr
  • 开源一个安卓四轴上位机+配套ESP8266 UDP串口通信源码

    手机APP是由匿名四轴遥控器修改而来 xff0c 在原有基础上添加了双摇杆控制和单摇杆控制 数据通过UDP和ESP8266通信 协议可修改 安卓app源码 xff1a https github com Kevincoooool KSTC V
  • c++中函数屏蔽和函数参数屏蔽

    情况一 函数的屏蔽 例如 nbsp nbsp void Function int a int b nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp int c a b 若是不使用函
  • STM32串口之奇偶校验设置

    今天 xff0c 在调试rs485的时候出现了32芯片串口端可以正常发送数据 xff0c 485芯片数据输出端不能发送数据 xff0c 自己查了下485芯片手册 xff0c 发现485芯片有个引脚通过32芯片给出高低电平来控制它是接受还是发
  • 基于AudioQueue实现音频的录制和播放(标贝科技)

    标贝科技 https ai data baker com source 61 qwer12 填写邀请码fwwqgs xff0c 每日免费调用量还可以翻倍 基于AudioQueue实现音频的录制和播放 文章目录 基于AudioQueue实现音
  • webots建立四连杆机构模型

    webots建立四连杆机构模型 使用webots内置的插件构建四连杆机构建立robot形状参考文献 使用webots内置的插件构建四连杆机构 首先 xff0c 可以去官网下载最新的webots xff0c 网址 xff1a https ww
  • STM32使用FREERTOS获取系统时间

    使用CUBE MX生成带有free RTOS操作系统的工程 xff0c 我们经常会使用到系统相对时间 xff0c 尤其是使用其做数据采集的项目中经常需要给你数据打上时间的标签就需要实时获取系统的相对时间 当然 xff0c 我们可以单独开一个
  • 一个简单的C++工程管理的Makefile

    摘要 C C 43 43 代码都需要使用编译器来编译代码生成相应的目标文件 xff0c 在大部分的windows开发中 xff0c 开发者多用商用或开源的集成开发环境 xff08 IDE xff09 xff0c 比如 xff1a visua
  • STM32F4 使用SPI读取气压计MS5611的数据并转化为大气压强

    ms5611是同时支持I2C和SPI通信协议的气压计芯片 已经很普遍的被用在飞行器控制板上作为高度传感器 开发过stm32的朋友都知道它的硬件I2C是由bug的 xff0c 一般使用的都是自己编写的软件I2C通信协议 但是其硬件SPI通信却
  • DIY四旋翼(穿越机)软硬件设计

    今天教教大家怎么真正意义上的DIY四旋翼飞行器 xff0c 我将从机架入手DIY穿越机 下面是我的步骤 xff1a 1 设计机架三维图纸 xff1b 2 导出机架的二维图纸并做修改 xff1b 3 设计飞控板 xff1b 4 试飞 step