はじめに
前回の記事同様、Arduinoを使うときに便利なArduino-Makefileについてご説明したいと思います。
前回の記事で、コマンドラインからArduinoを好き勝手することができるようになりました。
しかし、Emacs使ってコードを編集したいし、Emacs使うんなら、M-x compile
で何とかしたい
なんて野望が、Emacs教の方には起こるはず。。。いや、起こるに違いありません。
そこで、本記事では、そんなブラザー達のために、方法を紹介したいと思います。
インストール
arduino-mkをaptを使ってインストールする。
$ sudo apt-get install arduino-mk
これでインストールは完了です。
シリアル通信のための必要条件
シリアル通信にはscreen
コマンドを使います。
まだインストールしていない場合は、aptで手に入ります。
$ sudo apt-get install screen
基本的に、make monitor
と入力すると、シリアル通信が始まります。
終了したいときには、Ctrl+a k
で終了するかどうか聞かれるので、y
を入力後、<RET>
で終了します。
Emacsの設定
Arduino-Makefileを使った方法は、前回紹介した、inoを使う方法と違い、すべての手順をEmacs上で操作でき、コンパイルエラーの際に、原因箇所に飛びやすいという、大変素晴らしい機能を手に入れることができます。(布教中)
このような素晴らしい機能を利用するために、EmacsにArduino-modeを適用します。
Github : bookest/arduino-modeより、arduino-mode.el
を、init.el
のパスが通ったところにインストールしましょう。
**init.elのパスって何?**という方は、Youhei SASAKI’s official site : Emacsの基本設定をひと通り読むことをおすすめします。
いずれにせよ、arduino-mode.el
をインストールしたら、*.ino
ファイルや*.pde
ファイルをarduino-mode
で開くために、以下をinit.el
に追加しましょう。
;; ----------------------------------------------------------------------------
;; arduino-mode
;; ----------------------------------------------------------------------------
; arduino-mode.elへのパス
(add-to-list 'load-path "arduino-mode.elのあるディレクトリのパス")
; arduino-modeのセット
(autoload 'arduino-mode "arduino-mode" "Arduino editing mode." t)
; 拡張子の関連付け
(setq auto-mode-alist (cons '("\\.\\(pde\\|ino\\)$" . arduino-mode) auto-mode-alist))
;; ----------------------------------------------------------------------------
以上でEmacsの設定は完了です。
使い方
- .inoファイルの編集
- Makefileの編集
- コンパイル
-
コンパイルのみ
$ make
-
書き込み
$ make upload
-
シリアル通信
$ make monitor
Makefileについて
Arduino-Makefileでは、Makefileにコンパイル時に必要な内容を記述する必要があります。
以下の様な条件でArduinoを使いたいとき
Board | Uno |
Port | /dev/ttyACM0 |
Baudrate | 9600 |
Makefileに以下のように記述します。
# Arduinoのボードの種類
BOARD_TAG = uno
# シリアルポートの設定
MONITOR_PORT = /dev/ttyACM0
# ボーレートの設定
MONITOR_BAUDRATE = 9600
# 独自のライブラリの追加
ARDUINO_LIBS +=
# Arduino.mkのインクルード
include /usr/share/arduino/Arduino.mk
これで望みの条件でコンパイルできるようになります。
尚、ARDUINO_LIBS
は、ライブラリを追加するときに定義しますが、これについては、ArduinoをROS化する際に述べます。
例
実際の例(Blink)は私のGitHubに置いてますので、よかったらご覧下さい。
https://github.com/RyodoTanaka/Arduino
参考
https://github.com/sudar/Arduino-Makefile
http://www.emacswiki.org/emacs/ArduinoSupport
http://www.gfd-dennou.org/member/uwabami/cc-env/EmacsBasic.html
動作環境
PC | Lenovo ThinkPad X240 |
Prosessor | Intel Core i7-4600U (2.10GHz, 4MB, 1600MHz) |
RAM | PC3-12800 DDR3L (8GB) |
OS | Ubuntu 14.04 LTS 64bit |
Kernel | 3.13.0-44-generic |