Arduino在业余开发者与电子设计爱好者的圈子里广受欢迎,但在专业嵌入式系统开发工程师的眼中似乎是声名狼藉──笔者自己必须坦承,有很长一段时间我认为Arduino太简单、对专业工程师来说近乎无用;但现在我已经改变看法。
过去几年来,我在不少场合上发现利用Arduino与Arduino扩充板(shield)快速打造的原型,已被证明在推进设计项目上的价值难以估计;尽管 ──或者就是因为──它非常简单,却扮演了将抽象化想法转为经定义之产品的关键。为了这个理由,让我们更靠近一点看Arduino,以及专业开发工程师如何能从它获得好处。
对专业开发工程师来说,Arduino最强大的一个方面是支持它的硬件生态系统;每款Arduino开发板以及衍生产品都有标准硬件接口,能让客制化设计电子组件堆栈在处理器电路板之上,以充实正在开发的嵌入式系统原型。
那 些客制化电子组件电路板就被称为扩充板,应该大多数开发者都知道,如其名称能在该种电路板添加各种电子装置如马达驱动器、传感器、致动器、LED或任何应 用所需的组件。Arduino在业余开发者社群的高人气,也对专业嵌入式系统工程师有利,因为几乎你想象得到的各种应用,都有不同现成的Arduino扩 充板可以取得。
我 个人最喜欢的扩充板之一是Sparkfun推出的天气感测扩充板;这款扩充板提供一系列的模拟与数字传感器,非常适合嵌入式系统开发教学课程。总之如果你 有特殊需求,快速搜寻几乎所有电子零件供货商的网站,就可以找到一大堆各式各样的Arduino扩充板,而且价格不贵,根据上面的传感器与电子组件多寡, 几乎都是50美元有找。
专业开发工程师也能利用Arduino硬件平台与感兴趣的商用设备介接;采用现成的CAN、SPI、RS-485、以太网络以及其他设备接口扩充板,可以快 速进行概念验证原型制作,或是一次性的客户展示;只要花费几百美元,开发工程师就能轻易地组装出一个嵌入式系统提案的完整的完整硬件呈现,而且只要撰写一 些“dirty code”就能让它运作。
Arduino硬件接口在过去几年有些微改变,其最新版本是以UNO R3脚位配置(pinout)为基础,其标准接口包含6个模拟输入、14个数字输入/输出、专属I2C通道以及各种各样的电源轨,和其他参考端口;图1是UNO R3脚位配置的范例。
图1 Arduino Uno R3标准脚位。
Arduino扩充板接口是为低成本、低接脚数微控制器设计的,不过专业嵌入式系统开发工程师有可能会需要更多;为此各家微控制器供货商已经尝试解决这个问题,纷纷为他们更强大的处理器打造了脚位与Arduino扩充板相同的开发板。
开发者可以为那些功能强化的开发板打造扩充板,或者是采购与开发板兼容的现成Arduino扩充板。
Arduino不只是硬件,它具备完整软硬件的原型制作系统;其软件开发环境以及链接库虽然以专业开发工程师的观点来说有许多待改进之处,但对于Arduino如何处理软件开发仍能取得实用的基本理解。
首先,开发工程师检视Arduino官网时,可能会发现在软件的讨论上有一些很奇怪的语言;因为Arduino为普罗大众发明了一 种称为“画草图(sketching)”的概念,也就是专业工程师说的“写程序”。所谓的画草图就是软件开发项目,但Arduino发展出这个术语,是来 自于它原本就是为艺术家等非软件或电子专业人员开发的原型制作工具。
接下来,即将使用Arduino的开发者会发现,得用Arduino编程语言来为Arduino装置写程序。这种语言与C/C++差不多,但实际上所指的只是为微控制器外围控制,提供一致性的API链接库总集。
对专业开发工程师来说,Arduino链接库能为速成原型提供快速的追踪;还有针对内部微控制器外围控制,以及外部组件如EEPROM、马达控制器控制的不同链接库功能。开发工程师能选择使用这些链接库,或是自己撰写程序。
Arduino 软件是开放原始码并能使用于各种用途,但开发工程师或是公司主管需要铭记于心,这种软件是为原型制作的目的所开发,其程序代码的撰写并非为了容错、安全性或 使用于任何量产意图环境。开发工程师仍需要经历整个生产流程,才能让产品上市;但Arduino至少能用来早期证明系统是可以运作,而不是花费数个月的时间却遭遇失败。