与GNU,Linux和其他开源软件改变编程世界的方式大致相同,支持Arduino的开源硬件平台开始重写许多嵌入式应用程序的参与规则。 Arduino开源电子原型开发平台最初是为自己动手(DIY)和业余爱好者社区开发的,它基于灵活,易用的硬件和软件。虽然在艺术家,修补匠和其他创意类型中仍然广受欢迎,但其低成本,以及快速增长的免版税众包IP生态系统正在赢得许多商业开发者的忠诚度。在这个简短的调查中,我们将回顾Arduino背后的硬件和软件,以及它正在供电的一些应用程序。
图1:MakerBot的Thing-O-Matic 3D打印机价格仅为传统数控机床的一小部分,使用Arduino处理器板来控制其步进电机,热敏打印头和其他机电元件。该产品将廉价的ABS长丝原料转变为成品,用于原型制作或小批量生产,尺寸公差接近0.02 mm。 (由MakerBot Industries提供)
Arduino历史
Arduino不是一个特定的产品或技术,而是围绕Atmel的megaAVR系列8位MCU成长的硬件,软件,工具和人力资源的生态系统。其紧凑的电路板,C ++派生的编程语言和编程环境很大程度上归功于哥伦比亚艺术家和程序员Hernando Barrag于2003年创建的Wiring开源原型平台的多功能性和易用性。 Barrag的目标是简化爱好者,艺术家,研究人员和其他非工程师的电子系统开发,同时提供对经验丰富的开发人员所需的所有铃声,口哨和黑客的轻松访问。基于ATmega1281和ATmega2561微控制器,紧凑,廉价的Wiring/WiringMini处理器板已经被用于创建从交互式玩具和足球机器人到扫描电子显微镜控制器的所有东西。
Arduino平台最初由Massimo Banzi和David Cuartielles于2005年在意大利开发,作为学生设计项目的工具。它扩展了接线平台的功能,增加了一些新的编程功能和标准互连系统,允许CPU板连接到各种可互换的附加模块(称为屏蔽)。
Arduino硬件
与其前身一样,Arduino开源硬件平台基于Atmel的多功能ATmega MCU系列(图2)。 ATmega改进的哈佛式AVR处理器内核结合了丰富的指令集和32个通用工作寄存器。所有32个寄存器都直接连接到算术逻辑单元(ALU),允许在一个指令周期内访问两个独立的寄存器。 ATmega MCU提供4 K或8 KB的系统内可编程闪存(具有读写功能)以及EEPROM(256/512/512/1 KB)和SRAM(512/1 K/1)的各种组合K/2千字节)。
图2:Atmels的ATmega MCU的框图。 (由Atmel Microelectronics提供)
AVR CPU具有强大的硬件功能和I/O功能。虽然有些MCU的配置略有不同,但大多数设备包括:
23通用I/O线
6通道或8通道10位ADC
六个PWM通道
串行可编程USART
一个面向字节的2线串行接口
一个SPI串口
三个灵活的定时器/计数器(带比较模式)
带有独立振荡器的实时计数器
带内部振荡器的可编程看门狗定时器
所有形状因子场合
Arduino手机中装有越来越多的处理器板,这些处理器板是为适应特定的外形或应用而开发的。大多数设计包括稳压电源和一组连接,以评估其总线信号和面向控制的I/O.由Arduino团队创建的最受欢迎的板之一是Uno(图3)。该板包括一个16 MHz晶体振荡器,一个USB连接,一个电源插孔,一个ICSP接头和一个复位按钮。它的片上稳压器允许它通过AC-DC适配器或电池供电,或通过USB电缆连接供电。
图3:Arduino Uno板。 (由Arduino.cc提供)
Uno Board的I/O母针连接器可以访问MCU的14个数字输入/输出引脚和6个模拟输入。六个I/O引脚可用作PWM输出,从照明调光器到电机控制器等各种功能都非常方便。这些连接器还可以添加辅助板,称为屏蔽,可以包含额外的电子设备和I/O连接。
Arduino Nano是一款稍微紧凑的电路板,基于ATmega328或ATmega168,专门设计用于掉到面包板上(图4a)。对于空间更高的应用,Arduino Mini(图4b)也可用。其他变体包括用于小型电路的面包板区域或板载通信功能,如蓝牙或以太网(图4c)。 Arduino系列中最独特的成员之一是LilyPad,专为“智能服装”和电子纺织品设计的板(图4d)。可清洗/可穿戴处理器板可缝合到织物上,并使用导电线连接到类似安装的电源,传感器和执行器。
图4:Arduino平台的流行变体包括Nano(4a),Mini(4b),Arduino以太网(4c)和可清洗/可穿戴LilyPad(4d)。 (由Arduino.cc提供)
大多数“官方”Arduino板设计都可以作为预组装板,快速构建套件以及通常作为裸板使用。商业设计师(和硬核DIY用户)可以从开源硬件CAD文件中推出自己的主板,并下载Arduino软件,以便在开源许可协议下使用。
Arduino编程
Arduino硬件平台由开源软件包支持,该软件包由集成开发环境(IDE),标准编程语言编译器和直接在板上运行的引导加载程序组成。
软件开发是使用Arduino IDE执行的,这是一个基于Processing编程语言和Wiring项目的用Java编写的跨平台应用程序。虽然最初设计用于向不熟悉软件开发的艺术家和其他新手介绍编程,但它具有的功能和扩展使更多有经验的程序员感到舒适和高效。代码编辑器包括语法突出显示,括号匹配和自动缩进等功能,并且只需单击即可编译和上载程序到板。
Arduino程序是用C/C ++编写的,虽然用户只需要定义两个函数来制作一个可运行的程序:
setup() - 一个函数运行一次在可以初始化设置的程序开始时
loop() - 一个重复调用的函数,直到电路板关闭电源
IDE还包括一个C/C ++函数库,支持最常见的输入/输出操作。
Arduino.cc网站免费提供完整的IDE,大量扩展和示例代码,以及一套有关编程的综合教程。
I/O扩展(屏蔽)
几乎所有的Arduino电路板都可以使用称为“屏蔽”的夹层式附加卡轻松扩展,这些插卡通过简单的0.10“引脚连接到MCU的总线和I/O信号头。屏蔽的可堆叠混合和匹配连接系统使用市场上的几个制造商或众多引脚兼容的扩展屏蔽套件中的一个提供的商用预组装板,可以轻松添加I/O或其他扩展电路。
Arduino平台引起了业余爱好者和商业嵌入式社区的兴趣,产生了大量专用屏蔽,包括中继板,高分辨率多通道D/A或A/D转换器,交流或直流电源控制器和电机控制器(图5)。由于市场上有几种以太网屏蔽,因此将Arduino板连接到有线网络很容易。
图5:额定工作电压高达30 V和2.8 A峰值输出,这款商用Arduino电机控制屏可驱动两个直流电机机器人或运动控制应用。 (由RuggedCircuits提供)
为Arduino设计添加无线功能也很容易。可以使用支持ZigBee,蓝牙和801.11无线协议的屏蔽。还有几个屏蔽包含一个完整的基于GSM的蜂窝收发器,支持GPRS服务,并使用计算机USB端口提供的电压在Arduino Uno和Mega板上运行。
与Linux从开源社区迁移到商业软件市场的方式大致相同,Arduino的低成本和多功能性开始在商业硬件开发商中建立忠诚的追随者。虽然许多初始应用程序是由业余爱好者和学者开发的,但预计用于创建它们的Arduino技术将很快进入商业产品。
全部0条评论
快来发表一下你的评论吧 !