Geekになりたいママエンジニアのブログ

子育てを楽しみつつ空き時間に自己啓発をしているログです。投稿する内容はすべて個人の意見であり、所属する組織とは関係がありません。

Raspberry PI OSセットアップとLチカ

ラスパイを使って何か作ってみたい。と思いつつ何年もが経ってしまいましたが、ついに少し時間が取れたのでメモを残します。使用したのは Raspberry Pi Zero W V1.1 です。

OS のセットアップ

ラズパイをモニターに接続するケーブルがなかったので、こちら【ラズパイ】モニター接続なしでセットアップする方法 | メタエレ実験室を参考にして、モニター接続なしでセットアップ成功しました。

SSH 鍵の生成

今回モニターなしでセットアップするため、SSH の接続が必要です。そのために必要な鍵を生成します。

Microsoft Store より、Ubuntu on Windows をインストールして、その上で作業しました。
apps.microsoft.com

スタートメニューから "Ubuntu on Windows" を開き、以下のコマンドで SSH 鍵を生成します。

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/xxx/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

公開鍵 id_rsa.pub と秘密鍵 id_rsa が指定した場所に生成されます。

Raspberry Pi Imager のインストール

Raspberry Pi Imager というツールを使ってラズパイ OS を書き込むことができます。こちらよりダウンロード+インストールします。私は Windows ユーザなので "Download for Windows" をセレクト。
Raspberry Pi OS – Raspberry Pi 

ラズパイ OS install

ラズパイの SD card をパソコンの SD card slot に挿入します。我が家にある Surface の場合、スタンドをあげて左下にスロットがありました。

SD card slot
SD card slot

スタートメニューから Raspberry Pi Imager を起動します。OS とストレージをそれぞれ以下のように設定します。

Raspberry Pi Imager
Raspberry Pi Imager

右下にある設定アイコンを開き必要な情報を入力します。

  • ホスト名:SSH 接続する際に必要になります。
  • SSH 認証の設定:「公開鍵認証」を選択し、先ほど生成した id_rsa.pub の中身をコピーして、"ユーザー pi のための authorized_keys "の欄にペーストします。
  • WiFiSSID とパスワードを入力します。
OS flash settings
OS flash settings

「保存」し、「書き込む」ボタンで書き込みます。書き込みが完了したら、SD card を取り出し、ラズパイに挿入します。

SSH 接続

スタートメニューから "Ubuntu on Windows" を開き、以下のコマンドで接続します。

$ ssh pi@raspberrypi.local
Linux raspberrypi 5.15.61+ #1579 Fri Aug 26 11:08:59 BST 2022 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Jan  4 15:17:40 2023

これでセットアップが完了です😆バイスの起動にかなり時間がかかり、ssh コマンドがつながるようになるまでに5分程度かかりました(Raspberry Pi Zero W V1.1の場合)。

Lチカにトライ!

Lチカとは LED をチカチカさせること、ソフトウェアの世界での「Hello world!」のようなもののようです。

GPIO ピンを理解する

GPIO (general-purpose input/output) ピンについては、以下の公式ドキュメントに分かりやすい説明があります。40本のピンそれぞれに役割が割り当てられています。
Raspberry Pi Documentation - Raspberry Pi OS

GPIO pins from www.raspberrypi.com
GPIO pins from Raspberry Pi Documentation - Raspberry Pi OS, © Raspberry Pi Ltd
GPIO pins from www.raspberrypi.com
GPIO pins from Raspberry Pi Documentation - Raspberry Pi OS, © Raspberry Pi Ltd

たとえば、1番のピンには常に3.3Vの電圧がかかっており、6番のピンはグラウンドです。1番のピンと6番のピンに LED をつなぐと、LED が点灯します。

LED点灯
LED点灯

回路図はこんな感じでしょうか。

回路図
回路図

プログラムで制御する

GPIO ピンは、プログラムから ON/OFF の制御ができます。例えば、GPIO2 のピン(3番ピン)を一秒おきに ON/OFF して LED を点滅させるプログラムはこんな感じで書けます。(こちらを参考にさせていただきました:ラズパイでLチカをしてみる(入門編) - Qiita

from gpiozero import LED
from time import sleep

led = LED(2) # GPIO 2 (3番ピン)

while True:
    led.on()
    sleep(1)
    led.off()
    sleep(1)

scpコマンドでファイルをラズパイにコピーします。

$ scp test.py pi@raspberrypi.local:src/test.py

3番ピンと6番ピンに差し替えて、ラズパイ上で python プログラムを実行します。

$ ssh pi@raspberrypi.local
$ python src/test.py

チカチカしてくれました💡

LED点滅成功!
LED点滅成功!