2012年10月10日 星期三

Arduino Eclipse plugin 的使用介紹

上篇說明如何安裝 Arduino Eclipse plugin,這篇將介紹 Arduino Eclipse plugin 的使用方法,我們會討論「如何建立 Arduino Project」、「如何使用 Serial Monitor」以及 Import library。

如何建立 Arduino Project

在 Eclipse 裏,建立 Arduino Project 的步驟如下:

  • 點一下 File > New > Project 叫出 Project Wizard 視窗,選擇 New Arduino sketch 後按 Next

2012-10-10_20h55_48

  • 輸入 Project 名稱後,按下 Next

2012-10-10_21h04_42

  • 選擇 Arduino 板子型號和連接的 COM Port。本例使用 Arduino Uno,連接的 COM Port 是 COM5:

image

你可以展開 Board 欄的下拉選單 (Dropdown list) 以選擇合適的 Arduino 板子:

image

  • 按下 Finish 後,Arduino Eclipse plugin 會建立兩個 projects,一個是 Arduino library 的 project (本例為 Arduino_Uno) ,另一個是你輸入的 project (本例為 Blink):

image

正常情況下,我們不會動到 Arduino library 這個 project 的內容,所以你可以不理會這個 project。

  • 當你寫好程式後,按下工具列的鎯頭按鈕 2012-10-10_21h31_35可以編譯程式,按下 AVR 按鈕 2012-10-10_21h32_38 就可以把程式 upload 到 Arduino 板子上

image

  • 如果你想要更改 Arduino 板子型號或 COM Port,在 Project 上按右鍵選擇 Properties,然後展開 Arduino > Arduino 區塊就可以進行改變:

image

SerialMonitor

Arduino Eclipse plugin 提供了一個 Serial Monitor,為了說明 Serial Monitor 的使用方法,我們先來建立一個新的 project,專案名稱把它取為 AnalogReadSerial:

2012-10-10_21h50_01

接著輸入 AnalogReadSerial.cpp 的內容,你可以點選 Arduino IDE 的 File > Examples > 01.Basics > AnalogReadSerial 把程式碼複製過來比較快:

2012-10-10_21h51_59

編譯這支程式,然後把程式上傳到 Arduino 板子上。接著打開 Serial Monitor,步驟如下:

  • 點一下 Window > Show View > Other … 打開 Show View 視窗
  • 選擇 Arduino > Serial monitor view 後按下 OK

image

  • 如下圖,這時候 Serial Monitor 就會顯示在畫面下方了

image

  • 你可以在 Serial monitor 上點兩下把視窗放大,結果如下圖
  • Serial Monitor 的使用辦法有點 tricky,如下圖所示,你必須先點視窗右上角的 + 號圖示,輸入 Serial port 和 baudrate 後按下 OK

image

  • 然後 Eclipse 就會開啟 Serial Port,並且在 Serial Monitor 視窗裏就會看到讀值了:

image

你可以同時開多個 Serial Monitor 視窗,操作步驟跟上述一樣。

Import library

Arduino Eclipse plugin 另一個特色是可以 import library。Import library 的步驟為:

  • 點一下 File > Import 打開底下這個視窗

2012-10-10_22h15_57

  • 選擇你要 import 的 library,可以是 Arduio IDE 內附的標準 library,或者是你個人額外安裝的 library,本例使用我額外安裝的 HCSR04Ultrasonic library (請參考「HC-SR04 超音波感測器介紹」):

image

  • 最後選擇要 import 到哪一個 Project (可按右手邊的 Browser 鈕挑選):

2012-10-10_22h18_09

  • 然後你就可以在專案裏使用 import 進來的 library 了:

image

參考資料

21 則留言:

  1. 請問為什麼Serial.begin()和Serial.println()底線都有一波浪狀的紅線?雖然有紅線, 但還是可以正常UPLOAD到Arduino板子.

    回覆刪除
  2. 請問可以在這裏製作CUI嗎?
    沒有CUI的話很難隨時控制Arduino.

    回覆刪除
  3. Q: 「為什麼Serial.begin()和Serial.println()底線都有一波浪狀的紅線?」
    A: 在前一篇 (http://coopermaa2nd.blogspot.tw/2012/10/arduino-eclipse-plugin.html) 第 4 步驟「設定 Plugin」這段,記得要勾選 "Index unused headers" 與 "Index source and header files opened in editor"。好像是因為這兩個選項沒有勾選的關係。你試試看

    回覆刪除
  4. 請問你說的 CUI 是指什麼? Commandline User Interface or? 如果是 Commandline User Interface 具體的東西是指什麼?

    回覆刪除
  5. CUI 自訂使用者操作介面
    這個就是我要的>>>
    Processing + Eclipse + Android = Proclipsoid http://niltoid.blogspot.tw/2012/02/processing-eclipse-android-proclipsoid.html#!/2012/02/processing-eclipse-android-proclipsoid.html
    好像還缺少一個Arduino!!
    按照他的方法做, 可惜我RUN不出來.
    可否麻煩您看一下這篇文章.

    回覆刪除
  6. Processing 在 Android mode 底下有個功能,可點 File > Export Android project 匯出成 Android Project

    這個功能比上面網頁的方法簡單耶! 而且匯出 Android Project 後,用 Eclipse 開啟,程式可以動!

    2012年10月26日上午12:23

    回覆刪除
  7. 呵~~這是個好消息, 不過要怎麼用 Eclipse 開啟呢? open file時要選哪一個檔?
    另外, 在eclipse裏要如何把它做成.apk?

    回覆刪除
  8. Processing 匯出 Android Project 後,還要在 Eclipse 建立一個 Android Project,然後用匯入的方式加到 workspace 裏就可以了。

    eclipse 會自動產生 apk 啊
    如果沒產生,只要選 Project > Run As Application 就會產生了

    回覆刪除
  9. 感謝您, 成功!!
    產生的.apk放在什麼地方?

    回覆刪除
  10. apk 檔會輸出到 bin 資料夾底下

    不知道是不是 ADT plugin 版本問題,之前我裝的 ADT plugin 是 rev 16,上禮拜升級成 rev 20 後,現在 Eclipse 一啟動就整個卡住.... 弄了半個小時還是找不出原因,看來我得重裝 Eclipse 了...很晚了,我過兩天再來重裝...

    回覆刪除
  11. 請問一下,我試著使用eclipse來撰寫程式碼,但在loop(), 只會run一次,就停下來了。不知您有沒有碰過這個問題
    謝謝!

    回覆刪除
  12. 對不起,我太急著找答案了。我試了一下,發現是因為我使用了digital pin0, 所造成的,如果不用的話,就沒問題了。
    不太了解為什麼使用了pin0, 就只會loop()1次。
    謝謝!

    回覆刪除
  13. 只 run 一次? 應該是不致於,我晚上回去試試。

    BTW, 你可以把你的程式碼貼上來嗎?

    回覆刪除
  14. @j_lo2005,
    Can you post your code here?

    回覆刪除
  15. 我有試著用arduino跟eclipse比較,二者都會出錯。但把digital pin0拿掉,就正常了。
    ---------------------------
    #include "blink.h"

    int ledPin0=0;
    int ledPin1=1;
    int ledPin2=2;
    int ledPin3=3;
    int ledPin4=4;
    int ledPin5=5;
    int ledPin6=6;

    void style(void);

    void setup()
    {
    for(unsigned char i=0;i<=6;i++)
    pinMode(i,OUTPUT);
    }

    void loop()
    {
    style();
    }

    void style(void)
    {
    unsigned char j;
    for(j=0;j<=6;j++)
    {
    digitalWrite(j,HIGH);
    delay(2000);
    }

    for(j=6;j>=0;j--)
    {
    digitalWrite(j,LOW);
    delay(2000);

    }
    }

    回覆刪除
  16. unsigned char 值域是 0 到 255

    假若 j = 0, 0 減 1 之後應該是 255 喔
    這樣 for loop 可能就出不來了

    你要不要把 unsigned char 換成 int 試試看

    回覆刪除
  17. 改成int之後,d0就正常了。
    謝謝!

    回覆刪除
  18. 請問出現serial 和 println 的錯誤,這是哪裡的設定沒有做好,另外,我要upload到板子上,他會跳出視窗顯示,No AVR project selected。

    我根據Arduino eclipse plugin的安裝與使用介紹操作,是我還有哪些地方設定錯誤還是還有缺少軟體安裝呢?

    謝謝

    回覆刪除
  19. serial 和 println 的錯誤是指? Eclipse 有沒有顯示什麼錯誤訊息?

    Upload 時出現 "No AVR project selected" 錯誤,是因為沒有選擇 Project,只要在專案視窗先點一下你的 project,再試一次應該就可以囉

    回覆刪除

注意:只有此網誌的成員可以留言。