Spresenseで電子工作の幅を広げよう! 第1回:Spresenseとは?

こんにちは、ヨシケンです!
今回は2018年8月にソニーセミコンダクタソリューションズ(以下ソニー)からリリースされた、Arduino互換のシングルボードコンピュータSpresense(スプレッセンス)を使っていきたいと思います。
ソニーから満を持して発表されたIoT向けコンピュータだけあって、小型で低電力、ハイレゾ音源に対応し、GPS計測も標準装備するなど盛りだくさんです。電子工作やIoTの幅を広げたい方にはうってつけなボードです!
ではSpresenseを使った電子工作の基本を見ていきましょう!
title_image

今回の記事で必要な物一覧

・Spresenseメインボード
Spresense

・Spresense拡張ボード
spresense2

・Micro USBケーブル
・LED

 

今回の記事の流れ

1.Spresenseとは
2.Spresenseでの開発環境、準備
3.Spresense Arduino Libraryのインストール
4.SpresenseでLチカ
5.まとめ

1.Spresenseとは

ソニーが開発したSpresenseは、Arduino互換のシングルボードコンピュータです。ソニー独自のCXD5602という高性能、低電力、多機能のチップセットを搭載しています。
Spresenseは、チップやカメラモジュールを備えたメインボード(左側の小さい方)と、オーディオ端子やSDカードスロットなどを追加するための拡張ボード(右側大きい方)で構成されています。

1

それでは、具体的にできる機能を見ていきましょう。まずメインボードには以下のような特徴があります。

メインボード

  • CXD5602 センシングプロセッサ
  • CXD5247 パワーマネジメント、オーディオアナログIC
  • 8MBフラッシュメモリ
  • カメラコネクタ
  • GPSアンテナ
  • Micro USBコネクタ(給電、データ転送)
  • GPIOピン
  • 表示&アプリケーション用LEDなど

つまり、メインボードだけでもカメラ接続やGPS計測、GPIOによるセンサー接続などができるようになっています。またメインボードのピン配置は以下のようになっています。

2
[メインボードのピン配置 Spresense ページより]

拡張ボード

  • Arduino UNO互換のピンソケット配置、GPIOピン
  • オーディオジャック
  • Micro SDカードスロット
  • Micro USBコネクタ
  • マイク接続用ピンヘッダー

こちらの拡張ボードは、Arduino UNOとほぼ同じ大きさで、ピンヘッダの位置もそろった作りになっています。そしてハイレゾなどの音声の入出力は、構成が大きくなるため、こちらの拡張ボードの方に用意されています。また、データ保存のためのMicro SDカードスロットも付いていて、メインと拡張ボードがあれば、大抵の事はできてしまいそうですね。

3
[拡張ボードのピン配置 Spresense ページより]

アドオンボード

さらにSpresenseは、オープンプラットフォームとして提供されているため、他社が開発したアドオンボードとも容易に接続できるようになっています。
既にロームが、Spresenseに対応したアドオンボードとして、BLEボードと、センサ・ボードを出しています。

4a 4b
BLEアドオンボード センサ・アドオンボード

他のボードとの比較

最後に、他のボードとの比較を参考のため図表で示します。
ラズパイ・ゼロ、Arduino Nanoと比べると、消費電力は圧倒的に低く、パフォーマンスもラズパイには劣りますが、Arduino Nanoよりずっと高速です。それでいてサイズはラズパイ・ゼロより小さく、GPSを含む多機能が装備されていて、なかなか使い勝手が良さそうですね!

5

Raspberry Pi Zero W Spresenseメインボード Arduino Nano
サイズ 6.5 cm × 3 cm 5 cm × 2 cm 4.3 cm × 1.8 cm
特徴的な機能 Wifi/BLE
オーディオ・HDMI接続
カメラ接続
GPS
ハイレゾ・オーディオ
カメラ接続

2.Spresenseの開発環境、準備

ソフトウェア開発に関して、Spresenseでは2種類の開発環境を用意しています。
一つは、Arduino互換の名の通り、Arduino IDEを使ったソフトウェア開発環境です。Spresense Arduino Libraryが提供されているので、それをインストールし、Arduino開発と同様に行う事ができます。ここに含まれるサンプルプログラムだけでもかなりの事ができる様になっています。
もう一つはソニーが提供するSpresense SDKを使うものです。これは、CXD5602の機能を最大限発揮するためにC++などで作られていますが、NuttXという独自なオペレーティングシステムをベースにしています。
ここでは皆さんが既に慣れているであろう、Arduino IDEを使ってSpresenseのソフトウェア開発を行なっていきます。

Arduino IDEの準備

まずWindowsやMacなどの環境で、Arduino IDEを用意します。この際、Arduinoのバージョンは、1.8.x以降を使用して下さい。

6

USBドライバの準備

次にSpresenseのホームページを参照して、環境にあったUSBドライバをインストールして、Spresenseがパソコンなどに接続できる様にします。
こちらの1.2 事前準備からUSBドライバをダウンロード、インストールします。ここでは、Mac (OSX Mojave)を使っています。

7

3.Spresense Arduino Libraryのインストール

前段でパソコンとSpresenseの事前準備ができたら、Micro USBケーブルを使って、SpresenseメインボードのUSBポートと接続します。
拡張ボードもつないでも構いませんが、データ接続にはメインボードのUSBポートと接続する必要があります。
メインボードUSBポート側の青いLEDが光ったら、接続ができています。

8

Spresense Libraryの導入

Spresenseメインボードの青いLEDが付いたら、パソコンでArduino IDEを立ち上げます。
Arduinoメニューから環境設定を選びます。設定画面下の追加のボードマネージャという部分に、以下URLを貼り付け、OKを押します。

https://github.com/sonydevworld/spresense-arduino-compatible/releases/download/generic/package_spresense_index.json

9

メニューから、ツール > ボード > ボードマネージャと選び、検索画面で“Spresense”と入れて下さい。Spresenseボードが表れますので、それを選んで“インストール”ボタンを押します。

10

こうすることにより、Arduinoのツールメニューのボードに、”Spresense”が見えてきたでしょうか?ボードにSpresenseを選んで、さらにシリアルボートの所も、USBまたはポート名が見えたらこれを選んでおきます。

11

ブートローダの導入

同じツールメニューの”書込装置”の部分から、Spresense Firmware Updaterを選びます。
そして、その下の”ブートローダを書き込む”を選びます。そうすると、以下のようなSpresense End User Agreementが開くので、ダウンロードページに行きます。そこからFirmwareの”Download now”ボタンを押し、ファイルを適当な場所に保存します。

12

その後、ダウンロードしたzipファイルをAgreement画面にドラッグ&ドロップすると、Arduinoの方でブートローダの書き込みが始まります。

13

この後、以下のメッセージが出たら、書き込みは完了です。これでSpresenseをArduino IDEから使う準備ができました。

ブートローダの書き込みが完了しました。

updater# Restarting the board …
reboot

4.SpresenseでLチカ

ここまで来れば、あとはいつものLチカです。
まずLEDを用意し、SpresenseのGPIO 14番とつなぎます。LEDの長い方(アノード)とSpresenseの14番(左上から2番目)と短い方(カソード)を左上から4番面のGNDにつなぎます。

14

次にArduino IDEで以下のような簡単なスケッチを記述します。
pinModeを14番、OUTPUTに指定します。そして1秒おきに14番をHIGHとLOWを交互に繰り返すようにします。

15

その後、メニュー左から2番目の書き込みボタンを押して、このスケッチをSpresenseに書き込みます。
上手くいくと写真のように、差したLEDが点滅を繰り返します。

16

いかがでしょうか?少し事前準備、設定が必要ですが、これでSpresenseのLチカができて、電子工作を始めることができます。

spresense_led

5.まとめ

今回は、ソニーの新しいIoTボードSpresenseを使いました。
メインボードと拡張ボードの特徴的な機能、アドオンボードや他ボードとの違いなどを紹介しました。
開発環境に関しても、Spresense Libraryを導入し、Arduino IDEで使えるようにしました。
メインボードにLEDをつないで光らせるLチカまでやったので、とりあえずSpresenseを使い始める最初の一歩ができたと思います。

今後は、Spresenseの特徴的な機能、ハイレゾ音楽やGPSなどを活用して、電子工作をやって行きたいと思います。
お楽しみに!

(ヨシケン)

電子工作マニュアル Vol.3
ヨシケン(吉田 顕一)

普通の会社に勤めるサラリーマンですが、モノ作りが好きな週末メイカーで、電子書籍MESHBOOKを出したり、ブログを書いたりしています!

http://blog.ktrips.net