Arduino vs. micro:bit超级比一比

网友投稿 2019-08-18 11:25

自micro:bit三年前开始在全球的科技教育领域掀起风潮后,很多已经熟悉Arduino的Maker或教学者,对micro:bit 可说是评价不一,今天就来听听拥有电子超过10年研发工程师经验的资深Maker对两者的比较。

https://cdn.china-scratch.com/timg/190820/1125414244-0.jpg

图 1、常见的Arduino板子(左),最近几年窜起的mciro:bit板子(右)

这几年在各级学校多少都有听过Arduino这项产品,它是一块单板计算机(Single Board Computer),上面有一颗简单的CPU,可以透过个人电.脑更换程序,被应用在制作互动装置、科技专题或程序设计。最近出现了一款比Arduino的使用方法更为简单,专门为了信息教育而设计的的单板计算机-micro:bit,不到两年的时间就风靡全球,但是Arduino这十年来所累积的学习资源以及建立的商业生态却也根深蒂固,二者各有擅场。

https://cdn.china-scratch.com/timg/190820/11254142Z-1.jpg

图 2、Arduino其中一种型号的微控制器(左),micro:bit采用的微控制器nRF51822(右)

单板计算机的核心:微处理器的比较

微控制器(Microcontroller)是一种半导体组件,有时叫做处理器(Processor)有时叫做单芯片(Single Chip)大多时候我们简称CPU,本身像是一台微型的计算机,包含了CPU以及各项周边电路,可以随时变更执行不同的程序并且透过接脚进行传感器的信号量测或是电讯号的控制,例如温度量测、马达转速控制等应用。

Arduino常被使用的微处理器型号是Atmega32u4以及Atmega328P,两者都是Atmel公司(已被MicrochipTechnology Inc.并购)设计的产品,在被选为Arduino的核心之前已经在业界占有一席之地,内容为8位CPU并整合多种周边的微控制器。

micro:bit的核心为NordicSemiconductor设计的nRF51822,它整合了为32-bits ARM® Cortex™ M0 CPU以及新一代蓝牙BLE模块在同一颗芯片上成为系统单芯片(System On Chip, SOC)。ARM公司的Cortex M系列是专门为了微控制器市场所开发的处理器架构。

近十年来,由于制造成本的降低以及软件工具的进步发达,因此微控制器的应用不再只是专业工程师才能掌握,价格上也不用非要专业公司才能负担的巨额费用,网络上的开放信息以及社群玩家之间的信息流通,让非工程人员也能快速上手,让许多创意能够展现在人们面前,更进一步担负信息科学教育的重任。

单板计算机在教学的应用

Arduino大概在2003年开始发售,为非工程人员提供一种方便快捷的计算机控制的方法,例如艺术家、DIY玩家或是学生,利用自学的方式就可以学会利用微电脑进行控制。

Arduino使用的微控制器是当年的Atmel公司所开发的ATMEGA系列,在我们目前熟悉的Arduino开发环境出现之前,早在上世纪末九零年代Atmel公司就已经以ATMEGA系列产品占有工控市场的一席之地。在那个年代的微控制器还只是工程师之间的高级玩具,这一类产品只会在工厂环境或是机器的深处才会看到,一般人是不会有机会碰触这项技术的。直到Arduino的出现,进一步把软件开发的步骤简化,一方面是Arduino将硬件线路开源化(Open Hardware),再加上创客运动的风起云涌,慢慢地把微控制器普及到让更多人认识。

micro:bit是在2015年开始由英国国家广播公司发起的一项计划,计划内容包括一块电路板以及简易的程序开发方式,并且免费提供给英国的七年级学生学习计算机科学。

Arduino在全球窜起的十年间,有另一款CPU架构的占有率不断地攀升,那就是ARM架构。。原本因为手机通讯装置的普及而跟着声势水涨船高的ARM架构,后来更进一步将产品线扩展到与手机应用截然不同的低阶应用。micro:bit在设计时采用了ARM架构的设计,也一并继承它深厚的开发与应用资源。

表 1、常见的Arduino与micro:bit的功能比较

https://cdn.china-scratch.com/timg/190820/1125412326-2.jpg

硬件规格的比较

Arduino这十几年来出品许多种类的单板计算机,从最简单的只有一颗微控制器(图 4)的到综合多种功能的多芯片架构都有,而micro:bit目前为止只有一款产品。micro:bit硬件架构上有两颗微控制器(图 3),一颗负责透过USB接口与计算机的沟通,让计算机可以上传程序代码到micro:bit以便执行,同时也负担从USB抽取电力供应的功能。另一颗微控制器负责主程序运行以及蓝芽通讯,另外板子上搭载有两颗传感器分别负责加速度与磁强度的量测。

在连接器方面,Arduino使用常见的2.54mm间距的排针连接器,让Arduino能够方便地连接扩充模块。而micro:bit使用1.27mm间距的金手指,虽然并不常见但是micro:bit特地放大其中三只信号脚的孔径,4mm直径的端子孔能够让鳄鱼夹连接,如果要使用到其他的信号接脚则需要另外采购有金手指插槽的扩充板。micro:bit的接脚功能有19只输出入接脚(Input and Output Pin,I/O Pin),其中有6只有ADC功能可作模拟(Analog)输入,而PWM功能可同时输出三组。所谓PWM功能又称作脉波宽度调变(PulseWidth Modulation, PWM),利用芯片内的定时器控制接脚在固定频率时输出不同时间的高电位,常用在亮度控制、直流马达转速控制或是伺服马达控制,是一种利用数字输出达到模拟输出效果的技术。

PWM在应用上很常见,使用上却是要很注意,因为他是利用芯片内的定时器作为信号的开关,如果程序的设计有瑕疵就会让PWM的信号输出不准确,连带使得控制发生问题。PWM还有另一个问题需注意,因为芯片内的定时器数量有限,因此往往会一个定时器要负责多条的PWM输出,因此有时会无法完全产生正确的频率到每一只接脚。有时候为了要获得准确的PWM控制,在硬件上会独立使用芯片来控制,在单板计算机上有时只是为了方便而允许输出多组PWM但上述问题必须在应用时审慎考虑。

电源电压方面,Arduino由于有内建稳压器,因此大多型号的工作电压都很宽广,多半可以允许7V~12V之间的输入电压。而mciro:bit电源要求比较单纯,除了USB供电的5V以外就只能供给3.3V的电源电压。在接脚输出入的最高电压方面,Arduino根据型号不同,使用的微处理器有3.3V或5V的差异,micro:bit的接脚就只有最高3.3V的输出入。

在输出入方面,Arduino的常见两型号只有准备一个LED,而micro:bit为了让板子默认就有显示能力于是在板上预设安装了5×5个LED,以及两个按键作为输入。

https://cdn.china-scratch.com/timg/190820/1125414293-3.jpg

图 3、micro:bit硬件方块图

https://cdn.china-scratch.com/timg/190820/1125425c7-4.jpg

图 4、Arduino UNO或Leonardo硬件方块图

通讯能力的比较

单板计算机没有键盘屏幕等输出入装置,因此单板计算机对外界的通讯能力十分重要,一般来说都具备有线的通讯能力,例如异步传输(UART)或是无线化的通讯协议。早先Arduino如果需要无线通信能力例如蓝牙或是WiFi,必须另外连接模块。micro:bit在开发之时,刚好遇到蓝牙技术第四代BLE 发展成熟,因此特别找到整合BLE控制器的微处理器作为核心,此为一大特点。

软件的比较

Arduino在刚推出时只有一种程序写法:ArduinoIDE,程序语言采用C/C++语法,并且透过编译程序与链接库的搭配,让使用者免去一般微控制器必须且复杂的初始化过程,让程序开发者可以更专注在应用。经过十多年的发展,除了开发出大量的链接库可供取用,现今的Arduino也有图形式程序开发,能够与Scratch程序介接,扩大了Arduino的可用性。

micro:bit吸取其他单板计算机的用户体验与新式的技术以及明确的教育用途,因此micro:bit一推出就采用图形式程序语言为主要的开发语言,一种以Google Blockly为基础的拼图式程序,而本身因为ARM的芯片设计关系而保有产业常用的文字型程序语言开发选项,比如一种名为Micro Python的精简版Python程序语言。除了使用者友善的开发方式,两者也依然保有原始的工程开发方式,也就是使用芯片原厂的开发工具,就Arduino来说可以使用Atmel Studio,而micro:bit就是使用ARM的Mbed开发方式。

使用方法的比较

https://cdn.china-scratch.com/timg/190820/1125422057-5.jpg

图 5、Arduino常见的面包板应用接线方式(左),micro:bit典型的鳄鱼夹接线方式(右)

Arduino在硬件的应用上大多使用连接线从连接器连接到外部传感器或是其他电路板。micro:bit可以用鳄鱼夹直接连接,如果要使用更多的信号接脚则是要用特定的扩充板。

Arduino由于连接器形式的缘故,只能用公头的连接线或是排针来连接,但由于使用Arduino的场合大多是创意发想阶段,实验性的电路大多是在面包板上面实现,此种连接方法对于面包板的对接有其方便性(图 5左)。

micro:bit的使用对象规划为小学中高年级以上的小朋友使用,操作上无法使用太精细的连接线,所以为了让年纪比较小的使用者能够快速连接其接脚,因此设计五个4mm直径的大孔,方便让鳄鱼夹夹取与连接(图 5右)。micro:bit除了五大连接孔以外也保有其它以1.27mm间距的金手指连接方式,这一连接方式必须使用特定的连接器才能使用,坊间有许多针对micro:bit设计的扩充板能将其它接脚扩展出来应用。

模块的连接

Arduino的周边商品中,有一些会将常用的功能零件集中在一块板子上,例如网络连接的扩充、WiFi或蓝牙的扩充等等,在使用上只要直接安插于Arduino的上方,将接脚直插入Arduino的连接器中就可以使用。更多的时候是将单个传感器以模块化的方式安装于小板子上,再以连接线连接到Arduino来使用,。

micro:bit出现之后便承袭了Arduino所累积出来数量众多的模块可供连接,原本以为是美事一桩,但由于micro:bit在连接器的设计上采用了罕见的设计,造成在与这些模块连接时还需要一块扩充板作为micro:bit与模块间的桥梁,真所谓鱼与熊掌不可兼得。

表 2、Arduino与micro:bit的电源来源

https://cdn.china-scratch.com/timg/190820/112542DW-6.jpg

电源的选择

在设计专题的时候,电源的选择是个重要的议题。如果专题是桌上型装置,电源的设计可以用自带稳压的变压器(Adapter),但如果专题是携带式装置则需要多一些考虑,如果是一般仪器可能功耗不大,使用一般干电池搭配线性稳压的电路就可以,但如果是自走车之类有马达的专题,那就需要锂电池搭配交换式电源(Switching Power)供应模块。

板子的电源来源:Arduino的板子电源设计大多有内建稳压电路,因此可以接受的电源来源比较多,例如行动电源的5V或是锂电池串连之后的7~12V。但micro:bit在电源设计上比较精简,板子的供电只能是3.3V(表 2),如果周边有更高电压的需求,例如伺服马达或是直流马达等周边,则需要另外连接驱动电路板并连接额外的电源,如此一来将造成使用上的不便。

坊间目前有针对micro:bit电源单一化设计的扩充板,让专题的设计只需要连接一组外部模块使用的高电压(5~12V)然后扩充板上面有稳压电路产生micro:bit所需的3.3V,再透过连接器的3V连接脚输入电源。

模块的电源来源:不管是Arduino或是micro:bit,两者的外部模块所需要的电源最好是另外给予,然后板子的GND脚与模块的GND脚要接在一起,尤其是马达类等耗电大的模块,不要从板子上的电源脚接取,以免造成板子上的稳压电路负荷过大烧毁,这是一般常见的问题。

用途的比较

Arduino的出现是为了解决跨领域应用的专业问题,让非工程背景的用户也能快速应用科技的工具,而micro:bit的出现是为了增加科技教育的丰富度,两者的设计思考并不相同所以并没有相互取代的关系。Arudino受限于当年的技术而其简化的程度有限,而micro:bit一开始就明确定义使用者的面向是在于中小学的科技教育,因此当技术背景到达一定程度时,它就横空出世并且相当程度简化了软件及硬件的复杂度。

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com