はじめてのRaspberry Pi Zero 2W~ VSCodeと繋いでシャットダウンまで ~

背景


AWSの認定ソリューションアーキテクト – アソシエイトの資格を取得した私がホクホクしていたところにテックリードから神の声が。

???「ハードいじったことある??」

大学以来触っておらずオシロスコープやらオームの法則やらのワードがぐるぐる回る程度だったので、、、ゴニョゴニョ、、、

やってみましょう。

目的


いつもソフトを作っているからハードもいじってみよう

要件


チュートリアル

  • RaspberryPi と VSCodeを繋げる
  • LEDをチカチカさせる(Lチカする)
  • シャットダウン、起動のボタンをつける

設計


なし。とりあえずやってみようや。

使用したもの


  • Raspberry Pi Zero 2 W
  • microSDカード 64GB
    • スピードクラスはUHS-1であれば十分です。
  • ブレッドボード
  • ジャンパワイヤ
  • 抵抗(10kΩ)
  • LED
  • ボタン(タクトスイッチ)

環境構築


筆者はWindows環境からRaspberry Piに接続します。

Raspberry Pi OSのセットアップ

Raspberry Pi OSのセットアップはRaspberry Pi公式のソフトウェアを使って作成しました。

このとき、Wi-fiの接続設定とSSHの有効化も一緒に行います。

VSCodeでSSH接続する

筆者はTera TermからつないでVimやnanoを使うよりVSCodeでできた方がやりたいときにササッとできモチベーションを保てるのでそうしました。

VSCodeのRemote – SSHというプラグインをインストールし、

/Users/{ユーザー名}/.ssh/configに下記を記載します。

Host [接続に用いる名前]
  HostName raspberrypi.local
  User [ユーザー名]

今回はベーシック認証で接続をおこなったので秘密キーのパスは記載なしです。

電子回路の作成

Lチカ

まずはLチカの電子回路です。

初めてということでかなりシンプルに作成しました。

ラズパイとブレッドボードをつなぐところで緑色になっているところはGroundで、もうひとつ繋いでいるところはGPIO24というところです。

GPIO24のほうから電流は流れるので、LEDライトの長い方をつなぎます。

Pythonのコードは複数サイトを参考にして以下としました。

#RPi.GPIOモジュールをインポート
import RPi.GPIO as GPIO
#timeモジュールをインポート
import time

#PINの番号を設定
pin_no = 24

#BCM(GPIO番号)で指定する設定
GPIO.setmode(GPIO.BCM)

#GPIO24を出力モード設定
GPIO.setup(pin_no, GPIO.OUT)

while True:
  #GPIO24の出力を1にして、LED点灯
  GPIO.output(pin_no, True)

  #0.5秒待つ
  time.sleep(0.5)

  #GPIO24の出力をFalseにして、LED消灯
  GPIO.output(pin_no, False)

  #0.5秒待つ
  time.sleep(0.5)

pin_noでPINの位置を指定できるのでPINはどこに繋いでも大丈夫です。

シャットダウン、起動のボタンをつける

最後に最重要ポイントのシャットダウン、起動ボタンです。

これを付けないとSDカードが壊れちゃう可能性があるので電源のON、OFFは制御したいところ。

今回はGPIO3に繋いだボタンの長押し1000msでシャットダウンする設定をします。

ターミナルで下記コマンドを行います。

sudo vi /boot/config.txt

下記に書き換えます。

dtoverlay=gpio-shutdown,gpio_pin=3,active_low=1,debounce=1000

これでボタンを押すことでシャットダウン、起動を行うことができるようになります。

まとめ(感想)


環境構築はここまで!

とりあえずRaspberry Piのパイの部分を食べられるようになってきたのではないか…?

ここからは自由工作になるのでRust(PCゲーム)やマインクラフトでやったような回路を実際に組んだり、Dr.Stoneの千空のように工作していけたらいいネ。