spresense_night#1

1.4K Views

November 17, 22

スライド概要

2022/11/17に開催したイベント【spresense_night#1】の発表資料です。
https://k-abe.connpass.com/event/265694/

以下、イベント案内文です。
ソニーのボードコンピュータ【Spresense】をご存知ですか?

電子工作のボード選定で Arduinoではスペックが足りない、とはいえラズパイはスペックが高すぎる・・・というときに Spresenseはフィットするかな、と個人的に感じています。

このボードの存在・魅力を知り趣味の個人開発を続けて得た知見を共有したいと思いイベントの開催を決めました。

Spresenseの魅力、これまで書いた技術書・技術記事、コンテストに出品した経験を共有できればと思います。

Spresense大好きな方、Spresenseに興味ある方、その他気になりましたら是非、参加をよろしくお願いします。

profile-image

組込みソフトウェアエンジニア。 技術バックボーンはC言語・ベアメタル。 CQ EVカートのオーナーで、ハード・ソフトウェアの改造を通じて自身のスキルアップを日々考え中・・・。 LAPRASポートフォリオ: https://lapras.com/public/k-abe GitHub: http://github.com/grace2riku Qiita: https://qiita.com/juraruming Zenn: https://zenn.dev/k_abe よろしくね。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Spresense night #1 〜推しマイコンボード【Spresense】の魅力を語る!!!〜 2022/11/17 パーソルテクノロジースタッフ株式会社 阿部耕二 koji.abe@persol.co.jp

2.

自己紹介 1 ▪パーソルテクノロジースタッフ株式会社 技術本部 機電技術部 首都圏2G 阿部 耕二(あべ こうじ) ▪医療機器開発 ・組込みソフトウェア開発。 ・C言語、ベアメタルの開発業務経験がほとんど。 2

3.

自己紹介 2 ▪技術書を書いて技術書典13に参加したり、 ▪マイコンのコンテスト(※)に参加したり、 ※SPRESENSE™ 活用コンテスト 組込みソフトウェア開発が好きなおじさんです。 よろしくお願いします。 ▪LAPRASポートフォリオ:https://lapras.com/public/k-abe 3 ▪twitter: @juraruming

4.

目次 • イベント概要 • Spresense概要 • 最近のSpresense NEWS • Spresenseの魅力 • 個人的に試したこと • お薦め開発手法 • 今後やってみたいこと • QA 4

5.

目次 • イベント概要 • Spresense概要 • 最近のSpresense NEWS • Spresenseの魅力 • 個人的に試したこと • お薦め開発手法 • 今後やってみたいこと • QA 5

6.

イベント概要 ・Spresenseの存在・魅力を知り趣味の個人開発を続けて得た知見を共有 したいと思いイベントの開催を決めました。 ・Spresenseの魅力、これまで書いた技術書・技術記事、コンテストに出 品した経験を共有できればと思います。 6

7.

目次 • イベント概要 • Spresense概要 • 最近のSpresense NEWS • Spresenseの魅力 • 個人的に試したこと • お薦め開発手法 • 今後やってみたいこと • QA 7

8.

Spresense概要 ・ソニーが開発したボードコンピュータの名称 ソニー独自のセンシングプロセッサ CXD5602を搭載 ・Arduino 互換 ・GPSによる測位機能、ハイレゾリューションオーディオの再生・録音機 能、低消費電力のマルチコアを内蔵 ※Webドキュメントより引用 8

9.

Spresense概要 ▪ ハードウェア編 Spresenseはつぎのボードから構成されている。 ・Spresense メインボード ・Spresense 拡張ボード ・Spresense LTE拡張ボード ・Spresense カメラボード ・Spresense HDR カメラボード サードパーティ製の拡張ボードもあり(リンクはこちら)。 ※Webドキュメントより引用 9

10.

Spresense概要 ▪ハードウェア編 ・Spresense メインボードのピン配置 ※Webドキュメントより引用 10

11.

Spresense概要 ▪ハードウェア編 ・Spresense 拡張ボードのピン配置:Arduino互換 ※Webドキュメントより引用 11

12.

Spresense概要 ▪ソフトウェア編 ・2つの開発環境を提供 1, Spresense Arduino Library 2, Spresense SDK 12

13.

Spresense概要 ▪ソフトウェア編 1, Spresense Arduino Library の構造 ※Webドキュメントより引用 13

14.

Spresense概要 ▪ソフトウェア編 2, Spresense SDK ※今回はSpresense SDKのお話がメインになります。 14 ※Webドキュメントより引用

15.

目次 • イベント概要 • Spresense概要 • 最近のSpresense NEWS • Spresenseの魅力 • 個人的に試したこと • お薦め開発手法 • 今後やってみたいこと • QA 15

16.

最近のSpresense NEWS いろんなところで活躍中!!! ・【宇宙】衛星技術実証 ・【宇宙・玩具】SORA Q ・【エンタメ】大阪音楽大学 「電気楽器のオーケストラ」公開へ ・【ロボット・IoT・エンタメ】elchika 2022年 SPRESENSE™ 活用コンテスト 16

17.

目次 • イベント概要 • Spresense概要 • 最近のSpresense NEWS • Spresenseの魅力 • 個人的に試したこと • お薦め開発手法 • 今後やってみたいこと • QA 17

18.

▪マルチコア Spresenseの魅力 ▪OSがNuttX ●POSIX対応 ▪開発スタイルがArduino・Spresense SDKから選択可能 ▪サンプル、チュートリアルあり ▪ドキュメントがある ●開発環境構築(スタートガイド)、チュートリアル、開発ガイド、APIリファレ ンス、その他 ▪コミュニティがある。 ●stack overflow, フォーラム(Sony's Developer World forum) 18

19.

▪マルチコア Spresenseの魅力 ▪OSがNuttX ●POSIX対応 ▪開発スタイルがArduino・Spresense SDKから選択可能 ▪サンプル、チュートリアルあり ▪ドキュメントがある ●開発環境構築(スタートガイド)、チュートリアル、開発ガイド、APIリファレ ンス、その他 ▪コミュニティがある。 ●stack overflow, フォーラム(Sony's Developer World forum) 19

20.

▪マルチコア Spresenseの魅力 CXD5602内部ブロック図 20 ※Webドキュメントより引用

21.

▪マルチコア Spresenseの魅力 ・6つのコアで負荷分散・並列実行!!! ・ASMP(Asymmetric Multi-Processing:非対称型マルチプロセッシン グ)の構成 ・マルチコアを簡単に扱えるフレームワークがある。 Spresense SDK 開発ガイド -> 5. Spresense SDKが提供する機能 -> 5.7. ASMP Framework ・(マルチコアに限らずですが)APSさんのSpresense連載記事(第1回〜第20 回)は非常に参考になる。 APS Spresense 連載記事リンク 21

22.

▪OSがNuttX Spresenseの魅力 OSがNuttXだと何が嬉しい??? ・POSIXインタフェースでラズパイ(OSはLinuxとする)の開発資産を比較 的容易にSpresenseに移植可能。 ・シェルが使える ・Linuxライクなコマンドが使える 22

23.

Spresenseの魅力 ▪サンプル、チュートリアルあり 日本語チュートリアルがあり、試したい機能をサクッと試せる。 下図はSpresense SDKチュートリアルのWebページから引用。 23

24.

▪ドキュメントがある Spresenseの魅力 開発スタートできるドキュメントが日本語で揃っている。 下図はSpresense DocumentsのWebページから引用。 24

25.

目次 • イベント概要 • Spresense概要 • 最近のSpresense NEWS • Spresenseの魅力 • 個人的に試したこと • お薦め開発手法 • 今後やってみたいこと • QA 25

26.

個人的に試したこと ▪デジタルカメラ ▪オリジナルゲーム ▪viエディタ ▪pthreadsでマルチスレッドの動作確認 26

27.

個人的に試したこと ▪デジタルカメラ つぎの簡易的なデジタルカメラアプリをつくりました。 ・カメラのプレビューをLCDに表示する。 サンプルアプリ【examples/camera】を流用した。 ・外部基板のスイッチ押下でLCDのプレビューをSDカードに保存する。 開発の一連の手順を技術書に書いたので参照ください。 ●Spresense タルカメラ開発 ジ デ 27

28.

個人的に試したこと ▪オリジナルゲーム オリジナルの簡易的なゲームをつくりました。 1, 椅子取りゲーム 2, 連射測定ゲーム 3, エレキギター 28

29.

個人的に試したこと ●1, 椅子取りゲーム ・音楽ファイルをランダムな時間で再生⇄停止を繰り返す。 ・【examples/audio_player】サンプルアプリを流用した。 ●2, 連射測定ゲーム 10秒間外部基板のスイッチを連射し結果を表示する。シュウォッチをイメー ジしてつくってみた。 ●3, エレキギター ・ジャイロセンサーの傾きによりドレミを発音する。 ・【examples/sixaxis 】・【examples/audio_beep】サンプルアプリを流用し た。 開発の一連の手順を技術書に書いたので参照ください。 ジ デ ●Spresense タルカメラ開発 29

30.

▪viエディタ 個人的に試したこと なんと、Spresense SDKで【feature/vi】コンフィギュレーションを有効 にしてmakeするとviエディタが使えます!!! 詳しく書いた記事はこちら。 30

31.

個人的に試したこと ▪pthreadsでマルチスレッドの動作確認 pthreadsでマルチスレッドのコードが書けます。 引数の順番などLinuxと同じように書けたので、pthreadsのコードを Spresenseに移植する、ことも比較的容易にできるかと思います。 ●マルチスレッドの確認を何回かに分けて確認しZennに記事を書きました。 ・#1 〜スレッドの起動・終了待ち〜 ・#2 〜ミューテックスでプログラムの実行を排他制御〜 ・#3 〜条件変数で条件待ちする〜 ・#4 〜条件変数で【タイムアウト付き】条件待ちする〜 ・#5 〜複数スレッドの待ち状態を一度に全て解除する〜 ・#6 〜バリアで同期して各スレッドの処理の足並みを揃える〜 ・#7 〜【どうぞどうぞ】を条件変数・バリアで実装する〜 ●NuttXのpthread Interfaceはこちらに記載されています。 pthreadとの互換性について記載されています。 31

32.

目次 • イベント概要 • Spresense概要 • 最近のSpresense NEWS • Spresenseの魅力 • 個人的に試したこと • お薦め開発手法 • 今後やってみたいこと • QA 32

33.

お薦め開発手法 Spresense SDKでいくつかアプリをつくり、このような流れでアプリを つくるのが良いのでは?、と感じることがあったのでシェア。 1, チュートリアルで所望のデバイス制御ができていることを確認する。 2, チュートリアルで使用しているサンプルアプリを雛形にして、自身のア プリを作る。 Spresense SDKで開発するうえで一番の壁は【コンフィグレーション】 と感じている。 33

34.

お薦め開発手法 【サンプルアプリで所望のデバイス制御を確認できたらサンプルアプリ のコンフィギュレーションを流用し、自身のオリジナリアプリをつくる、 というスタイルが良さそう】 ↑の具体的な方法を技術書に書いたので良かったら参照してください。 ●Spresense タルカメラ開発 -> 第6章 Spresense SDK 開発手順 基本的につぎのWebドキュメントの内容をベースにした。 Spresense SDK スタートガイド (CLI 版) -> 6. ユーザーアプリの追加方法 ジ デ 34

35.

目次 • イベント概要 • Spresense概要 • 最近のSpresense NEWS • Spresenseの魅力 • 個人的に試したこと • お薦め開発手法 • 今後やってみたいこと • QA 35

36.

今後やってみたいこと ●マルチコアを体感できるアプリをつくる。 ・6つのコアを使い倒してみたい!!! ●ライブラリ作成・リンク ・複数アプリの共通処理をライブラリにする。 ●GNSSサンプルアプリ確認 ●Audio Recorderサンプルアプリ確認 ●SCU(Sensor Control Unit)の理解・アプリ作成 ・センサーデータ取得に関わるCPUの負荷を減らしたい。 ●C++アプリ作成 36

37.

目次 • イベント概要 • Spresense概要 • 最近のSpresense NEWS • Spresenseの魅力 • 個人的に試したこと • お薦め開発手法 • 今後やってみたいこと • QA 37

38.

QA • ご質問、気になったことあれば共有をお願いします。 38

39.

終わり ご静聴ありがとう ございました。 39