第17课 各版本 Arduino 开发板介绍

我是潘,曾经是个工程师。这是为 Ardui.Co 制作的 “Arduino 公开课” 系列的入门教程。Arduino 版本很多,我们一直使用的 Uno 只是其一。虽然 Uno 兼容性好、易上手,但有点老旧了。现在我们将介绍一下,其他功能更强大的版本。有任何疑问请在评论区提出,我会逐一回答。

Arduino 版本有多少?先看看官方文档的罗列:

绿色是标准规格的开发板,红色是微型化的版本,橙色是套件。但不止这些,Arduino 是一个开源的平台,这意味着其电路、程序、库都是公用的,可以被复制再开发。实际上,现在延伸出来的版本已经远远超过上面罗列的数量。我们用的比较多的是 Uno、Leonardo、Mega2560、Yun、101 以及其微型化版本,Micro、Pro Mini等。

1、简单即美的 Uno

我们一直使用的 Arduino Uno 目前已经发展到第三版(R3),但它不仅仅是一块适合入门学习的开发板。我认为 Uno 最能代表Arduino 的哲学,简单、兼容、库非常成熟,可以轻松获得扩展,足以满足绝大部分的开发需求。

它的姐妹版本是 Pro Mini,同样基于 ATMega328 系列控制芯片,功能、端口 映射 与 Uno 完全一模一样,但尺寸只有1/4。

Pro Mini 不包含USB 转串口模块,因此写程序需要一个转换器。目前常见的有 PL2303、CH340、CP2012 等转换模块。刷机方法也很简单,除了两条电源线,模块的 TX 接 Pro Mini 的 RX、RX 接TX 即可。IDE 中同样使用 Uno 开发板来刷。顺便提醒一下,Pro Mini 有5.0V 和 3.3V 两个版本,需要注意输入电压。

开发流程中,一般使用 Uno 来开发原型。设计完成后,再用 Pro Mini 实现成品的小型化。

2、无所适从的 Leonardo

Arduino Leonardo 常常被宣传为 Uno 的升级替代品,价格相近但功能更强大。但我看来它并非是一个优先的选择。

不同于 Uno,Leonardo 直接使用了 ATmega32u4 的 USB 通信功能,取消了USB 转串口芯片。这使得Leonardo不仅可以作为一个虚拟的(CDC)串行/ COM端口,还可以作为鼠标或者键盘连接到计算机。其次 Leonardo 提供了4 个外部中断,而 Uno 只提供了2个。

但是,Leonardo 在这两点的设计上却存在很多矛盾之处。首先,其4路中断端口分别为: D0、D1、D2、D3。但D0、D1 是USB转串口的接口,而 D2 和 D3 是 I2C 接口(后面课程会详细介绍)。

Arduino 开发过程中,USB转串口几乎每次都要用到的,而且如果经常要到串口监测数据,因此D0、D1 就会被一直占用。I2C 是非常重要的扩展端口,后面的课程会讲到,不少传感器、模块都需要它,D2、D3 也会被占用了。

因此要在 Leonardo 上同时使用 USB转串口、I2C、外部中断3个功能是没办法用硬件实现,只能软件模拟。我们一般把中断改为软件的模式,因为最容易实现,不过,响应速度、精确度和CPU效率都会收到影响。而 Uno 则不存在这个问题。

再如,SPI (后面课程会详细介绍)与 ICSP 复用,会导致扩展盾上所有的 SPI 部件都无法使用硬件SPI。

Leonardo 的优点有  PWM 端口数量翻了一倍,模拟输入增加到7个等,但这些在 Uno 上都可以通过 I2C 来扩展实现。另外,实现小型化时,Uno 衍生出来的 Pro Mini 价格也远低于 Leonardo 的 Mrico。

何况 Uno 使用的 ATmega328P 芯片,直插封装常见且价格便宜, DIY 各类系统非常便利 ,而 Leonardo 使用的 ATmega32u4 芯片,只有 BGA 和 PLCC 封装,DIY 难度陡增。

总的来说,初学不建议使用Leonardo。

3、功能强大的 Mega2560

Mega2560 应该是目前功能最强大的开发板,一共54个IO端口,其中包含 16 路模拟输入、15个支持PWM、6路外部中断,相比之下Uno只有14个IO端口、6路模拟输入、6个PWM和2路中断。而且Mega2560 同时支持多大 4 路串口,同时,ROM 增加至 256 KB、SRAM 达 8 KB,均远大于Uno。

Mega2560提供强大的兼容性,支持Uno的扩展盾或模块均支持Mega2560。不过,Mega2560供电与Uno 一样薄弱,如果传感器多,建议采用外部供电的模式。

我认为,Mage2560价格比较昂贵,不过,由于兼容性好,如果希望一步到位,也不失为一个选择。

4、英特尔来战 Arduino/Genuino 101

最初 Arduino 都是基于 AVR 架构的控制芯片,如 ATMage328P 等。但101不同,它是基于Intel® Curie™ 模块。该模块包含了两个内核,一个x86 (Quark)和一个32位ARC 架构内核,两个内核的主频均为32MHz。英特尔工具链可横跨两个内核优化编译用户的程序设计,从而完成极具挑战性的开发任务,具体请参与官方文档

端口方面,101配备了14路数字输入/输出引脚(其中4路可用于脉冲宽度调制(PWM)输出)、6路模拟输入,最厉害的是所有端口都支持外部中断!其工作电压和输入/输出(I/O)电压为3.3V (稳压芯片最大可提供 1500mA 电流),但所有的引脚都具有5V过压保护。另外,101 还内置了 Bluetooth LE 和 6轴加速计/陀螺仪。 软件方面,除了 Timer 等库,101绝大部分程序和库,都与UNO 兼容。

101 价格比较贵,虽然支持 Intel 为其设计的实时操作系统,并内置了6轴传感器和低功耗蓝牙,但前者对初学者来说意义不大,后者也可以通过外界模块实现。如果不是土豪,还是建议购买 Uno 。

Leave a Reply

Your email address will not be published. Required fields are marked *