使用 Arduino 模拟传感器进行 Arduino 软件测试

我对 Arduino 世界很陌生,但对电子产品并不陌生。我曾经为美国海军维修过 F14D 和 E2C 雷达组件。我可以很好地理解 Arduino 编程语言,可以复制、粘贴和稍微修改以满足我的需要,但我还没有达到创建复杂草图的程度。我一直在阅读和尝试,到目前为止一切顺利。

我正在和我儿子一起做一个项目,它需要一台“飞行计算机”。我们距离飞行还有很长的路要走,但我们现在正在开始构建所需的组件。我希望能够在飞行测试之前测试计算机完成所需工作的能力。使用实际的传感器将是一个想法,除了我在飞行中预期的读数在我的工作台上不会有太大变化这一事实之外。对于这个项目,我将需要以下内容。

准确的计时。
GPS 定位和记录
大气压力读数
飞行器外部的温度读数(也可能在内部)
所有数据记录在 SD 卡上以供以后评估
如果可能,通过业余无线电将数据转发回“任务控制中心”

到目前为止,我已经能够使用 DS1307 模块启动并运行时钟,它在一周多的时间里保持了良好的时间。到目前为止我还没有尝试记录时间。我不相信我是否需要实际时间,也不相信“任务时间”是否有效。

我希望同时或接近记录每条数据。我一直在阅读记录数据有时会减慢 Arduino 的速度,这很好,因为我不需要精确的数据。这架飞行器将受到艾萨克·牛顿爵士和天气预报员的支配,并且不会进行受控飞行。如果我能每 2-5 秒获取一次数据点那就太好了。越少越好,但不要超过 5 秒。首次飞行将在“D”发动机火箭上进行,从发射到着陆的总飞行时间约为 1 至 2 分钟,在这些飞行期间,希望有 2 秒或更短的间隔。未来的飞行可能会在气象气球中进行,其中 GPS 成为恢复的重要组成部分,而不仅仅是飞行数据。还可以添加加速计。

使用 Arduino 模拟传感器进行 Arduino 软件测试

所需的传感器已购买,但尚未全部到达。

因此,在我看来,我需要模拟传感器的输入来调整“飞行计算机”的软件。在我看来,我将从两个方面受益。首先,需要编写更多代码,这对我来说是更多经验。其次,在代码和硬件的实际测试方面,它给了我一些灵活性。我并不总是需要连接传感器,我可以使用模拟器来测试我的代码。

这就是我的项目的概要,对于那些仍在阅读本文的人,谢谢你们。正如我之前所说,我对此很陌生。我不确定如何编写所需的所有代码,但我正在学习。至于传感器,我可以使用一些关于它们如何与 Arduino 通信、预期数据类型以及如何对其进行格式化以使其可读的输入。

对于我的火箭测试,我计划使用 Arduino Nano,我还可以使用 Mega2560 和 Uno。我还有一个 Rpi 256 和一个 Rpi 512,可以用作模拟器(但我根本不知道如何对它们进行编程)。

欢迎任何建设性的意见和建议,如果你们都认为我想这样做是疯狂的,请告诉我,但也请告诉我为什么你这么认为,这样我就可以更好地学习如何使这样的项目发挥作用。

如果你每2秒记录一次到SD卡,arduino就可以做到。与其模拟传感器,为什么不一次测试一个呢?带着记录仪去骑行将测试 GPS 传感器。在五层楼的建筑中走楼梯会给你带来很大的压力变化。

在我看来,我需要模拟传感器的输入来调整“飞行计算机”的软件。

这听起来可行,并且可能会产生更好的测试代码。

您需要计算出典型的飞行会产生哪些数据,并以某种方式将其呈现给飞行计算机。这可能是模拟来自设备的信号(例如来自 GPS 的 NMEA 数据集)或插入并非真正来自 1 线传感器等的温度数据。

实时系统的软件测试是一项复杂的任务,需要大量的工作!

模拟传感器的输入来调整“飞行计算机”的软件。

我来自一个有着严格的 SDLC 的企业环境,所以从表面上看这听起来很棒。但您所做的大部分工作都是硬件、库和协议。构建测试台将比构建和实时测试和调试更复杂。

我建议分阶段构建完整的单元,测试每个阶段并进行调试。添加下一阶段并解决任何集成问题,然后添加下一阶段,等等。

将其放在汽车或卡车车厢上,使用电梯,放入冰箱中。测试日志记录等。

感谢大家的意见和建议。我确实计划分阶段进行测试和构建,现在我所能做的就是时钟电路,因为我缺少大部分其余部分。中国邮政永远!我知道构建模拟器需要更多工作。老实说,我不介意,并且我很乐意练习构建我需要的代码。

我从另一个想法中得到了这个想法。我想创建一台能够相互同步的飞行计算机和任务控制计算机。我想我可以有 2 根电线插入飞行计算机和地面控制计算机。这些电线可以是接触带或易于在发射台拔出的电线。一旦火箭离开发射台,它就会断开电线的连接,从其他设备上丢弃数字信号,从而启动时钟以进行数据记录。然后我想我也可以使用一个arduino在另一个arduino上测试软件,这样我就可以在不插入飞机的情况下处理和调试飞行计算机。我不知道传感器是否足够容易拆卸和安装,以便我每次需要工作时都可以继续研发它们。