创造一切的可能:开源硬件巨人 Arduino

Arduino Logo

今天我们要介绍的品牌有些特殊:他们的产品不是你所见过任何意义上的「常规电器」,却能拿来驱动各种电器和电子元器件,实现几乎任何你想要的电子互动或视觉艺术效果。设计师朋友们大概听说或用过它。它就是来自意大利的开源电子原型平台,Arduino。

形形色色的Arduino硬件

Arduino背后的故事

事情要从伊夫雷亚,意大利都灵的一个小镇说起。马西莫·班齐(Massimo Banzi)是当时伊夫雷亚交互设计学院(Interaction Design Institute of Ivrea, IDII)的一名互动装置设计讲师。

作为「交互设计学院」,IDII需要向设计师们教授一套「表达和验证交互设计想法」的手段,以及基本的编程知识。这在电子设计工具并不发达的当时,是一件颇为复杂的事情。用户需要具备一定的电气电子知识和操作硬件的能力,才能实现哪怕是诸如「闪烁一盏灯」这样的简单效果,这使得没有工程背景的设计师们望而却步。

马西莫·班齐。因为谐音,国内创客社区也亲切得称他为「板子大叔」

在2003年,马西莫·班齐曾尝试使用PIC微控制器制作过一款简陋的电路板「Programma2003」并在教学中使用。而在当时,缺乏开源工具链使得PIC没有易于学习的编程语言和方便易用的下载工具,学生仍然感觉接受起来很吃力。同时,开源工具链的缺失使得大家无法在MacOS和Linux上编译PIC程序。然而当时的交互设计师,包括绝大多数IDII的学生几乎都在用苹果机(请注意当年的PowerBook苹果机无法运行Windows操作系统)。

而那个时候,来自麻省理工学院媒体实验室(Media Lab)的交互设计工具Processing已经风靡IDII。设计师不需要具备太多编程知识,只需要编写简单的程序,就可以在屏幕上呈现出美妙绝伦的图形图案或交互效果。

Processing和通过它创造的交互图形(来源:The Nature of Code)

班齐的一名学生,埃尔南多·巴拉甘(Hernando Barragán),希望通过设计一个套件,将「使用Processing创造交互效果」的愉快体验带到现实世界。他向自己的老师阐述了他的想法,得到了班齐的支持并立即付诸行动。若干次尝试后,巴拉甘完成了一部名为「Wiring」的「电路积木套件」,提供了通俗易懂的示例代码,并邀请了自己的同学们来测试自己的「电路套件」。

Wiring的交互装置示例(来源:Barragán’s thesis)

同学们的反应是「哇!太赞了!」。

脱胎于Processing的Wiring提供了简洁美丽而又通俗易懂的代码,使得大家,不管有没有丰富的编程和电子电路经验,都能通过Wiring的软硬件,亲手实现预想的交互装置。「当看到for循环语句以这样生动的形式可视化展现出来,这种感受太美了!」一名参与测试的同学在完成一个以一串LED组成的跑马灯示例后这样评价说。

转眼到了2004年,巴拉甘将开发Wiring的经历发表成毕业论文并以优异的成绩毕业,班齐则如获珍宝般地在随后的课堂教学中使用新的原型套件「Wiring」。

2005年,面对缺乏资金的窘境,伊夫雷亚交互设计学院即将停办。马西莫·班齐则相信这样一部「电子原型套件」背后的巨大潜力,认为它不应该随着IDII的停办戛然而止。2015年冬天,马西莫·班齐创立了Arduino项目,请来当时造访学校的西班牙籍芯片工程师大卫·奎提耶斯(David Cuartielles),用了几天的时间设计了第一块Arduino控制板。

Arduino这个名字来自意大利伊夫雷亚的一家酒吧,该项目的一些创始人过去常常会去这家酒吧。酒吧以伊夫雷亚的Arduin命名,他是1002年至1014年期间伊夫雷亚三国和意大利国王的统治者。

班齐深信开源社区的力量:把一个idea很赞的产品开源,让大家都可以自由使用、更改、分享,贡献自己的力量,那么这个你将拥有一个强大的开源社区,并愈发地团结、健壮。由于开源软件的协议不完全适用于电路等硬件产品(事实上此前也没有人这么做过),Arduino团队决定以CC BY-SA(署名-相同方式共享)条款发布Arduino硬件,而软件部分则依旧采用开源程序惯用的GPL条款。任何人都可以下载到Arduino的程序和电路图纸,对其进行改动并用来制作新的作品,甚至出售改动后的硬件,只要遵循相同的条款。唯一被保留的,是「Arduino」这个名字,它被Arduino团队注册了商标。也就是说衍生品虽然被允许出售,但如果被冠以Arduino的名号就必须经由官方授权。这可以保护Arduino的品牌,使其不至于被部分质量低廉的衍生品破坏。

Arduino控制板的进化

Arduino Severino

最初几个版本的Arduino大概是这样。控制板采用这样的单面PCB制作,全部元件均采用直插式封装。(如图是第二版的Arduino控制板,第一版的设计没有被生产。)现在看来,这一版的Arduino美观程度很差,但它定义了整个Arduino的框架,即「应该有的样子」:引脚插座分布在两侧,通过串口和Arduino Bootloader下载程序;另外控制板上亦安排了一个用于重启的物理按键、一个用于应对大功率设备的外接电源接口,以及一个与Pin-13连接的LED灯,方便初学者在不连接任何设备的情况下,直接运行「示例代码」中的「闪烁 / Blink」程序。这奠定了Arduino在随后的发展方向。

值得注意的是,Arduino官网仍保留着这款「初代机」的电路文件和文档下载,以便方便一些学习者,以及无法采购Arduino控制板的贫困地区的学校,通过「油墨转印」等「土方法」自行制作Arduino控制板。

Arduino Serial

第二款Arduino采用了双面PCB,蓝色阻焊油墨的使用使得它的美观程度比前一代好了很多。这一代的Arduino控制板亦采用了新的切割外形和固定孔位置,这一设计一直保留至今。它奠定了Arduino电路板的风格,以及从形态上确立了「主产品线」的识别特征。

这亦是Arduino团队尝试推广和投放的第一款产品。

Arduino Extreme

第三款控制板「Arduino Extreme」终于内置了USB串口转换模块。这使得使用笔记本电脑的初学者,在不购买转换器的情况下也可以直接上手使用Arduino控制板。同时,大部分元件也换成了贴片元件,这有利于机器大批量加工。

Arduino NG

第四代Arduino NG改进了串口芯片,同时也恢复了第一代里采用的、在随后两代更换电路板工艺后缺失的「L13」板载LED灯设计。

Arduino Diecimila

第五代Arduino Diecimila增加了软件复位功能,使得用户不需要再在下载完程序后手动按下复位键,即可看到程序的执行效果。这一代亦板载了保险丝,防止用户连接的大功率元件烧坏电脑的USB接口甚至主板。第六代的Arduino Duemilanove更换了更高级的328p芯片,这使得用户可以运行更大的程序、操作更多传感器、更复杂的零件。Arduino开始重视用户体验。

Arduino UNO

2012年,Arduino UNO发布,这也是后来流行于创客圈的、最成熟也是最普适的入门Arduino版本。目前Arduino UNO已经历三次更新改版。

几年来,虽然Arduino也推出过一些针对特定市场的控制板型号(如适用于无人机DIY的高配版本MEGA,适用于可穿戴DIY的Lilypad),但主线产品的布局(PCB轮廓外形、固定孔位、主要引脚位置)从未发生过太大的改变,并且延续到近年来的新型号(如物连网控制板Arduino 101)。

Arduino系列的经典形状

这不仅建立了Arduino主产品线的「视觉识别」特征,更重要的是:全部适用于上述控制板的Arduino扩展板(被称为「Shield」),包括电机驱动板,USB驱动板,继电器板,甚至如下图右下所示的「孔洞焊接板」,都遵循了相同的引脚位置排布。这在一方面进一步降低了对基础电路的认知要求,使得更低龄的人群也可以直接上手、感受程序和逻辑带来的魅力;另一方面也降低了一些「通俗场景」DIY的手工成本,使得进阶玩家可以更快速地构建原型。

Arduino的堆叠配件

在Arduino硬件成型后的几个月里,马西莫·班齐带领的Arduino团队迅速笼络了SparkFun等面向电子爱好者的零件提供商,并在世界各地举办了大大小小的「创客马拉松」活动。Arduino以及「开源硬件」的概念也因此在世界各地生根发芽。Sparkfun、Adafruit等零件供应商,甚至是世界各地的电子爱好者,也纷纷制作了大量适用于Arduino的电子积木,在销售积木的同时也将其代码和图纸开放给大家下载,这使得Arduino迅速成长为一个前所未有的「易用的电子制作平台」。

Arduino For Total Newbies workshop By Tel Aviv
SparkFun Sensor Kit 传感器套装
Grove Starter Kit for Arduino 传感器套装

如今,Arduino产品线已经发展成一个「大家庭」。仅是Arduino官方就提供了大大小小的、适用于各种场合的Arduino控制板和周边,如下面适用于「可交互织物」的Arduino Lilypad,使得女孩们也可以在不碰电烙铁的情况下,将交互装置应用于织物和饰件、感受电子制作的魅力。

通过导电棉线缝在衣服上的Arduino Lilypad

Arduino Esplora则在Arduino Leonardo的基础上直接添加了游戏操纵杆、方向键、加速度传感器、麦克风、蜂鸣器、光照传感器和独立的UART插座,提供了安装迷你屏幕的接口和插槽,并将这些元件巧妙地排布成一个「游戏手柄」。Esplora使得创客玩家可以轻松地打造娱乐题材的作品,在缩小体积、提升体验的同时,也为玩家保留了丰富多样的可能性。

Arduino Esplora

Arduino MKR系列,旨在用一个更小体积的电路板搭载通讯模块以及更适合网络应用开发的SoC芯片,方便创客玩家制作更轻巧的IoT(物连网)题材创作。MKR系列有多种版本,涵盖了RJ-45(网线插线)、Wi-Fi和蜂窝数据等联网方式。创客玩家只需根据自己的需求选择适合的版本,不需要再单独购买和配置通讯模块,节省时间的同时也使得作品能更加轻巧。

Arduino MKR Family

与经典系列的Arduino控制板相同,MKR系列也拥有相同的PCB外形、针脚位置,也提供有一系列Shield扩展板,方便玩家在紧凑的空间里为作品添加功能。

Arduino Shield

Arduino能干什么

Arduino能干什么?Literally ANYTHING!

Arduino的魅力,不仅在于拥有通俗易懂的软硬件、使初学者不需购买昂贵仪器也不需要具备复杂的知识储备就可以上手电子制作,更在于一个强大且团结的开源社区创造了海量的资源:从搭载了常见传感器、元器件的电子积木,到解决各种常见问题的帖子讨论和代码仓库。这些资源为Arduino用户,不管是中小学师生、电子爱好者还是设计师,提供了无穷无尽的可能。

很多人开始拿Arduino尝试有趣的事情,如这个「M&M豆分拣机」(Credit: Mirko Pavleski, GPL3授权,链接

M&M豆分拣机

一些网友使用Arduino解决问题,为生活带来方便。网友saurabhjigreat使用声波测距模块制作了一部「盲人之眼」,帮助视障人群判断眼前的障碍物。(链接

Blind's Eye

一些人只是拿它做一个简单的玩具。(Credit: Mirko Pavleski, GPL3授权,链接

迷你版「俄罗斯方块」

但也有电子制作玩家制作出具有相当复杂度的作品。(Credit: 李荣仲, GPL3授权,链接

OpenCat

当然也不乏更文艺的玩法。(Credit: danowall1, 链接

World Clock

各自领域的爱好者开始使用Arduino「发明」他们所需要的装备,如这个自行车队

Bike Jacket with Arduino Lilypad

Arduino对于很多设计师来说简直太有用了。设计师(及团队)可以借助Arduino快速实现自己的想法,进而与团队或客户交流评估其交互是否合理,或向观众展示自己的创意、发起众筹。大家熟悉的Pebble智能手表,其设计团队在开发过程中进行了大量的原型测试工作。而他们最初的原型机,来自一块用Arduino驱动的诺基亚手机屏幕。

Pebble原型机

当然,Arduino的用户群体中也不乏艺术爱好者的身影。在可视化项目「Immaterials」中,来自奥斯陆建筑和设计学校(Oslo School of Architecture and Design,AHO)的设计师团队借助Arduino制作了一根「感应WiFi信号」的LED灯柱,并在夜幕中尝试长曝光摄影。他们的作品展示了「网络和信息如何陪伴在城市和我们身边」。(Credit: Timo Arnall, 链接

Immaterials
A dense network in the forecourt of the Oslo School of Architecture and Design (AHO).
A WiFi network from an 1890s apartment building spilling into the street.

作为最早孵化了Arduino的摇篮,教育市场自然不会缺席。在这里不仅汇集了希望通过Arduino和编程启发学生逻辑思维的教师用户和学校组织,也催生了诸如Otto DIY的开源项目:

Otto Robot

以简单的3D打印外壳为身体,两只步进电机驱动的支架为双脚,外加声波测距模块和其他少量的传感器并以Arduino驱动,简单的结构和易于获得的传感器零件使得少年玩家可以轻松构建这部机器人。因为整个Otto项目都是开源的,玩家可以直接购买相应的模块,并打印它的外壳、自行组装。不具备3D打印条件的用户也可以从各种「创客商店」购买打印好的版本。

What Otto can do

在几个简单的传感器和模块的帮助下,Otto可以完成简单的动作,向前行走并判断障碍物,与玩家进行简单的交流。Otto既可以使用Arduino编程,又兼容Scratch等积木式开发平台。这使得更低龄的、暂时难以理解C语言的青少年用户也可以通过积木开发平台让Otto完成不一样的动作,并在这个过程中强化逻辑思考的能力。

Otto with Scratch

福利时间

小编估计,我们的读者中,会有很大一部分是设计师吧。也许很多设计师朋友想问:

「我也一直想学Arduino,但不知道从何开始,能给一些建议么?」

在此,小编就谈一谈自己对「上手Arduino」的看法和建议,作为一点小小的福利送给大家~

  1. Arduino使用C语言编写代码。或者确切地说,是一个简化版的C++。如果之前有接触过编程,尤其是C、Java这些语言的经历,那么You're ready!不妨直接开始。哪怕学得很浅或者已淡忘也无所谓,够用了!
  2. 如果没学过编程也没有关系。千万不要被吓到。Arduino软件自带了一些简单的示例,官网上也有很多浅显易懂的教程。结合着电路实物的反馈,很容易理解。如果对自己的自学能力不自信,可以简单补习一下循环、条件等基本编程概念,方可开始你的DIY之旅。Arduino的准入门槛很低的,不需要太畏难。
  3. 外语能力过关的朋友一定不要错过Arduino官网的Reference,非常的浅显易懂。甚至说它是「很棒的C语言教材」都不为过。
  4. 不要太迷信教程。玩开源硬件是一个不断发现工具的过程。除了去电商网站上找传感器,你大概也会经常光顾Arduino Library和Github。其中前者可以直接在Arduino软件里打开,快捷键分别是Ctrl+Shift+I和⌘⇧I。
  5. 小编比较不提倡一开始就跟着教程做比较复杂的东西。可能你在某个论坛上找到了一个很酷的小车教程,想要做一部同款出来。但有可能你会因为不理解一些概念,而很快陷入各种各样莫名其妙的问题之中。「沮丧感」比「挫折」更可怕。
  6. 小编你说了这些,我还是感觉好难啊,有没有入门书籍可以推荐呢?好吧,我推荐板子大叔亲手撰写的《爱上Arduino》。

以及:KKD电气化模型室成立啦

2018年第四季度,Kurz Kurz Design天津组建了电气化模型室,并采购、部署了包括Arduino在内的软硬件设备。在今后的工作中,我们将在「注重模型」的基础上陆续加入「可交互原型」的制作和讨论环节;如有可能,也将在公众号中为大家带来一些借助Arduino完成产品原型、辅助设计工作的内容或案例,敬请期待!

我们的日常工作:

编者注

为了避免叙述片面或失实,在撰写本文时,我查阅了包含IDII存档在内的大量资料,随即发现了Arduino诞生背后的悲剧故事。

较为常见的版本是板子大叔苦恼缺乏一个合适的、用于教学的控制板,遂用3天时间设计了一款,取名Arduino。而事情的另一个版本是埃尔南多·巴拉甘在校期间完成了这样一部设计作为自己的毕业作品。而在毕业之后,他的老师将他的想法演变成商业项目和一个强大的开源社区,而忽略了巴拉甘自己也有继续开发Wiring的想法,以及加入Arduino团队的意愿。

参阅了巴拉甘的毕业论文,经过慎重考虑后,我决定在叙述中兼顾事实的正反两面。Arduino的成功是两方面的,不仅是因为巴拉甘最初的想法,也因为整个Arduino社区的强大性使得不管是新手还是有一定经验的电子玩家都能从中获取自己所想要的东西。任何形成气候的团体都需要一定的管理和经营,开源社区亦是如此。鉴于此,我决定将这个故事讲述完整。对Arduino的发展有兴趣的朋友可以参阅巴拉甘的毕业论文《Wiring: Prototyping Physical Interaction Design》,相信读完以后会有很大收获。