Arduino 開発環境設定 (with Emacs, Python)

Arduino で電子工作を始めようと思い、開発環境を設定したのでメモ。
PC の OS は Ubuntu15.04 の 64bit です。

Arduino IDE のインストール

とりあえず Arduino IDE を入れます。
Debian 系なら apt からインストールできます。

sudo apt-get install arduino

このままでは管理者権限でないと設定をいじれないので、以下のコマンドてユーザーに実行権限を付けます。
usr は PC のユーザ名に書き変えてください。

sudo addgroup usr dialout

一旦ログアウトして最ログインすると反映されます。

Arduino を Emacs から使う場合の設定

Emacs 使いなら Arduino のコードも Emacs で書きたいので、コマンドラインツールと Emacs の環境を設定します。

arduino-mk のインストール

apt から arduino-mk をインストールします。
arduino-mk でコマンドラインから Arduino スケッチをコンパイルすることができます。

sudo apt-get install arduino-mk

更に、シェルからシリアルモニタを使用する場合は screen のインストールが必要です。

sudo apt-get install screen

適当なワークスペースに Makefile を作成し、環境に合わせて設定を書いておきます。
設定については github に詳しく書かれています。

BOARD_TAG           = uno
MONITOR_PORT        = /dev/ttyACM0
include /usr/share/arduino/Arduino.mk

以上で最低限の設定は完了し、同じワークスペースに Arduino スケッチを作成すれば、コマンドラインからコンパイル等ができます。

Table 1: 主なコマンド
コマンド 説明
make コンパイル
make upload 書き込み
make monitor シリアルモニタ

Emacs の設定

次に Emacs 側の環境を設定します。Melpa から arduino-mode をインストールします。

M-x package-refresh-contents
M-x package-install arduino-mode

シェルから make してもいいですが、個人的に smart-compile を使っているので、そちらから make するようにしました。
smart-compile は Melpa からインストールできます。

M-x package-install smart-compile

インストールしたら init.el に以下のように設定しておきます。個人的に C-l はプレフィクスキーにしています。

(define-key menu-bar-tools-menu [compile] '("Compile..." . smart-compile))
(global-set-key (kbd "C-l C-c") 'smart-compile)

Pyserial のインストール

Python でシリアル通信したいので、Pyserial を pip からインストールします。Pyserial は Python3 でも使用できます。

pip install pyserial

Arduino から送信される文字列を Python で表示してみます。
Arduino には以下のように書き込み、

void setup(){
  Serial.begin(9600);
}

void loop(){
  Serial.print("Hello world\n");
  delay(10);
}

Pyserial を使って受信した文字列を取得します。

# coding: utf-8
import serial

ser = serial.Serial()
ser.baudrate = 9600
ser.port = "/dev/ttyACM0"
ser.timeout = 0.1

ser.open()

for var in range(0, 5):
    print(ser.readline())

ser.close()
b'o world\n'  
b'Hello world\n'
b'Hello world\n'
b'Hello world\n'
b'Hello world\n'

コメント

Comments powered by Disqus
書籍更新情報
2017-01-16
Pythonによる科学技術計算 基礎編
1.3版への更新が可能になりました。
サポートページはこちら
電子書籍
Pythonによる科学技術計算 基礎編
Kindle ストアで販売中です
Pythonによる科学技術計算 基礎編
同人誌
技術書典(2016/6/25)
Emacs/org-modeのPDF作成術
電子版をBOOTHで販売中です
Emacs/org-modeのPDF作成術
Share