Developer World Spresense
English 中文
目次

Arduino 開発環境を使って Spresense 上で簡単にプログラミングをはじめることができます。

ここでは Spresense Arduino 開発環境のセットアップ方法について説明します。

はじめに環境のインストールと設定を行い、続いて LED を光らせる簡単なアプリケーション (スケッチ) を動かすまでの手順を示しています。

1. Spresense Arduino Library のインストール方法

1.1. サポートしているプラットフォーム

Spresense Arduino 環境は以下のプラットフォームをサポートしています。

  • Windows 8.1/10

  • 64bit版 Linux Ubuntu 16.04以降

  • Mac OSX 10.12 Sierra以降

32bit版 Linux には対応していません。

1.2. Arduino IDE のインストール

Arduino IDE バージョンは、1.8.x 以降を使用してください。

1.3. USB ドライバのインストール

  • Linux Ubuntu 環境の場合、Arduino IDEからシリアルポートを利用できるように次の設定を行ってください。

    1. Ubuntuのユーザを dialout のグループに追加します。

      sudo usermod -a -G dialout $USER
      
    2. Ubuntuを再起動します。

    3. Spresense ボードのUSBを接続し直してください。

      接続し直すことでこの設定が反映されます。この設定を行わないと Arduino で作成したプログラムを Spresense ボードにアップロードすることができません。
  • macOS High Sierra (10.13)以降の環境で、インストール中にセキュリティに関する警告が表示される場合

    1. 「システム環境設定 > セキュリティ」 メニューを開く

    2. 「一般」にある「開発元"Silicon Laboratories Inc"のシステムソフトウェアの読み込みがブロックされました。」と表示されている右にある「許可」ボタンをクリックしてください。

      この操作を行わないと、シリアルポートを使用することができません。

1.4. Spresense Arduino board package のインストール

以下の手順にしたがって Spresense Arduino board package のインストールを行ってください。

git clone やダウンロードしたパッケージをマニュアルでインストールする方法もあります。マニュアルインストールの方法については、[Spresense Arduino board package のマニュアルインストール] を参照してください。
  1. Arduino IDEを起動して、 ファイル → 環境設定 を開きます。

    arduino borad manager preference ja
    図 1. Arduino IDE環境設定
  2. 追加のボードマネージャのURL に下記URLを入力し OK をクリックします。
    (下記 URL を右クリックして "リンクのアドレスをコピー" して貼り付けると便利です)

    arduino borad manager add json url ja
    図 2. ボードマネージャ jsonファイル指定
  3. ツールボードボードマネージャ を選択してボードマネージャを開きます。

    tutorial arduino open boardmanager ja
    図 3. ボードマネージャの開き方
  4. Spresense を検索して出てきたパッケージを選択し インストール をクリックしてインストールを開始します。

    プロキシ設定が必要な場合は、ファイル → 環境設定 → ネットワーク から設定を行ってください。
    インストール時に約 150MB のダウンロードを行いますので、ネットワークの負荷を考慮してインストールを行ってください。
    tutorial arduino boardmanager spresense install ja
    図 4. Spresenseを検索&インストール
  5. ボードマネージャに インストール完了 と表示されたらインストール作業は終了です。

2. プログラミング環境の設定

2.1. USBシリアルポートの接続

Spresense Arduino board package のインストールが終わったら、micro USB Type-B の USB ケーブルを用いて PC と Spresense メインボードを接続してください。USB ケーブルはデータ転送可能なものを使用してください。

ボードが通電されると下図のように青いLEDが点灯します。

spresense musb connect
図 5. Spresense メインボードと USB 接続

2.2. Spresense ブートローダーのインストール

以下の手順にしたがって、ブートローダーをインストールしてください。

出荷状態ではブートローダーはインストールされていません。初めて使用する際は必ずブートローダーのインストール作業を行ってください。また、ブートローダーはパッケージのバージョンアップによって更新されることがあります。最新リリースのパッケージへ更新したときも、ここに示す手順にしたがって最新のブートローダーをインストールしてください。
  1. Arduino IDEを起動します。

  2. Spresense ボードを ツール → ボード → Spresense の順に選択します。

    tutorial arduino boardsmanager menu ja
    図 6. Spresense ボードの選択
  3. USBケーブルをSpresense メインボードUSBコネクタに接続し、 ツール → シリアルポート で、COMポートを選択します。

    Spresense ボードが接続されている COMポートを選択してください。

    接続されているCOMポートが分からない場合は、 USBシリアルポートの確認方法 を参照してください。

    tutorial arduino select port ja
    図 7. Spresense ボードに接続されているCOMポートの選択
  4. ツール → 書き込み装置Spresense Firmware Updater を選択します。

    tutorial arduino select programmer ja
    図 8. Spresense Firmware Updater の選択
  5. ツール → ブートローダーを書き込む を選択します。

    tutorial arduino tools menu do burn ja
    図 9. ブートローダーを書き込む の選択
  6. End User License Agreement のダイアログ内にあるライセンス条項を確認し、 I Accept the terms in the license agreement にチェックを付けた後 OK ボタンをクリックしてください。

    tutorial arduino eula dialog
    図 10. End User License Agreementのダイアログ
    Spresenseのブートローダーを利用するためにはEnd User License Agreementの同意が必要です。
    次回以降ボードマネージャの更新をしない限り再度表示されることはありません。
  7. 次のメッセージがArduino IDE(下記画像の赤枠)に表示されたらインストールは完了です。

    ブートローダの書き込みが完了しました。
    
    updater# Restarting the board ...
    reboot
    tutorial arduino fw update done ja
    図 11. インストール完了時に Arduino IDE に表示されるメッセージ

3. LED のスケッチを動かしてみる

Spresense Arduino 開発の準備ができたので、LED サンプルスケッチを動かしてみます。

  1. Arduino IDE から ファイル → 新規ファイル を開いて、以下の LED サンプルスケッチをコピーして保存します。

    void setup() {
        pinMode(LED0, OUTPUT);
        pinMode(LED1, OUTPUT);
        pinMode(LED2, OUTPUT);
        pinMode(LED3, OUTPUT);
    }
    
    void loop() {
        digitalWrite(LED0, HIGH);
        delay(100);
        digitalWrite(LED1, HIGH);
        delay(100);
        digitalWrite(LED2, HIGH);
        delay(100);
        digitalWrite(LED3, HIGH);
        delay(1000);
    
        digitalWrite(LED0, LOW);
        delay(100);
        digitalWrite(LED1, LOW);
        delay(100);
        digitalWrite(LED2, LOW);
        delay(100);
        digitalWrite(LED3, LOW);
        delay(1000);
    }
  2. マイコンボードに書き込む ボタンをクリックして、スケッチのコンパイルと書き込みを行います。

    tutorial arduino upload ja
    図 12. マイコンボードに書き込む
  3. スケッチの書き込みが完了するまで待ちます。

    tutorial arduino sketch done uploading ja
    図 13. 書き込み完了時のメッセージ
  4. スケッチの書き込みが完了すると自動的にリセットがかかってプログラムが起動されます。
    Spresense ボード上の LED が点滅しているかどうかを確認してください。

ツール → UploadSpeed の値を変更することでボードへの書き込みを高速化することができます。ただしお使いの PC 環境によっては高速化しすぎると書き込み時に通信エラーが発生する可能性もあります。エラーが発生した場合は、USB を抜き差しした後に、UploadSpeed を下げてご使用ください。

以上で、Spresense Arduino 環境のセットアップは完了です。

Spresense Arduino 開発の詳細については、Spresense Arduino 開発ガイド を参照してください。

サンプルやチュートリアルに関しては、Spresense Arduino チュートリアル を参照してください。

4. 付録

4.1. USBシリアルポートの確認方法

プラットフォーム毎のUSBポートの確認方法は下記の通りです。

4.1.1. Windows上でのUSBシリアルドライバの確認

  1. デバイスマネージャー を開きます。

  2. Silicon Labs CP210x USB to UART Bridge のCOMポートの番号を確認します。

    tutorial arduino windows device manager find port
    図 14. デバイスマネージャーでCOMポートを確認

    Silicon Labs CP210x USB to UART Bridge としてデバイスマネージャに表示されます。
    上図の例だと COM9 に接続されていることが分かります。

4.1.2. Ubuntu 64bit上でのUSBシリアルドライバの確認

Spresense ボードが接続されているCOMポートを探し出します。

  1. ターミナルを開きます。

  2. ターミナル上で次のコマンドを入力してください。

    dmesg | grep "cp21.*attached"
    [12220.625979] usb 1-1: cp210x converter now attached to ttyUSB0
    

    上の例だと ttyUSB0 に接続されています。

4.1.3. Mac OSX上でのUSBシリアルドライバの確認

Spresense ボードが接続されているCOMポートを探し出します。

  1. ターミナルを開きます。

  2. ターミナル上で次のコマンドを入力してください。

    ls /dev/{tty,cu}.*
    /dev/cu.SLAB_USBtoUART  /dev/tty.SLAB_USBtoUART
    

    上の例だと cu.SLAB_USBtoUART に接続されています。

4.2. Spresense Arduino board package ローカルパッケージの作成

Spresense では、カスタマイズしたボードパッケージを作成し、ローカル環境でArduino IDEへインストールすることができる仕組みを提供しています。 この作成したパッケージを使うことで、自分自身のArduino IDEへのインストールはもちろんのこと、コミュニティ間でカスタマイズされたパッケージを共有することもできます。

また、作成したボードパッケージのインストール方法は Arduino IDEのボードマネージャからのインストール を参照ください。

4.2.1. Spresense Arduino ボードパッケージについて

Spresense Arduinoボードパッケージは、Spresense SDKのプレビルドとそれをArduino用にラッパーしたSpresense ライブラリ、そしてSpresense用のツールで構成されています。

arduino borad manager package detail ja
構成要素 アーカイブファイル名 内容

Spresense ライブラリ

spresense-v*...tar.gz

Spresense SDK上でArduino用にラップするためのライブラリです。Arduino標準ライブラリのコード、Spresenseライブラリのコード及びサンプルスケッチが含まれます。

Spresense ツール

spresense-tools-v*...tar.gz

Arduino IDE上でSpresense用のバイナリを作成したり書き込みをするためのツールが含まれます。

Spresense SDKプレビルド

spresense-sdk-v*...tar.gz

Spresense SDKをArduino IDE用にビルドした静的なアーカイブが含まれます。

ARM GCC

gcc-arm-none-eabi-5.4.1-*.tag.gz

作成したスケッチをビルドするためのツールチェーンが含まれます。基本的には公開しているツールチェーンをそのまま利用するので、ローカルボードパッケージでは作成しません。

これらのSpresense用のアーカイブを作成することで、Arduino IDE上でインストール可能なパッケージを作成することができます。

4.2.2. ローカルパッケージの作成方法

ここでは、ローカルパッケージの作成方法について説明します。

ローカルパッケージは基本的に次のような流れで作成します。

  • リポジトリのクローン(spresense.git, spresense-arduino-compatible.git)

  • Spresense SDK(spresense.git)あるいはSpresense Arduino(spresense-arduino-compatible.git)の編集

  • (Spresense SDKを編集していれば) 編集済みSpresense SDKのインポート

  • Arduinoボードパッケージ(アーカイブ、jsonファイル)の作成

以下ではご使用シーン毎にパッケージの作成方法を解説します。

4.2.2.1. Spresense Arduino Libraryの更新・サンプルの追加をした場合

ライブラリ及びサンプルスケッチの追加・更新のみを行ってローカルパッケージを作成する場合は、既存のSpresense SDK プレビルドを使用できるため、Spresense SDKのインポート作業が不要になります。ですので、ローカルパッケージの作成は以下のような手順になります。

  1. spresense-arduino-compatible.gitのクローン

  2. spresense-arduino-compatible/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0 或いは spresense-arduino-compatible/Arduino15/packages/SPRESENSE/tools/spresense-tools の編集

  3. Arduinoパッケージのアーカイブ及びJsonファイルの作成

    cd spresense-arduino-compatible
    make
    
  4. 以下の3ファイルが作成されていれば完了です。

    ./out/package_spresense_local_index.json
    ./out/staging/packages/spresense-v*.*.*_local.tar.gz
    ./out/staging/packages/spresense-tools-v*.*.*_local.tar.gz
4.2.2.2. カスタマイズしたSpresense SDKを使う場合

Spresense SDKを更新する場合、ビルドしたプレビルドバイナリをローカルパッケージに組み込む必要があります。この場合、spresense.gitの他にspresense-arduino-compatible.gitの2つのリポジトリを使って以下のようにローカルパッケージを作成します。

  1. spresense.gitのクローン

  2. spresense-arduino-compatible.gitのクローン

  3. spresense/ の編集

    編集や追加を行った場合、そのファイルがビルド対象になっている必要があります。 spresense-arduino-compatible/tools/configs/spresense.conf に記載されているdefconfigを参照し、ビルド対象を確認してください。
  4. Spresense SDKのインポート

    cd spresense-arduino-compatible
    ./tools/prepare_arduino.sh -S path/to/spresense -k release -p
    ./tools/prepare_arduino.sh -S path/to/spresense -k debug -p
    
    path/to/spresense はspresense.gitをクローンしたパスになります。
  5. Arduinoパッケージのアーカイブ及びJsonファイルの作成

    cd spresense-arduino-compatible
    make
    
  6. 以下の4ファイルが作成されていれば完了です。

    ./out/package_spresense_local_index.json
    ./out/staging/packages/spresense-v*.*.*_local.tar.gz
    ./out/staging/packages/spresense-tools-v*.*.*_local.tar.gz
    ./out/staging/packages/spresense-sdk-v*.*.*_local.tar.gz
4.2.2.3. Spresense SDKのコンフィグレーションを変更する場合

Spresense SDKのコンフィグレーションを更新する場合も、ビルドしたプレビルドバイナリをローカルパッケージに組み込む必要があります。この場合も同様、、spresense.gitの他にspresense-arduino-compatible.gitの2つのリポジトリを使って以下のようにローカルパッケージを作成します。

  1. spresense.gitのクローン

  2. spresense-arduino-compatible.gitのクローン

  3. Spresense SDKのインポート

    SDKのインポート時にSpresense SDKのコンフィグレーションを変更することができます。

    cd spresense-arduino-compatible
    ./tools/prepare_arduino.sh -S path/to/spresense -k release -M SDK -p
    <menuconfigが開くのでコンフィグレーションをします>
    ./tools/prepare_arduino.sh -S path/to/spresense -k debug -M SDK -p
    <menuconfigが開くのでコンフィグレーションをします>
    
    defconfigの追加のみの場合は、 spresense-arduino-compatible/tools/configs/spresense.conf にdefconfigの名前を列記すれば -M SDK をする必要ありません。
  4. Arduinoパッケージのアーカイブ及びJsonファイルの作成

    cd spresense-arduino-compatible
    make
    
  5. 以下の4ファイルが作成されていれば完了です。

    ./out/package_spresense_local_index.json
    ./out/staging/packages/spresense-v*.*.*_local.tar.gz
    ./out/staging/packages/spresense-tools-v*.*.*_local.tar.gz
    ./out/staging/packages/spresense-sdk-v*.*.*_local.tar.gz

4.3. Spresense Arduino board package パッケージのローカルインストール

Spresense Arduino packageのローカルインストールは以下の2つの方法があります。

前の章で作成したローカルパッケージは、 Arduino IDEのボードマネージャからのインストール の手順でインストールすることができます。

4.3.1. Arduino IDEのボードマネージャからのインストール

ボードマネージャ用のファイルを使用してインストールする方法です。 Arduinoの他のボードと共存した形でインストールができるのでSpresense含め複数のボードをArduinoIDEでお使いの方へおすすめの方法になります。

4.3.1.1. 用意するもの

Arduino IDEのボードマネージャからのインストールに必要なものは以下の2種類です。いずれのファイルもspresense-arduino-compatibleリポジトリで作成したものになります。

  • アーカイブファイル (out/staging)

    • Spresense ライブラリ(out/staging/packages/spresense-v*.*.*_local.tar.gz)

    • Spresense ツール(out/staging/packages/spresense-tools-v*.*.*_local.tar.gz)

    • Spresense SDKプレビルド(out/staging/packages/spresense-sdk-v*.*.*_local.tar.gz)

      Spresense SDKプレビルドはSpresense SDKをカスタマイズした場合にのみ必要です。
  • Jsonファイル(out/package_spresense_local_index.json)

必ずspresense-arduino-compatibleのmakeで作成したものをセットでお使いください。異なるタイミングで作成したものでは正しくインストールできません。(例:アーカイブファイルだけを更新し古いJsonファイルを利用した場合、正しくインストールできません。)
4.3.1.2. インストール手順
  1. アーカイブファイルをArduinoダウンロードディレクトリへコピーします。

    cp -r spresense-arduino-compatible/out/staging <Arduino15>/
    
    Arduinoパッケージのインストールパス <Arduino15> はお使いのOS及びIDEのインストール方法によって変わります。Arduino IDE上で ファイル環境設定設定以下のファイルを直接編集すれば、より多くの設定を行うことができます。 のファイル名をクリックすると、<Arduino15> のパスでエクスプローラーが開きますので、開いたパスをお使いください。
  2. ボードマネージャURLへ公式JsonファイルとローカルのJsonファイルへのURLを追加します。

    https://github.com/sonydevworld/spresense-arduino-compatible/releases/download/generic/package_spresense_index.json
    file://<package_spresense_local_index.jsonファイルパス>
    <package_spresense_local_index.json ファイルパス> はお使いのOSで使用されているファイルパスをそのままお使いください。パスが C:\Users\user\spresense-arduino-compatible\out\package_spresense_local_index.json の場合は2行目が、 file://C:\Users\user\spresense-arduino-compatible\out\package_spresense_local_index.json になります。
    公式JsonファイルのURLを指定しない場合、ARMのツールチェーンがインストールされず、正しくお使いいただけません。
  3. Arduino IDE上で ツール → `ボードボードマネージャ…​ から Spresense local Board を検索し、インストールします。

  4. インストールが完了し、 ツールボード の一覧に Spresense local があれば正しくインストールが完了しています。

4.3.2. マニュアルインストール

ボードマネージャを使用せずにマニュアルで Spresense Arduino board package をインストールする方法もあります。ここではその手順について説明します。

arduino borad manager add json url ja
図 15. ボードマネージャ jsonファイル指定
Spresense Arduino board package をマニュアルでインストールした場合、ボードマネージャを使ったインストールに失敗することがあります。その場合は faq_ja.html を参照しインストールを実施してください。
4.3.2.1. Windows 版のマニュアルインストール

manual-install-spresense-arduino-windows-latest.zip を展開する際に、 解凍ソフトによってはファイルパス名が長すぎて正しく展開できないことがあります。 ここでは、c:\temp など短いパス名のフォルダに一旦展開し、その後で適切な場所へコピーを行います。

  1. c:\temp ディレクトリを作成して manual-install-spresense-arduino-windows-latest.zip を展開します。

    展開後に、Arduino15 フォルダ以下に packages フォルダと package_spresense_index.json ファイルが存在します。

    diag 79be46362fa940a8fc33c3d7698ee185
  2. これらのファイルを Arduino IDE のインストールフォルダへコピーします。

    %userprofile%\AppData\Local\Arduino15 フォルダを開き、packages フォルダと package_spresense_index.json ファイルをコピーします。

    diag 968ac09f7961ee1972a323fa732abbdb

    Arduino IDE を Microsoft Store からインストールした場合はコピー先が異なります。
    %userprofile%\Documents\ArduinoData フォルダを開き、packages フォルダと package_spresense_index.json ファイルをコピーします。

    diag 3fc8f6bcefddda32ad8d79ad44d756a7
  3. コピーが終わったら Windows 版のマニュアルインストール作業は完了です。

4.3.2.2. Linux版のマニュアルインストール
  1. ~/.arduino15/ フォルダが存在しない場合は、一度、Arduino IDE を起動してから終了してください。
    この操作によって、 ~/.arduino15/ フォルダが作成されます。

  2. ターミナルを開いて、 manual-install-spresense-arduino-linux-latest.zip をダウンロードしたフォルダへ移動してください。 (以下の例では ~/Downloads フォルダにダウンロードされています)

  3. zipファイルを解凍し、 ~/.arduino15/ 以下へコピーします。

    cd ~/Downloads
    unzip manual-install-spresense-arduino-linux-latest.zip
    rm -rf ~/.arduino15/packages/SPRESENSE
    cp -rfv ~/Downloads/Arduino15/* ~/.arduino15/
    rm -rf ~/Downloads/Arduino15
    
  4. 以上で Linux 版のマニュアルインストール作業は完了です。

4.3.2.3. Mac OSX 版のマニュアルインストール
  1. ~/Library/Arduino15 フォルダが存在しない場合は、一度、Arduino IDE を起動してから終了してください。
    この操作によって、 ~/Library/Arduino15 フォルダが作成されます。

  2. ターミナルを開いて、 manual-install-spresense-arduino-macosx-latest.zip をダウンロードしたフォルダへ移動してください。 (以下の例では ~/Downloads フォルダにダウンロードされています)

  3. zipファイルを ~/Library/ 以下へ展開します。

    cd ~/Downloads
    unzip manual-install-spresense-arduino-macosx-latest.zip -d ~/Library/
    
  4. 以上で Mac OSX 版のマニュアルインストール作業は完了です。