龔瑩瑜+謝作如
提線木偶是古老的漢族木偶戲的一種,表演時,藝人用線牽引木偶表演動作(如圖1)。當(dāng)看到提線木偶的表演時,一個有趣的念頭突然出現(xiàn)在筆者的腦海中,如果將提線木偶與Arduino結(jié)合在一起,用現(xiàn)代化的技術(shù)重新闡述這門古老的藝術(shù),一定能夠綻放異樣的火花!這樣做,既能讓學(xué)生積極參與動手創(chuàng)作,又能讓他們感受到中華藝術(shù)的博大精深,何樂而不為呢?
● 原理分析
提線木偶,顧名思義就是通過提拉線使木偶完成特定的動作。提線木偶一般會由五條線來控制,這五條線分別連著四肢和頭頂,提拉每一根線都會出現(xiàn)相應(yīng)的反應(yīng),同時提拉幾根線則可以完成一系列連貫的動作,這就形成了表演。
舵機是常見的動作輸出電子模塊,多用在需要角度轉(zhuǎn)換的作品中,用以精準(zhǔn)控制角度。舵機本身能轉(zhuǎn)動,加上搖臂之后,就能帶動搖臂轉(zhuǎn)過一定的角度,在這個轉(zhuǎn)動的過程中,搖臂上的每個點都沿著弧線走過一段距離(如圖2),其中離中心最遠(yuǎn)的點運動的半圓最大,走過的距離也最長。本次實驗就是利用這一原理,把提線木偶的線綁在搖臂上,然后讓舵機轉(zhuǎn)動,帶動搖臂運動,這樣與搖臂直接相連的線也就能夠被拉動,從而可以完成讓木偶做動作的效果。
● 原型設(shè)計
這個作品用到的材料并不多,僅需Arduino主控板、擴展板和五個舵機,外加按鈕、鞋盒子和雙面膠、棉線之類。
首先,木偶都是在舞臺上表演的,我們需要先設(shè)計一個適合的舞臺,這里選擇最常見的小鞋盒作為舞臺的背景,把提線木偶安裝在舞臺上。用鞋盒做舞臺背景有一個很特殊的優(yōu)點,即鞋盒是一個長方形的立體空間,主板、舵機、按鈕和電池都能完美地被隱藏在“幕布”之后,因此會讓整個作品變得非常整潔(如上頁圖3)。
為了讓提線木偶的線能方便地被舵機拉扯,我們可以在四肢對應(yīng)的鞋盒上鉆幾個洞,以便讓線通過洞與鞋盒中的舵機相連(如圖4)。
確定好四肢線的位置之后,將舵機安裝在盒子背后的相應(yīng)位置,為了讓舵機的轉(zhuǎn)動最大化地變成線的移動,我們需要用雙面膠把舵機固定在鞋盒上。隨后,我們再把舵機連接到擴展板上,使舵機的初始狀態(tài)能夠貼近盒子,這就為之后搖臂的運動提供了充足的運動空間。
舵機轉(zhuǎn)動帶動搖臂轉(zhuǎn)過一定的角度,再拉扯線就能夠使木偶做運動。木偶的動作需要讓觀眾清楚地感受到,這就要求線運動的距離要長,不能只是輕微地拉一下,那如何才能讓線走過的距離盡可能地長呢?
做圓周運動的物體有兩個速度,分別是角速度和線速度,線速度=角速度×半徑。在舵機轉(zhuǎn)速既定的情況下,搖臂做的圓周運動角速度既定,而直接影響木偶扯線運動距離的則是搖臂上與扯線相連的點的線速度,該點的線速度越大,扯線的運動距離越大。根據(jù)上面的公式可知,要增大該點的線速度,我們可以通過加長連接點的運動半徑,也就是加長搖臂的長度來實現(xiàn)這一效果。本實驗選擇在舵機原有的搖臂上另接一段木棍,再將扯線綁在木棍上(如圖5)。
● 編程控制
制作完提線木偶的外觀之后,我們就可以開始進入編程階段,本次實驗使用的是Mixly的編程環(huán)境。
在編寫代碼之前,我們應(yīng)先為木偶設(shè)計幾個基本動作。木偶的四肢都連接了線,所以可以設(shè)置幾個四肢運動的基本動作,如抬左右手、踢腳等。如圖6所示,提拉每個部位相應(yīng)的線,就能達到所需的效果。
設(shè)計好基本動作之后,我們就可以編程了。Mixly的執(zhí)行器中有舵機控制的節(jié)點,利用該節(jié)點,我們可以方便地控制舵機轉(zhuǎn)動特定的角度(如圖7)。
舵機是執(zhí)行器,因此要連接在數(shù)字引腳中,而且舵機的轉(zhuǎn)動角度是一定范圍內(nèi)可選擇的,因此可把舵機接在PWM腳處,這里以3,4,6,7引腳為例。
經(jīng)過調(diào)試得知,當(dāng)3號引腳舵機的角度是150度時,舵機能夠貼近盒子,因此,把150度作為左腳放下的狀態(tài)。調(diào)整3號引腳的角度,當(dāng)調(diào)節(jié)到50度的時候,木偶的右腳能夠被提起到合適的高度(舵機的安裝狀態(tài)不同,初始位置的角度和拉扯線的角度都會有差別,因此角度需要根據(jù)自己的情況而定)。右手、右腳、左手的角度調(diào)試和左腳相同。為了方便之后的動作調(diào)用,我們可以利用Mixly的函數(shù)功能模塊,把四肢的基礎(chǔ)運動都封裝成函數(shù)。因為四肢運動有快有慢,有不同的運動頻率,所以可使用帶有參數(shù)傳遞的函數(shù)節(jié)點(如圖8)。
四肢運動的參考代碼分別如圖9、圖10、圖11、圖12所示。
除了最簡單的動四肢外,我們還可以放飛想象,制作一些復(fù)合的動作,如雙手一起舞動,雙腳一起跳躍,四肢一起舞動,等等。
● 拓展提升
制作完基本動作之后,我們就可以給木偶安排表演的曲目了。選擇一曲節(jié)奏感強的歌曲,并想象在這樣的歌曲中,你會如何舞動,然后把你的動作附給木偶,讓木偶和你一起舞動,這絕對是件愜意的事情!
● 小結(jié)
舵機是一個十分實用的零件,與馬達相比,它能夠方便地控制轉(zhuǎn)動的角度,如果再配合轉(zhuǎn)盤和搖臂,就能夠?qū)嵌群途嚯x等量進行準(zhǔn)確的控制,本次實驗用到的就是舵機對距離的控制。這樣的使用方式還能遷移到其他設(shè)計中,如把軟的線換成鐵絲,把木偶變成一個機器人的臉,利用以上原理就能夠讓機器人的五官動起來,做出不同的表情;把木偶換成皮影,把線變成鐵絲或木棍,皮影戲是不是也就能夠完成了?
同樣的原理,應(yīng)用在不同的場景中就能有不同的效果。創(chuàng)客就是這么神奇,大家都開始動手試試吧!