Arduino无人机项目
我在一个无人机项目上工作,目前正在选择一个板来使用。是否可以使用Arduino Nano满足以下所有需求:Arduino无人机项目,arduino,hardware,Arduino,Hardware,我在一个无人机项目上工作,目前正在选择一个板来使用。是否可以使用Arduino Nano满足以下所有需求: 陀螺仪和加速度计 气压计(作为高度表) 数字磁强计 WiFi(发送遥测数据进行处理) GPS模块 4个马达(当然) 附言: 我对阿杜伊诺一无所知。但是我有很好的ASM,C/C++编程背景,并且我曾经设计过模拟电路 我想避免使用现成的飞行控制器 这将是一个技巧,使所有这些工作在一个纳米。我建议你看看他们围绕ARM芯片(和Arduino一样)建立了很多很酷的想法,那里也有一些相当活跃的社区
- 陀螺仪和加速度计
- 气压计(作为高度表)
- 数字磁强计
- WiFi(发送遥测数据进行处理)
- GPS模块
- 4个马达(当然)
这将是一个技巧,使所有这些工作在一个纳米。我建议你看看他们围绕ARM芯片(和Arduino一样)建立了很多很酷的想法,那里也有一些相当活跃的社区。在Nano上实现所有这些都是一个技巧。我建议你看看,他们已经围绕ARM芯片(与Arduino一样)建立了很多很酷的想法,而且那里也有一些相当活跃的社区。即使你没有用完引脚(你可能会),当你为马达和GPS编写代码时,你的RAM也会用完 这还不包括CPU速度,这远远不够。正如在另一个答案中提到的,您最好使用Cortex M-x CPU
可以说,你可以使用几个奈米,每个任务一个,但是将它们链接在一起会是一个非常混乱的局面…即使你没有用完引脚(你可能会),当你为马达和GPS编写代码时,你也会用完RAM 这还不包括CPU速度,这远远不够。正如在另一个答案中提到的,您最好使用Cortex M-x CPU
可以说,您可以使用几个奈米,每个任务一个,但将它们链接在一起将是一个很好的混乱…如果使用I²C传感器,管脚计数不应该是一个太大的问题,它们将共享相同的两个管脚(SCL、SDA) 我同意RAM可能是一个限制,处理能力(对于arduino uno,30 MIPS)应该足够了 在arduino mega上,APM项目运行了多年,取得了巨大成功 我相信可以用Arduino nano和几个I²C传感器+GPS制作一个非常简化的无人机飞行控制器 但即使有了更先进的微控制器,这也不是一件小事 ***如果您仍然想尝试该实验,请查看openlrs项目:。它非常古老(也有一些衍生项目),但它运行在类似arduino uno(atmega328)的硬件上。它提供RC控制和四路飞行控制器,带有i²c陀螺仪、加速计(基于wii remote)和气压计 它还解析来自GPS的数据,但afaik不提供自主导航,但应该可以添加数据,而无需太多额外工作 编辑:关于可用RAM 我知道,乍一看,2kb内存似乎是一个非常小的数量。它的一部分已经被Arduino使用,例如,串行库提供了两个64字节FIFO,使用一些RAM。导线(I²C)库也是如此,尽管数量较少。它还将一些RAM用于堆栈和临时变量,甚至用于诸如浮点操作之类的简单任务。假设它总共使用500字节 但究竟需要多少内存呢? -它将有几个PID调节器,假设每个调节器将使用10个浮点参数来存储PID参数、当前值等。因此,它为每个调节器提供40字节,假设我们需要10个调节器。我们应该需要更少,但让我们举个例子。这是400字节。 -然后需要解析GPS消息。GPS信息的最大长度为80字节。让我们为GPS解析提供一个80字节的缓冲区,即使不将其存储在缓冲区中也可以“动态”完成大部分解析。 -让我们为GPS和传感器数据保留一些空间,300字节看起来很慷慨,因为我们不需要将它们存储在浮点数中。但我们可以把当前的GPS坐标、高度、卫星数量、俯仰、横滚等信息输入其中 -然后是一些应用数据的位置,如家庭GPS坐标、当前模式、斗杆位置、伺服值等 其余的大部分是计算,从当前GPS坐标和目标坐标到目标高度、航向等,然后将PID输入计算的俯仰和横滚。但这并不需要额外的RAM 所以我想说,用1280字节做一个非常简单的飞行控制器是可能的。如果我太低或忘记了某些方面,仍然有700多字节可用
当然不是说这很容易做到,每个方面都必须优化,但这看起来并非不可能。如果使用I²C传感器,管脚计数应该不是太大的问题,它们将共享相同的两个管脚(SCL、SDA) 我同意RAM可能是一个限制,处理能力(对于arduino uno,30 MIPS)应该足够了 在arduino mega上,APM项目运行了多年,取得了巨大成功 我相信可以用Arduino nano和几个I²C传感器+GPS制作一个非常简化的无人机飞行控制器 但即使有了更先进的微控制器,这也不是一件小事 ***如果您仍然想尝试该实验,请查看openlrs项目:。它非常古老(也有一些衍生项目),但它运行在类似arduino uno(atmega328)的硬件上。它提供RC控制和四路飞行控制器,带有i²c陀螺仪、加速计(基于wii remote)和气压计 它还解析来自GPS的数据,但afaik不提供自主导航,但应该可以添加数据,而无需太多额外工作 编辑:关于可用RAM 我知道,乍一看,2kb内存似乎是一个非常小的数量。而其中的一部分已经是u