0

我们正在编写门铃识别系统,并决定使用 Arduino 来处理大部分电路。我不确定的一件事是Arduino UnoArduino Mega的程序容量。我知道 Uno 只有大约 32 KB 的闪存,但我们的程序预计会在 1000 行代码内完成(我假设这会超过 32 KB 的阈值)。

我们没有太多时间来完成这个项目,所以我们不想花很多时间弄清楚如何多路复用或向 Uno 添加内存,如果它无法处理我们需要的开箱即用的内容.

将EEPROM添加到 Uno会有多困难(和耗时) ?坚持使用Mega会更好吗?

此外,首先使用 PC(带有 DAQ 板或其他东西)或Raspberry Pi而不是 Arduino 会更容易吗?

我们正在设计的系统用于读取指纹扫描仪的输入并将独特的铃声输出到扬声器。我们需要的是该系统在物理上紧凑,以便它可以取代家庭中的实际门铃系统(希望 Arduino 可以帮助实现)。

代码预计大约 1000 行的原因是因为我们可以在其中实现移动应用程序通信、锁定/解锁门等。我假设 32 KB(来自 Uno)是不够的,基于我的一些 C 程序(在千行范围内)的大小通常在 100 KB 左右。

基本上,我们需要它可以扩展到程序可以大于我们预计的大小甚至小于它的程度。如果一个就足够了,我们不希望最终不得不购买多块板。

4

3 回答 3

3

微控制器中的 32 KB 是很多程序存储器。1,000 行代码可能会组合成几千字节,而且所有 Arduino 库可能仍然比您的程序大。

如果我记得,我认为任何 ATMegas 都不支持具有外部程序存储器。如果您有大型查找表之类的东西,您可以获得I²C EEPROM 并将其加载到那里。

至于 PC/Raspberry Pi,用于计算机的某种I/O板的成本可能比 Uno 或 Mega 高得多,Raspberry Pi 也是如此,尤其是在您需要模拟输入或PWM的情况下。

我想说,现在,坚持使用 Uno,但保留你使用的任何引脚#defines,这样,如果你的程序 ROM 用完了,你可以轻松地将它移植到 Mega 上。

于 2013-06-10T03:18:52.510 回答
0

这完全取决于您的门铃识别方案实际上是什么。如果它需要 FFT 和/或花哨的浮点运算,那么您可能很容易耗尽 AVR 的 SRAM。如果它只是一些美化的有限状态机,实现得有点体面,如果这耗尽了 Uno,我会感到惊讶。

但最重要的问题是:你在建造什么?原型?一个?还是一个系列的飞行员?如果不是为了一个系列,那么开发人员的时间是最昂贵的 --> 首先去买一台更大的机器。如果您正在开发一系列计算硬件成本与开发时间 -> 瞄准仍然满足您需求的最便宜的控制器。那就是:拿最大的 Atmel 系列,一旦你有一个正在运行的原型,就把它缩小。恕我直言,门铃应该适合 ATiny。

于 2013-06-10T18:58:43.583 回答
0

Atmel 微控制器不支持允许添加 ROM 和扩展代码量的外部程序总线。一些设备支持扩展数据总线,这将允许添加 RAM。我会说这是微控制器和微处理器之间的主要区别之一,尽管分离可能有些模糊。因此,当您用完代码或内存时,您就会陷入寻找效率或削减功能的困境。我在选择微控制器时的建议是首先决定:

我是成本受限还是时间受限?

如果成本受到限制,那么您可以选择您负担得起的设备并使您的应用程序适合。如果受时间限制,请选择您可以摆脱的最大设备。

你说你有时间限制并且不确定代码规模。如果有任何方法可以证明 1000 美元的 PC+IO 板是合理的,那就走这条路吧。门铃听起来有点贵...

于 2013-06-10T06:55:20.307 回答