作者:Clive Maxfield
关键词: 开发工具, 编程
事实证明,开源的Arduino概念已在业余爱好者和创客中取得巨大成功。同时此概念亦被专业设计人员所接受,用于早期开发和原型设计,最近又被用于完整设计。随着诸如可穿戴设备和健康监测之类应用的出现,这两类用户都需要在越来越小的电路板外形尺寸中,实现更高的性能和更多的功能。
本文将简要讨论如何使用Arduino板来满足创客和专业人士对低功耗、空间受限型应用中实现高性能和功能需求,然后介绍并展示如何从Arduino家族的最新成员——来自Seeed Technology Co.的Seeeduino XIAO——着手来启动项目。
如何用Arduino满足可穿戴式设计需求
许多业余爱好者和设计人员都对开发小物理尺寸的产品感兴趣,以便部署在空间受限的环境中,包括可穿戴设备。这些通常是智能电子系统,常常是基于微控制器与检测与显示设备的组合。有时,这些产品可用作高科技饰品。有时,则可紧贴和/或佩戴在皮肤表面上,可供检测、分析和传输身体数据,例如体温、心率和脉搏氧合,以及环境数据。还有些时候,可为佩戴者提供即时的生物反馈。
对于这类设计,很多业余爱好者和创客都使用Arduino微型计算机开发板。于是,越来越多的专业工程师也开始将这些开发板用作评估和原型开发平台,以便加快IC、传感器和外设的评估速度并降低成本。
这类用户通常从A000073 Arduino Uno Rev3着手,该板被誉为“人手必备的入门开发板”(图1)。该开发板基于Atmel(现为Microchip Technology)的ATMEGA328P-AUR微控制器。这款5V处理器提供14个数字输入/输出 (I/O),其中6个可提供脉冲宽度调制 (PWM) 功能,以及6个模拟输入引脚,在必要时也可用作数字I/O。此外,在数字I/O引脚2和3上还支持两个外部中断,以及UART、SPI和I2C接口各一个。
此开发板具有8位数据路径和16MHz时钟的限制,再加上Arduino Uno仅提供32KB的闪存程序存储器和2KB的SRAM;除此之外,尺寸为68.6 x 53.4mm (36.63cm2),这对于许多应用来说太大了。
如要减少该微处理器开发板的物理尺寸,一种方法是迁移到ABX00028 Arduino Nano Every,后者基于Atmel的ATMEGA4809-MUR微控制器(图2)。程序存储器比Arduino Uno多50% (48KB),SRAM容量是Arduino Uno的3倍 (6KB)。与Arduino Uno一样,Arduino Nano Every也基于5V处理器,该处理器提供14个数字I/O以及6个模拟输入引脚,而这些引脚在必要时也可用作数字I/O。此外,与Uno一样,Nano Every也提供 UART、SPI和I2C接口各一个。但是,与仅支持两个外部中断的Uno不同,Nano Every的所有数字引脚都可以用作外部中断。
虽然Arduino Nano Every仍有8位数据总线的限制,但具有更快的时钟 (20MHz) 和更多的存储空间(48KB闪存和6KB SRAM)。对于尺寸受限的项目更重要的是,Arduino Nano Every仅为45 x 18mm (8.1cm2)。
另一个流行选择方案是来自SparkFun Electronics的DEV-13736 Teensy 3.2,该板可以使用Arduino的集成开发环境 (IDE) 进行编程(图3)。在I/O方面,这款3.3V开发板得到大幅强化,它有34个数字引脚,其中12个支持PWM,以及21个高分辨率模拟输入。
Teensy 3.2采用NXP的MK20DX256VMC7R Kinetis K20微控制器。K20采用32位Arm Cortex-M4处理器内核,运行频率为72MHz,并具有256KB闪存和64KB SRAM。对于尺寸受限的项目来说,特别值得关注的是,Teensy 3.2的尺寸为35 x 18mm (6.3cm2),大约是Arduino Nano Every的四分之三。
Seeeduino XIAO简介
尽管Teensy 3.2只有6.3cm2,但这对于许多应用来说仍然太大。对于那些寻求更小、更强大平台的人来说,解决方案就在庞大的Arduino生态系统中。一种相对较新的选择是Seeed Technology的Seeeduino XIAO(图4),尺寸仅为23.5 x 17.5mm (4.11cm2),相当于一张标准邮票的大小。Seeeduino XIAO的设计人员还很注重超低成本。
XIAO采用来自Atmel的ATSAMD21G18A-MUT SAMD21G18微控制器。该微控制器采用32位Arm Cortex-M0+处理器内核,运行频率为48MHz,并由256KB的闪存和64KB的SRAM提供支持。
虽然XIAO仅提供11个数据引脚,但每个引脚都可以用作数字I/O或模拟输入(图5)。其中10个引脚支持PWM,1个引脚配备数模转换器 (DAC),从而提供真正的模拟输出能力。此外,XIAO还支持UART、SPI和I2C接口各一个。
部署和使用Seeeduino XIAO
一般来说,使用Seeeduino XIAO与使用其他Arduino或兼容Arduino的开发板一样简单,但也有一些值得注意的技巧与诀窍。
确保使用最新版本的Arduino IDE是一个很好的着手点。接下来,访问Seeeduino XIAO Wiki,获得有关如何使用适当的开发板管理器来增强Arduino IDE的说明。
许多Seeeduino XIAO项目(可穿戴和其他项目)将涉及使用基于WS2818的三色NeoPixel(来自Adafruit),例如每米带144个NeoPixel的2970灯带(图6)。
一个潜在的问题是,虽然传统的Arduino开发板可以继续使用旧版本的Adafruit NeoPixel库,但Seeeduino XIAO需要最新且最好的版本。
如果安装了旧版NeoPixel库,奇怪和混乱的错误信息可能会随之而来。解决方法是从系统中删除所有旧版本的库,然后按照Adafruit NeoPixel Überguide上的说明安装最新且最好的版本。
一个潜在的担忧是NeoPixel对其数据引脚上的过冲和欠冲很敏感。而问题是,来自现代微控制器的信号快速边缘变化率可能导致此类特性。解决方法是在NeoPixel链中尽可能靠近第一个元件串联一个电阻(图7)。像Stackpole Electronics Inc.的CF14JT390R碳膜电阻器这样的5%公差、1/4W、390Ω的电阻器就是一个合适的选择。
另一个与NeoPixel相关的问题是Seeeduino XIAO的3.3V数字输出可能不足以驱动NeoPixel的5V数据输入。一种解决办法是使用来自SparkFun的BOB-12009逻辑电平转换器分线板(图8)。
NeoPixel应用只需要一个单向通道。BOB-12009的问题在于它提供了四个双向通道,对于空间受限的项目来说是一个相对较大的解决方案,而对于成本敏感的项目来说则是一个相对昂贵的解决方案。一个简单的替代方案是使用一个Comchip Technology的1N4001 二极管(图9)。
NeoPixel将逻辑1视为高于0.7 * VCC的电压。在此例中,NeoPixel将逻辑1视为0.7 * 5 = 3.5V。
通过具有0.7V正向压降的IN4001二极管为“牺牲的”Pixel(像素)供电,结果是产生VCC为5 – 0.7 = 4.3V的供电电压,这意味着它将逻辑1视为0.7 * 4.3 = 3.01V。反过来,这意味着Seeeduino XIAO的3.3V信号足以驱动牺牲的像素。同时,牺牲像素的4.3V输出足以驱动链中下一个NeoPixel的数据输入。
结语
早期的Arduino开发板如8位、16MHz的Arduino Uno,物理尺寸大,容量和性能受限。如今,Arduino生态系统包括的开发板种类繁多,涵盖了各种形状、尺寸和功能。
对于可穿戴设备等尺寸受限的项目,Seeeduino XIAO提供了运行频率为48MHz的32位Arm-Cortex-M0+处理器内核,并配备256KB闪存和64KB SRAM。所有这些都呈现在一个试验板友好型小平台上,尺寸只有4.11cm2,同时还具有广泛的生态系统支持。
———————————————————–
如有任何问题,欢迎联系得捷电子Digi-Key客服团队。
中国(人民币)客服
- 400-920-1199
- service.sh@digikey.com
- QQ在线实时咨询 |QQ号:4009201199
中国(美金)/ 香港客服
- 400-882-4440
- 8523104-0500
- china.support@digikey.com
到微信搜寻“digikey”或“得捷电子”
关注我们官方微信
并登记成会员,
每周接收工程师秘技,
赚积分、换礼品、享福利