1
2
如果使用IC传感器,引脚数不应该是太大的问题,它们只会共享相同的两个引脚(SCL、SDA)。 我同意RAM可能是一个限制,处理能力(一个arduino uno的30 MIPS)应该足够。 在一个阿尔杜诺大型项目上,APM项目多年来取得了巨大成功。 我相信有可能用Arduino nano和几个IC传感器+GPS制作一个非常简单的无人机飞行控制器。 但即使使用更先进的微控制器,这也不是一项微不足道的任务。 ***如果您仍然想尝试这个实验,请查看openlrs项目: https://code.google.com/p/openlrs/ 它相当古老(也有几个衍生项目),但它运行在类似于arduino uno(atmega328)的硬件上。它提供RC控制,以及带有ic陀螺仪、加速度计(基于wii遥控器)和气压计的四飞行控制器。 它还解析来自GPS的数据,但它不提供自主导航,但应该可以在不需要太多额外工作的情况下添加它。 编辑:关于可用RAM。 我明白,乍一看,2kb的RAM似乎是一个非常小的量。其中一部分已经被Arduino使用,例如,串行库使用一些RAM提供了两个64字节的FIFO。Wire(IC)库也是如此,尽管数量较小。它还将一些RAM用于堆栈和临时变量,甚至用于诸如浮点运算之类的简单任务。假设总共使用500字节。 但实际上需要多少RAM? -它将有几个PID调节器,假设每个调节器将使用10个浮点参数来存储PID参数、电流值等。因此,它为每个调节器提供40个字节,假设我们需要10个调节器。我们应该需要更少,但让我们举个例子。这是400字节。 -然后它需要解析GPS消息。GPS消息最大为80字节。让我们为GPS解析提供一个80字节的缓冲区,即使可以在不将其存储在缓冲区中的情况下“实时”执行大部分解析。 -让我们为GPS和传感器数据保留一些空间,300字节,这看起来很慷慨,因为我们不需要将它们存储在浮动中。但我们可以把当前的GPS坐标、海拔高度、卫星数量、俯仰、滚转等输入其中 -然后是一些应用数据的地方,如家庭GPS坐标、当前模式、杆位置、伺服值等。 剩下的主要是计算,从当前的GPS坐标和目标坐标到目标高度、航向等,然后将PID输入计算出的俯仰和滚转。但这不需要额外的RAM。 所以我想说,可以用1280字节做一个非常简单的飞行控制器。如果我太低或忘记了某些方面,仍有700多字节可用。 当然,并不是说这很容易做到,每个方面都必须优化,但这看起来并不是不可能的。 |
2
2
在Nano上实现所有这些都是一个技巧。我建议你看看 http://ardupilot.com/ 他们已经围绕ARM芯片(与Arduino相同)建立了很多很酷的想法,而且那里也有一些非常活跃的社区。 |
3
1
即使你没有用完引脚(你可能会用完),当你为电机和GPS编写代码时,你的RAM也会用完。 这甚至还没有达到CPU速度,这远远不够。正如在另一个答案中提到的,使用Cortex M-x CPU会更好。 可以说,你可以使用几个Nano,每个任务一个,但把它们链接在一起会很混乱。。。 |
Vishesh Chanana · “上载草图时出错”Arduino 7 年前 |
Jeff Coe · 确定哪个应用程序正在使用音频设备 8 年前 |
Max Larionov · Arduino无人机项目 8 年前 |
Thomas · FMA指令集的硬件支持有多丰富 9 年前 |
Gaurav Saxena · 如何了解USB设备的支持功能? 9 年前 |
Joney · 计算机系统中的定时机制 10 年前 |