SPRESENSEのはじめかた

#　概要
＝＝限定共有資料だったものを 2021/11/24改版 し公開します＝＝
SPRESENSE開発をされる方、ハンズオン参加者向けの情報になります。
情報の取得先を結構探してしまったので、備忘録を兼ねて記載します。

## SPRESENSE とは
SPRESENSEはソニーセミコンダクタソリューションズ株式会社が開発されたIoT向けボードコンピュータです。
乾電池で動作する省電力デバイスなのに、簡単な画像解析などAIモデルを実行できるというところ。
こちらが実現できるかも　ということで興味を持ったのがきっかけです。[郵便受け でエッジコンピューティング（IoTLT/RaspberryPiでエッジAI 郵便物認識/Tensorflow）](https://qiita.com/tagucchan/items/3bf3654d782b8a4a2ef2)
ハードとしては、GPS受信機能とハイレゾリューション・オーディオコーデックを搭載する等々、私なんぞには語り尽くせない、こだわりのデバイスとなっています。

## 製品仕様
[製品仕様](https://developer.sony.com/ja/develop/spresense/specifications)
- MCUは、1つのGPS受信コア、1つのArm® Cortex®-M0+コア、6つのCortex-M4コア（FPU機能搭載）を搭載
- 各コアの間はクロスバススイッチで接続（どのコアにどの処理をさせるかを選択可能）
- GPS受信機能は米国のGPSとロシアのGLONASSに対応、今後、中国のBeiDouや欧州のGalileoにも対応予定

## 私が購入した理由
SPRESENSEが、AIを利用可能な省電力エッジデバイスだと、Maker Faire Kyoto 2019で知ったからです。
Sonyが開発したニューラルネットワークを直感的に設計できるツール[**Neural Network Console**](https://dl.sony.com/ja/)で学習したモデルを、動作させることができるようになった（とのお話でした）。

## 開発者用サイト
[Developer Tools - Sony Developer World](https://developer.sony.com/)を参照する必要があります。

## 開発環境の準備　IDE版
将来的な作業を考慮してIDE版の開発環境を、[Spresense SDK スタートガイド (IDE 版)](https://developer.sony.com/develop/spresense/docs/sdk_set_up_ide_ja.html)の通り導入します。
Virtual Box上にUbuntu Desktop 20.04.3 LTSを構築します。

### Ubuntu Desktop 20.04.3 LTSをダウンロード
[Ubuntuを入手する](https://jp.ubuntu.com/download)からUbuntu Desktop 20.04.3 LTSをダウンロードします
![WS20211124_000006.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/a2932f45-36ac-e785-7a5c-b3e74f83dc0a.jpeg)

### Oracle VM VirtualBoxのインストールと準備
[Oracle VM VirtualBox](https://www.virtualbox.org/)からダウンロードし、インストールします
![WS20211124_000008.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/8ae3d5a7-addd-fbb6-6657-ec1127cec975.jpeg)
Oracle VM VirtualBoxを起動し、仮想マシンを新規作成します
PCがインターネットに接続されていることを確認してください
![WS20211124_000000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/f21d4b0e-66f0-08bf-a533-590404a8d471.jpeg)
名前は何でも良いです
![WS20211124_000009.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/1aadf656-a0aa-7c9a-1eff-11d2c6c56ae7.jpeg)
メモリーサイズは4096M以上にしてください
![WS20211124_000002.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/6b2bfd68-e85b-4f6b-f545-3cd184687cf3.jpeg)
仮想ハードディスクを作成します
![WS20211124_000003.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/98d3f2fe-87d9-6515-5981-5a1299472eeb.jpeg)
ファイルタイプはVDIにします
![WS20211124_000004.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/367ac458-7225-deb5-0d41-8a6493b31499.jpeg)
物理ハードディスクは可変サイズにします
![WS20211124_000005.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/c088fa65-3b79-ea01-eb1a-05a45389bf3d.jpeg)
サイズは30GB以上にし、作成します
![WS20211124_000014.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/e574c229-a9ee-3473-9b92-fe0e6273e4f1.jpeg)

## 仮想マシンへUbuntuをインストール
### メディア設定と起動
新規作成した仮想マシンをクリック、設定ボタンを押します
![WS20211124_000015.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/ea2189d2-374c-e760-6d35-00eb8052746d.jpeg)
ストレージ > コントローラIDEの「空」> 属性の高額ドライブをIDEプライマリマスター　へ変更（IDEセカンダリマスターになっている場合）
DVDアイコンボタン > ディスクファイルを選択
![WS20211124_000022.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/cd0e9a2c-cbd2-4e53-b47e-ed5c8b7e293c.jpeg)
ダウンロード済のUbuntu Desktop 20.04.3 LTSファイル(拡張子.iso)を選択します
![WS20211124_000011.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/57056da3-c51b-653f-2dd9-8a0fac825c8b.jpeg)
OKボタンで閉じます
![WS20211124_000018.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/942822c5-4a9b-a169-58fc-e11fab0f2d21.jpeg)

### Ubuntuのインストール
★注意★普通に進めてしまうと画面の解像度が低く、インストールができません
起動Ubuntuのインストール画面が立ち上がりますので、Escボタンをすぐに押します

#### 解像度の変更を行うため 一度、Ubuntu インストールを中止させる
仮想マシンが正しいことを確認し、起動ボタンを押します
![WS20211124_000021.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/8fc2fe66-3e9a-228d-7a32-fd5f5c85c2df.jpeg)
以下の画面になったらEscボタンをすぐ押し、インストールを中断します
![WS20211124_000006.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/0a8ecc86-a3e8-7d20-c045-c2b598f31c50.jpeg)
上手く行くと、この画面になります
画面上のポップアップは説明を読んだ後、×で消して構いません
![WS20211124_000010.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/d36ae726-cea7-cde1-f36c-cf3d5b702a5d.jpeg)

#### settings アプリを起動し解像度を変更
左下のボタンからアプリ一覧を表示させます
![WS20211124_000010.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/6cba5f2f-8d4f-d94e-e26e-eb8d8d526b8c.jpeg)
検索欄にset と入力、settings アプリを起動します
![WS20211124_000011.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/c96f96b0-408c-b815-27c6-98f0e366065d.jpeg)
左側のメニューから Displays > Resolution を選択
Resolution を 1024 x 768(4:3) に変更し、右上の Apply ボタンを押します
![WS20211124_000012.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/9d332a9d-3ab5-2100-bbcb-36a1e1c08d66.jpeg)
表示に問題がなければ Keep Changes を押します
![WS20211124_000013.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/26de0aef-6a20-f8b8-be37-fe9462524710.jpeg)

#### Ubuntu インストール
ディスクトップのアイコンからインストールを再開します
![WS20211124_000014.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/aa838cbc-3e6b-86ef-6a57-771a84343701.jpeg)
左側のメニューから 日本語 を選択し、 続ける ボタンを押します
![WS20211124_000016.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/87f5040f-6d44-025f-472d-da73f6cea643.jpeg)
japanese を選択し、 続ける ボタンを押します
![WS20211124_000017.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/6bdf2670-da5e-270a-07e6-eb562827f0fe.jpeg)
通常のインストール、　Ubuntuのインストール・・・　をチェックし、続ける ボタンを押します
![WS20211124_000018.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/424813c9-386b-9067-dd02-4a6f2919fdbb.jpeg)
ディスクを削除してUbuntuをインストール　を選択し、インストール　ボタンを押します
![WS20211124_000019.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/7fcac824-24f8-8bbf-8fbc-b2d72f640d27.jpeg)
続ける　ボタンを押します
![WS20211124_000020.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/9b0dbc42-23fb-7b71-7d6b-d5c9723490fe.jpeg)
Tokyo を選び 続ける ボタンを押します
![WS20211124_000021.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/8d5ebd4a-ef24-801b-3617-916edff9fe5b.jpeg)
それぞれの項目を記載し、後で必要になるためメモします、 続ける ボタンを押します
![WS20211124_000022.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/37cde2b7-fc38-b88b-942e-f5f3ea9bad0f.jpeg)
インストールが開始されます
![WS20211124_000023.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/2ce1636c-a25d-2d36-362b-0eb58ec0e027.jpeg)
今すぐ再起動　ボタンを押します
![WS20211124_000024.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/b7bc03bd-b086-1861-1364-286fafb61e24.jpeg)
メディアを取り出せと表示され再起動が止まりますが Enter をそのまま押します
![WS20211124_000025.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/51684c2c-8c58-adc4-ef96-14c322abb61c.jpeg)
もし、駄目な場合は　仮想ドライブからディスクを除去 を試してください
![WS20211124_000026.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/173bcb4d-1509-5804-92f1-c8618d257bcf.jpeg)
起動後、アカウント名を左クリックすることで、パスワード入力欄が出てきます
![WS20211124_000000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/51443083-af21-c197-67ea-07efcdfbb080.jpeg)

###　Ubuntu のセットアップ
#### ディスプレイ設定の変更
インストール時と同じ手順で、ディスプレイ設定を変更します

#### 言語サポートのインストール
![WS20211124_000001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/3fc9279e-8139-aa72-e86c-1d8e427a0ed4.jpeg)
![WS20211124_000002.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/75e017d1-07d8-ce44-5010-bdf3cba35bae.jpeg)
ユーザーパスワードを入力し、認証　ボタンを押します(以降、同様に対応下さい)
![WS20211124_000003.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/056a12fb-c463-090f-a749-2a7459dd0d20.jpeg)
システム全体に適用　ボタンを押し、閉じる　ボタンを押します
![WS20211124_000004.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/5f3cc540-56a9-b1fa-67dc-bfb54a1b5370.jpeg)
不完全な言語サポート　のアップデート情報ウインドウを閉じてください

#### ソフトウェアの更新　を実行する
最新の状態に更新するため、今すぐインストールする　ボタンを押します
![WS20211124_000005.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/33730d40-b189-e9a5-b06d-9bbd32a7e4e4.jpeg)
状況は左端のメニューからこのアイコンを左クリックするとわかります
![WS20211124_000007.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/5deadaee-265a-a9a2-a926-36706ddfc519.jpeg)
時間がかかるので、終わるまでしばらく待ちます。
![WS20211124_000006.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/cfea3693-a51a-6238-61ba-7b6d760e379b.jpeg)
注意：snapdの更新処理が止まってしまったら、キャンセルまたは(×)ボタンで終了し、端末で以下のコマンドを入力します
![WS20211124_000008.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/c038d18f-88b1-0b15-905e-a72ebef99de6.jpeg)
![WS20211124_000009.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/e5e0a33a-7c82-2d57-2e42-65ce9c2eb183.jpeg)

手順記載についての説明：
以下の記載では、Ubuntu を起動 > 端末 アプリを起動 > 以下の入力コマンドの内容を入力します
＄は入力しなくてよいです
先頭に＄が無い行は入力後の応答・ログを参考のため記載している行です
この行は入力する必要はありません、また、個々の環境で出力される詳細は異なります

```
$ 入力コマンド
応答・ログ（参考情報）
```

入力するコマンド：

```
sudo fuser -vki /var/lib/dpkg/lock
sudo apt purge snapd
sudo dpkg --configure -a
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt install snapd
```

実行例：

```
$ sudo fuser -vki /var/lib/dpkg/lock
[sudo] tag のパスワード:
                     USER        PID ACCESS COMMAND
/var/lib/dpkg/lock:  root      10420 F.... dpkg
プロセス 10420 をkillしますか? (y/N) y
$ sudo apt purge snapd
[sudo] tag のパスワード:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージは「削除」されます:
  snapd*
アップグレード: 0 個、新規インストール: 0 個、削除: 1 個、保留: 3 個。
この操作後に 134 MB のディスク容量が解放されます。
続行しますか? [Y/n] Y
(データベースを読み込んでいます ... 現在 193806 個のファイルとディレクトリがインストールされています。)
snapd (2.51.1+20.04ubuntu2) を削除しています ...
＜省略＞
$ sudo dpkg --configure -a
$ sudo apt update
＜省略＞
$ sudo apt upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージはアップグレードされます:
  python3-software-properties software-properties-common
  software-properties-gtk
アップグレード: 3 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
101 kB のアーカイブを取得する必要があります。
この操作後に追加で 14.3 kB のディスク容量が消費されます。
続行しますか? [Y/n] Y
＜省略＞
$ sudo apt dist-upgrade
＜省略＞
$ sudo apt install snapd
＜省略＞
```

#### Guest Additions のインストール （ホストOS用オプション機能）
Ubuntu起動画面 > デバイス > Guest Additions CDイメージの挿入...
![WS20211124_000033.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/b33c078e-eaa7-4c32-6339-7151cfd1d022.jpeg)
実行 ( １回 実行 ボタンを押したら、次に立ち上がってきた場合はキャンセルで良い )
![WS20211124_000034.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/cbe34e77-00f2-01f7-74fd-0957f94464fd.jpeg)
![WS20211124_000035.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/54cdf4d5-37b7-bd5f-21aa-3b8da70f6c16.jpeg)
実行　ボタンを押すと 端末 アプリが立ち上がりインストールが開始します
Press Return ・・・が表示されたら、return キーを押して端末を閉じます
![WS20211124_000036.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/ad1ac73c-7e12-54d8-da87-e0b170e454d6.jpeg)

#### Ubuntuを電源オフ、メディアを再起動
右上の電池マークを左クリック > 電源オフ します
Ubuntuが停止したら、取り外さないとUbuntuの起動ができなくなるため、設定 から  Guest Additions CDイメージ を取り外します
![WS20211125_000002.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/9fcdb96a-0232-726b-51bb-b11726638c6d.jpeg)
その後、Ubuntuの起動します。
ウインドウの拡大縮小などが出来るようになっているはずです

#### USBの設定
同様にシステムを停止します

ホストOSがWindowsの場合
Spresense ボードをUSBシリアルで接続するために、ドライバをインストール
Windows 7/8/8.1の場合　[CP210x USB to serial driver for Windows 7/8/8.1](https://www.silabs.com/documents/public/software/CP210x_Windows_Drivers.zip)
Windows 10の場合[CP210x USB to serial driver (v10.1.3) for Windows 10](https://github.com/sonydevworld/spresense-hw-design-files/raw/master/misc/usb-to-uart-bridge-vcp-drivers/CP210x_Universal_Windows_Driver-v10.1.3.zip)
Windows 10の例：
ダウンロードファイルを解凍し、フォルダCP210x_Universal_Windows_Driverを開く
64bitの場合は　CP210xVCPInstaller_x64.exe　を起動
32bitの場合は　CP210xVCPInstaller_x86.exe　を起動
![WS20211124_000038.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/2a93f3ce-501b-c5ba-ef63-f96617f54717.jpeg)

SpresenseをUSBケーブルでホストPC(Windows)に接続します
デバイスマネージャーで Slicon Labs CP210・・・が認識されます
![WS20211124_000039.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/2200eb26-7a40-03b4-fe2e-b3ebce3bebe4.jpeg)
VirtualBoxの仮想OS > 設定 > USB > 右端上から２つ目(USBと+のアイコン) を左クリック
![WS20211125_000000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/42ebf0c8-a59f-0ed3-fd04-14a1abd2bd6b.jpeg)
Slicon Labs CP210・・・を左クリック > USBデバイスフィルタに追加　される
OK　ボタンで画面を閉じます
![WS20211125_000001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/c3104a09-cde3-8394-fe1b-71940989e2b1.jpeg)

### 開発環境 のセットアップ
#### 開発用アプリケーションのインストール
makeなど開発に必要なものが無いため、インストールします

```
$ sudo apt-get install build-essential
```

#### シリアル通信の設定
ログイン中のユーザーを dialout グループに追加し、再起動します

```
$ sudo usermod -a -G dialout ログイン中のユーザー名
$ sudo shutdown -r now
```

例：

```
$ sudo usermod -a -G dialout tag
```

起動後、ログインし、Ubuntu 上でのシリアルポート名を確認
/dev/に出力されたttyUSB??を追加したものがシリアルポート名です
以下の例では　シリアルポート名は /dev/ttyUSB0　になります

```
$ dmesg | grep "cp21.*attached"
[    7.306676] usb 1-2: cp210x converter now attached to ttyUSB0
```

#### Spresense 開発環境に必要なアプリケーションのインストール
必要なツールを以下のコマンドでダウンロード、インストールします
しばらく時間がかかります

```
$ mkdir -p ~/Dev/Spresense
$ cd ~/Dev/Spresense
$ wget https://raw.githubusercontent.com/sonydevworld/spresense/master/install-tools.sh
$ bash install-tools.sh
```

注意：Proxy設定が必要なネットワーク／ネットワークエラーになる場合、以下のコマンド投入後にwget を再実行すること

```
export http_proxy=http://プロキシーサーバー名／IPアドレス:ポート番号
export https_proxy=http://プロキシーサーバー名／IPアドレス:ポート番号
```

ツールを利用するための設定を反映

```
$ source ~/spresenseenv/setup
$ cp ~/.bashrc ~/.bashrc.org
$ echo "source $HOME/spresenseenv/setup" >> ~/.bashrc
```

Spresense SDK リポジトリからソースコードをダウンロードし、開発環境をビルド、インストールします

```
$ cd ~/Dev/Spresense
$ git clone --recursive https://github.com/sonydevworld/spresense.git
```

### VSCode のインストール
VSCode は様々な環境で動作する開発者向けのツールです
編集、デバッグ、デプロイなどが、１つのアプリケーションで実施でき便利です

#### VSCodeのインストーラをダウンロード
注意) VirtualBoxのUbuntu にログインして作業します 
画面左端からFireFox（Webブラウザ）アイコンをダブルクリックし起動します
![WS20211125_000000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/f3ba0555-2bd3-62b9-95cb-62a441f4ba76.jpeg)
[VSCodeウエブサイトのURL](https://code.visualstudio.com/)　https://code.visualstudio.com/　を入力しアクセス
![WS20211125_000001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/b8ea1809-0897-5ebe-ac33-25b1f95cd8aa.jpeg)
Ubuntuは .deb の方を左クリック
![WS20211125_000002.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/94ed8490-59c6-aab4-2f8b-7a2df0ca10a2.jpeg)
練習のために、今回はファイルを保存(ダウンロード)を選び OK ボタンを押します
![WS20211125_000004.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/2f2d3bc2-a48f-6dc3-5228-defbfbd45f70.jpeg)
ダウンロードが完了後、完了しました表示が出ます
![WS20211125_000005.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/13b59deb-3426-8be3-2ff1-a76a19991c49.jpeg)
ファイルを確認するため 端末 アプリを起動　(左下 > 端末 を検索)
![WS20211125_000006.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/328f667d-34a7-1c4a-230b-44dcc042c729.jpeg)
ダウンロードしたファイルを確認
英語と日本語の切替は　control + space(controlとspaceを同時に押す)

```
$ cd ~/ダウンロード
tag@IoT-Ubuntu:~/ダウンロード$ ls
code_1.62.3-1637137107_amd64.deb
```

ダウンロードしたファイルから VSCode をインストール

```
$ sudo apt install ./code_1.62.3-1637137107_amd64.deb
```

#### VSCode の日本語化
Japanese Language Pack をインストールして表示内容やメニュー等を日本語にします

インターネットに接続した状態で VSCode を起動します　画面左下　> VSCode を検索
![WS20211125_000008.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/7bb83fe0-638b-906d-fe77-5bdb745e154b.jpeg)
起動後、しばらく待つと右下にJapanese Language Pack をインストールして再起動　が出ます
表示されない、消えた　場合は VSCode を × で終了後、再度起動してください
![WS20211125_000010.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/7928ed2b-8593-7a76-567c-c41ad15854b5.jpeg)
自動的に VSCode が再起動され、表示が日本語に変わります
![WS20211125_000013.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/98c6b3e2-264a-6e55-aae3-6a2bd25df1e2.jpeg)

#### VSCode に Spresense 拡張機能をインストール
Spresense 開発を VSCode で行えるようにSpresense 拡張機能をインストールします

VSCode 左端の 拡張機能 アイコンを押す
![WS20211125_000014.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/5502aa60-b45b-5166-ff6e-4851d6b194af.jpeg)
spresense を検索し、インストール
![WS20211125_000015.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/f691e4b5-bce5-3094-94b1-b98c99ec2836.jpeg)
インストールが開始されます
![WS20211125_000016.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/0f037948-48ea-744a-a975-2edb2590f9e0.jpeg)

#### ワークスペースの作成
Spresense 拡張機能の Spresense: Workspace Setup Wizard を使って開発用のディレクトリを作成します
今回作成するワークスペースは以下の構成になります
・Spresense SDK パス
　~/Dev/Spresense/spresense
・プロジェクトフォルダーパス（新規に作成します）
　~/Dev/Spresense/myproject
・ワークスペースファイル（ワークスペース情報の保存先、後ほど作成）
　~/Dev/Spresense/myproject.code-workspace

F1キーを押し、検索画面へSpresense Workspaceと入力
Spresense: Workspace Setup Wizardを選択し、起動します
![WS20211125_000017.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/5e23081f-077e-8fed-face-4930460d9ea9.jpeg)
それぞれの　参照　ボタンを押し、ディレクトリを選択していきます
![WS20211125_000020.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/189904fc-5b34-0473-c3e4-02f478f4dd91.jpeg)
Spresense SDK のデイレクトリを開き、右上の OK ボタンを押す
![WS20211125_000021.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/915dbd42-70ae-eae8-6833-86d2652c5c69.jpeg)
プロジェクトフォルダーパス（新規に作成します）
~/Dev/Spresense に、myproject ディレクトリを新規作成
![WS20211125_000029.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/242fe901-6995-f1aa-2b19-ce25f75b28fa.jpeg)
プロジェクトフォルダーパス（新規に作成します）を開いた状態になるので、右上の OK ボタンを押す
![WS20211125_000030.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/21d84d88-3185-d2da-2647-9b8a9147943c.jpeg)
作成 ボタンを押します
![WS20211125_000031.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/ba5befcf-7867-32ad-dadf-78f03ac485b2.jpeg)
信頼しますか　と聞かれるので　はい　ボタンを押します
![WS20211125_000026.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/7e81b2be-1a81-6e40-6ffc-cdc72adcd019.jpeg)
作成したワークスペースをメニューの ファイル > 名前を付けてワークスペースを保存 で、保存しておきます
![WS20211125_000032.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/068d94cc-f6bf-8e88-6e20-6a47912e74e4.jpeg)
~/Dev/Spresense に、myproject.code-workspace で保存
![WS20211125_000034.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/9b9829cb-5261-f85d-c0b9-28c9b7983e0d.jpeg)

## Hello Spresense!!! の表示
### アプリケーションコマンドの追加
・追加対象プロジェクトフォルダー
　~/Dev/Spresense/myproject
・アプリケーションコマンド名
 myapps
F1キーを押し、検索画面へSpresense projectと入力
Spresense: Add to project holderを選択し、起動します
![WS20211125_000035.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/bccec679-1a69-2102-6184-7839ad474f79.jpeg)
次へ　を押します (複数出る場合は、追加したい先を選択すること)
![WS20211125_000036.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/66f2a37a-daec-e467-1f1f-d2b4ff1b5687.jpeg)
アプリケーションコマンド　を選択し、次へ ボタンを押します
![WS20211125_000037.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/8fdd9ede-21a4-4f81-0a4d-38bc630dbefc.jpeg)
アプリケーションコマンド名 myapps を入力し、作成 ボタンを押します
![WS20211125_000038.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/ac49b411-c547-c185-5446-fc751e9b43ce.jpeg)
myapps_main.cが開きます
![WS20211125_000039.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/99e92fcd-4a0e-9627-547e-6d48471360a3.jpeg)

### プログラムを修正
myapps_main.c　を全て削除し、以下のプログラムを記載します

```C++:myapps_main.c
#include <sdk/config.h>
#include <stdio.h>

int myapps_main(int argc, char *argv[])
{
  printf("Hello Spresense!!!\n"); 
  return 0;
}
```

![WS20211125_000040.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/4c663e69-8f66-2adf-aebc-57e629620702.jpeg)
ファイル > 保存　もしくは　ctrol + s で変更を保存します

### ビルドのコンフィグレーション
ビルド( プログラムをコンパイルしSpresenseが実行できるデータにすること )を行うための事前設定をします

画面右下に　Cにお勧めの拡張機能をインストールしますか？　が出ている場合は、インストールしてください
![WS20211125_000001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/e12836d6-6459-4029-1fa6-357016b69041.jpeg)
C/C++の拡張パックがインストールされます
![WS20211125_000002.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/db773777-f168-ed0b-2a4d-4639ea7c5d3b.jpeg)

F1キーを押し、検索画面へ spresense sdk と入力
Spresense: SDK Config を選択し、起動します
![WS20211125_000041.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/f9a9bbea-b1c0-041e-989f-c51d1185d627.jpeg)
myprojectを選びます
![WS20211125_000006.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/e16da50a-561a-3604-93f4-253f399ec4c8.jpeg)
コンフィグレーションメニューの起動に少し時間がかかります
![WS20211125_000007.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/0c63eea9-1d5f-4f11-a904-9476b24d4742.jpeg)
コンフィグレーションメニューが表示されたら 新規追加 を左クリック
![WS20211125_000008.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/57f818ba-76f5-ff4a-bcba-6649b4dbfb02.jpeg)
何も選択せずに OK を左クリック
![WS20211125_000009.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/95cdb3dd-e1e0-e339-55d3-2eb01159739d.jpeg)

### プロジェクトのビルド
注意：修正したプログラム+Spresenseで動作するためのプログラムがビルド対象になるため、環境によっては数十分かかります
VSCode左端、一番上のアイコンを左クリックしエクスプローラーを開く
myproject (ビルドしたいプロジェクトフォルダー)の上で右クリック、プロジェクトメニューから Spresense: アプリケーションのビルド を選択
![WS20211125_000012.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/c235df6a-4998-faea-5cc7-6e2a9d83c22d.jpeg)
VSCode右下に ビルドしています が表示されます
![WS20211125_000013.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/6ee45aa3-d55d-d8ef-2606-1800b028a262.jpeg)
こちらの画面は　x　で閉じても構いません
![WS20211125_000014.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/d28f7e3c-8dba-a558-e7f6-d781db973f44.jpeg)
ビルドが終了するまで ターミナルはタスクで再利用されます、閉じるには任意のキーを押して下さい。　が表示されるまで 待ちます
![WS20211125_000015.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/8a819164-9575-84a6-d867-373a6aafc85e.jpeg)
VSCodeのウインドウを左クリックし、任意のキー(Enterなど)を押し、ターミナルを閉じます
エクスプローラーに out配下のファイルが作られたことを確認します
![WS20211125_000016.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/04fa199a-747a-a1a6-a2ad-9f9f2f768bec.jpeg)

### Spresenseボードへの書き込みと動作確認
SpresenseをUSBケーブルでPC接に接続します
Ubuntu がシリアルポートを認識していることを確認

```
$ dmesg | grep "cp21.*attached"
[    7.306676] usb 1-2: cp210x converter now attached to ttyUSB0
```

F1キーを押し、検索画面へ spresense serial port と入力
Spresense: シリアルポートの選択 を選択し、起動します
![WS20211125_000017.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/e2fb37e4-e98e-71e2-6bc8-1f6f0862066b.jpeg)
シリアルポートを選択します、Ubuntuが認識しているものと同じであることを確認
![WS20211125_000018.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/a70c08f8-14ad-e9d2-81c0-3cd4f002d86c.jpeg)

### Spresenseへのブートローダの書き込み
F1キーを押し、検索画面へ spresense bootloader と入力
Spresense: ブートローダの書き込み を選択し、起動します
![WS20211125_000019.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/7ee2ea65-8ab0-777d-f14a-8b437581c133.jpeg)
ブートローダのインストールには別途ダウンロード・・・ で OK ボタンを押します
![WS20211125_000020.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/02a8f2b0-1010-9683-c7ec-73d58f083a85.jpeg)
Webブラウザが起動され表示されたページからfirmwareをダウンロードします
![WS20211125_000021.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/bb35541c-3604-77bd-9ff8-930ce3dff884.jpeg)
内容を確認し Accept ボタンを押します
![WS20211125_000022.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/55dfbefb-40e6-d897-eae6-3f32d667c6bf.jpeg)
ダウンロード後に表示される画面で ファイルを保存する を選択し OK ボタンを押します
(~/ダウンロードに保存されます )
![WS20211125_000025.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/bf31f58d-4101-422c-4bbe-bb4b6865f910.jpeg)
画面左端のアイコンからVSCodeのウインドウに戻り、画面右下の ブートローダーのインストールを・・・の OK ボタンを押します
![WS20211125_000026.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/72163f7f-9deb-edf4-013c-8b3baf2a6018.jpeg)
~/ダウンロードにダウンロードしたファイルを選択し、画面右上の 開く を左クリック
![WS20211125_000028.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/c3dd1b11-fb68-90b8-9603-80703a485b20.jpeg)
ブートローダがSpresenseにインストールされます
終了したらターミナル画面からメッセージが消えます
![WS20211125_000030.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/e2b8da61-ff6e-e930-1a9c-cca407b61c3f.jpeg)

### ビルドバイナリの書き込み
VSCode左端、一番上のアイコンを左クリックしエクスプローラーを開く
myproject (ビルドしたいプロジェクトフォルダー)の上で右クリック、プロジェクトメニューから Spresense: ビルドと書き込み を選択
![WS20211125_000031.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/e5130950-2a91-f2b7-da76-ae10e492ca9e.jpeg)
右下のターミナルにビルドと書き込みのログが出力されます
![WS20211125_000032.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/77dda6fa-5a5a-9a60-a1c6-b5c07c42a963.jpeg)
Spersenseへ書込み(インストール )中
![WS20211125_000000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/6e58367d-fa87-ca05-c7da-1bce9c5514cd.jpeg)
終了したら、シリアルターミナルが自動的に起動されます
![WS20211125_000001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/3da0b821-3a13-a0cd-0224-2c52da90be86.jpeg)
シリアルターミナルで myapps を入力しエンターキーを押すと
Hello Spresense!!!　と表示されます
![WS20211125_000003.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273559/8e334bac-17cd-4109-f801-2a5d4a8b6b67.jpeg)

## 参考
[Developer Tools - Sony Developer World](https://developer.sony.com/)
[Spresense SDK スタートガイド (IDE 版)](https://developer.sony.com/develop/spresense/docs/sdk_set_up_ide_ja.html#_spresense_vscode_ide_%E3%81%AE%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97)