当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]如果你曾经驾驶过遥控飞机,并且想要详细了解飞行过程中的具体情况——比如飞行高度、飞行方向、温度以及有图像记录——那么市面上大多数的 FPV 系统都无法满足你的需求。它们能实时传输视频,但不会存储任何数据。一旦你降落,所有数据就会丢失。

如果你曾经驾驶过遥控飞机,并且想要详细了解飞行过程中的具体情况——比如飞行高度、飞行方向、温度以及有图像记录——那么市面上大多数的 FPV 系统都无法满足你的需求。它们能实时传输视频,但不会存储任何数据。一旦你降落,所有数据就会丢失。

我想要解决这个问题。于是,我设计了一个紧凑的机载系统,能够记录所有信息:JPEG 图像帧、环境传感器数据以及完整的 6 轴姿态数据——在飞行过程中所有数据都会直接保存到 microSD 卡中,并按照飞行时段自动进行分类整理。

其结果是制造出了一款重量轻(约 50 克)的基于 ESP32 的板子,它能够作为遥控飞机的真正飞行记录仪发挥作用。

主要特点

该系统在每次飞行过程中都会记录以下数据,并自动将其保存到 SD 卡上的一个新文件夹中:

•以每秒 15 帧的频率拍摄的 JPEG 图像帧

•温度、压力、海拔高度以及湿度(BME280)

•俯仰、滚转和偏航方向(MPU6050)

•带有时间戳的 CSV 日志与图像帧同步了

在起飞前,一切都只需通过一次按钮操作即可完成——无需笔记本电脑,也无需进行串行连接。

硬件

该板子是基于 ESP32-CAM 模块构建的,该模块能够一次性完成所有操作:图像采集、I2C 传感器通信、SD 卡写入以及方向处理。对于其如此小巧且价格低廉的尺寸而言,这是一款非常强大的芯片。

为了进行定位,我使用了 MPU6050 六轴惯性测量单元。它能提供原始的加速度计和陀螺仪读数,通过互补滤波器将这些数据结合起来,从而在飞行过程中(即使存在持续的振动)也能得出稳定的俯仰、滚转和偏航值。该滤波器被调整为高度依赖陀螺仪(α = 0.96),同时利用加速度计缓慢校正长期偏差——这种平衡对于大多数遥控飞行的短暂持续时间来说效果很好。

对于环境数据,BME280 能测量温度、大气压力、海拔高度和湿度。它通过 I2C 总线与 MPU6050 一同在同一个总线上进行通信。

有一点值得注意:陀螺仪校准程序在启动时(在按下按钮之前)会采集 1000 个样本,以计算出精确的偏移量。让飞机在平坦的表面上静止不动的情况下运行该程序,与较短的校准窗口相比,在空中获得的方位数据会更加清晰。

定制印刷电路板

在将电路在面包板上调试成功后,我设计了一块专用的印刷电路板,以使整个系统在实际飞行中能够足够可靠。

遥控飞机会持续受到震动影响。跳线和面包板连接方式根本经不起这种长时间的震动——在我第一个原型机飞行过程中,就曾有一次连接松动,导致整个数据采集过程的数据全部损坏。最终,采用专业的印刷电路板才是唯一的有效解决办法。

这款定制的印刷电路板集成了 ESP32-CAM 连接、MPU6050 接口、BME280 连接、电源布线以及按钮输入等功能,所有这些都整合在一个紧凑的尺寸内,能够轻松地安装在机身内部。与面包板原型相比,组装完成的 PCB 更小、更轻、更抗振动,而且看起来就像一个成品一样。

如果你要制作的东西不是简单的原型产品,我强烈建议你去定制一块专业的印刷电路板。PCBWay(点击链接可获取即时报价)将是我在未来所有项目中选择的供应商。

PCBWay(在此处订购此 PCB)负责了生产工作,并且为该项目提供了这些电路板。老实说,他们完成任务的速度让我非常印象深刻——电路板很快就送到了,包装完好,直接从盒子里就可以进行组装。丝印清晰且精准,所有电路板上的阻焊层都保持一致,而且每个焊盘都恰好位于 ESP32-CAM 脚位所需的准确位置,该脚位有着相当严格的公差要求。

除了产品的质量之外,我最欣赏的是下单过程的简便性。上传布图文件、选择规格以及获取报价,整个过程仅需约五分钟。对于学生和业余爱好者这类不大量采购的项目而言,这种低门槛的流程尤为重要。

数据可视化工具

飞行结束后,取出 SD 卡,并在您的电脑上打开会话文件夹。每个会话都包含一个编号的 JPEG 图片文件夹以及一个名为 data.csv 的文件,该文件包含带有时间戳的遥测数据行,这些数据行与图片一一对应。

为了使飞行审查工作更加简便,我构建了一个小型的 Python 控制面板,它允许您加载会话文件夹,并在带有时序图的视频片段旁浏览内容。以下是示例数据行的示例:

注意:可视化工具的代码及使用说明可在以下提供的 GitHub 页面中获取。

结束语

这个项目最终融合了嵌入式系统、传感器融合、印刷电路板设计以及数据分析等多种元素。其中,互补滤波器的参数调整尤其需要反复试验——如果发现飞行时间越长偏航角度变化越大,那么可以尝试缩小陀螺仪的死区范围或者降低偏差适应率作为着手点。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

“PRIMUS X2”的飞行控制器是一款多功能控制板,可用于开展各种项目。其中之一就是直线跟随机器人。此次的目标是打造一款基于 PID 控制的快速直线跟随机器人。该程序是在“Pluto IDE”平台上编写的。这款直线跟随...

关键字: 飞行控制器 传感器 机器人 PRIMUS X2

变频振荡器(VFO)常用于无线电发射机和接收机中,尤其是在超外差式接收机中,它们能够实现对工作频率的调节。它们在业余无线电、通信系统和测试电子设备中都非常重要。在我之前的几段视频中,我已经向您展示了几种不同的创建 VFO...

关键字: ESP32 微控制器 Si5351 时钟 变频振荡器

家禽养殖高度依赖稳定的环境条件来保障禽类的健康、生产力以及蛋的品质。虽然诸如饲料、通风和饲养环境温度等要素通常都会受到监测,但水温却常常被忽视,尽管它对家禽的生长表现有着重大影响。

关键字: 物联网 ESP32 微控制器

在许多小型办公室里,会议室的管理方式仍相当随意:人们会透过玻璃观察,尝试推开门,打断正在进行的会议,或者四处打听以了解某个房间是否空闲。这种做法会造成混乱,浪费时间,并给访客留下不好的印象。

关键字: 显示屏 ESP32 面板

空气污染已成为现代城市面临的最为严峻的环境问题之一。颗粒物浓度的不断上升,尤其是 PM2.5 和 PM10,对人类健康构成严重威胁,会导致呼吸系统疾病、心血管问题以及降低预期寿命。鉴于这些担忧,成本低廉且易于使用的空气质...

关键字: Wio终 传感器 HM3301

室内训练很艰苦。在热身阶段你可能会冻得瑟瑟发抖,而在冲刺阶段又可能会因体温过高而感到不适。当你的双腿在燃烧时,手动控制风扇这种干扰因素就完全没必要了。

关键字: 智能风扇 ESP32 呼吸监测器

我总是很难找到风扇遥控器并调节风扇转速。每次我需要它的时候,遥控器总是不见了。唯一一直随身携带的东西就是我的智能手机。所以,如果我能用智能手机来调节风扇的转速,这个问题就能解决了。这就是这个项目产生的初衷。

关键字: Arduino UNO 串口监视器 ESP32

作为一名七年级的“创造者”,我认为技术应当易于获取且能带来改变。对于视障人士而言,传统的手杖几十年来几乎没有发生什么变化。它们能够探测地面上的物体,但往往无法保护使用者避开头部高度的障碍物,也无法提供实时的环境信息。我的...

关键字: 智能助行器 传感器 Arduino Uno Q 芯片

在该项目中,我们正在利用树莓派 Pico W 构建一个自主式的“猎鹰式”目标定位系统。与简单的感应运动玩具不同,该系统采用了一个 3 区段的被动红外线运动探测器阵列来检测目标的大致方向,然后启动精确的超声波雷达扫描,以确...

关键字: 树莓派 超声波雷达 传感器

该项目是一款拥有 18 个自由度的六足机器人,专为在复杂环境中实现高稳定性移动而设计。它配备了一套定制的实时三维地形测绘系统,该系统使用 VL53L8CX 光学飞行时间(ToF)传感器。与传统的六足机器人不同,这种机器人...

关键字: 六足机器人 传感器 VL53L8CX
关闭