Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino无人机项目_Arduino_Hardware - Fatal编程技术网

Arduino无人机项目

Arduino无人机项目,arduino,hardware,Arduino,Hardware,我在一个无人机项目上工作,目前正在选择一个板来使用。是否可以使用Arduino Nano满足以下所有需求: 陀螺仪和加速度计 气压计(作为高度表) 数字磁强计 WiFi(发送遥测数据进行处理) GPS模块 4个马达(当然) 附言: 我对阿杜伊诺一无所知。但是我有很好的ASM,C/C++编程背景,并且我曾经设计过模拟电路 我想避免使用现成的飞行控制器 这将是一个技巧,使所有这些工作在一个纳米。我建议你看看他们围绕ARM芯片(和Arduino一样)建立了很多很酷的想法,那里也有一些相当活跃的社区

我在一个无人机项目上工作,目前正在选择一个板来使用。是否可以使用Arduino Nano满足以下所有需求:

  • 陀螺仪和加速度计
  • 气压计(作为高度表)
  • 数字磁强计
  • WiFi(发送遥测数据进行处理)
  • GPS模块
  • 4个马达(当然)
附言:

  • 我对阿杜伊诺一无所知。但是我有很好的ASM,C/C++编程背景,并且我曾经设计过模拟电路
  • 我想避免使用现成的飞行控制器

  • 这将是一个技巧,使所有这些工作在一个纳米。我建议你看看他们围绕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