首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arduino无人机项目

Arduino无人机项目
EN

Stack Overflow用户
提问于 2016-01-07 07:20:12
回答 3查看 647关注 0票数 0

我正在做一个无人机项目,目前正在选择一个可以使用的董事会。是否可以使用Arduino Nano来满足以下所有需求:

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

P.S:

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

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-07 16:25:02

管脚计数不应该是一个太大的问题,如果使用一平方米C传感器,他们将简单地共享相同的两个引脚(SCL,SDA)。

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

在arduino超级跑车上,APM项目运行了多年,取得了巨大的成功。

我相信这是有可能做一个非常简化的无人机飞行控制器与Arduino纳米和几个I S C传感器+全球定位系统。

但即使有了更先进的微控制器,这也不是一项琐碎的任务。

*如果你还想尝试这个实验,请看openlrs项目:https://code.google.com/p/openlrs/。它很古老(也有几个派生项目),但它运行在类似于arduino uno (atmega328)的硬件上。它提供RC控制和四飞控制器,包括I S.c陀螺仪、加速度计(基于wii遥控器)和气压计。

它也解析来自GPS的数据,但是afaik它不提供自主导航,但是应该可以添加它而不需要太多额外的工作。

编辑:关于可用的RAM。

我知道,乍一看,2kb的RAM似乎是一个非常小的数量。其中一部分已经被Arduino使用,例如,串行库使用一些RAM提供了两个64字节的FIFO。电线(I平方公里C)库也是如此,尽管数量较少。它还为堆栈和临时变量使用一些RAM,甚至用于浮点操作等简单任务。比如说,它总共将使用500个字节。

但是真正需要多少内存呢?-它会有几个PID调节器,假设每个调节器使用10个浮动参数来存储PID参数、当前值等。所以它给每个调节器40个字节,假设我们需要10个调节器。我们应该少一点,但让我们以这个例子为例。这是400个字节。-Then它需要解析GPS消息。GPS消息最多为80个字节。让我们允许一个80字节的缓冲区用于GPS解析,即使不需要将其存储在缓冲区中,也可以执行大部分的“动态”解析。-让我们为GPS和传感器数据留出一些空间,300字节,这似乎很慷慨,因为我们不需要将它们存储在浮标中。但是,我们可以把当前的全球定位系统坐标、高度、卫星数目、俯仰、滚动等作为应用数据的一个地方,例如家庭全球定位系统坐标、电流模式、粘贴位置、伺服值等。

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

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

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

票数 2
EN

Stack Overflow用户

发布于 2016-01-07 07:30:11

这将是一个诡计,使所有这些工作在一个纳米。我建议你看看http://ardupilot.com/,他们在ARM芯片上建立了很多很酷的想法(和Arduino一样),那里也有一些非常活跃的社区。

票数 2
EN

Stack Overflow用户

发布于 2016-01-07 10:29:18

即使你没有用完引脚(而且你可能会),当你为马达和GPS编写代码时,你就会耗尽内存。

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

可以说,你可以用几个Nano,每个任务一个,但是把它们链接在一起会很混乱……

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34649404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档