2012/07/31

在Raspberry Pi上開發Arduino

要把Raspberry Pi當做開發主機,在上面撰寫Arduino的程式,實在非常簡單,因為Raspberry Pi就是一台Linux機器,而Arduino軟體開發環境原本就支援Linux了。

我在Raspberry Pi在命令列模式下,讓Arduino的LED燈閃爍,步驟記錄如下。

我的環境是Raspbian wheezy,2012-07-15-wheezy-raspbian.img,後來也試過2014-06-20-wheezy-raspbian.img。板子是Arduino Uno Rev 3。

Arduino的軟體開發環境都已經打包好了,直接以apt-get安裝即可。
$ sudo apt-get install arduino arduino-mk

其中arduino-mk是要在命令列模式下以make進行編譯與燒錄動作所需要的套件。

安裝後,執行檔(arduino、avr-g++、avr-gcc、avrdude、等等)位於/usr/bin裡,avrdude的設定檔位於/etc/avrdude.conf,範例程式碼與API參考文件分別位於/usr/share/doc/arduino-core的子目錄examples與reference裡,Arduino核心程式碼位於/usr/share/arduino/hardware/arduino/cores/arduino裡,內建程式庫位於/usr/share/arduino/libraries裡,重要的就這些,請自行瀏覽其他相關目錄。

然後,在家目錄下新增子目錄sketchbook,在裡面新增BlinkByPi專案目錄,我們將需要兩支檔案,BlinkByPi.cpp與Makefile,內容如下。

BlinkByPi.cpp的內容:

#include <Arduino.h>

void setup(){
  pinMode(13, OUTPUT);
}

void loop(){
  digitalWrite(13, HIGH);
  delay(500);
  digitalWrite(13, LOW);
  delay(500);
}

Makefile的內容:

TARGET = BlinkByPi

ARDUINO_DIR = /usr/share/arduino
BOARD_TAG = uno
ARDUINO_PORT =/dev/ttyACM0

include /usr/share/arduino/Arduino.mk


以ARDUINO_DIR指定Arduino軟體開發環境的路徑。若你從Arduino官方網站自行下載、自行解壓縮的話,請修改此路徑。
以TARGET指定最後產生出來的檔案的主檔名,最好跟此專案名相同。(註:有時若出問題,拿掉此項或可解決,那麼TARGET就會預設為當前目錄名。)
以BOARD_TAG指定你使用的板子。
以ARDUINO_PORT指定與板子連接的通訊埠,在Raspberry Pi上為/dev/ttyACM0。
然後使用include匯入內涵基本設定與規則的Arduino.mk。

如果使用內建函式庫的話,須再加入類似於底下的這一行:
ARDUINO_LIBS = Ethernet Ethernet/utility SPI

接下來,在此專案目錄裡以
$ make
即可編譯、連結,將會產生出build-cli子目錄,存放建置過程的中間檔,最後產生出來的.elf與.hex也會放在裡面。

然後以
$ make upload
即可燒錄。

哇,成功囉。

另外可用make clean清除,以make depends更新檔案相依性。

更詳細的用法可參考/usr/share/arduino/Arduino.mk裡的說明,以及底下的參考資料。


參考資料:

No comments:

Post a Comment