【個人的備忘録】ラズパイをVSCodeでリモートデバッグしてみた

# 記事の背景

　今までラズパイにVSCodeをインストールして使っていた．しかし，あまりにももっさりするため，PC上のVSCodeからSSHでラズパイに接続してデバッグすることにした．
　ただし，ここでの方法はラズパイ3Bにて成功したことであり，その他のラズパイで動作するとは限らない．**またラズパイZeroはCPUのアーキテクチャ的に非対応**らしいので，ご理解いただきたい．



# 目標

ラズパイ起動→PCのVSCodeでラズパイに接続→リモート開発

ができるまで．



# 環境

- メインPC

  - Windows10
  - **VSCode** **Insiders**（通常版は非対応ゆえ）

- ラズパイ

  - Raspberry Pi 3B

  - Raspbian Buster
  - Python3.7



# 手順

## ラズパイ側

以下，モニタ・マウス・キーボードを使って設定する．

#### 1. ラズパイにRaspbian Buster をインストールしてセットアップする

色々な方が紹介されていると思うので割愛．

#### 2. ラズパイをPCと同じネットワークに接続する

Wi-Fi接続の場合でいく．

#### 3. ラズパイのIPアドレスを固定する

初期設定では動的IPなので静的IPにする．

以下のコマンドでdhcpcd.confを編集．

```shell
sudo nano /etc/dhcpcd.conf
```

末尾に以下のように記述する．
(your_ip_address)には設定したい固定IPを書く．ほかの機器に割り当てられていないIPアドレスを推奨．

```
interface wlan0
static ip_address=(your_ip_address)/24
```

リブートした後，タスクバーを見てしっかりと変更が反映されているか確認．
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483686/d0109475-36dd-bf52-300b-aeb0b982f7a3.png)




#### 4. SSHの設定を有効にする

以下のコマンドを実行

```shell
sudo raspi-config
```

5 Interfacing Optionsを選択
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483686/46c271bb-ecb7-773f-22cc-7eb4cad147a4.png)


p2 SSHを選択し，はいを選択
![４.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483686/1f486ff3-d38f-e023-2d37-22c8647c50ff.png)


The SSH server is enabled!　的な表示が出たらターミナルを閉じてよい．

念のため，Rebootする．

```shell
sudo reboot
```



##　PC側

#### 1. VSCode Insiders をインストールする

以下のリンクに移動し，Download for Windows をクリック．

https://code.visualstudio.com/insiders/

ダウンロードされたファイルを開いて，インストーラに従ってインストールする．

#### 2. VSCodeを日本語化する

この設定はお好みで

以下の手順で日本語化する．

左側のExtensions→検索ボックスにjapaneseと入力→Japanese Language Package選択→Install（画像はインストール済みの画面ゆえUninstallとなっている．）

再起動後，日本語になっている．
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483686/f9bc4b86-8bfc-8279-c19b-6412b03a4f1b.png)
#### 3. Remote-SSHプラグインをインストール

以下の手順でインストールする．
![図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483686/6856bc8d-af9a-55f7-f14d-f70757e3e517.png)

インストール後，再起動
#### 4. config ファイル編集

すると，右のタブに図のようなマークが追加されているので，クリック．

SSH TARGETSが表示されるので，歯車をクリック
![図4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483686/5d0e421a-b8ea-b901-c981-d170a905e994.png)

上のconfigファイルを開く
![図5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483686/1fd23d39-ec1a-3261-046f-953c02167b11.png)

以下のように情報を入力し，保存する．

Host：自由
HostName：さっき固定したIPアドレス
User：ラズパイのユーザID
![図7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483686/16a73f2b-2c9c-4cf7-6d00-364761fb5fd2.png)



#### 5. 接続

さっき設定した接続情報が追加されているので，図のアイコンをクリックする．
![図8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483686/2b068b87-1fba-f6a8-a7eb-b09193eaeb5b.png)

すると，新しいウィンドウが出てくるので，フォームにラズパイのログインパスワードを入力する．

**何度か尋ねられることがあるので，その都度パスワードを入力する．**
また，バックエンドでaptやwgetが動いているようなので，**Proxy環境で設定している人はプロキシ設定を見直すこと．**
![図9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483686/b40a081c-1a67-9b73-a81e-18427777bd18.png)



成功すると，下図のような画面が出る．

フォルダーを開くでラズパイのフォルダにアクセスできる．
![図11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483686/710c1858-b918-3a5e-8386-23a173787f24.png)



以下はLチカのコードを書いたところ．
![図13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483686/c66b9213-efee-2225-bbf7-9a909753bbcb.png)


実行もしっかりできた．

以上．