互動媒體技術也稱多媒體互動技術,其關注的是計算機和外界環(huán)境的信息互動。科技館展廳中常見的電子魚缸、互動投影、虛擬翻書和4D影院等科普項目,正是典型的互動媒體作品,體現(xiàn)了科技和藝術相結合的神奇魅力。S4A是Scratch的修改版本,它提供了對Arduino和Andriod的支持。使用S4A,只要拖曳圖標,就能編寫出交互功能強大的媒體作品。通過《青少年科技創(chuàng)新叢書:S4A和互動媒體技術》,不僅可以學習到門檻極低的人機互動技術,還可以理解并體驗智能家居和物聯(lián)網(wǎng)等高新技術。
《青少年科技創(chuàng)新叢書:S4A和互動媒體技術》適合對互動媒體技術或者互動裝置藝術感興趣的初學者,也適合對科技制作、硬件編程感興趣的中小學生。
藝術為科技提供想象和創(chuàng)造的空間,科技為藝術提供了實現(xiàn)夢想的方法,互動媒體是科技和藝術相結合的學習領域,具有神奇的魅力。所有對互動媒體感興趣的人都可以閱讀本書,不管是小學生、中學生還是在校大學生,或者是對科技動手感興趣的教師、家長。當然,如果你學過Scratch編程,或者折騰過Arduino硬件,更應該看看這本謝作如編著的《S4A和互動媒體技術/青少年科技創(chuàng)新叢書》,從中可以獲得一定的啟發(fā)和靈感。
為什么要寫這本書
“學生喜歡電腦,但不喜歡信息技術課!薄2006年,上海師大黎加厚教授在博客中寫下這句話。
學生為什么不喜歡信息技術課?黎教授認為,現(xiàn)行的信息技術課程內容和教學方法存在問題: 教材上講的是學生們已經(jīng)會的,學生不會的和社會生活中需要的知識技能,教材上沒有。信息技術飛速發(fā)展,層出不窮的新技術、新軟件、新服務向人們涌來,造成“新課程不新”的永恒的滯后現(xiàn)象。
我曾經(jīng)把信息技術課程方面的問題分為三類: 為什么教、教什么和怎么教!敖淌裁础钡膯栴},其實直接影響了學生對課程的興趣程度。拿什么課程內容來吸引學生,然后讓他們愛上技術?這幾年來我一直在思考這一問題,并開發(fā)了一門名為“互動媒體技術”的課程,試圖在課程建設方面有所突破。本書就是“互動媒體技術”課程的最重要成果之一。
互動媒體是一個全新的領域,一般稱為互動式多媒體、交互式多媒體或者互動多媒體。2010年的上海世博會,標志著我國新媒體藝術方面進入了成熟期。但人們對互動媒體的關注,主要是其媒體內容和藝術表現(xiàn)力,很少關注其背后的支撐技術。在高校尚且很少看到類似的課程,且不要說基礎教育了。在我國當前的課程體系中,像互動媒體技術一樣同時涉及軟、硬件的綜合技術是空白的。技術的淺薄,是基礎教育課程的通病,從高中課程內容中可以管窺: 通用技術課上學做凳子,信息技術課上學信息搜索。于是,在世博會和一些科技館中,學生面對互動媒體作品只會一臉驚喜,卻不知道這些作品是如何運行的。“互動媒體技術”課程的開發(fā),就是基于這樣的背景。
“互動媒體技術”課程的開發(fā)并不是一帆風順的,在找硬件和軟件平臺方面,耗去了我很多精力。直到后來發(fā)現(xiàn)了Arduino和Scratch。其實Arduino的誕生和互動媒體有著千絲萬縷的關系,Massimo Banzi和David Cuartielles本來就是為了讓從事互動設計的學生容易掌握單片機技術而開發(fā)的。Scratch的設計更是“天才”,讓編程和游戲一樣有趣。就這樣,Arduino提供了廉價且功能強大的硬件,Scratch則將編程的門檻降到最低。來自西班牙加泰羅尼亞的Citilab團隊將二者完美地結合在一起,推出了S4A。S4A為我們的學生開啟了互動媒體技術的大門!
縱觀國內Scratch的教學現(xiàn)狀,更多的老師僅僅把Scratch作為學生編寫小游戲的工前言 S4A和互動媒體技術〖2〗〖2〗 〖1〗 具。在一些場合,Scratch愛好者會很謹慎地表示,Scratch非常適合小學生。初、高中為什么不能用?2011年,我在全國高中優(yōu)質課展評活動中,用Scratch上了一節(jié)“用計算機程序解決問題”的信息技術課。有聽課的專家就表示在高中階段使用圖形化編程過于簡單。也許他不知道,越來越多的圖形化編程語言(G語言)在涌現(xiàn),除Scratch外,LabView、App Inventor、blockly、Sikuli都受到很多人的歡迎。在某些高校的工科課程中,常?梢钥吹綀D形化編程語言的身影。
我一直認為,編程不應該僅僅屬于專業(yè)程序員的專利,一些藝術、科學領域的人士,也應該能夠拿起某個簡單的編程工具,寫個小程序,表達自己的創(chuàng)意或者解決某個問題。所幸的是,這幾年面向“非專業(yè)”人士的編程工具越來越多了,如Processing,一款專為設計師和藝術家設計的編程語言。再如App Inventor和AppArchitect,能夠用圖形化的方式給Android和IOS編寫App。其實,在我們的學生中,將來真正從事程序編寫工作的也不過是其中極小的一部分。技術教育是普及教育,而不是僅僅為了培養(yǎng)某幾個精英。
2011年,一個新的教育名詞——STEM(Science,Technology,Engineering and Mathematics,科學、技術、工程和數(shù)學)引起我的關注。STEM教育是一個多學科交叉的研究領域,強調把學生學習到的零碎知識與機械過程轉變成一個探究世界相互聯(lián)系的不同側面的過程。一個STEM課堂的特點就是在“雜亂無章”的學習情境中強調學生的設計能力、批判性思維和問題解決能力。這種復雜的學習情境包含了多種學科,強調綜合技術的應用!盎用襟w技術”課程以培養(yǎng)學生STEM素養(yǎng)為目標,以研究互動媒體作品的支撐技術為教學內容,通過一系列的互動媒體實驗,把新奇創(chuàng)意變身為現(xiàn)實。相對于大家熟悉的智能機器人課程來說,互動媒體技術側重于通信和媒體展示,即人機互動。從技術門檻上看,互動媒體技術關注外設和計算機的交互,技術門檻較低,趣味性更強,不僅適合具有科技特長的學生,也適合在藝術上有特長的學生學習。
2012年,正是創(chuàng)客(makers)、3D打印機、新工業(yè)革命等名詞在悄悄醞釀并發(fā)酵的年份,各種關于Scratch、Arduino的書籍紛紛出版。我受到吳俊杰老師的“慫恿”,第一次有了為S4A寫本書的沖動。在他的引薦下,有幸認識了北京鄭劍春老師(清華大學出版社《青少年科技創(chuàng)新叢書》編委會負責人),很快就確定了本書的定位和大綱。
本書從構思到成稿,差不多十個月時間。在此期間,我也經(jīng)歷了“十月懷胎”的惶恐、陣痛和喜悅。本書偏重互動媒體技術,在藝術方面并沒有任何可圈可點之處,又擔心在技術上存在紕漏或者錯誤,不免誠惶誠恐。此外,工作上的繁忙,只能在深夜堅持寫稿,不可不謂之“痛”。而眾多同行的期待和鼓勵,也讓我從內心感到滿足而喜悅。
希望閱讀本書,能讓您感到愉快并有所啟發(fā)!
讀者對象
藝術為科技提供想象和創(chuàng)造的空間,科技為藝術提供了實現(xiàn)夢想的方法,互動媒體是科技和藝術相結合的學習領域,具有神奇的魅力。所有對互動媒體感興趣的人都可以閱讀本書,不管是小學生、中學生還是在校大學生,或者是對科技動手感興趣的教師、家長。當然,如果你學過Scratch編程,或者折騰過Arduino硬件,更應該看看這本書,從中可以獲得一定的啟發(fā)和靈感。本書具體的讀者對象如下:
第一類: 中小學生?梢栽诶蠋煹闹笇聦W習,也可以自學。但是,請別停止腳步,更精彩的互動媒體世界等你探索。
第二類: 在校大學生。希望非計算機專業(yè)的大學生學習本書,藝術專業(yè)的學生可以把本書當作“互動裝置藝術”的入門書籍。尤其希望將來從事技術教育的計算機專業(yè)、教育技術專業(yè)的大學生學習本書,為你未來的崗位做點積極的準備。
第三類: 教師。正在從事技術課程教學或者綜合實踐活動課程教學的老師,這本書會給您帶來新的教學思路。
第四類: 家長。重視家教,喜歡和孩子做點親子項目的家長,可以對照這本書自學,您的孩子會對您刮目相看的。
第五類: 入門級創(chuàng)客。創(chuàng)客不是誰的專利,也不是技術很厲害的人才能叫作創(chuàng)客。努力把各種創(chuàng)意轉變?yōu)楝F(xiàn)實的人,就是創(chuàng)客。
如何閱讀本書
本書共分為七章,分別介紹如下:
第1章概述了互動媒體和互動媒體技術的發(fā)展現(xiàn)狀,結合經(jīng)典的互動媒體作品分析了“互動”原理和工作流程,并羅列了常見的軟硬件創(chuàng)作平臺。
第2章介紹S4A的基本語法,用一個“大魚吃小魚”的范例,貫穿整章的學習,如舞臺、角色、造型、事件、廣播和變量等基礎知識。如果你已經(jīng)具備了Scratch的基礎,可以直接跳過。
第3章介紹Arduino UNO和一些周邊的擴展板、傳感器、執(zhí)行器等電子積木,包括這些電子積木如何和Arduino連接,以及Arduino和計算機的連接。
第4章通過多個范例介紹使用S4A制作互動項目,從輸入、輸出到互動,由淺入深。最后通過對S4A固件的研究,分析S4A和Arduino的互動協(xié)議。
第5章圍繞“智能家居”的話題,介紹如何使用S4A控制220V的家用電器,具體介紹了繼電器安全插座的制作過程,并講解利用超再生遙控套件,把普通的家用電器改造為可遙控電器的過程。經(jīng)過本章的學習后,你就可以設計大型的互動作品,開始像個創(chuàng)客了!
第6章介紹物聯(lián)網(wǎng),主要分析了S4A的遠程傳感器功能,并結合范例,實現(xiàn)了S4A和瀏覽器、智能手機之間的互動。讓你能近距離接觸物聯(lián)網(wǎng)技術,并能做出一個簡單的物聯(lián)網(wǎng)模型。
第7章介紹Processing,不僅介紹了Processing和Arduino的互動作品,還結合一個攝像頭識別程序,讓S4A支持簡單的手勢識別,并編寫了一個小游戲。
本書的附錄A以Sensors2S4A為范例,介紹了用MIT App Inventor開發(fā)手機APP的一般過程。Sensors2S4A的功能是將手機的傳感器信息發(fā)送給S4A。如果你對手機App開發(fā)感興趣,很有必要閱讀。附錄B則羅列了本書涉及的所有硬件設備,供讀者參考。
勘誤和支持
由于本書是國內第一本關于S4A和互動媒體技術的書籍,可參照的資源非常少。加上作者水平有限,時間倉促,書中難免出現(xiàn)一些錯誤或者表述不準確的地方,懇請讀者批評指正。書中全部源文件和涉及的軟件都可以在作者的博客中下載(博客地址: Http://blog.sian.com.cn/xiezuoru)。部分工具還會繼續(xù)更新。歡迎發(fā)送郵件到xiezuoru@vip.qq.com,期待得到你們真摯的反饋。
致謝
首先感謝MIT團隊、Arduino團隊和Citilab團隊,是他們創(chuàng)造了這些偉大的工具。尤其感謝Citilab團隊的Jordi Delgado教授為本書撰寫了精彩的序。
感謝鄭劍春和李夢軍老師,你們給了我參與編寫這套叢書的機會,并在編寫過程中耐心指導我。
感謝李藝、余勝泉、苗逢春、陳美玲、魏雄鷹、蔣莘、邱偉杰、柳棟等老師,你們的肯定和鼓勵,使我有信心深入研究互動媒體技術,并開發(fā)了選修課程。
感謝李大維(上海創(chuàng)客空間新車間的創(chuàng)始人)、鐘柏昌、梁森山、王林、武健、魏寧、吳俊杰、管學、葉琛、俞中堅、于欣龍等好朋友,你們給我很多的技術指導和精神支持。尤其是俞中堅博士,幫我翻譯了英文版的序。
感謝鄭祥和程陶奕同學,你們幫我認真審稿,找出了很多錯誤,并整理了本書的附錄。
最后感謝我的兒子謝集,書中很多案例都是和你一起做出來的,是你對Scratch的喜歡,才讓我下定決心研究Scratch,并編寫了本書。
編者2014年1月
第1章 互動媒體技術概述
1.1 互動媒體和互動媒體技術
1.1.1 什么是互動媒體
1.1.2 互動媒體和新媒體、數(shù)字媒體的關系
1.1.3 互動媒體和數(shù)碼游戲、互動裝置藝術的關系
1.1.4 互動媒體作品的運行流程分析
1.1.5 互動媒體技術
1.2 互動媒體作品欣賞
1.2.1 常見的互動媒體作品
1.2.2 經(jīng)典互動媒體作品欣賞
1.3 互動媒體創(chuàng)作工具介紹
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 鍵盤控制的優(yōu)化
2.4 角色和角色的互動
2.4.1 條件判斷
2.4.2 隨機數(shù)的應用
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 綜合創(chuàng)意設計
4.5.1 綜合創(chuàng)意設計范例——手勢控制的流水燈
4.5.2 綜合創(chuàng)意設計
第5章 體驗智能家居
5.1 智能家居
5.1.1 傳統(tǒng)家居和智能家居
5.1.2 智能家居控制器
5.2 繼電器和繼電器模塊
5.2.1 繼電器
5.2.2 繼電器模塊
5.3 安全繼電器插座
5.4 定時開關的實現(xiàn)
5.5 智能溫控電風扇的實現(xiàn)
5.6 遙控臺燈
5.6.1 遙控開關
5.6.2 遙控臺燈的實現(xiàn)
5.6.3 讓計算機遙控臺燈
5.7 設計大型互動媒體作品
第6章 物聯(lián)網(wǎng)初步知識
6.1 認識物聯(lián)網(wǎng)技術
6.2 S4A和Arduino的無線連接
6.2.1 Arduino支持的無線連接技術
6.2.2 藍牙模塊和Arduino的連接
6.3 S4A的遠程傳感器
6.3.1 開啟遠程傳感器功能
6.3.2 遠程傳感器互動協(xié)議介紹
6.4 S4A和瀏覽器的互動
6.4.1 控制頁面的制作
6.4.2 S4A程序的編寫
6.4.3 控制頁面的優(yōu)化
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 范例——遠程協(xié)奏的鋼琴
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開發(fā)Sensors2S4A
附錄B 本書涉及的硬件清單
附錄C 硬件推薦及說明
附錄D 可選硬件推薦及說明
參考文獻
后記