How to make

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

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

javascriptで書かれたarduinoコマンドライン開発環境


以下で紹介している開発環境 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.