Arduino无人机项目

时间:2016-01-07 07:20:12

标签: arduino hardware

我正在研究无人机项目,目前正在选择使用的电路板。是否可以使用Arduino Nano满足以下所有需求:

  • 陀螺仪和加速度计
  • 气压计(作为高度计)
  • 数字磁力计
  • WiFi(发送遥测以进行处理)
  • GPS模块
  • 4台电机(当然)

P.S:

  1. 我对Arduino一无所知。但是我有一个很好的ASM,C / C ++,编程背景,我曾经设计模拟电路。
  2. 我想避免使用现成的飞行控制器。

3 个答案:

答案 0 :(得分:2)

将所有这些工作纳入Nano是一种技巧。我建议你看看http://ardupilot.com/他们围绕ARM芯片构建了很多很酷的想法(和Arduino一样),并且那里也有一些非常活跃的社区。

答案 1 :(得分:2)

如果使用I²C传感器,引脚数不应该太大问题,它们只会共享相同的两个引脚(SCL,SDA)。

我同意RAM可能是一个限制,处理能力(arduino uno的30 MIPS)应该足够了。

在arduino mega上,APM项目运行了多年并取得了巨大的成功。

我相信可以使用Arduino nano和几个I²C传感器+ GPS做一个非常简化的无人机飞行控制器。

但即使使用更先进的微控制器,这也不是一项微不足道的任务。

***如果您仍想尝试实验,请查看openlrs项目:https://code.google.com/p/openlrs/。它已经很老了(也有几个衍生项目),但它运行在类似于arduino uno(atmega328)的硬件上。它提供RC控制,带有i²c陀螺仪的四路飞行控制器,加速度计(基于wii遥控器)和气压计。

它还可以解析来自GPS的数据,但是它不提供自主导航,但是应该可以在没有太多额外工作的情况下添加它。

编辑:关于可用的RAM。

据我所知,乍一看,2kb的RAM似乎非常少。其中一部分已被Arduino使用,例如串行库使用一些RAM提供两个64字节FIFO。对于Wire(I²C)库来说,虽然数量较少。它还使用一些RAM用于堆栈和临时变量,即使对于诸如浮点运算之类的简单任务也是如此。我们总共说它将使用500个字节。

但是真的需要多少RAM呢? - 它将有一些PID调节器,假设每个将使用10个浮点参数来存储PID参数,电流值等。因此它为每个调节器提供40个字节,并且假设我们需要10个调节器。我们应该少花钱,但让我们举个例子。这是400字节。 - 然后它需要解析GPS消息。 GPS消息最多80个字节。让我们允许80字节的缓冲区用于GPS解析,即使可以“在运行中”进行大部分解析而不将其存储在缓冲区中。 - 让我们为GPS和传感器数据保留一些空间,300字节似乎很慷慨,因为我们不需要将它们存储在花车中。但我们可以在其中输入当前的GPS坐标,高度,卫星数量,俯仰,滚动等 - 然后是应用数据的一些地方,例如家庭GPS坐标,当前模式,操纵杆位置,伺服值等。

其余的主要是计算,从当前的GPS坐标和目标坐标到目标高度,航向等。然后将PID输入到计算的俯仰和滚转。但这不需要额外的RAM。

所以我想说使用1280字节做一个非常简单的飞行控制器是可能的。如果我太低或忘记了某些方面,那么仍有超过700个字节可用。

当然不是说这很容易,每个方面都必须进行优化,但看起来并不可能。

答案 2 :(得分:1)

即使你没有耗尽引脚(你可能会这样做),当你为电机和GPS编写代码时,你的内存也会耗尽。

这甚至没有进入CPU速度,这远远不够。正如另一个答案中所提到的,使用Cortex M-x CPU会更好。

可以说,你可以使用一些Nanos,每个任务一个,但将它们链接在一起将是一个很好的混乱......