Arduino 開発環境を使って Spresense 上で簡単にプログラミングをはじめることができます。
ここでは Spresense Arduino 開発環境のセットアップ方法について説明します。
はじめに環境のインストールと設定を行い、続いて LED を光らせる簡単なアプリケーション (スケッチ) を動かすまでの手順を示しています。
1. Spresense Arduino Library のインストール方法
1.1. サポートしているプラットフォーム
Spresense Arduino 環境は以下のプラットフォームをサポートしています。
-
Windows 10/11 (64bit版)
-
Linux Ubuntu 16.04 (64bit版)以降
-
Mac OSX 10.12 Sierra以降
32bit版 OS には対応していません。 |
1.2. Arduino IDE のインストール
-
次のサイトから Arduino IDE をダウンロードしてインストールしてください。
Arduino IDE バージョンは、1.8.x 以降を使用してください。 |
1.3. USB ドライバのインストール
-
お使いのプラットフォームに合わせて、USB シリアルドライバをダウンロードしてインストールしてください。
-
Ubuntu では追加でドライバをインストールする必要はありません
Windows 10/11 環境にて Silicon Labs の最新ドライバ (v11.2.0) を使用すると、USB の通信にエラーが発生してプログラムの書き込みに失敗することがあります。 上記 URL より v11.1.0 をダウンロードしてお使いください。 |
-
Linux Ubuntu 環境の場合、Arduino IDEからシリアルポートを利用できるように次の設定を行ってください。
-
Ubuntuのユーザを dialout のグループに追加します。
sudo usermod -a -G dialout $USER
-
Ubuntuを再起動します。
-
Spresense ボードのUSBを接続し直してください。
接続し直すことでこの設定が反映されます。この設定を行わないと Arduino で作成したプログラムを Spresense ボードにアップロードすることができません。
-
-
macOS High Sierra (10.13)以降の環境で、インストール中にセキュリティに関する警告が表示される場合
-
「システム環境設定 > セキュリティ」 メニューを開く
-
「一般」にある「開発元"Silicon Laboratories Inc"のシステムソフトウェアの読み込みがブロックされました。」と表示されている右にある「許可」ボタンをクリックしてください。
この操作を行わないと、シリアルポートを使用することができません。
-
1.4. Spresense Arduino board package のインストール
以下の手順にしたがって Spresense Arduino board package のインストールを行ってください。
git clone やダウンロードしたパッケージをマニュアルでインストールする方法もあります。マニュアルインストールの方法については、付録 を参照してください。
|
-
Arduino IDEを起動して、
ファイル → 環境設定
を開きます。図 1. Arduino IDE環境設定 -
追加のボードマネージャのURL
に下記URLを入力しOK
をクリックします。
(下記 URL を右クリックして"リンクのアドレスをコピー"
して貼り付けると便利です)図 2. ボードマネージャ jsonファイル指定 -
ツール
→ボード
→ボードマネージャ
を選択してボードマネージャを開きます。図 3. ボードマネージャの開き方 -
Spresense
を検索して出てきたパッケージを選択しインストール
をクリックしてインストールを開始します。プロキシ設定が必要な場合は、 ファイル → 環境設定 → ネットワーク
から設定を行ってください。
インストール時に約 150MB のダウンロードを行いますので、ネットワークの負荷を考慮してインストールを行ってください。図 4. Spresenseを検索&インストール -
ボードマネージャに
インストール完了
と表示されたらインストール作業は終了です。
2. プログラミング環境の設定
2.1. USBシリアルポートの接続
Spresense Arduino board package のインストールが終わったら、micro USB Type-B の USB ケーブルを用いて PC と Spresense メインボードを接続してください。USB ケーブルはデータ転送可能なものを使用してください。
ボードが通電されると下図のように青いLEDが点灯します。
2.2. Spresense ブートローダーのインストール
以下の手順にしたがって、ブートローダーをインストールしてください。
出荷状態ではブートローダーはインストールされていません。初めて使用する際は必ずブートローダーのインストール作業を行ってください。また、ブートローダーはパッケージのバージョンアップによって更新されることがあります。最新リリースのパッケージへ更新したときも、ここに示す手順にしたがって最新のブートローダーをインストールしてください。 |
-
Arduino IDEを起動します。
-
Spresense ボードを
ツール → ボード → Spresense
の順に選択します。
(Arduino IDE 1.8.13 以降をお使いの場合、ツール → ボード → Spresense Boards → Spresense
を選択します)図 6. Spresense ボードの選択 -
USBケーブルをSpresense メインボードUSBコネクタに接続し、
ツール → シリアルポート
で、COMポートを選択します。Spresense ボードが接続されている COMポートを選択してください。
接続されているCOMポートが分からない場合は、 USBシリアルポートの確認方法 を参照してください。
図 7. Spresense ボードに接続されているCOMポートの選択 -
ツール → 書き込み装置
で Spresense Firmware Updater を選択します。図 8.Spresense Firmware Updater
の選択 -
ツール → ブートローダーを書き込む
を選択します。図 9.ブートローダーを書き込む
の選択 -
End User License Agreement のダイアログ内にあるライセンス条項を確認し、
I Accept the terms in the license agreement
にチェックを付けた後OK
ボタンをクリックしてください。図 10. End User License AgreementのダイアログSpresenseのブートローダーを利用するためにはEnd User License Agreementの同意が必要です。 次回以降ボードマネージャの更新をしない限り再度表示されることはありません。 -
次のメッセージがArduino IDE(下記画像の赤枠)に表示されたらインストールは完了です。
ブートローダの書き込みが完了しました。 updater# Restarting the board ... reboot
図 11. インストール完了時に Arduino IDE に表示されるメッセージ
3. LED のスケッチを動かしてみる
Spresense Arduino 開発の準備ができたので、LED サンプルスケッチを動かしてみます。
-
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); }
-
マイコンボードに書き込む ボタンをクリックして、スケッチのコンパイルと書き込みを行います。
図 12. マイコンボードに書き込む -
スケッチの書き込みが完了するまで待ちます。
図 13. 書き込み完了時のメッセージ -
スケッチの書き込みが完了すると自動的にリセットがかかってプログラムが起動されます。
Spresense ボード上の LED が点滅しているかどうかを確認してください。
ツール → UploadSpeed の値を変更することでボードへの書き込みを高速化することができます。ただしお使いの PC 環境によっては高速化しすぎると書き込み時に通信エラーが発生する可能性もあります。エラーが発生した場合は、USB を抜き差しした後に、UploadSpeed を下げてご使用ください。
|
以上で、Spresense Arduino 環境のセットアップは完了です。
Spresense Arduino 開発の詳細については、Spresense Arduino 開発ガイド を参照してください。
サンプルやチュートリアルに関しては、Spresense Arduino チュートリアル を参照してください。
4. 付録
4.1. USBシリアルポートの確認方法
プラットフォーム毎のUSBポートの確認方法は下記の通りです。
4.1.1. Windows上でのUSBシリアルドライバの確認
-
デバイスマネージャー を開きます。
-
Silicon Labs CP210x USB to UART Bridge
のCOMポートの番号を確認します。図 14. デバイスマネージャーでCOMポートを確認Silicon Labs CP210x USB to UART Bridge
としてデバイスマネージャに表示されます。
上図の例だとCOM9
に接続されていることが分かります。
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用のツールで構成されています。
構成要素 | アーカイブファイル名 | 内容 |
---|---|---|
Spresense ライブラリ |
|
Spresense SDK上でArduino用にラップするためのライブラリです。Arduino標準ライブラリのコード、Spresenseライブラリのコード及びサンプルスケッチが含まれます。 |
Spresense ツール |
|
Arduino IDE上でSpresense用のバイナリを作成したり書き込みをするためのツールが含まれます。 |
Spresense SDKプレビルド |
|
Spresense SDKをArduino IDE用にビルドした静的なアーカイブが含まれます。 |
ARM GCC |
|
作成したスケッチをビルドするためのツールチェーンが含まれます。基本的には公開しているツールチェーンをそのまま利用するので、ローカルボードパッケージでは作成しません。 |
これらの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のインポート作業が不要になります。ですので、ローカルパッケージの作成は以下のような手順になります。
-
spresense-arduino-compatible.gitのクローン
-
spresense-arduino-compatible/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0
或いはspresense-arduino-compatible/Arduino15/packages/SPRESENSE/tools/spresense-tools
の編集 -
Arduinoパッケージのアーカイブ及びJsonファイルの作成
cd spresense-arduino-compatible make
-
以下の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つのリポジトリを使って以下のようにローカルパッケージを作成します。
-
spresense.gitのクローン
-
spresense-arduino-compatible.gitのクローン
-
spresense/
の編集編集や追加を行った場合、そのファイルがビルド対象になっている必要があります。 spresense-arduino-compatible/tools/configs/spresense.conf
に記載されているdefconfigを参照し、ビルド対象を確認してください。 -
Spresense SDKのインポート
spresense.gitリポジトリとspresense-arduino-compatible.gitリポジトリは同じバージョンのものをお使いください。 path/to/spresense
はspresense.gitをクローンしたパスになります。-
SDK v1.5以前の場合
cd spresense-arduino-compatible ./tools/prepare_arduino.sh -S path/to/spresense -c spresense -k release -p ./tools/prepare_arduino.sh -S path/to/spresense -c spresense -k debug -p ./tools/prepare_arduino.sh -S path/to/spresense -c spresense_sub -k subcore-release -p ./tools/prepare_arduino.sh -S path/to/spresense -c spresense_sub -k subcore-debug -p
-
SDK v2.0以降の場合
cd spresense-arduino-compatible ./tools/prepare_arduino.sh -S path/to/spresense -c spresense -d disable -p ./tools/prepare_arduino.sh -S path/to/spresense -c spresense -d enable -p ./tools/prepare_arduino.sh -S path/to/spresense -c spresense_sub -d disable -p ./tools/prepare_arduino.sh -S path/to/spresense -c spresense_sub -d enable -p
-
-
Arduinoパッケージのアーカイブ及びJsonファイルの作成
cd spresense-arduino-compatible make
-
以下の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つのリポジトリを使って以下のようにローカルパッケージを作成します。
-
spresense.gitのクローン
-
spresense-arduino-compatible.gitのクローン
-
Spresense SDKのインポート
SDKのインポート時にSpresense SDKのコンフィグレーションを変更することができます。
spresense.gitリポジトリとspresense-arduino-compatible.gitリポジトリは同じバージョンのものをお使いください。 defconfigの追加のみの場合は、 spresense-arduino-compatible/tools/configs/spresense.conf
にdefconfigの名前を列記すれば-M SDK
をする必要ありません。-
SDK v1.5以前の場合
cd spresense-arduino-compatible ./tools/prepare_arduino.sh -S path/to/spresense -c spresense -k release -M SDK -p <menuconfigが開くのでコンフィグレーションをします> ./tools/prepare_arduino.sh -S path/to/spresense -c spresense -k debug -M SDK -p <menuconfigが開くのでコンフィグレーションをします>
-
SDK v2.0以降の場合
cd spresense-arduino-compatible ./tools/prepare_arduino.sh -S path/to/spresense -c spresense -d disable -M SDK -p <menuconfigが開くのでコンフィグレーションをします(メインコア用)> ./tools/prepare_arduino.sh -S path/to/spresense -c spresense_sub -d disable -M SDK -p <menuconfigが開くのでコンフィグレーションをします(サブコア用)>
-
-
Arduinoパッケージのアーカイブ及びJsonファイルの作成
cd spresense-arduino-compatible make
-
以下の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. インストール手順
-
アーカイブファイルをArduinoダウンロードディレクトリへコピーします。
cp -r spresense-arduino-compatible/out/staging <Arduino15>/
Arduinoパッケージのインストールパス <Arduino15> はお使いのOS及びIDEのインストール方法によって変わります。Arduino IDE上で ファイル
→環境設定
→設定
→以下のファイルを直接編集すれば、より多くの設定を行うことができます。
のファイル名をクリックすると、<Arduino15> のパスでエクスプローラーが開きますので、開いたパスをお使いください。 -
ボードマネージャ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
になります。Arduino IDE2を使用されている場合、 file:///C:\Users\user\spresense-arduino-compatible\out\package_spresense_local_index.json
のようにfile:///
スラッシュ3つを並べてファイル名を記述してください。公式JsonファイルのURLを指定しない場合、ARMのツールチェーンがインストールされず、正しくお使いいただけません。 -
Arduino IDE上で
ツール
→ボード
→ボードマネージャ…
からSpresense local Board
を検索し、インストールします。 -
インストールが完了し、
ツール
→ボード
の一覧にSpresense local
があれば正しくインストールが完了しています。
4.3.2. マニュアルインストール
ボードマネージャを使用せずにマニュアルで Spresense Arduino board package をインストールする方法もあります。ここではその手順について説明します。
-
Spresense Arduino board package のインストール の手順と同様に
追加のボードマネージャのURL
に下記URLを入力してください。
(下記 URL を右クリックして"リンクのアドレスをコピー"
して貼り付けると便利です)この設定が無い状態でボードマネージャを開くと、ボードの選択で Spresense
が選択できなくなります。
-
使用するプラットフォームに合わせて
manual-install-spresense-arduino-"OPERATING_SYSTEM"-latest.zip
ボードインポートパッケージをダウンロードします。 -
使用するプラットフォーム毎のインストール方法は次の通りです。
Spresense Arduino board package をマニュアルでインストールした場合、ボードマネージャを使ったインストールに失敗することがあります。その場合は Spresense Arduino board packageのインストール/更新に失敗する を参照しインストールを実施してください。 |
4.3.2.1. Windows 版のマニュアルインストール
manual-install-spresense-arduino-windows-latest.zip
を展開する際に、
解凍ソフトによってはファイルパス名が長すぎて正しく展開できないことがあります。
ここでは、c:\temp
など短いパス名のフォルダに一旦展開し、その後で適切な場所へコピーを行います。
-
c:\temp
ディレクトリを作成してmanual-install-spresense-arduino-windows-latest.zip
を展開します。展開後に、
Arduino15
フォルダ以下にpackages
フォルダとpackage_spresense_index.json
ファイルが存在します。 -
これらのファイルを Arduino IDE のインストールフォルダへコピーします。
%userprofile%\AppData\Local\Arduino15
フォルダを開き、packages
フォルダとpackage_spresense_index.json
ファイルをコピーします。Arduino IDE を Microsoft Store からインストールした場合はコピー先が異なります。
%userprofile%\Documents\ArduinoData
フォルダを開き、packages
フォルダとpackage_spresense_index.json
ファイルをコピーします。 -
コピーが終わったら Windows 版のマニュアルインストール作業は完了です。
4.3.2.2. Linux版のマニュアルインストール
-
~/.arduino15/
フォルダが存在しない場合は、一度、Arduino IDE を起動してから終了してください。
この操作によって、~/.arduino15/
フォルダが作成されます。 -
ターミナルを開いて、
manual-install-spresense-arduino-linux-latest.zip
をダウンロードしたフォルダへ移動してください。 (以下の例では~/Downloads
フォルダにダウンロードされています) -
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
-
以上で Linux 版のマニュアルインストール作業は完了です。
4.3.2.3. Mac OSX 版のマニュアルインストール
-
~/Library/Arduino15
フォルダが存在しない場合は、一度、Arduino IDE を起動してから終了してください。
この操作によって、~/Library/Arduino15
フォルダが作成されます。 -
ターミナルを開いて、
manual-install-spresense-arduino-macosx-latest.zip
をダウンロードしたフォルダへ移動してください。 (以下の例では~/Downloads
フォルダにダウンロードされています) -
zipファイルを
~/Library/
以下へ展開します。cd ~/Downloads unzip manual-install-spresense-arduino-macosx-latest.zip -d ~/Library/
-
以上で Mac OSX 版のマニュアルインストール作業は完了です。
4.4. プレリリース Spresense Arduino board package パッケージのインストール
2021年より開発中Spresense Arduino board package パッケージのプレリリースを開始しました。 ここでは、プレリリースパッケージのインストール方法について説明します。
プレリリースパッケージをインストールすることで、いち早く最新機能をお試しいただけます!
4.4.1. プレリリースのダウンロード方法
プレリリースは以下のページで公開されています。 リリース毎に更新内容とプレリリースパッケージが公開されており、お使いのArduino IDEへインストールすることができます。
パッケージはページ上の Assets をクリックすることで一覧が出現します。
|
ダウンロードするファイルは以下の4ファイルです。
-
package_spresense_beta_index.json: パッケージ構成ファイル
-
spresense-beta.tar.gz: Audio/GNSS/Cameraなどのライブラリが含まれるアーカイブ
-
spresense-tools-beta.tar.gz: スケッチをビルドしたりSpresenseボードへ書き込むためのツールが含まれるアーカイブ
-
spresense-sdk-beta.tar.gz: プレビルドされたSpresense SDKが含まれるアーカイブ
上記プレリリースパッケージは4ファイルで1セットとなります。異なるバージョンの組み合わせでのインストールはできません。 |
4.4.2. プレリリースのインストール方法
ダウンロードしたプレリリースパッケージは以下の3つのステップで、Arduino IDEのボードマネージャからインストールすることができます。
4.4.2.1. ダウンロードパッケージのコピー
-
ファイル
→環境設定
→設定
を開きます -
以下のファイルを直接編集すれば、より多くの設定を行うことができます。
という文章の下に記載されているファイルのパスをクリックします -
Arduino15
(Windows/macOSの場合) または.arduino15
(Ubuntuの場合) ディレクトリが開くので、その中にstaging
ディレクトリ、更にその中にpackages
というディレクトリを作成します。
+ Arduino15 (または .arduino15) └──+ staging └─── packages
ボードマネージャでボードをインストールしたことがある場合は既に作成されています。 |
-
ダウンロードした4つのファイルを作成した
packages
ディレクトリにコピーします。
+ Arduino15 (または .arduino15) └───+ staging └───+ packages ├── package_spresense_beta_index.json ├── spresense-beta.tar.gz ├── spresense-sdk-beta.tar.gz └── spresense-tools-beta.tar.gz
4.4.2.2. ボードマネージャURLの指定
-
ファイル
→環境設定
→設定
を開きます -
追加のボードマネージャURLに以下の2行を追加します。
https://github.com/sonydevworld/spresense-arduino-compatible/releases/download/generic/package_spresense_index.json file://<コピーしたpackage_spresense_beta_index.jsonのパス>
コピーしたpackage_spresense_beta_index.jsonのパスは、お使いのOSでのファイルパスになります。
|
Windows の設定例を以下に示します。Usernameはお使いのユーザ名に置き換えてください。 |