Arduinoもくもく会#017に参加しています。 本日の、私のテーマは「Raspberry Pi上のArduino IDE にmicro:bit開発環境を構築する」です。

  1. 概要
    1. Intel-CPUのパソコン環境(Windows, mac, Linux)ではArduino IDE にmicro:bit開発環境は簡単にセットアップできます。⇢
      https://ht-deko.com/arduino/microbit.html
    2. しかしながら、ここで紹介されているsandeepmistry提供のパッケージ
      https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.jsonは、Raspbrry Pi(Raspbian)に対応してしていません。
    3. そこで、sandeepmistry提供のパッケージをRaspberry Pi用に改編することとしました。
  2. 方針
    1. RaspberryPiで稼働する開発ツール(micro:bit–nRF5用のgccコンパイラとhex書込みツールopenocd)を用意する。
    2. sandeepmistry提供のパッケージjsonにRasPi用ツールを追加記述する。
  3. nRF5用gccコンパイラ、openocd書込みツール
    1. gcc-arm-none-eabi/toolchainが必要ですがToolchain提供サイトではRasPi用のバイナリは配布されておらずソースからビルドする必要があります。
      RasPiでビルドしたら40時間超かかるらしいのでセルフビルドするのはやめておきます。
    2. gcc-arm-none-eabi関連ファイル群は

      $ sudo apt-get install gcc-arm-none-eabi
      で簡単にインストールできることがわかりました。

    3. 書込みツールopenocdも同様に
      $ sudo apt-get install openocd
      でインストールできます。
  4. 試行
    1. https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.jsonを改編してPC-Linux用のnRF5開発環境をRasPiにインストールします。
    2. PC-Linux用のgcc-arm-none-eabiとopenocd関連のファイル群を削除しapt-getでインストールしたものに置き換えて試して見ましたが、ファイル等の位置が適合せずエラーが発生しコンパイルできません。
    3. apt-getでインストールしたファイル群の収容位置を保つためにapt-getでインストールしたファイルのシンボリックリンクをPC-Linux用のgcc-arm-none-eabiとopenocd関連のファイルの収容場所に置いて試したところ、正しくコンパイラが稼働しスケッチのコンパイルとアップロードが支障なく行えました。
  5. 環境構築
    1. Raspberry PiのArduino IDEのパッケージマネージャから簡単にインストールできるpackage..index.jsonを作成しています。(2018.02.11 15:15)
    2. 試行した環境をすべて削除して作成したpackage..index.jsonで開発環境をインストールしたら…動きません…原因追求中です。(2018.02.11 15:55)
  6. Raspberry Pi上のArduino IDEに各種デバイスの開発環境を載せる理由/動機
    1. ネットワークに接続して動かす装置のコントローラにRasPiを使うと便利
    2. ただし,シビアなタイミングで動く仕組みや高速パルス信号を発生する用途(例えば赤外線コマンダー)にはRasPiはOSのオーバーヘッドが入るので,たとえRasPiでRTOSを稼働させても制御が間に合わないことがある
    3. そんなときは,RasPiにArduino UNOなどをつないでUNOを高速処理に専従させて連携させれば良い
    4. パソコンでUNOのスケッチを作りコンパイルしてアップロードし,そのUNOをRasPiに繋ぎ変えて連携動作をテストするのはめんどくさい
    5. RasPiでUNOのスケッチ制作・コンパイル・アップロードができるようにしよう→RasPiにArduino IDEを入れた
    6. 用途によってはAVRチップ単体で対応できる→各種ATtinyやATmegaに対応する汎用AVR開発環境をRasPi Arduino IDEに追加
    7. RasPiのGPIOを使えばAVRライタ無しで各種ATtinyやATmegaにスケッチ(hex)を書き込めるよね→RasPi Arduino IDE にGPIO使用AVRライタ機能追加
    8. RasPiとESPモジュールをWiFiでリンクさせれば配線不要で自由度が上がるよね→ESP8266モジュール用開発環境追加
    9. RasPiとmicro:bitをBLEでつないで連携させたい→nRF5用開発環境の追加(イマココ)
      元々コレはNordic nRF5系のBLEチップ向けの開発環境なのでmicro:bit以外のnRF5デバイスにも使えます
  7. 成果
    1. インストール手順をまとめました→「Raspbery Pi上のArduino IDEにmicro:bit開発環境をインストールする」(2018.02.12)