Arduino
這Arduino是一台小型計算機。和便宜的。無論下一個假期來臨,你附近的孩子都應該擁有一個,但你應該先把它從盒子裡拿出來玩。 網路上有很多支援用於硬體和開發系統。
該專案將 Arduino 連接到 JMP 並進行一些即時數據記錄。你將需要Arduino IDE 下載;這是保存程式的 IDE 的圖片。

這個小程式做了兩件事:在電源打開時初始化串行通信,然後在其剩餘的生命週期中讀取模擬訊號並將值列印到串行端口。
電路
該項目的傳感器是硫化鎘光敏電阻。這是麵包板電路的圖片。

光敏電阻(帶有波浪線的圓形,中心後部)和旁邊的 43K 歐姆電阻(黃色-橙-橙-金)在黑線(地)和紅線(5 伏特)電源之間形成分壓器。分壓器中心抽頭上的白線連接到藍色 Arduino UNO 板上的 A0。A0 是上面的程式正在讀取的類比輸入。當光敏電阻變暗時,其電阻非常高(與43K歐姆電阻相比,白線的電壓將接近地(0伏特)。當光線明亮時,光敏電阻的電阻非常低,白線將接近5伏特。
您使用 USB 電纜作為序列埠將程式載入到 Arduino 中。它可能是 com3 或 com4 或其他選擇。JMP 將監聽同一個 USB 串列連接。這是一條很酷的藍色 USB 電纜,可能隨 Arduino 一起提供,具體取決於供應商。

JSL
製作一個包含兩列的資料表;時間列將填寫自捕獲開始以來的秒數。sense 欄位將填入來自 Arduino 的資料。
dt = New Table( "capture",
Add Rows( 0 ),
New Column( "time", Numeric, Continuous, Format( ":day:hr:m:s", 21, 3 ) ),
New Column( "sense", Numeric( 2 ) ) // the analog sensor is 0..1023
);
記住開始時間
start = Tick Seconds();
開啟 JMP 的資料來源,設定參數,並提供腳本來處理來自 Arduino 的每行資料。 COM3 可能不是您的 Arduino 連接的連接埠。
feed = Open Datafeed(
Connect( Port( "com3" ), Baud rate( 9600 ), Parity( even ), DataBits( 7 ) ),
Set Script(
x = feed << getLine;
dt << addrows( 1 );
dt:time = Tick Seconds() - start;
dt:sense = Num( x );
)
);
執行控制圖(或圖形產生器腳本)以查看正在執行的資料收集。
dt << Control Chart( Sample Size( 1 ), KSigma( 3 ), Chart Col( :sense, Run Chart() ) );
行動
在這個 5 分鐘的剪輯中,您將看到控製圖隨著資料到達而更新;數據值會根據到達感測器的光線而變化。您還會看到軸滾動以顯示更多數據,並注意到 JMP 趕上數據時響應時間存在滯後。沒有握手;資料很有可能遺失。Arduino 程式碼中的 200 毫秒暫停(如上所示)旨在為 JMP 提供時間來處理資料並更新顯示。
Arduino - YouTube

謝謝克雷格。 在 JMP 15 中我收到錯誤。 “無法設定‘時間’列的值,因為行號 (0) 無效。”感測器可在 Arduino IDE 中運行,將值傳送至 Com7。
謝謝。感測器的可能性有很多; Arduino 數位輸入也可以與實體開關一起使用。我也喜歡 PI; JMP(Windows 或 Mac)可以使用具有 PI 的套接字,這可能會使遠端連線比 Arduino 更容易。
我正在做一些非常類似於測量距離的事情。 我正在使用連接到 Arduino Uno 的超音波 ping 感測器。 效果很好,只是需要一台裝有 JMP 的計算機。 對於其他項目,我將資料寫入 SD 卡屏蔽上的文件,但即時查看資料還是很不錯的。
如果有一種方法可以在樹莓派上運行 JMP 並將 arduino 連接到樹莓派,那將會很有用。 使用樹莓派,您可以直接連接到樹莓派的 GPIO,不需要 arduino。