官术网_书友最值得收藏!

3.5 Arduino和Processing的交互

如果想讓在計算機中設計的藝術作品與外部物理世界進行互動,讓作品能與人和物產生“對話”,就需要使用傳感器把外部環境的信息,采集到計算機中處理。要做到這一點,目前通常的方法是通過Arduino控制器把傳感器數據,通過串口通信,讀到上位機軟件Processing里,然后通過處理,讓Processing數位作品的某些特征與傳感器數據產生關聯。于是物理世界的環境數據發生變化時,也會使虛擬數字世界的作品隨之互動,不斷幻化出動態語義的奇妙畫面。

Arduino和Processing可以作為交互媒體藝術的兩個主要部分,各自承擔著不同的角色。

作為一個交互作品,傳感器是一個輸入的感知器件,感知器件通過Arduino模塊將各種物理量變換成數據傳給計算機,計算機再去處理各類事件,形成交互過程。傳感器+Arduino可以說是交互系統的“輸入”端。

Processing在交互系統中充當“表達”角色,Processing起源于數據可視化,經過進化加入了很多多媒體處理能力,因此它不僅可以用圖形來表達,也可以用處理視頻、聲音來表達。因此在交互系統中,Processing的角色是“信號處理”和“輸出”。

傳感器+Arduino+Processing+投影+音箱可以構成一個完整的媒體交互藝術的系統。

下面是一個簡單的測試程序。

Arduino部分的代碼如下:

Processing程序部分:

從Processing下面的小黑窗中可以看到收到的數據是否正確。

假設Arduino的x=0或x=1可以看成仿真開關情況,收到的數據“0”或“1”可以模仿開關的“開”或“關”。

需要注意以下事項:

(1)Arduino調試程序使用的是Serial.print()和Serial.println()語句,聯合使用Arduino和Processing要改為Serial.write()語句。Serial.print()和Serial.write()不要同時使用。

(2)在Processing上輸入簡單的測試程序,需要注意使用同樣的COM口和同樣的波特率。

主站蜘蛛池模板: 万州区| 桂林市| 南投县| 大宁县| 西林县| 福州市| 始兴县| 威信县| 米脂县| 宾川县| 方正县| 永州市| 丽水市| 南充市| 会理县| 通化市| 阿合奇县| 稻城县| 和平县| 普安县| 易门县| 凤阳县| 九龙城区| 宁武县| 湾仔区| 个旧市| 巴中市| 揭阳市| 盘山县| 黄平县| 泾川县| 广昌县| 柏乡县| 陆丰市| 河南省| 宝清县| 曲阳县| 碌曲县| 固安县| 义马市| 临邑县|