---
# System prepended metadata

title: 即時呈現Arduino數據－PLX-daq v2

---

# 即時呈現Arduino數據－PLX-daq v2
本文介紹如何使用最簡單的PLX-daq v2匯入Arduino數據，進行簡單的視覺化數據呈現。不過只有呈現我自己實驗的範例～所以像Arduino主板、Sensor的不同都會有不同的結果，需要的話可以再多找找幾篇來看！

## 需要程式／工具
### 軟體
1. Arduino IDE
2. PLX-DAQ version.2
### 硬體
1. Arduino Uno
2. Sensor
    * 因為我需要的是ECG／EMG／GSR sensor，所以已經先寫了demo code，後面加入PLX-DAQ分析就沒有那麼困難。

## PLX-DAQ 操作方式
* 找到[PLX-DAQ的載點](https://forum.arduino.cc/t/plx-daq-version-2-now-with-64-bit-support-and-further-new-features/420628)，進入後下載 "PLX-DAQ-v2.zip" 檔。
* 進行解壓縮，解壓縮後的檔案，內含
    * Beginner's guide：說明如何使用PLX-DAQ
    * Excel：已連接好Arduino和PLX-DAQ的Excel範例檔案
* 打開Excel檔，啟用巨集讓GUI介面（操作介面）出現，依據自己Arduino的設定，照著填入PLX-DAQ的介面中。
    * Port：序列埠位置，即Arduino輸入用哪個COM
    * Baud：Baud rate，要記得跟Arduino code輸入同一數值，通常9600是極限（115200會爆）
    * Connect：設定完成後，即可按下與Arduino連線，數據會自動匯入Excel
    * Pause logging：暫停匯入數據
    * Custom Checkbox：基本上可以不用動
    * Reset Timer：重新計時，但之前存的資料還在
    * Clear Columns：清空所有資料
    * Display direct debug：呈現PLX-DAQ的執行狀況，可以看是哪裡出錯才會導致無法匯入資料
    * Simple data：下拉選單中有Further，是Excel檔案左下角的不同資料集，不過我只用到Simple Data而已
    * Controller messages：呈現PLX-DAQ的執行狀況，類似debug模式的最後一行（現在正在做什麼）

## 和 Arduino 溝通
知道如何調整PLX-DAQ的介面之後，就來看怎麼樣讓Arduino跟PLX-DAQ溝通吧！
溝通方式就是在Arduino裡面，利用 `println` 寫一些指令，讓PLX-DAQ可以辨識到該存什麼、什麼時候開始要存取資料，這樣就能把資料丟進去。

### 建立資料欄位
#### 辨識字元：LABEL
* Code:
    * `Serial.println("LABEL, Name1, Name2, ...., NameN")`
    * 輸入LABEL後，PLX-DAQ就知道，之後輸入的Name1、Name2就是照順序的欄位名稱，需要用逗點隔開才能辨別是不同欄位

#### 清空整張工作表（含欄位名稱）
* Code:
    * `Serial.println("CLEARSHEET")`

### 匯入Arduino數據至Excel
#### 辨識字元：DATA
* Code:
    * 先輸入`Serial.print("DATA")`
    * 接下來輸入`Serial.print(",")`
    * 後面接著你想要照順序存在欄位裡的東西即可，但絕對要記得前面必須要有`Serial.print(",")`，否則下一個值，會一併存在上一個欄位裡面。逗號可以分到下一行寫，或者直接寫成`Serial.print("DATA, Value1, Value2")`也可以
* 常用內建字串：
    *  `Serial.print("DATA, DATE")`：會直接抓今天日期匯入Excel
    *  `Serial.print("DATA, TIME")`：會直接抓現在時間匯入Excel
    *  `Serial.print("DATA, TIMER")`：會從開始執行PLX-DAQ時開始計時，匯入持續秒數到Excel

### 範例程式
我是需要測皮膚電阻的改變，所以這個程式碼是專門給GSR-sensor的，以下僅供參考～
```javascript!
const int GSR=A1;
int sensorValue=0;

void setup() {
  Serial.begin(9600);
  Serial.println("CLEARSHEET");
  Serial.println("LABEL, Date, Time, GSR_value");
}

void loop() {
  long sum=0;
  sensorValue= analogRead(GSR);
  Serial.print("DATA, DATE, TIME");
  Serial.print(",");
  Serial.println(sensorValue);

  delay(500);
} 
```
不過倒是可以注意`delay()` 的設置，取樣頻率太高的話，PLX-DAQ會自動關掉，完全存不到數據，設定`delay(100)`有失敗過，所以之後都設定500了。如果需要更長期、更大量的觀測數據的話，我想PLX-DAQ真的沒辦法這麼操勞哈哈哈
總之，PLX-DAQ提供了很不錯的Arduino數據儲存，也能透過Excel來轉成想要的圖表，視覺化的結果總是讓人有成就感，也比較好觀察～雖然不能像Matlab做到頻譜分析、不過簡單的測量還是有做出效果的，如果只想簡單看看趨勢的話，這是個很不賴的工具歐٩(˃̶͈̀௰˂̶͈́)و