互动媒体技术也称多媒体互动技术,其关注的是计算机和外界环境的信息互动。科技馆展厅中常见的电子鱼缸、互动投影、虚拟翻书和4D影院等科普项目,正是典型的互动媒体作品,体现了科技和艺术相结合的神奇魅力。S4A是Scratch的修改版本,它提供了对Arduino和Andriod的支持。使用S4A,只要拖曳图标,就能编写出交互功能强大的媒体作品。通过《青少年科技创新丛书:S4A和互动媒体技术》,不仅可以学习到门槛极低的人机互动技术,还可以理解并体验智能家居和物联网等高新技术。
《青少年科技创新丛书:S4A和互动媒体技术》适合对互动媒体技术或者互动装置艺术感兴趣的初学者,也适合对科技制作、硬件编程感兴趣的中小学生。
艺术为科技提供想象和创造的空间,科技为艺术提供了实现梦想的方法,互动媒体是科技和艺术相结合的学习领域,具有神奇的魅力。所有对互动媒体感兴趣的人都可以阅读本书,不管是小学生、中学生还是在校大学生,或者是对科技动手感兴趣的教师、家长。当然,如果你学过Scratch编程,或者折腾过Arduino硬件,更应该看看这本谢作如编著的《S4A和互动媒体技术/青少年科技创新丛书》,从中可以获得一定的启发和灵感。
为什么要写这本书
“学生喜欢电脑,但不喜欢信息技术课。”——2006年,上海师大黎加厚教授在博客中写下这句话。
学生为什么不喜欢信息技术课?黎教授认为,现行的信息技术课程内容和教学方法存在问题: 教材上讲的是学生们已经会的,学生不会的和社会生活中需要的知识技能,教材上没有。信息技术飞速发展,层出不穷的新技术、新软件、新服务向人们涌来,造成“新课程不新”的永恒的滞后现象。
我曾经把信息技术课程方面的问题分为三类: 为什么教、教什么和怎么教。“教什么”的问题,其实直接影响了学生对课程的兴趣程度。拿什么课程内容来吸引学生,然后让他们爱上技术?这几年来我一直在思考这一问题,并开发了一门名为“互动媒体技术”的课程,试图在课程建设方面有所突破。本书就是“互动媒体技术”课程的最重要成果之一。
互动媒体是一个全新的领域,一般称为互动式多媒体、交互式多媒体或者互动多媒体。2010年的上海世博会,标志着我国新媒体艺术方面进入了成熟期。但人们对互动媒体的关注,主要是其媒体内容和艺术表现力,很少关注其背后的支撑技术。在高校尚且很少看到类似的课程,且不要说基础教育了。在我国当前的课程体系中,像互动媒体技术一样同时涉及软、硬件的综合技术是空白的。技术的浅薄,是基础教育课程的通病,从高中课程内容中可以管窥: 通用技术课上学做凳子,信息技术课上学信息搜索。于是,在世博会和一些科技馆中,学生面对互动媒体作品只会一脸惊喜,却不知道这些作品是如何运行的。“互动媒体技术”课程的开发,就是基于这样的背景。
“互动媒体技术”课程的开发并不是一帆风顺的,在找硬件和软件平台方面,耗去了我很多精力。直到后来发现了Arduino和Scratch。其实Arduino的诞生和互动媒体有着千丝万缕的关系,Massimo Banzi和David Cuartielles本来就是为了让从事互动设计的学生容易掌握单片机技术而开发的。Scratch的设计更是“天才”,让编程和游戏一样有趣。就这样,Arduino提供了廉价且功能强大的硬件,Scratch则将编程的门槛降到最低。来自西班牙加泰罗尼亚的Citilab团队将二者完美地结合在一起,推出了S4A。S4A为我们的学生开启了互动媒体技术的大门!
纵观国内Scratch的教学现状,更多的老师仅仅把Scratch作为学生编写小游戏的工前言 S4A和互动媒体技术〖2〗〖2〗 〖1〗 具。在一些场合,Scratch爱好者会很谨慎地表示,Scratch非常适合小学生。初、高中为什么不能用?2011年,我在全国高中优质课展评活动中,用Scratch上了一节“用计算机程序解决问题”的信息技术课。有听课的专家就表示在高中阶段使用图形化编程过于简单。也许他不知道,越来越多的图形化编程语言(G语言)在涌现,除Scratch外,LabView、App Inventor、blockly、Sikuli都受到很多人的欢迎。在某些高校的工科课程中,常常可以看到图形化编程语言的身影。
我一直认为,编程不应该仅仅属于专业程序员的专利,一些艺术、科学领域的人士,也应该能够拿起某个简单的编程工具,写个小程序,表达自己的创意或者解决某个问题。所幸的是,这几年面向“非专业”人士的编程工具越来越多了,如Processing,一款专为设计师和艺术家设计的编程语言。再如App Inventor和AppArchitect,能够用图形化的方式给Android和IOS编写App。其实,在我们的学生中,将来真正从事程序编写工作的也不过是其中极小的一部分。技术教育是普及教育,而不是仅仅为了培养某几个精英。
2011年,一个新的教育名词——STEM(Science,Technology,Engineering and Mathematics,科学、技术、工程和数学)引起我的关注。STEM教育是一个多学科交叉的研究领域,强调把学生学习到的零碎知识与机械过程转变成一个探究世界相互联系的不同侧面的过程。一个STEM课堂的特点就是在“杂乱无章”的学习情境中强调学生的设计能力、批判性思维和问题解决能力。这种复杂的学习情境包含了多种学科,强调综合技术的应用。“互动媒体技术”课程以培养学生STEM素养为目标,以研究互动媒体作品的支撑技术为教学内容,通过一系列的互动媒体实验,把新奇创意变身为现实。相对于大家熟悉的智能机器人课程来说,互动媒体技术侧重于通信和媒体展示,即人机互动。从技术门槛上看,互动媒体技术关注外设和计算机的交互,技术门槛较低,趣味性更强,不仅适合具有科技特长的学生,也适合在艺术上有特长的学生学习。
2012年,正是创客(makers)、3D打印机、新工业革命等名词在悄悄酝酿并发酵的年份,各种关于Scratch、Arduino的书籍纷纷出版。我受到吴俊杰老师的“怂恿”,第一次有了为S4A写本书的冲动。在他的引荐下,有幸认识了北京郑剑春老师(清华大学出版社《青少年科技创新丛书》编委会负责人),很快就确定了本书的定位和大纲。
本书从构思到成稿,差不多十个月时间。在此期间,我也经历了“十月怀胎”的惶恐、阵痛和喜悦。本书偏重互动媒体技术,在艺术方面并没有任何可圈可点之处,又担心在技术上存在纰漏或者错误,不免诚惶诚恐。此外,工作上的繁忙,只能在深夜坚持写稿,不可不谓之“痛”。而众多同行的期待和鼓励,也让我从内心感到满足而喜悦。
希望阅读本书,能让您感到愉快并有所启发!
读者对象
艺术为科技提供想象和创造的空间,科技为艺术提供了实现梦想的方法,互动媒体是科技和艺术相结合的学习领域,具有神奇的魅力。所有对互动媒体感兴趣的人都可以阅读本书,不管是小学生、中学生还是在校大学生,或者是对科技动手感兴趣的教师、家长。当然,如果你学过Scratch编程,或者折腾过Arduino硬件,更应该看看这本书,从中可以获得一定的启发和灵感。本书具体的读者对象如下:
第一类: 中小学生。可以在老师的指导下学习,也可以自学。但是,请别停止脚步,更精彩的互动媒体世界等你探索。
第二类: 在校大学生。希望非计算机专业的大学生学习本书,艺术专业的学生可以把本书当作“互动装置艺术”的入门书籍。尤其希望将来从事技术教育的计算机专业、教育技术专业的大学生学习本书,为你未来的岗位做点积极的准备。
第三类: 教师。正在从事技术课程教学或者综合实践活动课程教学的老师,这本书会给您带来新的教学思路。
第四类: 家长。重视家教,喜欢和孩子做点亲子项目的家长,可以对照这本书自学,您的孩子会对您刮目相看的。
第五类: 入门级创客。创客不是谁的专利,也不是技术很厉害的人才能叫作创客。努力把各种创意转变为现实的人,就是创客。
如何阅读本书
本书共分为七章,分别介绍如下:
第1章概述了互动媒体和互动媒体技术的发展现状,结合经典的互动媒体作品分析了“互动”原理和工作流程,并罗列了常见的软硬件创作平台。
第2章介绍S4A的基本语法,用一个“大鱼吃小鱼”的范例,贯穿整章的学习,如舞台、角色、造型、事件、广播和变量等基础知识。如果你已经具备了Scratch的基础,可以直接跳过。
第3章介绍Arduino UNO和一些周边的扩展板、传感器、执行器等电子积木,包括这些电子积木如何和Arduino连接,以及Arduino和计算机的连接。
第4章通过多个范例介绍使用S4A制作互动项目,从输入、输出到互动,由浅入深。最后通过对S4A固件的研究,分析S4A和Arduino的互动协议。
第5章围绕“智能家居”的话题,介绍如何使用S4A控制220V的家用电器,具体介绍了继电器安全插座的制作过程,并讲解利用超再生遥控套件,把普通的家用电器改造为可遥控电器的过程。经过本章的学习后,你就可以设计大型的互动作品,开始像个创客了!
第6章介绍物联网,主要分析了S4A的远程传感器功能,并结合范例,实现了S4A和浏览器、智能手机之间的互动。让你能近距离接触物联网技术,并能做出一个简单的物联网模型。
第7章介绍Processing,不仅介绍了Processing和Arduino的互动作品,还结合一个摄像头识别程序,让S4A支持简单的手势识别,并编写了一个小游戏。
本书的附录A以Sensors2S4A为范例,介绍了用MIT App Inventor开发手机APP的一般过程。Sensors2S4A的功能是将手机的传感器信息发送给S4A。如果你对手机App开发感兴趣,很有必要阅读。附录B则罗列了本书涉及的所有硬件设备,供读者参考。
勘误和支持
由于本书是国内第一本关于S4A和互动媒体技术的书籍,可参照的资源非常少。加上作者水平有限,时间仓促,书中难免出现一些错误或者表述不准确的地方,恳请读者批评指正。书中全部源文件和涉及的软件都可以在作者的博客中下载(博客地址: Http://blog.sian.com.cn/xiezuoru)。部分工具还会继续更新。欢迎发送邮件到xiezuoru@vip.qq.com,期待得到你们真挚的反馈。
致谢
首先感谢MIT团队、Arduino团队和Citilab团队,是他们创造了这些伟大的工具。尤其感谢Citilab团队的Jordi Delgado教授为本书撰写了精彩的序。
感谢郑剑春和李梦军老师,你们给了我参与编写这套丛书的机会,并在编写过程中耐心指导我。
感谢李艺、余胜泉、苗逢春、陈美玲、魏雄鹰、蒋莘、邱伟杰、柳栋等老师,你们的肯定和鼓励,使我有信心深入研究互动媒体技术,并开发了选修课程。
感谢李大维(上海创客空间新车间的创始人)、钟柏昌、梁森山、王林、武健、魏宁、吴俊杰、管学、叶琛、俞中坚、于欣龙等好朋友,你们给我很多的技术指导和精神支持。尤其是俞中坚博士,帮我翻译了英文版的序。
感谢郑祥和程陶奕同学,你们帮我认真审稿,找出了很多错误,并整理了本书的附录。
最后感谢我的儿子谢集,书中很多案例都是和你一起做出来的,是你对Scratch的喜欢,才让我下定决心研究Scratch,并编写了本书。
编者2014年1月
第1章 互动媒体技术概述
1.1 互动媒体和互动媒体技术
1.1.1 什么是互动媒体
1.1.2 互动媒体和新媒体、数字媒体的关系
1.1.3 互动媒体和数码游戏、互动装置艺术的关系
1.1.4 互动媒体作品的运行流程分析
1.1.5 互动媒体技术
1.2 互动媒体作品欣赏
1.2.1 常见的互动媒体作品
1.2.2 经典互动媒体作品欣赏
1.3 互动媒体创作工具介绍
1.3.1 MakeyMakey
1.3.2 Scratch
1.3.3 Arduino
1.3.4 S4A
1.3.5 Processing
1.3.6 Flash
1.3.7 Kinect
1.3.8 Leap Motion
1.3.9 pcDuino
第2章 S4A编程基础
2.1 S4A的安装和运行
2.1.1 S4A的安装
2.1.2 S4A的运行
2.2 我的第一个互动程序
2.2.1 添加新角色
2.2.2 编写脚本
2.2.3 测试程序
2.2.4 保存和打开程序
2.3 用键盘控制角色
2.3.1 改变角色的坐标
2.3.2 方向和造型
2.3.3 键盘控制的优化
2.4 角色和角色的互动
2.4.1 条件判断
2.4.2 随机数的应用
2.4.3 角色的复制
2.5 侦测和广播
2.5.1 侦测信息
2.5.2 用广播传递信息
2.6 变量的应用
第3章 Arduino和电子积木
3.1 Arduino是什么
3.2 Arduino的购买和安装
3.2.1 购买
3.2.2 Arduino IDE安装
3.3 Arduino的输入设备
3.3.1 什么是传感器
3.3.2 传感器的分类
3.3.3 常见的传感器
3.3.4 传感器和Arduino的连接
3.4 Arduino的输出设备
3.4.1 Arduino的常见输出设备
3.4.2 Arduino和输出设备的连接
3.5 Arduino和计算机连接
3.5.1 通过USB线连接计算机
3.5.2 通过其他方式连接计算机
第4章 S4A和Arduino的互动
4.1 S4A和Arduino的连接
4.1.1 给Arduino写入固件
4.1.2 让S4A找到Arduino
4.2 传感器信息的获取
4.2.1 传感器信息的使用
4.2.2 传感器输入范例——阳光牧场
4.2.3 传感器输入范例——互动跷跷板
4.3 外部动作的输出
4.3.1 S4A的动作输出指令块
4.3.2 光效输出范例——流水灯
4.3.3 动作输出范例——智能起落杆
4.4 互动的奥秘
4.4.1 S4A和Arduino的通信原理
4.4.2 S4A的固件代码分析
4.4.3 固件代码中的更多秘密
4.5 综合创意设计
4.5.1 综合创意设计范例——手势控制的流水灯
4.5.2 综合创意设计
第5章 体验智能家居
5.1 智能家居
5.1.1 传统家居和智能家居
5.1.2 智能家居控制器
5.2 继电器和继电器模块
5.2.1 继电器
5.2.2 继电器模块
5.3 安全继电器插座
5.4 定时开关的实现
5.5 智能温控电风扇的实现
5.6 遥控台灯
5.6.1 遥控开关
5.6.2 遥控台灯的实现
5.6.3 让计算机遥控台灯
5.7 设计大型互动媒体作品
第6章 物联网初步知识
6.1 认识物联网技术
6.2 S4A和Arduino的无线连接
6.2.1 Arduino支持的无线连接技术
6.2.2 蓝牙模块和Arduino的连接
6.3 S4A的远程传感器
6.3.1 开启远程传感器功能
6.3.2 远程传感器互动协议介绍
6.4 S4A和浏览器的互动
6.4.1 控制页面的制作
6.4.2 S4A程序的编写
6.4.3 控制页面的优化
6.4.4 传递远程传感器信息
6.5 S4A和智能手机的互动
6.5.1 通过手机浏览器和S4A互动
6.5.2 通过手机APP和S4A互动
6.5.3 用手机控制流水灯
6.6 S4A和S4A的互动
6.6.1 S4A和S4A的连接
6.6.2 范例——远程协奏的钢琴
6.6.3 最简单的“云计算”模型
第7章 从S4A到Processing
7.1 Processing简介
7.2 下载与安装
7.3 Processing和Arduino的互动
7.3.1 范例——SimpleRead
7.3.2 范例——虚拟机械臂
7.4 Processing让S4A支持摄像头
7.4.1 Processing for S4A
7.4.2 编写和手势交互的程序
附录A 用App Inventor开发Sensors2S4A
附录B 本书涉及的硬件清单
附录C 硬件推荐及说明
附录D 可选硬件推荐及说明
参考文献
后记