維基百科:
Pure Data(或稱作PD)是 Miller Puckette 在90年代為創造交互的計算機音樂和多媒體作品而開發的視覺化程式設計語言。雖然 Puckette 是 Pd 的主要作者,但是它是一個多數開發者為起開發新擴展的開放源代碼項目。它以一個類似于 BSD許可證 類似許可證下發行,可運行在 GNU/Linux, Mac OS X, iOS, Android 和 Windows。
下面是官網對PD的介紹說明:
Pure Data (or Pd) is a real-time graphical programming environment for audio, video, andgraphical processing. Pure Data is commonly used for live music performance, VeeJaying, sound effects, composition, audio analysis, interfacing with sensors, using cameras, controlling robots or even interacting with websites. Because all of these various media are handled as digital data within the program, many fascinating opportunities for cross-synthesis between them exist. Sound can be used to manipulate video, which could then be streamed over the internet to another computer which might analyze that video and use it to control a motor-driven installation.
OK,下面來介紹一下PD與ARDUINO之間通過串口通信實現控制的方法。
在這一篇里,我用一個操作LED亮度的例子做說明。
目標:通過串口連接ARDUINO與PD,在PD里發送控制信號給ARDUINO,以實現對LED燈的明暗控制。
設備:ARDUINO UNO、兩根杜邦線、一個發光LED、一個電阻。
軟件:PD 0.45.4, ARDUINO官方IDE。
軟件的設置:PD默認是不帶有串口通信功能的,所以你需要先安裝一個擴展。
1、你可以通過官網下載這個擴展的最新源代碼,自己編譯:http://puredata.info/downloads/comport/releases/0.2/?searchterm=comport;
2、直接下載我提供的這個擴展文件comport.dll;
3、將編譯好的comport.dll拷貝到PD安裝目錄下的extra文件夾下。
下面是具體的步驟,放輕松,實際上整個過程非常簡單。
【ARDUINO部分】
首先,把ADUINO和LED連接好,接線如下圖,兩根杜邦線分別插在pin9和GND上,另一邊接到發光LED的正負極就行了,為了保護LED不會過亮而燒壞,最好加一個電阻,我用的是一個1K的可調電阻。如果沒有可調電阻用一個1K以內阻值的電阻就可以。
接下來編寫ARDUINO部分的代碼:
int incomingByte = 0; //用來保存PD發送過來的數據
int led = 9;
void setup()
{
}
void loop()
{
}
到這里ARDUINO端就都準備好了,下面來介紹如何設置PD。
【PD部分】
打開PD,點擊主菜單File->New,新建一個PD文件。
在新建的文件窗口中,點擊主菜單put->object,這樣來新建一個對象。
在這個新建的對象中,填寫 comport 3 9600
comport 是對象名稱, 3 是ARDUINO主板使用的串口編號(這里要注意,這個數字是從0開始計數的,也就是說,你想使用COM4端口,這里就需要寫數字3), 9600是通信速率。這里的端口號和通訊速率都要跟ARDUINO保持一致。
如果這一步沒有成功,可能有3個原因:
1、PD的comport.dll擴展沒有安裝,或者拷貝的目錄不正確;
2、你所選用的串口當前正在被使用;
3、串口的編號沒有填寫對。
最后一步,添加一個滑動條,設置滑動條的范圍0~255.
在主菜單中點擊Put->Vslider,添加一個縱向的滑條。
在滑動條上右鍵->屬性,參數設置如下:
點擊OK。鼠標指向滑動條的右下角,鼠標會變成一圓圈,這個時候單擊并拖拽,拉一條連線到 comport對象。
好了,到這里就可以說大功告成了。使用快捷鍵CTRL+E,來關閉PD的編輯模式,你會發現這個時候窗口內的對象都不再可以編輯了,滑動條也變得可以使用了。如果想修改,還通過這個快捷即可再次切換回編輯狀態。
現在拖拽滑動條,你會發現連接到ARDUINO的LED燈亮度會隨之變化。也就說明ARDUINO已經成功接收了從PD發送過來的數據。
本篇就介紹到這里了,下一篇我會繼續寫一個使用ARDUINO來控制PD的例子。
希望你一切都順利,HAVE FUN~