有没有人问过,是否有可以和 Arduino 这样的开发工具包配合工作的物料?这个问题我已经看过很多次了,甚至我自己也想知道。本文将涵盖相关的信息,以及在确定可行性方面的有用信息。
扩展板
Arduino 拥有非常广泛的功能集,能够针对开发板开发称为扩展板的定制物料,从而可直接连接到母头上。通常,这些扩展板拥有充分定义的库,这些库专门设计用于扩展板中所包含的任何技术。以下是可与Arduino、Raspberry Pi、ARTIK、MegaPi、Pioneer和Qwiic配合使用的子卡/扩展板列表。
另请查看以下文章,了解一些关于扩展板的信息:
注意,除了Arduino之外,还有更多可用选项,该列表仅作示例用。这些扩展板都围绕着一个事实:Arduino具有设计上的限制和相应的规格。每个开发板都有一定的限值,且不同的版本有不同的规范(具体参见规格书或网站文档)。甚至有的扩展板会提供空的原型板,以制作符合开发板规格的任何类型的电路。扩展板并不是特定于Arduino的,因为还有其他的开发工具包,比如Beaglebone和Raspberry Pi。
电气限制
以下规格通常适用于大多数Arduino模块,不过最好找到适用于各型号的规格书,以确定额定值。根据文献资料,各引脚的绝对最大额定值为40mA(各I/O引脚);如果使用USB连接,则5V输出应限制在400mA左右,因为USB端口将电流限制为500mA;如果外部电源与圆形插孔搭配使用,则5V输出可增加到900mA左右,因为所用板载稳压器的最大额定值为1A。请勿以最大电流或接近最大电流的电流运行,因为这可能会损坏引脚或开发板。使用安全系数来延长开发板的寿命。如果开发套件与Arduino不同,请务必阅读提供的规格书,了解相关建议。
数据和速度限制
数据存储
需为应用设置最大存储空间和RAM规格,具体取决于所用开发工具包的型号。Arduino Uno的最大存储空间为32KB,EEPROM+SRAM的组合存储空间为3KB,而Mega的存储空间为256KB,EEPROM+SRAM的组合存储空间为12KB。RAM的数量将决定可同时执行多少个操作。存储空间的大小将决定需要保存多少数据。
内部时钟频率
Arduino Uno和Mega的内部振荡器使用16MHz晶体进行操作。若包含需要更高数据速率的设计,则会因去同步化而导致一些信息丢失或信息完全丢失。此外,由于内部电路不是针对该层次频率设计的,因此物料也可能出现意外行为。所有单片机的规格书中都会列出额定时钟频率(内部或外部)。
接口选项
虽然Arduino上的微处理器非常优秀,但数据接口的数量有限。如果你希望使用的技术目前无法通过扩展板或引脚使用,则很可能难以使该技术与Arduino兼容。始终建议你阅读规格书中包含的选项。如果你的要求超出了开发套件的范围,则建议采用具有更广泛数据接口选项的工业标准单片机。许多厂商均会生产这些产品,如Microchip、亚德诺半导体(Analog Devices)、Infineon、英特尔(Intel)等。
库实现
网络中已有针对某些技术的大量开源库。如果你还没启动,可以在网上搜索一下,看看是否已经有适用于所需应用的现有库(甚至还可能包括扩展板)。我曾见过打印定制喷墨库、快速傅里叶变换库、步进电机驱动器库,以及LED灯条库等。利用现有库可更加轻松地进行编码,而不必从头开始构建。这也不是Arduino的专属优势。
如果某项技术没有库,那就必须从头开始开发。许多开发工具包通常都是开源的,支持技术人员自行开发自己的库,但这超出了我的理解范围。
最后说明:
可以针对某个问题多想几个解决方案,而不是只专注于一个。例如,如果某些物料无法与Arduino配合使用,那么可以看看其他开发工具包,也许具有更符合你的应用要求的规格。Arduino对于某些问题来说可能非常容易实现,而对于其他问题,则可能几乎无法实现或不可实行。