我们正在编程一个门铃识别系统,并决定使用Arduino来处理大部分电路。我不确定的一件事是Arduino Uno与Arduino Mega的程序容量。我知道Uno只有大约32 KB的闪存,但我们的程序预计将在一千行代码中(我认为它会超过32 KB的阈值)。
我们没有太多时间来完成这个项目,因此如果它无法处理我们需要的内容,我们不想花很多时间来弄清楚如何复用或添加内存到Uno的盒子。
将EEPROMs添加到Uno会有多困难(而且耗时)?坚持使用Mega会更好吗?
此外,首先使用PC(使用DAQ板或其他东西)或Raspberry Pi而不是Arduino会更容易吗?
我们正在设计的系统用于从指纹扫描仪读取输入并将单个环输出到扬声器。我们需要的是系统在物理上紧凑,因此它可以适合在家中更换和实际的门铃系统(希望Arduino可以帮助完成)。
代码被投射到大约一千行的原因是因为我们可以实现移动应用程序通信,锁定/解锁门等等。我假设32 KB(来自Uno)是不够的基于我的一些C程序(在千行范围内)的大小,通常大约100 KB。
基本上,我们需要它可以扩展到程序可能大于我们的预计大小甚至小于它的程度。如果一个人足够,我们不想最终购买多个电路板。
答案 0 :(得分:3)
如果我记得,我认为任何ATMegas都不支持具有外部程序存储器。如果您有类似大型查找表的内容,则可以获得I²C EEPROM并将其加载到那里。
至于PC / Raspberry Pi,计算机的某种I/O板可能比Uno或Mega花费更多,与Raspberry Pi一样,特别是如果你需要模拟输入或{{ 3}}
我想说,现在,坚持使用Uno,但保留你用作#defines
的任何引脚,这样,如果你的程序ROM耗尽,你可以很容易地将它移植到Mega。
答案 1 :(得分:0)
Atmel微控制器不支持允许添加ROM并扩展代码量的外部程序总线。一些设备支持扩展数据总线,这将允许添加RAM。我想说这是微控制器和微处理器之间的关键区别之一,尽管分离中可能存在一些模糊性。因此,当您耗尽代码或内存时,您将无法找到效率或削减功能。选择微控制器时我的建议是先决定:
我是否受到成本限制或时间限制?
如果成本受限,那么您选择能够承受的设备并使您的应用程序合适。如果受时间限制,请选择您可以使用的最大设备。
你说你有时间限制而且不确定代码规模。如果有任何方法可以证明1000美元的PC + IO板是合理的那么走。对门铃来说听起来有点贵......
答案 2 :(得分:0)
这完全取决于你的门铃识别方案究竟是什么。如果它需要FFT和/或花哨的浮点算术,那么你可能很容易耗尽AVR的SRAM。如果它只是一些美化的有限状态机,有一些不错的实现,如果这耗尽了Uno,我会感到惊讶。
但最重要的问题是:你在建造什么?一个原型?一个?还是一个系列的飞行员?如果它不是一个系列,那么开发人员的时间是最昂贵的 - >首先去寻找更大的机器。如果您正在开发一系列计算硬件成本与开发时间 - >瞄准最便宜的控制器,仍然符合您的需求。那就是:占据Atmel家族中最大的一个,一旦你有一个正在运行的原型缩小它。恕我直言,门铃应该适合ATiny。