見出し画像

Raspberry Pi(ラズパイ)の始め方/環境構築


1.概要

 Raspberry Piラズベリーパイ(通称ラズパイ)はマイコン小さいPCみたいなものの一種であり、IoT用デバイス等に利用することができます。

1-1.ラズパイ機種一覧

 Rasberry Piは複数の機種がありサイズ、価格、性能、用途などに応じていろいろなものを選択できます。ラズパイ全機種まとめ(@SteveKasuya2)を作成されて方の資料を拝借しました。
 本記事ではRasberry Pi4を使用しました。

https://x.com/SteveKasuya2/status/1726057948760478087?s=20

 Raspberry Pi5も同様に環境構築できますが、別記事に詳細記載しておりますのでご参考までに。

1-2.IoTデバイス一覧

 IoTデバイスとしては下記のようなものがあります(Wikipedia参照)。

【参考:代替品について】
 低価格が売りだったラズパイも高機能品(Raspberry Pi 4 8GB)だと、そこそこ価格が高くなっているため、用途に応じてはミニPCの方が便利な場合もありますのでご参考までに。

1-3.ラズパイ4の仕様確認

 ラズパイ4の詳細仕様はRaspberry Pi 財団HPに記載されています。

 仕様は下記の通りです。詳細な仕様を確認したい方は”Raspberry Pi 4 Tech Specs”をご確認ください。

2.製品の購入

 まず初めにRaspberry Piに必要な部材を購入していきます。

2-1.★購入時の注意事項:購入先の選定★

 購入品のリンクは私が購入したAmazonリンクから引っ張りました。ただし2022年現在は①半導体価格高騰、②Amazonに転売屋が乱立しているため、各自で価格チェック(特にラズパイ本体)お願いします。
 2022年8月時点の日本の一次代理店はKSYとスイッチサイエンスの2社のためここから購入すれば間違いはないです(秋月電子も多分大丈夫です)。

2-2.購入に関するまとめ

 各購入品に関するまとめを記載しました。個別は次項で紹介します。

【留意事項】
●ラズパイ3と4は電源やディスプレイのケーブルなどの仕様が異なります。
●用途によって別途購入すべきものが変わります。
●使用するPCによっても購入不要な物もあります(例:SDカードやマイクロSDカード対応PCなど)

【購入必須品】
●Raspberry Pi 4
●Micro SDカード(推奨は16Gバイト以上):OS用
●USB-C電源アダプタ:電源用(3A以上必要)

【必要品:PC用ですでに所持している場合は不要】
●SDカードリーダー:PCでのOS書き込み用(※PCで直接Micro SDカードを読み込める場合は不要)
●HDMIケーブル(HDMI-micro):ラズパイ4とディスプレイ接続用
●Ethernetケーブル:ネット接続用(※Wi-fi使用の場合は不要)
●ディスプレイ、(有線)キーボード、(有線)マウス:ラズパイ操作用

【オプション:用途によって購入】
●冷却ファン(友達曰く「なくてもいいと思う」らしい)
●ラズベリーパイカメラ:画像処理や監視カメラ作成などしたい場合
●HDMIキャプチャーボード:OBS Studioなどのソフトを使用してラズパイの画面を自分のPCに移したい場合(ディスプレイで操作するなら不要)

2-3.購入必須品

 こちらは購入必須品です(USB-C電源アダプタは所持品があれば不要)。私は冷却ファン購入時のUSB-C電源(出力:5.1V-3A、入力:AC100-240V )を使用しているためリンクはつけていません。

2-4.必要品(所持品があれば不要)

 私はすでにディスプレイ、キーボード、マウスは持っておりWi-fi使用のため下記だけ購入しました。私のモニターはHDMIでラズパイはmicro HDMIのため本ケーブルを選定しています。

【参考1:カードリーダーの必要性】
 最近買ったノートPCの「dell inspiron xps 13」はMicro SDを直接読み込めるためSDカードリーダーも今は不要です。 

【参考2:キーボードとマウスの種類】
 注意点として、初心者の方は安物でいいので「有線キーボード有線マウス」があると初期設定時に便利です。

2-5.オプション(用途によって選ぶ)

 ラズパイ4は性能向上のため発熱が大きくなったらしいので私は冷却ファンを買いました(無くてもいいらしいけど有れば間違いないので)。

 私は用途として防犯カメラを自作したかったためカメラを購入しました。他のIoTデバイスを作りたい人は用途(センサー⦅温度、CO2⦆やモーターなど)に合わせてデバイスを購入します。

 HDMIキャプチャーボードは、PC->HDMIキャプチャーボード->HDMIケーブル->ラズパイ でつなぎ、OBS Studioというソフトを使用することでラズパイの画面を有線でつなぐことが出来ます。
 無線環境が安定しているのであれば不要だと思います。

3.OSのインストール

 一般的なPCは最初からOS(Windows11/Macなど)が入っておりますが、ラズパイの初期品には何も入っておりません。
 よってラズパイを使用する時はOS(Linuxなど)を自分でSDカードに書き込んで使用します。

3-1.Rasberry Pi Imagerのダウンロード

 SDカードの書き込みは下記サイトのRasberry Pi Imagerインストーラーを使用します。

画像1

「imager_x.x.x.exe」ダウンロードしたファイルを実行するとRasberry Pi Imagerが立ち上がります。

画像2

3-2.SDカードにOSの書き込み

 次にマイクロSDをPCに設置します。PCにつけないと"CHOOSE STORAGE"でSDカードが認識されません。
 私のデスクトップは直接SDカードを差せないためカードリーダーにマイクロSDを付けたうえでUSB接続しています。

 マイクロSDをPCに取付後に、OS書き込みの手順は下記の通りです。

1.「CHOOSE OS」ボタンから使用するOSを選択します。初めての人は「Raspberry Pi OS-64bit」でよいと思います※詳細は下記コラム参照
※変更したい場合、最悪SDカードにOSを書き換えしたらよいだけです。
2.書き込むSDカードを選択します。(選択できない=SDカードが刺さっていないため確認)
3.「WRITE」ボタンが押せるようになるため押すだけです。

 書き込みは数十分~1h程度で終わります。

 3-2-1.コラム:OSの選択

 結論としては「Rasberry Pi4なら64bit-OSを選択、目的がある場合はそれに合わせて32bitを選択」となります。
 Rasberry Pi4の基盤は64bitを使用しており、32bitだと対応していないパッケージ(例:Miniforgeなど)もあるため64bitの方が安牌と思います。ただしpicameraのように古いライブラリは32bitしか対応していないこともあるため、用途に応じてSDカードを使い分けたらよいと思います。

 選択方法は「OSを選ぶ->Rasberry Pi OS(other)->Rasberry Pi OS(64-bit)」から選択可能です。

 3-2-2.コラム:Raspberry Pi OSの名前

 ラズパイOSに”Bullseye”と記載があり、昔のOSでは"Buster"となってます。

 この違いに関してLinux OSのDebianにはVersionごとにコードネームが振られておりV10: Buster、V11:bullseyeとなります。2021年11月8日以降では基本的にOSはBullseyeを選択することになります。

表 Dockerイメージの主なタグ一覧

3-3.マイクロSDをラズパイに設置

 書き込みが完了したらmicro SDカードをラズパイに設置します。基盤の裏側に取り付け口があるためmicro SDカードを奥まで差し込めば完了です。

4.ラズパイ環境構築1:必須編

 ラズパイの環境構築を実施します。micro SDカードの設置済みなら、Micro HDMIポートのどちらかをモニターに繋ぎ、”USB-C Power supply”ポートにUSB-C電源アダプタを繋げば起動します。


4-1.起動時の設定

 初期立上時は自動でSet Up画面となります。基本的にはデフォルトのままで問題ないですがポイントは下記の通りです。

  • 言語は自分が使いやすいよう日本仕様に変更

  • Wi-fi設定は後でもできる/任意のためSkipしてもよい

  • Rasberry Pi ImagerでOSインストール済みのため"Update Software"は不要

【参考】Bluetoothの設定

 無線のキーボードやマウスを使用したいときは右上のBluetoothマークから「Make Discoverable」->「Add Device」として接続します。

4-2.インターフェイスの有効化

 用途に合わせて使用できるようインターフェイスの有効化を実施します。

【参考:項目の詳細説明】
 具体的にどのような内容に使用できるかは下記の通りです。

  1. リモート接続:別のPCなどからRasberry Piに接続

  2. シリアル通信:センサーデバイスによるデータ取得やサーボモータ制御

    • SPI

    • I2C

    • シリアルポート(UART)

  3. シリアルコンソール:ー

  4. 1-Wire:アナログ・デバイセズ社の登録商標であり、接地線(GND)と一本の信号線(兼電力供給線)だけで低速なデータ転送を行うシリアルインターフェイス規格(出典:丸文

    • 恐らく1-WireもSPIやI2Cと同じシリアル通信の1種

    • メリット:シリアル通信より信号線が少なくて済むため配線がシンプル

    • デメリット:低速度、

  5. カメラ:Rasberry Piからカメラを利用

  6. リモートGPIO:WebIOPIでラズパイを遠隔操作する

 1-Wire等は再起動が必要となります。参考までに1-Wireデバイスが有効化されたかは下記コマンドでアドレスリストが確認できます。

[Terminal]
ls /sys/bus/w1/devices/

【参考:2023年現在のインターフェース画面】
 Rasberry Pi OSがBulleseys11では下図の通り表記が変わっておりカメラの行が消えておりますのでご参考までに。

 Rasberry Pi OSのVersionを確認するには下記コマンドを実行します。

[Terminal]
lsb_release -a

5.ラズパイ環境構築2:推奨編

 電子工作をするレベルであれば不要ですが、Rasberry Pi×Pythonによる画像解析をしたい方は実施しておくことを推奨します。

5-1.SDカードの領域拡張:Expand Filesystem

 Rasberry Piでは条件次第では使用したSDカード容量が十分に使用されない現状が生じます。
(私のRasberry Piは特に初期設定でも問題なかったためImagerを使用した場合は不要かもしれませんが、念のため実行します)

 SDカード容量の確認は"df -h"コマンドを実行します。

[Terminal]
df -h

 SDカードの容量が十分に使われていない場合は"sudo raspi-config"コマンドから"Expand Filesystem"を実行して再起動します。再起動後はSDカード容量が拡張されているか"df -h"で確認できます。

[Terminal]
sudo raspi-config

5-2.システムの更新:sudo apt update/upgrade

 本設定は特に実行しなくても使用できます。ただしRasberry Piを最新の状態にして置く場合は実行を推奨します。
 なおファームウェアを更新する"sudo rpi-update"コマンドは公式Docsでは非推奨のため記載しませんでした。

[Terminal]
sudo apt-get update
sudo apt-get upgrade

[コマンドを連結した記法]
sudo apt-get update && sudo apt-get upgrade

5-3.日本語入力の設定

 Rasberry Piはそのままでは日本語入力ができません。コードでコメントを記載する時などに便利なため設定を追加します。
 インストールは下記記事参考にしており、コマンドは下記の通りです。

[Terminal]
sudo apt update
sudo apt install ibus-mozc
sudo shutdown -r now

5-4.OS/ビット数の確認

 参考としてRasberry Pi仕様(OS/ビット数)を確認しておきます。

[Terminal]
uname -m
uname -a

[OUT]
aarch64
Linux raspberrypi 6.1.21-v8+ #1642  SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64 GNU/Linux
[Terminal]
lsb_release -a

[OUT]
No LSB modules are available.
Distributor ID:	Raspbian
Description:	Raspbian GNU/Linux 11 (bullseye)
Release:	11
Codename:	bullseye
[Terminal]
getconf LONG_BIT

[OUT]
64

【参考:Rasberry Pi OSのbit数の違いによる出力】
 選択するRasberry Pi OSのbit数は”getconf LONG_BIT”で確認できます。Rasberry Pi Imagerで選択したbit数になっているかご確認ください。

5-5.任意:ターミナルの文字サイズ変更

 ターミナルの文字サイズは「編集->設定->端末のフォント->サイズ」から変更可能です。ターミナルの文字サイズが小さいと感じる方は変更します。

6.参考:リモートアクセス

  リモートアクセスとは「別のPCからラズパイにアクセスする操作」であり、普段使用するPCからラズパイを操作したいときに利用します。よってラズパイ専用デバイス一式(ディスプレイ、キーボードなど)があればリモートアクセスは必須ではありません

 リモートアクセスの設定手順は下記の通りです。なおリモートアクセス時は同一ネット環境同じWifiを使うを使用する必要があるはずです。

【リモートアクセスの設定手順】
1.ラズパイのIPアドレスを確認
2.自分のPCにソフトの追加(Tera TermやVNCビューワーなど
3.接続チェック

6-1.Raspberry PiのIPアドレス確認

 リモート接続で使用するため「アクセサリ->LXTerminal」で"ip a"コマンドを実行してIPアドレス(赤枠部分)を確認します。

[Terminal]
ip a

6-2.リモートアクセス用ソフト

 本記事で紹介するソフトは下記の通りです。自分の用途(手持ちのハード・操作性)に合ったソフトのみインストールしていただければ問題ありません。

【ソフトの特徴】
Tera Term:CLIで操作が可能であるためある程度のスキルが必要だが接続は簡単である。
VNC:ウィンドウからマウスやキーボード処理もできるため通常PCと同じ感覚で操作できるメリットはあるが動作遅延が酷い場合がある。
OBS Studio:ただ画面を移すだけでありVNCより機能が少ないが①接続が簡単、②遅延が少ない特徴があるためゲーム配信などに利用されます。
Raspberry pi用のマウス・キーボードがあり、高価な”HDMIキャプチャーボード”を購入してもよければ推奨できます。

 6-2-1.Tera Term(SSH接続用)

 下記サイトからexeファイルをDLしてデフォルトでインストールします。

 Tera Termを開くと画面が出てくるため各種数値を入れて実行します。

●ホスト(T):ラズパイのIPアドレスを入力
●鍵指紋ハッシュアルゴリズム:SHA256(デフォルトで設定)
●ユーザー名:pi
●パスフレーズ:3-1で設定した値(設定していない場合はraspberry)

 上記でSSH接続が完了しておりTera Term経由でLinuxコマンドを使用してラズパイを操作できます(左:Tera Term、右:ラズパイ画面)。

 6-2-2.VNC Viewer(VNC接続用)

 下記サイトからexeファイルをDLしてデフォルトでインストールします。(私は「Windows」を選択して「Download VNC Viewer」をクリック)

 VNC Viewerを開いてIPアドレスを入力->UsernameとPasswordを入れてOKを押すとラズパイに接続できます。

 これでVNC Viewerを通じてラズパイをGUIで操作できるようになりましたつまりラズパイ専用のディスプレイ無しで画面確認可能

【参考:VNC ViewerによるPC↔Rasberry Pi間のファイル転送】
 Rasberry Piの環境構築でのコマンド入力したり、出力結果をPCへ転送したりするには一手間かかります。VNC Viewerでは”File Transfer”で簡単にファイル転送が可能です。

<Rasberry PiからPCへファイル転送>
 右上のVNCマークを右クリック->File Transfer選択->Send files選択->送付したいファイルを選択してOKボタンを押す

 完了したらPCのデスクトップ(VNC接続元)に選択ファイルが存在します。

<PCからRasberry Piへファイル転送>
 VNC Viewerのウィンドウ上にカーソルを合わせるとアイコンがでる->アイコンのTransfer filesを選択->Send files選択->送付したいファイルを選択して開くボタンを押す

 完了したらRasberry Piのデスクトップ(VNC接続先)に選択したファイルが存在します。

 6-2-3.OBS Studio(画面キャプチャ―)

 基本的には下記サイトを参照すれば実施できるはずです。

 参考として接続は「PCのUSB->HDMIキャプチャーボード->HDMIケーブル->ラズパイ」で接続しています。

 うまく接続出来ればOBSのウィンドウ内にRasberry Pi画面が表示されます。

7.補足:目的に応じた環境構築

 基本的に環境構築は完了しておりますが用途に応じて別途環境構築した方が良いものもあります。
 参考として別記事を作成しましたのでご確認ください。

8.補足:参考コマンド

 Raspberry Piの状態を確認するためのコマンドを紹介します。

8-1.GPIOピン配置の確認:pinout

 GPIOのピン配置を確認するには"pinout"コマンドを使用します。
 なぜか警告がでており「pkg_resourcesは非推奨」とありますが、修正する方がリスクがあるので現状(25/5/5)はそのまま使用しています。

[Terminal]
pinout
[OUT]
/usr/bin/pinout:6: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
  from pkg_resources import load_entry_point

【コラム:pkg_resources非推奨の対応について】
 下記URLよりimportlib.resourcesなどを使用したほうが良いと判断できます。

 "which"コマンドでpinoutファイルの場所を探し、"cat"で中身を確認しました。おそらく"from pkg_resources import load_entry_point"の部分を修正したら警告は消えると思いますが、動作しなくなるリスクもあるため初学者はそのままの方が安牌です。

[Terminal]
which pinout
cat /usr/bin/pinout

[OUT]
#!/usr/bin/python3
# EASY-INSTALL-ENTRY-SCRIPT: 'gpiozero==1.6.2','console_scripts','pinout'
__requires__ = 'gpiozero==1.6.2'
import re
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(
        load_entry_point('gpiozero==1.6.2', 'console_scripts', 'pinout')()
    )

8-2.GPIO PIN情報の確認:raspi-gpio get

 GPIO PIN情報の確認は”raspi-gpio get”コマンドを使用します。
 なお、昔(OSがBuster以前)のコマンドは"gpio readall"コマンドでしたが、Raspberry Piの新OS(bullseye)からWiring Piがなくなったため、最新のOSで実行するとエラーが発生します。

[Terminal]
raspi-gpio get


9.別添

9-1.Raspberry Pi参考資料

9-2.Linux参考資料

https://twitter.com/SecurityTrybe/status/1693543490926338387?s=20

9-3.Raspberry Piの詳細仕様

https://datasheets.raspberrypi.com/rpi4/raspberry-pi-4-reduced-schematics.pdf
https://datasheets.raspberrypi.com/rpi4/raspberry-pi-4-mechanical-drawing.pdf

あとがき

 Linuxを含めて細かい環境構築はやり方を忘れたので追って追記予定

【追記】
●Linuxコマンド
●ソフト
●インターフェイスの有効化の詳細

 私がラズパイ買ったときは2021年2月で9000円くらいだったけど2022年1月現在の価格がやばい・・・高すぎる・・・・
 ちゃんと調べたら正規店は在庫がなくなってて転売屋が価格を吊り上げてるな・・・・・・自分たちで使わないのなら技術者の購入ハードルを上げるような邪魔をしないでほしいわ。

更新履歴

  • 2022年1月24日:初版発行

  • 2022年8月:ラズパイの価格高騰による注意喚起追加

  • 2023年9月23日:画像追加、ボードの種類を追加

  • 2024年5月5日:参考コマンド追加


この記事が気に入ったらサポートをしてみませんか?