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:
Raspberry Pi Imager のインストール
Raspberry Pi Imager というツールを使ってラズパイ OS を書き込むことができます。こちらよりダウンロード+インストールします。私は Windows ユーザなので "Download for Windows" をセレクト。
Raspberry Pi OS – Raspberry Pi
ラズパイ OS install
ラズパイの SD card をパソコンの SD card slot に挿入します。我が家にある Surface の場合、スタンドをあげて左下にスロットがありました。
スタートメニューから Raspberry Pi Imager を起動します。OS とストレージをそれぞれ以下のように設定します。
右下にある設定アイコンを開き必要な情報を入力します。
- ホスト名:SSH 接続する際に必要になります。
- SSH 認証の設定:「公開鍵認証」を選択し、先ほど生成した id_rsa.pub の中身をコピーして、"ユーザー pi のための authorized_keys "の欄にペーストします。
- WiFi の SSID とパスワードを入力します。
「保存」し、「書き込む」ボタンで書き込みます。書き込みが完了したら、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
たとえば、1番のピンには常に3.3Vの電圧がかかっており、6番のピンはグラウンドです。1番のピンと6番のピンに 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
チカチカしてくれました💡