How to make

Raspberry Pi にコマンドライン Arduino IDE をインストール する

最近のArduinoコマンドライン開発環境をこちら↓で紹介しています。

arduinoコマンドライン開発環境 “avr-pizza”


以下で紹介している開発環境 ino は2014年よりメンテナンスが止まっており、現行のArduino IDEには適合しません。


はじめに

Raspberry Piは名刺サイズのパソコンです。このRaspberry Pi と Arduino を連携動作させてみます。
Raspberry PiにArduinoコマンドライン開発環境 ino をインストールします。
ここでは,Raspberry PiにOSとしてRaspbianがインストールされていることを前提にします。

ino とは

ino はinotool.orgが開発提供するArduino コマンドライン開発環境(ツールキット)で次の機能があります。

  1. プロジェクトの作成。
  2. 複数のソース・ファイルとライブラリからスケッチをビルド。
  3. スケッチをArduinoにアップロード。
  4. シリアルモニタ

【バグ】
現在提供されているinoツールには,datsuns氏のudon’s blog「コマンドラインArduino環境の構築」に書かれているバグあります。本書ではdatsuns氏のgithubリポジトリhttps://github.com/datsuns/inoからバグ対策済みのinoツールをインストールします。

1. 準備

  1. Raspbianのパッケージリストの更新
    $ sudo aptitude update
  2. インストール済みのパッケージをアップグレード
    $ sudo aptitude full-upgrade

2. Arduino IDE のインストール

inoツールはArduino IDEのリソースを使いますので,まず,Arduino IDEをインストールします。

  1. 次のようにコマンド入力してインストールします。
    $sudo aptitude install arduino

    arduino-1.0.1(2013.02.24現在)がインストールされます。

  2. RaspbianのLXDE(X-windowデスクトップ)でLXTerminalを開き次のコマンドを入力しArduino IDEが起動し正しく動作する事を確認しておきます。
    $ arduino

 

3. pipツールのインストール。

pipはgithubリポジトリからinoパッケージを簡単にインストールできるツールです。

  1. pipツールのインストール
    $ sudo aptitude install python-pip
  2. pipの起動確認。
    sudo pip --help
    Usage: pip COMMAND [OPTIONS]
    
    Options:
     --version show program's version number and exit
     -h, --help Show help
     -v, --verbose Give more output
     -q, --quiet Give less output
     --log=FILENAME Log file where a complete (maximum verbosity) record
     will be kept
    
       ー以下略ー

4. inoツールのインストール。

  1. datsuns氏のgithub/datsus/inoリポジトリからinoツールをインストールします。
    $ sudo pip install https://github.com/datsuns/ino/archive/master.zip
  2. inoツールの起動確認。
    ino --help
    usage: ino [-h] {build,clean,init,list-models,preproc,serial,upload} ...
    
    Ino is a command-line toolkit for working with Arduino hardware.
    
    It is intended to replace Arduino IDE UI for those who prefer to work in
    terminal or want to integrate Arduino development in a 3rd party IDE.

5. setserialのインストール。(2013.02.05追加)

  • シリアルポートの状態を取得する setserial コマンドをインストールします。
    $ sudo aptitude install setserial

6. inoツールの使い方 (2013.02.05追加)

例:Arduino UNO のデジタルピン13でLチカ。

    1. 準備
      • Raspberry Pi と Arduino UNO を USBで接続します。
      • setserialコマンドで Arduino UNO がつながっているシリアルポートを確認します。
        $ setserial -g /dev/tty* 2>/dev/null
        /dev/ttyACM0, UART: unknown, Port: 0x0000, IRQ: 0, Flags: low_latency
        
        (/dev/ttyACM0 がArduino UNOがつながっているポートです)
    2. プロジェクトの作成
      • プロジェクト用ディレクトリ(blink)を作成し
      • ディレクトリ(blink)に入り
      • プロジェクトをイニシャライズする
        $mkdir blink
        $ cd blink
        $ ino init
      • イニシャライズするとプロジェクト・ディレクトリ配下に次のようなディレクトリとファイルが生成されます。
        ./-----lib
            |
            +--src--sketch.ino
      • ソースコード入力エディタ( vi や nano )を使ってソースコードを入力します。
        $ vi ./src/sketch.ino
        
        int LED_PIN=13;
        
        void setup()
        {
            pinMode(LED_PIN,OUTPUT);
        }
        
        void loop()
        {
            digitalWrite(LED_PIN,HIGH);
            delay(1000);
            digitalWrite(LED_PIN,LOW);
            delay(1000);
        }
      • ビルド
        ino build -m ボード略称
        でビルドします。エラー無くビルドが終ると firmware.hex が生成されます。
$ ino build -m uno
Searching for Board description file (boards.txt) ... /usr/share/arduino/hardware/arduino/boards.txt
Searching for Arduino lib version file (version.txt) ... /usr/share/arduino/lib/version.txt
Detecting Arduino software version ... 1.0 (1.0.1)
--- 途中略 ---
Linking firmware.elf
Converting to firmware.hex
  • ボード略称は
    ino list-models
    で一覧が表示されます。

 

$ ino list-models
Searching for Board description file (boards.txt) ... /usr/share/arduino/hardware/arduino/boards.txt
 uno: [DEFAULT] Arduino Uno
 atmega328: Arduino Duemilanove w/ ATmega328
 diecimila: Arduino Diecimila or Duemilanove w/ ATmega168
 nano328: Arduino Nano w/ ATmega328
 nano: Arduino Nano w/ ATmega168
 mega2560: Arduino Mega 2560 or Mega ADK
 mega: Arduino Mega (ATmega1280)
 leonardo: Arduino Leonardo
 mini328: Arduino Mini w/ ATmega328
 mini: Arduino Mini w/ ATmega168
 ethernet: Arduino Ethernet
 fio: Arduino Fio
 bt328: Arduino BT w/ ATmega328
 bt: Arduino BT w/ ATmega168
 lilypad328: LilyPad Arduino w/ ATmega328
 lilypad: LilyPad Arduino w/ ATmega168
 pro5v328: Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
 pro5v: Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168
 pro328: Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328
 pro: Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168
 atmega168: Arduino NG or older w/ ATmega168
 atmega8: Arduino NG or older w/ ATmega8
  • アップロード
    ino upload -m ボード略称 -p ポート名
    でビルドしたスケッチをアップロードします。

 

$ ino upload -m uno -p /dev/ttyACM0

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f
avrdude: reading input file ".build/uno/firmware.hex"
avrdude: writing flash (1034 bytes):

Writing | ################################################## | 100% 0.21s

avrdude: 1034 bytes of flash written
avrdude: verifying flash memory against .build/uno/firmware.hex:
avrdude: load data flash data from input file .build/uno/firmware.hex:
avrdude: input file .build/uno/firmware.hex contains 1034 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.17s

avrdude: verifying ...
avrdude: 1034 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done. Thank you.
  • 設定ファイル
    blinkディレクリの直下に設定ファイル ino.ini を置き,次のように 「ボード略称」「ポート名」を記述しておけばビルドやアップロードのとき -m -p オプションを省略できます。
board-model = uno
serial-port = /dev/ttyACM0
$ ino build

$ ino uplo

 

Copyright © kosakalab All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.