2017年12月21日 星期四

PLX-DAQ 二代!!!讓excel直接抓取arduino數據

這大概是最近最令我振奮的消息了,PLX-DAQ終於出了v.2!
http://forum.arduino.cc/index.php?topic=437398.0


這是啥米玩意兒呢?應該可以說是EXCEL的外掛,按下連結按鈕,就會抓arduino那邊輸出的資料,然後直接丟到excel裡面。當然也就可以直接讓excel把圖畫出來囉!

下載最新版本( V2.11)之後,解壓縮就會得到一個資料夾,裡面有幾個檔案


不用安裝,直接執行那個excel的檔案就可以了。

接著請看下面這個網址。這篇裡面有V2.11可以下載之外,還有一個beginner's guide可以看。裡面有二代的功能說明。

http://forum.arduino.cc/index.php?topic=437398.msg3251256#msg3251256

這邊簡單介紹EXCEL部份的介面操作方式和功能與arduino端對應要怎麼寫程式才能讓PLX-DAQ運作。

先看一下EXCEL介面和運作起來的樣子,打開檔案之後,會跑出一個正常的EXCEL表單和一個操作介面

從左上開始,看到settings下面,先選擇arduino連接的port,以我今天使用的例子來說,是COM4,所以就選擇4。然後包率設定是9600。(據guide裡面說,包率太高可能在某些功能上會有問題,所以還是就設定9600就好)

接下來看右邊有幾個核取方塊,上面的先不管。看下面的Reset on connect。就是在連結arduino的時候,把arduino重置。Reset timer,就是把時間歸零;下面的Clear Columns就是把數據資料清除。

要開始連接arduino收數據,當然就是按下connect囉,效果如下影片。



基本上這就已經達到我的需求了,再來看看Arduino端要怎麼寫才能和PLX-DAQ溝通。在PLX-DAQ中,都是用Serial.println的指令來溝通的,也就是它去看你從Serial.println那邊輸出什麼東西,當它讀到這些訊息,就會做出對應的動作。

例如:
1.我要在EXCEL表單最前面建立資料欄位名稱的話我就要在Arduino端寫一段: 

Serial.println(“LABEL,1st Column,2nd Column,Third one!”);

PLX-DAQ看到"LABEL"之後,就會把後面的文字抓起來變成欄位資料。多個欄位,就用逗點分隔開來。假設我要他紀錄兩個溫度計的數值,要有兩個溫度的欄位,就要這樣寫:

Serial.println("LABEL, T1, T2");

2.假設我想把整張工作表都清空,連同欄位資訊都清空的話:

Serial.println(“CLEARSHEET”);   代表要把整張工作表清空,連同欄位名稱一起  

3.如果想把數值資料送到EXCEL的工作表的話(當然這就是最主要的功能):

就要先有一行

Serial.print("DATA");

這行之後Serial.print出來的數值都會變成工作表裡面的資料,例如:

  Serial.print("DATA, TIMER,");
  Serial.print(T1);
  Serial.print(",");
  Serial.println(T2);

DATA這個字串後面接了幾個東西,一個是TIMER字串,然後是逗點,然後是T1這個變數,然後是逗點,再來是T2這個字串

PLX-DAQ看到DATA之後,就開始抓後面的東西丟到EXCEL裡面。首先抓到的是TIMER,這是PLX-DAQ自己內建的時間,相當好用。然後就是抓T1這個溫度和T2這個溫度丟到EXCEL裡面,接著是T2...


PLX-DAQ裡面,有幾個幫你計算時間的方式,都不錯。首先上面的TIMER就是碼表,會幫你抓的時間,就是從開始執行Arduino為起點,每收到一個數據,就紀錄時間長度。

另外還有兩個計算時間的方式,一個是DATE,  一個是TIME。DATE是抓電腦的日期,TIME是抓電腦的時間(時、分、秒)

新版的還有一些功能我還沒弄懂,再持續研究啦
張貼留言