课程讲义:交互装置的传感与反馈
本讲讨论交互装置的传感与反馈。交互装置指观众的动作、声音或位置会改变作品状态的装置。和一幅画、一段录像不同,它要先“知道”观众做了什么,再做出回应。本讲从“感知—计算—反馈”的回路讲起,依次介绍常用的感知手段、微控制器、观众用手机参与的方式,最后讨论展览现场的稳定性、安全和维护。下一讲进入 TouchDesigner。
交互装置的基本回路分三环。感知:传感器把现实中的变化,如人的位置、动作、触摸和声音,变成数据。计算:程序读入数据,过滤噪声,判断发生了什么,再决定怎样回应。反馈:灯光、声音、图像或机械运动发生变化。观众看到反馈后调整自己的动作,回路再次开始。设计的重心往往不在某一环,而在“映射”:什么动作对应什么反馈,观众能不能在几秒内看懂这层关系。
回路式的作品在 1960 年代末已经出现。美国艺术家迈伦·克鲁格(Myron Krueger)1969 年参与完成的 GLOWFLOW,是一个会对场内观众做出反应的光与声环境。他在 1970 年代中期开始建设的 Videoplace 用摄像机拍下观众,把轮廓显示在屏幕上,与图形和另一个房间的参与者互动,1975 年曾在密尔沃基艺术博物馆展出。观众不用戴头盔和手套,身体本身就是输入。
选择感知手段之前,先问作品需要知道的最少信息是什么。按“感知什么”可以分成四类:观众在哪里(有没有人、离多远),观众在做什么(姿态、手势、动作),观众碰了什么(触摸、按压、踩踏),观众发出了什么(声音、说话)。对应的设备大致是距离传感器、摄像头和深度相机、压力与触摸传感器、麦克风。需要的信息越少,系统越简单,现场越稳定。
普通摄像头最便宜,也最容易拿到。常见做法有三种:比较前后两帧,找出运动的区域;把当前画面和空场时拍下的参考画面相减,得到人的位置;追踪某种颜色或亮度。现在也可以用姿态识别模型从普通画面里估计人体关键点,例如谷歌的 MediaPipe 姿态识别能给出 33 个身体关键点。它的弱点是依赖光线:展厅偏暗,或者作品自己的投影照在观众身上,识别都会变差。
深度相机给每个点记录一个距离值,容易把人从背景中分离出来;再识别出头、肩、肘、膝等关节,就是骨骼追踪,可以看作一种不贴标记点的动作捕捉。微软 2010 年 11 月推出的 Kinect 让这类设备以游戏配件的价格普及。但设备更替很快:Azure Kinect 开发套件已在 2023 年 10 月停产,TouchDesigner 里对应的算子现在也支持奥比中光(Orbbec)的部分相机。选设备前先确认驱动和软件支持。
距离传感器适合“观众靠近,作品变化”这类简单交互。超声波传感器发出一段超声波,测量回波返回的时间,用声速换算出距离;红外距离传感器则依靠物体反射回来的红外光。它们便宜、接线简单,但只能看见前方一个不大的范围,读数也会受物体材质、表面角度和周围反射的影响。实际使用时要对读数做平滑,并在现场请穿不同衣服的人反复测试。
压力传感器常用力敏电阻:压得越重,电阻越小。它便宜、轻薄,可以藏在地垫或坐垫下面,但精度不高,适合判断“有没有人踩上去、大致用了多大力”,不适合称重。电容触摸则是把一块导电材料(如铝箔)接到微控制器的引脚上,手靠近或接触时电容发生变化。它能隔着一层薄的纸、塑料或木头感应,适合做“摸一下就有回应”的物件。
把这些传感器接起来,最常用的是 Arduino 这类微控制器板。Arduino 项目 2005 年起步于意大利的伊夫雷亚交互设计学院,最初是给学生用的工具,核心团队包括 Massimo Banzi、David Cuartielles 等五人。它从 Hernando Barragán 2004 年的硕士项目 Wiring 分支而来,开发环境以 Processing 为基础,因此和创意编程社区一直很亲近。
Arduino 的程序结构很简单:反复读取传感器,按规则判断,再驱动输出。模拟输入读出传感器的电压,数字输入读出开关的通断;输出端可以点亮灯带、控制继电器和舵机、触发声音模块。常见的架构有两种。一是 Arduino 独立运行,直接控制灯光和声音,开机即用,最稳定。二是 Arduino 只做“传感器接口”,通过 USB 串口把读数发给电脑,由电脑上的程序生成图像和声音;这样更灵活,但多了一台电脑这个故障点。
传感器也可以缝进衣服。LilyPad Arduino 是 Leah Buechley 读博士期间设计的可缝制电路板,2007 年与 SparkFun 合作推出商用套件,元件可以用导电线缝在布料上。对服装专业来说,可穿戴交互意味着衣服本身成为感知和反馈的载体:拉伸、弯曲、触碰都能成为输入,发光、震动都能成为输出。要提前考虑汗水、拉扯和洗涤带来的损坏,以及电池贴身使用的安全。
把以上手段组合起来,交互装置大致有三条常见路线。第一条是视觉感知:摄像头或深度相机看观众,电脑上的节点式软件处理图像、生成画面,再由投影机投到墙面、地面,或者贴合到物体表面上。它的门槛是一台显卡较好的电脑、会用节点式软件,以及安装和校准投影机;风险是光线变化、观众互相遮挡、多人同时进入时识别混乱。常用的软件是 TouchDesigner,具体做法详见下一讲的入门讲义。
第二条是物理传感:Arduino 加上距离、压力、触摸传感器,直接驱动声音或灯光。它不依赖光线,成本低,适合可以触摸、可以走上去的实物装置,也适合缝进衣服的传感器。门槛主要在电路和焊接;风险在接线松动,以及传感器在展期里被反复踩压、拉扯后损坏。
第三条是观众用手机参与。观众扫码打开一个手机网页,不用安装应用;网页把触摸、绘画或输入的文字发到服务器,服务器转发给连着大屏的电脑,大屏实时生成画面。浏览器和服务器之间的双向实时通信常用 WebSocket。它的好处是人人都有手机,可以多人同时参与;风险在展厅网络、同时在线人数,以及观众输入内容的审核。不要收集作品用不到的个人信息。
无论哪条路线,反馈的质量都取决于三件事。延迟:从动作到反馈的时间一长,观众就不再觉得变化是自己造成的。稳定性:传感器读数总在抖动,需要取平均、设阈值,并在阈值上下留一段“回差”,避免数值在临界点附近来回触发。误触发:路过的人、工作人员和清洁人员都会被识别,可以要求观众停留一段时间才触发,或者限定感应区域。
现场环境和教室完全不同。白天的自然光、相邻展品的灯光、作品自己的投影都会干扰摄像头;人声和音乐会干扰麦克风;开幕时的人流也远多于调试时。所以一定要在真实场地、真实时间段测试。还要准备降级方案:传感器失效时,作品仍停在一个可以观看的默认状态,而不是黑屏或卡死。
展览现场的安全和维护要写进方案,而不是留到布展当天。线缆要固定、贴地或走线槽,不能绊人;插排和电源适配器要远离观众能碰到的位置,并注意散热;吊装的投影机和传感器要有二次固定;可以触摸的物件不能有尖角和易碎件。维护方面,给值班人员准备一页说明:怎样开关机,出问题时先重启哪一部分,找谁。每天开馆前按清单检查一遍。
课后练习:1. 用一个距离传感器做一个“靠近就变化”的小装置,记录不同材质、不同角度下读数的变化。2. 给练习 1 加上平滑和回差,统计十分钟内误触发的次数,比较修改前后的差别。3. 为你的毕设写一页方案:选定一条路线,写清感知、计算、反馈三环各用什么,列出所需设备、现场风险和降级方案。
这是一份课程资料,仅对校内师生开放。