SPRESENSE をはじめよう！

2024年最新版

# SPRESENSEとは？

SPRESENSEとは2018年夏にソニーが初めて？製品化した開発用ボードです。ソニー製の低消費電力マルチコアプロセッサ「CXD5602」が搭載されています。ソニーというとイメージセンサーの印象が強いですが、プロセッサも健在なのは嬉しいですね。「Cell」を作ったソニーらしく、このプロセッサーもかなりユニークです。

*SPRESENSEメインボード*
![SpresenseMainBoard(S).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/598183/142148b6-29ca-b055-d6b0-889bd9628618.png)


# 名前の由来
日本語の呼び方は、”スプレセンス”、”エス・プレゼンス”など諸説ありますが、”スプレッセンス”と呼ぶのが正しいようです。なんでこんな名前なのか気になりますが、[FAQ](https://developer.sony.com/develop/spresense/docs/faq_ja.html)によると「Spresense の名称に特に意味はありません。」だそうです（笑）。

# 主要機能

- ARM Cortex-M4Fを６つ搭載した低消費電力マルチコアCPU搭載
- ニューラルネットワークコンソールに対応したAI機能
- ハイレゾリューションオーディオの入出力
- カメラインターフェース搭載
- 「みちびき」に対応したGPSモジュール内蔵
- LTE低消費電力通信（LTE-M）に対応（LTE拡張ボードが必要）

*SPRESENSEメインボードとLTE拡張ボード*
![SpresenseLTE(S).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/598183/96babb11-5e92-74bb-f8b4-5f01dd760c6f.png)


# ソニー純正の周辺機器
ソニーからは次の３つの周辺機器が出ています。

- 拡張ボード（Arduino形状）
- カメラボード
- HDRカメラボード
- LTE拡張ボード
- GNSSアドオンボード

[製品仕様](https://developer.sony.com/ja/develop/spresense/specifications)![SPRESENSEソニー純正周辺機器](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/598183/cdce6d7b-b77f-ec76-e117-e9813934de55.png)



# その他の周辺機器
ソニー以外の各社からも多くの周辺機器が出ています。ただ、SPRESENSEはArduinoに対応しているので、**ここで紹介されている他にも、Arduino対応のセンサーや通信モジュールはほぼ流用できます**。私はWiFiには[ESP8266](https://github.com/YoshinoTaro/ESP8266ATLib-for-Spresense)をよく利用しています。

[サードパーティー製拡張オプション](https://developer.sony.com/ja/develop/spresense/spresense-add-on-boards)
![SPRESENSE周辺機器.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/598183/04ddaaaf-7b16-3f2a-bd0d-ec56bdb49174.png)



# 開発環境
SPRESENSEの開発環境は、今現在知る限り次の４つです。Circuit Python は、英語版にしかドキュメントがありませんでした。

- [Arduino IDE](https://developer.sony.com/develop/spresense/docs/arduino_set_up_ja.html)
- [Visual Studio Code](https://developer.sony.com/develop/spresense/docs/sdk_set_up_ide_ja.html)
- [CLI (コンソール)](https://developer.sony.com/develop/spresense/docs/sdk_set_up_ja.html)
- [Circuit Python（英語）](https://developer.sony.com/develop/spresense/docs/circuitpython_set_up_en.html)

# ソフトウェア構成
SPRESENSE は「[NuttX](https://monoist.itmedia.co.jp/mn/articles/2105/10/news022_3.html)」というオープンソースのRTOSがベースとなっています。NuttX はPOSIX準拠のOSで、いわばリアルタイム版Linuxと言えるものですが、起動が高速でフットプリントが小さいというRTOSの良さを残しています。

![Spresenseソフトウェア構成](https://developer.sony.com/develop/spresense/docs/images/sdk_overview.png)

組み込みLinuxに慣れている人にとっては、取り組みやすいOSだと思います。

[nuttx.apache.org](https://nuttx.apache.org/)
![NuttX.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/598183/19084e56-a24c-ba60-4fb5-c6927db97744.png)


# 何ができるの？
SPRESENSEは機能がてんこ盛りの割には、通信機能がメインボードに搭載されていない。おまけに少々お高めと、少しちぐはぐな印象を持ちます。しかし使いこなせば使いこなすほど味が出るボードです。その特徴と応用例を少しあげてみました。（かなり手前味噌）


### マルチコア・コンピューティング
コンピュータ・サイエンスに興味を持っている人には、SPRESENSEは非常に面白い研究対象になると思います。SPRESENSEは、SMP, AMP 両方に対応しています。AMPではそれぞれのコアに対してArduino IDEでプログラミングができますので並列処理プログラミングを手軽に試すことができます。

- [Arduinoマルチコア環境](https://developer.sony.com/develop/spresense/docs/arduino_tutorials_ja.html#_tutorial_multicore)
- [SPRESENSEとArduino IDEで簡単マルチコアプログラミング！](https://mag.switch-science.com/2021/02/10/spresense-multicore-programming/)
- [SPRESENSEのマルチコアでLEDを制御してみた](https://makers-with-myson.blog.ss-blog.jp/2019-10-27)
- [SPRESENSEでバーサライタ](https://homemadegarbage.com/spresense-pov02)

また、SDKを使うと、SMP、AMPを組み合わせて利用することもできます。

- [SPRESENSEを支えるリアルタイムOS「NuttX」で SMP × ASMP のシステムを構築！](https://www.aps-web.jp/academy/amp/22917/)

![SPRESENSE SMPxASMP](https://www.aps-web.jp/wp-data/wp-content/uploads/2020/10/acd-amp-16-fig11.png)

NuttX はオープンソースなので、マルチコアを扱うOSの仕組を学習するのも面白いでしょう。



### オーディオ機能
SPRESENSEはハイレゾのオーディオ再生機能があります。「世界ゆるミュージック協会」というところと、[「ゆる楽器」](https://developer.sony.com/ja/spresense/sme-use-cases)というユニークな楽器を作るプロジェクトが進んでいるようです。さらに簡単に[楽器を開発できるライブラリ](https://github.com/SonySemiconductorSolutions/ssih-music)も提供しているようです。サウンドフォントも使えるようなので結構本格的な楽器が作れそうです。

- [Audioチュートリアル](https://developer.sony.com/develop/spresense/docs/arduino_tutorials_ja.html#_tutorial_audio)
- [ゆる楽器 x Spresense](https://developerworld.wpp.developer.sony.com/ja/spresense/sme-use-cases)
- [Spresenseで簡単に楽器を開発するライブラリ](https://github.com/SonySemiconductorSolutions/ssih-music)
- [Spresenseで楽器を作る第一歩](https://qiita.com/mash3-gt/items/fc882447491d9b0765dc)
- [SPRESENSEでビートボックスを作ってみた](https://makers-with-myson.blog.ss-blog.jp/2018-09-29)
- [SPRESENSEでデジタルエフェクターを作ろう！](https://makers-with-myson.blog.ss-blog.jp/2022-04-24)
- [Spresense e-Violin](https://www.youtube.com/watch?v=K9ZPB3-cVeU)
- [音楽弱者を救え! ソニーミュージック「ゆる楽器ハッカソン」に行ってきた](https://av.watch.impress.co.jp/docs/series/dal/1369750.html)

![ゆる楽器.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/598183/842d7a08-078e-1a05-fcba-133c752c1935.jpeg)

- 【ソニー公式】[SPRESENSEで始めるリアルタイム信号処理プログラミング](https://github.com/TE-YoshinoriOota/Spresense-Realtime_Signal_Processing-Seminar)

https://www.youtube.com/playlist?list=PLzgPwCLYLGPNLjSZdCl24tQV6Ze4_6iUH

https://github.com/TE-YoshinoriOota/Spresense-Realtime_Signal_Processing-Seminar



### マイク機能
SPRESENSEは４系統のマイク入力がありハイレゾでも録音ができるようになっています。

- [SPRESENSE用のアナログマイクを作ってみた！](https://makers-with-myson.blog.ss-blog.jp/2018-12-06)
- [SPRESENSEでMP3録音をしてみた](https://makers-with-myson.blog.ss-blog.jp/2019-01-06)
- [SPRESENSEでマイクのゲインを変えて録音してみた](https://makers-with-myson.blog.ss-blog.jp/2019-01-19)
- [SPRESENSE でステレオ録音を試してみた](https://makers-with-myson.blog.ss-blog.jp/2019-02-04)
- [SPRESENSEでハイレゾ録音対決](https://makers-with-myson.blog.ss-blog.jp/2019-01-24)
- [Talking Web Radio with ESP8266 and Sony Spresense](https://www.hackster.io/pjdecarlo/talking-web-radio-with-esp8266-and-sony-spresense-b04e02)

このマイク入力は、192kHz/24ビットまで対応できるADCとして使うこともできます（ほぼ測定器並）。ここにアナログセンサーをつなげれば、高速信号処理可能なセンシングプロセッサーとして使うことができます。（センシングプロセッサーの由来はココ？）

- [SignalProcessingチュートリアル](https://developer.sony.com/develop/spresense/docs/arduino_tutorials_ja.html#_tutorial_signal_processing)
- [SPRESENSEのマイク入力をADCにして心拍センサーを取り込む](https://makers-with-myson.blog.ss-blog.jp/2020-10-19)

さらに再生機能とマイク機能を応用すれば音響通信も可能になります。通信の基礎に取り組みたい人には良い実験材料になると思います。

- [SPRESENSEで音響通信](https://makers-with-myson.blog.ss-blog.jp/2021-02-28)
![SPRESENSE音響通信](https://makers-with-myson.c.blog.ss-blog.jp/_images/blog/_786/makers-with-myson/FSK_Experiments.jpg?c=a1)

### カメラ機能
カメラは、ソニー製のCMOSイメージセンサーを搭載したカメラボードが利用できます。ライブラリは非常に使いやすいのでさくっとアプリケーションが作れます。

- [カメラチュートリアル](https://developer.sony.com/develop/spresense/docs/arduino_tutorials_ja.html#_tutorial_camera)
- [SPRESENSE用 HDR VR220 カメラボード（レンズ交換可能）](https://e-products.entaniya.co.jp/list/spresense-related-products/spresense-hdr-vr220/)
- [SPRESENSEの新型カメラボードで写真を撮ってみる](https://mag.switch-science.com/2022/04/27/spresense-camera/)
- [Spresense_HDRCamera_M12Adapter](https://github.com/YoshinoTaro/Spresense_HDRCamera_M12Adapter)
- [SPRESENSEのカメラのモニターをProcessingで作る](https://makers-with-myson.blog.ss-blog.jp/2019-09-08)
- [SPRESENSEでLowPowerカメラ](https://makers-with-myson.blog.ss-blog.jp/2020-02-10)
- [SPRESENSEでAVI動画をサポートしてみた](https://makers-with-myson.blog.ss-blog.jp/2019-09-30)
- [SPRESENSEでサーマルカメラを作ろう](https://makers-with-myson.blog.ss-blog.jp/2021-04-06)
- [SPRESENSEでタイムラプスカメラを作ろう](https://makers-with-myson.blog.ss-blog.jp/2021-01-31)

![SPRESENSEタイムラプスカメラ](https://makers-with-myson.c.blog.ss-blog.jp/_images/blog/_786/makers-with-myson/sADSC02027.jpg)

ハードウェアの仕様やソフトウェアはオープンソースになっているので、OV7670などつなげられるのではないかと妄想しています。


### GPS機能
SPRESENSEにはGPSチップアンテナが搭載されているので、メインボードだけで利用できます。みちびきにも対応しているのでサブメーター級測位も利用できます。チップアンテナですが、思いのほか精度が高いのでサイクルコンピュータ用によさそうです。

- [GPSチュートリアル](https://developer.sony.com/develop/spresense/docs/arduino_tutorials_ja.html#_tutorial_gps)
- [SPRESENSE GNSSアドオンボードを試してみた](https://www.switch-science.com/blogs/magazine/spresense-gnss?srsltid=AfmBOoqKWyfpZD_5zttB4Ogi2qCsFjmBVSd_qZMfIDLWDAxx-B5372Kx)
- [100均のソーラーパネルとSPRESENSEでバッテリーレスロガー製作](https://homemadegarbage.com/solarspresense)
- [SPRESENSE の CircuitPython が "GPS"をサポート](https://makers-with-myson.blog.ss-blog.jp/2020-08-21)
- [SPRESENSEでDeepSleepからGPSをホットスタート](https://makers-with-myson.blog.ss-blog.jp/2020-01-26)
- [SPRESENSEのRTCをGPS時計に設定して時報アプリ](https://makers-with-myson.blog.ss-blog.jp/2019-11-24)
- [SPRESENSEのNMEA出力をNMEAモニターで確認](https://makers-with-myson.blog.ss-blog.jp/2019-11-17)
- [SPRESENSEで高精度GPSロガーをつくる](https://qiita.com/Tomonobu3110/items/c996410c290087b56890)
- [GNSS(GPS)の電波をCPUコアを使わずに解析し、位置情報を算出する](https://www.aps-web.jp/academy/amp/11366/)

その他、SPRESENSEには「みちびき」が提供する「災害危険情報」をデコードする機能もあります。SPRESENSEを使って防災システムを作ってみるのも面白いと思います。

- [みちびき災危通報をデコードしてみる](https://qiita.com/baggio/items/497b654cd4ec1bfd74fc)


### AI機能
SPRESENSEの目玉といえばAI機能。とは言っても、あまりサンプルとかがないのが残念。チュートリアルはかなりあっさりとしていてもう少し情報が欲しいところ。自分なりの理解をまとめたものをあげておきますので参考にしてください。

- [AIチュートリアル](https://developer.sony.com/develop/spresense/docs/arduino_tutorials_ja.html#_tutorial_ai)
- [Get started with Google's TensorFlow on Spresense](https://developer.sony.com/posts/get-started-with-googles-tensorflow-on-spresense/)
- [SPRESENSEでSony Neural Network Console を使ってみた！](https://makers-with-myson.blog.ss-blog.jp/2019-07-14)
- [SPRESENSE で小型AIカメラ](https://makers-with-myson.blog.ss-blog.jp/2020-02-18)
- [Neural Network Libraries (Nnabla) で作った AI を SPRESENSE で動かす](https://makers-with-myson.blog.ss-blog.jp/2020-05-31)
![SPRESENSE AIカメラ](https://makers-with-myson.c.blog.ss-blog.jp/_images/blog/_786/makers-with-myson/sDSC01751.jpg?c=a0)


### ロボティクス機能
ロボティクス関連も応用が広がっています。特にマルチコアはロボット制御には非常に適しています。制御ループが正確に時間管理できるのは大きな利点ですね。

- [SPRESENSE™とmicro-ROSで始めるロボットプログラミング](https://www.youtube.com/playlist?list=PLzgPwCLYLGPNatim2hlNvcjrpXxnrNz8P)
- [Spresense-microROS-Seminar](https://github.com/TE-YoshinoriOota/Spresense-microROS-Seminar)
- [Wheel-Legged Robot](https://elchika.com/article/f177f62b-f7f2-4eeb-a9fe-dd6485f6ed71/)
- [SPRESENSEでrviz2上のUDRFモデルを動かす](https://qiita.com/TaroYoshino/items/9e296a54346e9fed9a46)
- [Spresense猫モーラー](https://elchika.com/article/8fe1b130-163d-480d-9b82-f01a6026fc42/)


# 関連書籍
[SPRESENSEではじめるローパワーエッジAI](https://www.amazon.co.jp/SPRESENSE%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E3%83%AD%E3%83%BC%E3%83%91%E3%83%AF%E3%83%BC%E3%82%A8%E3%83%83%E3%82%B8AI-Make-PROJECTS-%E3%82%BD%E3%83%8B%E3%83%BC%E3%82%BB%E3%83%9F%E3%82%B3%E3%83%B3%E3%83%80%E3%82%AF%E3%82%BF%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%BA%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE/dp/4873119677/?_encoding=UTF8&pd_rd_w=FQP4N&content-id=amzn1.sym.09fc5329-add5-4943-82f6-96f98cfdada8&pf_rd_p=09fc5329-add5-4943-82f6-96f98cfdada8&pf_rd_r=QDVYSZ7MCCHA1DCQJ3AS&pd_rd_wg=JAFbg&pd_rd_r=fa167d8a-f9cd-45dc-816e-05953076204f&ref_=pd_gw_ci_mcx_mr_hp_atf_m)
![SPRESENSEではじめるローパワーエッジAI](https://images-na.ssl-images-amazon.com/images/I/51l-5NXW9NL._SX389_BO1,204,203,200_.jpg)

[はじめての「SonyNNC」改訂版 (I/O BOOKS)](https://www.amazon.co.jp/%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%81%AE%E3%80%8CSonyNNC%E3%80%8D%E6%94%B9%E8%A8%82%E7%89%88-I-BOOKS-%E6%9F%B4%E7%94%B0-%E8%89%AF%E4%B8%80/dp/4777521397/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=3EKWOX5UXFX7L&keywords=NNC&qid=1655005275&s=books&sprefix=nnc%2Cstripbooks%2C203&sr=1-1)
![はじめての「SonyNNC」改訂版 (I/O BOOKS)](https://images-na.ssl-images-amazon.com/images/I/51-1GYgKOUL._SX350_BO1,204,203,200_.jpg)


# チュートリアル動画
ソニー公式などから、さまざまなチュートリアルが用意されています。SpresenseのAI機能はソニー公式のSpresenseチュートリアルがよさそうです。

- [Spresense|チュートリアル動画【ソニー公式】](https://www.youtube.com/playlist?list=PLzgPwCLYLGPOau4b4_2NPjKUVa1l1OhK3)
- [Neural Network Cosole【ソニー公式】](https://www.youtube.com/c/NeuralNetworkConsole)
- [Edge Impulse チュートリアル（Spresense編）](https://www.youtube.com/watch?v=MahHjWTOFzI)
- [Spresenseのサブコアを使うプログラムを自動生成し、デバッガで確認 | APS-WEB](https://www.youtube.com/watch?v=R5O1-SE1bfU)
- [SPRESENSEに搭載されているCPUコアをSMP×ASMPとして構成 | APS-WEB](https://www.youtube.com/watch?v=En_3gBU7hAs)

# 公式アカウント
公式SNSも用意されています。最新情報をウォッチできます。

- [SPRESENSEツイッター公式アカウント](https://twitter.com/SpresensebySony)
- [SPRESENSEフェイスブック公式アカウント](https://www.facebook.com/SpresensebySony.japan)
- [SonyDevWorldツイッター公式アカウント（英語）](https://twitter.com/sonydevworld)
- [SonyDevWorld公式Githubリポジトリ（英語）](https://github.com/sonydevworld)

# その他の非公式情報
**ブログ**
- [Qiita | SPRESENSE](https://qiita.com/tags/spresense)
- [SPRESENSEに興味あり](http://spresense.livedoor.blog/)
- [Home Made Garbage | SPRESENSE](https://homemadegarbage.com/tag/spresense-ja)
- [息子と一緒に Makers | SPRESENSE](https://makers-with-myson.blog.ss-blog.jp/archive/c2306161540-1)

**Twitter**
- [SPRESENSEに興味あり](https://twitter.com/spresense)
- [よしのたろう 🍥純国産ボード”スプレッセンス”応援団長（仮）](https://twitter.com/Taro_Yoshino)

**Facebook**
- [SPRESENSE USER GROUP](https://www.facebook.com/groups/2145058999069915/)