2025年8月18日月曜日

ラズパイ5対応 カラー図解 最新 Raspberry Piで学ぶ電子工作 補足情報トップ

本ページは、2024年10月発売の金丸隆志著「ラズパイ5対応 カラー図解 最新 Raspberry Piで学ぶ電子工作」(技術評論社)の補足情報をまとめるためのページです。

以下のページに、書籍で利用したコマンド一覧や補足情報などを掲載します。

インストールや設定に関する補足情報はこちらをご覧下さい。
Raspberry Pi Zero W 系を利用したい方はこちらをご覧ください。
マイクロコントローラーである Raspberry Pi Pico シリーズで電子工作してみたい方は
以下のページをご覧ください。
本書の旧バージョンのサイトへのリンクですが、本書の読者の方でも問題なく活用できます。 さらに、本書の続編である「実例で学ぶRaspberry Pi電子工作」の演習の Pico 版の解説も公開を開始しました。是非お楽しみください!
やや上級者向けの、Raspberry Pi をより便利に使う方法はこちらをご覧下さい。
本ページを活用し、Raspberry Pi を楽しみましょう!

書籍で用いたコマンドおよび補足情報

本ページで表示するコマンドの利用方法

本ページには、本書の演習を実行するために必要なコマンドを全て記し、さらに、本書への補足情報を記していきます。コマンドを本ページからコピーして実行することにより、書き写すことによるミスの恐れがなく確実に実行できます。

本ページのコマンドをコピーにより活用するためには、まずRaspberry Pi上のブラウザ(Chromium)で本ページを開きます。

そして、コピーしたいコマンドをマウスでなぞり色を反転してください。その状態からそのコマンドをコピーするには下記の二つの方法のうちどちらかを実行してください。
  • 色を反転した領域をマウスで右クリックして「コピー」を選択する
  • キーボードの「Ctrl」キーを押しながら「C」キーを押す(Ctrl-C)
そして、コピーされたコマンドをターミナルソフトウェアに貼り付けるには、下記の三つの方法のうちどれかを実行してください。
  • LXTerminalのメニューから「編集」→「貼り付け」を選択する
  • LXTerminal上でキーボードの「Ctrl」キーと「Shift」キーを押しながら「V」キーを押す(Ctrl+Shift+V)
  • LXTerminal上でマウスのホイールを押し込む(ただし、この方法は正確には「コピーされた文字を貼り付ける」のではなく「マウスで色が反転された文字を貼り付ける」という動作になります)
いずれかの方法でLXTerminalにコマンドが貼り付けられたら、そのままキーボードの「Enter」キーを押せばコマンドが実行されます。

なお、複数のコマンドが複数行にわたって連続して書かれている場合、コピー、貼り付け、実行はコマンド一つごとに行ってください。

それでは、本ページを活用して、Raspberry Pi での電子工作を楽しんでください!

2章

p.16, Raspberry Pi を購入できるショップへのリンク

p.16 に記した、Raspberry Pi を購入できるショップへのリンクは以下の通りです。 また、入手しやすい Raspberry Pi の購入リンクを、 著者による別書籍「Raspberry Piではじめる機械学習 補足情報」のサポートサイトRaspberry PiへのOSのインストール方法の冒頭にまとめましたのでご利用ください。

p.19, Pi 5 対応のACアダプタへのリンク

p.19 に記した、Pi 5 に対応したACアダプタへのリンクを以下に記します。2025年8月現在、公式版、スイッチサイエンス版、KSY版があります。お好みのものをお求めください。
公式版 Raspberry Pi 公式ACアダプター(27W USB PD Type-C)
秋月電子通商(黒) / 秋月電子通商(白) / 千石電商(黒)
スイッチサイエンス版 ラズパイ5に最適なACアダプター 5.1V/5.0A USB-PD Type-Cコネクタ出力
スイッチサイエンス
KSY版 USB電源アダプター 5V/5A Type C 1.2m
KSY / 千石電商

p.25, Raspberry Pi Imager のダウンロードページへのリンク

p.25 に記した、Raspberry Pi Imager のダウンロードページへのリンクは以下の通りです。

p.28, Pi Zero 系の機種にインストールすべき OS

書籍において、『Pi Zero 2 W では「Raspberry Pi OS (Legacy, 32-bit)」を選択したほうが安定して動作する可能性』があると記しました。
これは、執筆当時の最新 OS である Bookworm では、2023-10-10 から 2024-03-15 のバージョンまで、OS の更新時に処理が進まなくなる、などの問題があったためです。
この問題は、2024-07-04 のバージョンで改善されましたので、Pi Zero 系の機種で Bookworm を選んでいただいても問題ありません。
ただし、ブラウザの動作が非常に重いなど、Pi Zero 系が上級者向けの機種であることには変わりがありません。

p.37, Raspberry Pi Connect の設定項目

設定ウィザードにて、Raspberry Pi Connect の設定を行う画面が現れると述べました。この設定は、2024-10-22 以降の Raspberry Pi OS では現れません。本書の演習には影響がありませんので、そのまま設定を続けてください。

3章

p.44, 秋月電子通商のパーツセットへのリンク

p.44 に記した、秋月電子通商のパーツセットは下記ページで販売されております。 2025年春頃より、このパーツセットの在庫が切れた状況が長らく続いていましたが、
2025年7月3日に在庫が復活していることを確認しました。ぜひ本書と合わせてお楽しみください!

なお、パーツセットが一時的に品切れの場合、あるいはパーツセット内のパーツを単品で欲しい場合、下記のリストをご活用ください。
おおむねパーツセットと同等のパーツを入手できますが、「抵抗100本、赤色LED10個、コンデンサ10個」のように、多めに購入せざるを得ないパーツがある点はご了承ください。

パーツ 個数
ブレッドボード BB-801:105294 1
ブレッドボード・ジャンパーワイヤ(オス-メス) 15cm(赤):108933 2パックで20本
ブレッドボード・ジャンパーワイヤ(オス-オス) :105159 1パックで60本以上
カーボン抵抗(炭素皮膜抵抗) 1/4W330Ω125331 1パックで100本入り
カーボン抵抗(炭素皮膜抵抗) 1/4W10kΩ125103 1パックで100本入り
3mm赤色LED 660nm 250mcd LT3U31P:102320 1パックで10個入り
RGBフルカラーLED 5mm OSTA5131A カソードコモン:102476 1
LED光拡散キャップ 5mm 白:100641 1
タクトスイッチ(黒色):103647 3
半固定ボリューム 10kΩ[103]:108012 3
CdSセル 5mmタイプ:100110 1
積層セラミックコンデンサー 0.01μ50V X7R 2.54mm:104063 1パックで10個入り
12bit 8ch ADコンバーター MCP3208-CI/P:100238 1
DCモーター FA-130RA-2270L:109169 1
マイクロサーボ9g SG-90:108761 1
DRV8835使用ステッピング&DCモータードライバーモジュール:109848 1
電池ボックス 単3×3本 リード線・スイッチ付:112240
1
ADT7410使用 高精度・高分解能 I2C・16Bit 温度センサーモジュール:106675 1
Raspberry Pi キャラクター液晶ディスプレイモジュール完成品:111753 1


回路の配線図について

サンプルファイルの中に、本書で作成する回路の配線図が gihyo-RaspberryPi-Circuit.pdf というPDFファイルとして含まれていますのでご活用ください。
このファイルを Windows や macOS で閲覧したい場合、以下のリンクからダウンロードすることもできます。 このファイルを Windows や macOS などの Adobe Reader で閲覧する際、「編集」→「環境設定」を選択し、下図のように「細い線を拡張」のチェックを外すと、より綺麗な配線図を見ることができます。


チェックを外す前後の配線図の状態を示したのが下図です。「細い線を拡張」のチェックを外した方が図がきれいに表示されているのがわかるでしょう。

なお、この設定はPDFの印刷の際には影響しないはずです。


5章

p.102, OpenCV のインストールコマンド

p.102に記した、OpenCV のインストールコマンドを以下に記します。
まず、次のコマンドでインストール可能なパッケージのリストを更新するのでした。
sudo apt update
それが終わったら、次のコマンドで OpenCV をインストールできます。
sudo apt -y install python3-opencv

p.104, mplayer のインスト―ルコマンド

p.104に記した、 mplayerのインストールコマンドを以下に記します。
次の二つのコマンドを、一つずつ順番に実行してください。
sudo apt update

sudo apt -y install mplayer

p.105, mplayer の実行コマンド

ターミナルを起動した後、プログラムの存在する gihyo フォルダ(ディレクトリ)に下記のコマンドで移動します。
cd gihyo
そのターミナルで以下のコマンドを実行すると、05-07-test.mp3 というサンプル音声を再生することができます。デフォルトでは HDMI 接続したディスプレイから音声が鳴るでしょう。
mplayer 05-07-test.mp3
これらのコマンドは、p.122の6.5章でも用いられます。

p.105, 音声の出力先を変更する方法

Pi 4 B までの機種で、音声を HDMI ケーブル経由ではなく、Raspberry Pi の基板上のイヤフォンジャックから聞きたい場合、デフォルトでは音が鳴らないことがあります。 イヤフォンジャックから鳴らすための方法は、OSのバージョンにより異なります。

<最新の OS である Bookworm の場合>

もし、デフォルトでピンジャックから音が出ていない場合、以下の指示に従ってください。なお、raspi-config コマンドを実行中は、キーボードの Esc キーが「戻る」に対応しますので、困ったら Esc キーを何度か押してみると良いでしょう。
  1. ターミナルで「 sudo raspi-config 」コマンドを実行し、設定画面を開く
  2. キーボードの「↓」キーを五回押し、「6 Advanced Options」にフォーカスを合わせる
  3. キーボードの「Enter」キーを押し、「6 Advanced Options」に入る
  4. キーボードの「↓」キーを六回押し、「A7 Audio Config」にフォーカスを合わせる
  5. キーボードの「Enter」キーを押し、「A7 Audio Config」に入る
  6. キーボードの「上」キーを一回押し、「1 PulseAudio」にフォーカスを合わせる
  7. キーボードの「Enter」キーを押し、「1 PulseAudio」を選択する
  8. キーボードの「Enter」キーを押し、「了解」を選択する
  9. キーボードの「TAB」キー二回を押し、「Finish」にフォーカスを合わせる
  10. キーボードの「Enter」キーを押すと、再起動され設定が有効になる

<Legacy OS である Bullseye の場合>

2020-12-02版およびそれ以降の Raspberry Pi OS をご利用で、なおかつイヤフォンジャックから音が鳴らない場合、raspi-configというコマンドで音声の出力先をイヤフォンジャックに切り替えます。 以下の手順に従ってください。
  1. ターミナルで「 sudo raspi-config 」コマンドを実行し、設定画面を開く
  2. キーボードの「Enter」キーを押し、「1 System Options」に入る
  3. キーボードの「↓」キーを一回押し、「S2 Audio」にフォーカスを合わせる
  4. キーボードの「Enter」キーを押し、「S2 Audio」の設定画面に入る
  5. キーボードの「↓」キーを一回押し、「1 Headphones」にフォーカスを合わせる
  6. キーボードの「Enter」キーを押し、「1 Headphones」を選択する
  7. キーボードの「TAB」キー二回を押し、「Finish」にフォーカスを合わせる
  8. キーボードの「Enter」キーを押し、raspi-config の設定画面を終了する

以上で、イヤフォンジャックから音声が出るようになります。

6章

p.116, 図6-7、Raspberry Pi Connect の設定項目

p.116 の図6-7では、Raspberry Pi Connect の設定項目が上から2番目に表示されています。この設定項目は、2024-10-22 以降の Raspberry Pi OS では現れません。本書の演習には影響がありませんので、気にせず演習を続けてください。

7章

p.126, 図7-3、Raspberry Pi Connect の設定項目

p.126 の図7-3では、Raspberry Pi Connect の設定項目が上から2番目に表示されています。この設定項目は、2024-10-22 以降の Raspberry Pi OS では現れません。本書の演習には影響がありませんので、気にせず演習を続けてください。

p.129, 接続されている I2C デバイスのアドレスを表示するコマンド

接続されている I2C デバイスのアドレスを表示するコマンドは以下の通りです。
i2cdetect -y 1

p.137, LCD へ文字を表示するプログラムの実行コマンド

ターミナルを起動したあと、プログラムの存在する gihyo フォルダ(ディレクトリ)に下記のコマンドで移動します。
cd gihyo
そのターミナルから 07-02-LCD.py を実行するコマンドは以下の通りです。付録C.3「タブによる補完」を学ぶと、ターミナルでのプログラムの実行が格段に楽になりますので興味のある方は参考にしてください。
python3 07-02-LCD.py
このコマンドに、「'test'」という引数をつけて実行する場合のコマンドは下記の通りです。p.137に記した通り、「↑」キーにより過去に実行したコマンドを再表示すると楽にこのコマンドを記述できます。
python3 07-02-LCD.py 'test'

p.142, /etc/rc.local を管理者権限の mousepad で開くためのコマンド

p.142に記した, /etc/rc.local を管理者権限の mousepad で開くためのコマンドは以下の通りです。
sudo mousepad /etc/rc.local
さて、このコマンドを実行したとき、既存ファイルである /etc/rc.local がテキストエディタ mousepad で開かれます。そうなった方は先に進んで構いません。
しかし、2024年11月以降の OS では、ファイル /etc/rc.local が削除され存在しないため、mousepad は空白の状態で開きます。そうなった場合、一旦 mousepad を閉じ、以下の3コマンドを順に実行することにより、新たにファイル /etc/rc.local を作成しましょう。
wget https://raw.githubusercontent.com/neuralassembly/raspi/refs/heads/master/rc.local

chmod a+x rc.local

sudo mv rc.local /etc
この3コマンドを実行してファイル /etc/rc.local を作成したら、上記の mousepad で /etc/rc.local を開くコマンドを実行し、以下に進みましょう。

p.142, LCD へ文字を表示するプログラムの実行コマンドを、/etc/rc.local に記述するための表記

p.142 に記した、/etc/rc.local の「exit 0」の行の上に記すべきコマンドは以下の通りです。ただし、「kanamaru」の部分は皆さんのユーザー名で置き換える必要があります。末尾の「&」も忘れずに記述しましょう。
python3 /home/kanamaru/gihyo/07-03-LCD-temp.py &
さらに、/etc/rc.local の「exit 0」の行の上に記すべき、シャットダウンボタン用のコマンドは下記の通りです。やはり、「kanamaru」の部分は皆さんのユーザー名で置き換える必要があります。末尾の「&」も忘れずに記述しましょう。
python3 /home/kanamaru/gihyo/05-06-sw-poweroff.py &

8章

p.169, ハードウェアPWMを利用するための準備

本書p.169 に記した、管理者権限の mousepad で /boot/firmware/config.txt を編集用に開くコマンドは下記の通りです。
sudo mousepad /boot/firmware/config.txt 
なお、執筆時の Legacy OS である Bullseye ではファイルが /boot/config.txt であるため、コマンドは下記に変更されます。
sudo mousepad /boot/config.txt 
そして、そのファイルの末尾に記すべき一行は下記の通りです。
dtoverlay=pwm-2chan

ハードウェアPWMのトラブル

2025年5月にリリースされたOSでは、Linuxのコアである kernel のバージョンが 6.12 となり、Pi 5 でハードウェアPWMを出力するための仕様が変わりました。
そのため、その対応を施したサンプルファイルでしか動作しなくなっております。2025年6月22日にサンプルファイルを更新しましたので、それ以降にダウンロードした方でしたら問題なく動作します。 古いサンプルファイルをご利用の方は、ホームフォルダの gihyo フォルダを一度削除し、最新のファイルをダウンロードし直してください。
変更を受けたのは下記の4ファイルです。
  • 08-04-servo.py
  • 08-06-2servos.py
  • 09-05-servo/app.py
  • 10-03-servo/app.py
なお、やや細かな話ですが、GPIO 18 と 19 にハードウェア PWM 信号を出力するために用いるインターフェースは下記のようになります。

kernel 6.6 までの Pi 5 /sys/class/pwm/pwmchip2/pwm{2,3}
kernel 6.12 以降の Pi 5 /sys/class/pwm/pwmchip0/pwm{2,3}
Pi Zero ~ Pi 4 /sys/class/pwm/pwmchip0/pwm{0,1}

9章

p.180, FastAPI のインストールコマンド

p.180に記した、FastAPI のインストールコマンドは以下の通りです。二つのコマンドを一つずつ実行しましょう。
sudo apt update

sudo apt -y install python3-fastapi

p.181, IP アドレスを調べるためのコマンド

p.181に記した、IP アドレスを調べるためのコマンドは以下の通りです。
ifconfig

p.184, FastAPI用に書かれたプログラムを実行するためのコマンド

p.184に記した、FastAPI用に書かれたプログラムを実行するためのコマンドは以下の通りです。
新規に開いたターミナルで、下記のコマンドを一つずつ順に実行するのでした。
cd gihyo/09-01-led

python3 app.py
同様に、9章のすべての実行コマンドを一気に列挙します。
どれも、新規に開いたターミナルで実行する必要があります。
cd gihyo/09-02-temp

python3 app.py
cd gihyo/09-03-rgbled

python3 app.py
cd gihyo/09-04-dcmotor

python3 app.py
cd gihyo/09-05-servo

python3 app.py
なお、「ターミナルに新規に開いて実行」ではなく、例えば「今 09-01-led フォルダにいるが、次に 09-02-temp フォルダの app.py を実行したい」などという場合、実行すべきコマンドは以下のようになるでしょう。
これは「..」が「一つ上のフォルダ」を意味することを知ればその意味を理解できるでしょう。
cd ../09-02-temp

python3 app.py

ハードウェアPWMのトラブル

2025年5月にリリースされたOSでは、Linuxのコアである kernel のバージョンが 6.12 となり、Pi 5 でハードウェアPWMを出力するための仕様が変わりました。
そのため、その対応を施したサンプルファイルでしか動作しなくなっております。2025年6月22日にサンプルファイルを更新しましたので、それ以降にダウンロードした方でしたら問題なく動作します。 詳細は 8 章の注釈をご覧ください。

10章

p.209, 機体B用のABS樹脂板の購入について

p.209の表10-2、およびp.214において、機体Bの作成のために「スタジオミュウ タッピングプレート」も「TAMIYAユニバーサルプレート」も入手できない場合、「はざいや」で「ABS樹脂板」を購入して加工するのがよい、と述べました。
ここではその方法を解説します。

まず、はざいやでABS樹脂板を購入するためのページは以下です。 上記サイトで、選択肢を例えば下記のように設定します。
  • メーカーの選択:住友ベークライト
  • カラーの選択:白
  • 板厚: 3mm
  • サイズ:60×160 mm
  • 枚数の指定:2枚
時期によるとは思いますが、本ページ執筆時は一枚あたり160円程度でABS樹脂板を購入できました。

購入したABS樹脂板に対し、下記の図の位置にピンバイスで3.2mmの穴をあけます。
上図の通りに穴をあけた様子が下図になります。
そして、これらを用い、アームクローラー工作セット(2chリモコンタイプ)で機体Bを組み立てた様子が下図になります。

p.210, 図10-1の高解像度画像

p.210にある図10-1の高解像度画像は以下となります。クリックすると拡大されます。

p.213, 図10-3の高解像度画像

p.213にある図10-3の高解像度画像は以下となります。クリックすると拡大されます。

p.217, FastAPI用に書かれたプログラムを実行するためのコマンド

p.217に記した、FastAPI用に書かれたプログラムを実行するためのコマンドは以下の通りです。
新規に開いたターミナルで、下記のコマンドを一つずつ順に実行するのでした。
cd gihyo/10-01-tank

python3 app.py

p.219, webtankサービス用の設定ファイルを編集するためのコマンド

p.219に記した、webtankサービス用の設定ファイルを編集するためのコマンドは以下の通りです。
新規に開いたターミナルで、下記のコマンドを一つずつ順に実行するのでした。
cd gihyo/10-01-tank

mousepad webtank.service

p.220, webtankサービス用の設定ファイルをシステム領域に移動するためのコマンド

p.219に記した、webtankサービス用の設定ファイルを編集するためのコマンドは以下の通りです。
mousepad を起動したフォルダ(すなわち、gihyo/10-01-tankフォルダ)で以下のコマンドを実行します。
sudo mv webtank.service /etc/systemd/system/

p.220, webtankサービスの自動実行を有効にするコマンド

p.219に記した、webtankサービス用の設定ファイルを編集するためのコマンドは以下の通りです。
mousepad を起動したフォルダ(すなわち、gihyo/10-01-tankフォルダ)で以下のコマンドを実行します。
sudo systemctl enable webtank

p.221, LCDへのIPアドレスの表示に関わるコマンド

p.221に記した、自動実行したいプログラムを記述するためのファイル /etc/rc.local を管理者権限で開くためのコマンドは以下の通りです。
sudo mousepad /etc/rc.local
さて、このコマンドを実行したとき、既存ファイルである /etc/rc.local がテキストエディタ mousepad で開かれます。そうなった方は先に進んで構いません。
しかし、2024年11月以降の OS では、ファイル /etc/rc.local が削除され存在しないため、mousepad は空白の状態で開きます。そうなった場合、一旦 mousepad を閉じ、以下の3コマンドを順に実行することにより、新たにファイル /etc/rc.local を作成しましょう。
wget https://raw.githubusercontent.com/neuralassembly/raspi/refs/heads/master/rc.local

chmod a+x rc.local

sudo mv rc.local /etc
この3コマンドを実行してファイル /etc/rc.local を作成したら、上記の mousepad で /etc/rc.local を開くコマンドを実行し、以下に進みましょう。

p.222, IPアドレスをLCDに表示するために /etc/rc.local に記入するコマンド

p.222に記した、IPアドレスをLCDに表示するために /etc/rc.local の「exit 0」の行の上に記入するコマンドは下記の通りです。
python3 /home/kanamaru/gihyo/07-02-LCD.py $_IP
なお、上のコマンドの「kanamaru」の部分はみなさんのユーザー名に変更する必要があります。

p.223, シャットダウンプログラムの自動実行のために /etc/rc.local に記入するコマンド

p.223に記した、シャットダウンプログラムの自動実行のために /etc/rc.local の「exit 0」の行の上に記入するコマンドは下記の通りです。「&」も忘れずに記述しましょう。
python3 /home/kanamaru/gihyo/10-04-sw-poweroff.py &
なお、上のコマンドの「kanamaru」の部分はみなさんのユーザー名に変更する必要があります。

p.224, mjpg-streamer のインストールコマンド

p.224に記した、mjpg-streamerのインストールコマンドは下記の通りです
(1) sudo apt update
(2) sudo apt -y install libjpeg-dev cmake libcamera-dev
(3) git clone https://github.com/neuralpi/mjpg-streamer
(4) cd mjpg-streamer/mjpg-streamer-experimental
(5) make
(6) cd
(7) sudo mv mjpg-streamer/mjpg-streamer-experimental /opt/mjpg-streamer
なお、OS として Bullseye やリリース直後の Bookworm をお使いの方は、上記の (5) で LibCamera.cpp のビルド中にエラーが起こると思います。その場合、エラーが出た状態から以下の 8 コマンドを一つずつ順に実行してください。この 8 コマンドが上記 (5)~(7) の代替、というイメージです。
rm -rf _build
mkdir _build
cd _build
cmake -DLIBCAMERA_USES_TRANSFORM=ON ..
cd ..
make
cd
sudo mv mjpg-streamer/mjpg-streamer-experimental /opt/mjpg-streamer

p.225:mjpg-streamerの実行用コマンド

p.225に記した、mjpg-streamerを実行するために /etc/rc.local の「exit 0」の行の上に記入するコマンドは下記の通りです。
python3 /home/kanamaru/gihyo/10-05-stream.py &
なお、上のコマンドの「kanamaru」の部分はみなさんのユーザー名に変更する必要があります。

p.226:webtank.serviceを編集するためのコマンド

p.226に記した、webtank.serviceを編集するためのコマンドは下記の通りです。
sudo mousepad /etc/systemd/system/webtank.service

p.228, 図10-10の高解像度画像

p.228にある図10-10の高解像度画像は以下となります。クリックすると拡大されます。

p.229:webtankサービスの自動実行を停止するコマンド

p.229に記した、webtankサービスの自動起動を停止するためのコマンドは下記の通りです
sudo systemctl disable webtank

p.230, 図10-11の高解像度画像

p.230にある図10-11の高解像度画像は以下となります。クリックすると拡大されます。

p.231, 図10-12の高解像度画像

p.231にある図10-12の高解像度画像は以下となります。クリックすると拡大されます。

10章全般:キャタピラ式模型のメンテナンス

キャタピラ式模型を長く使っていると、だんだん動作が安定しなくなってくることがあります。例えば「右のキャタピラは正常動作するが、左はなかなか動かない」などです。

もちろん、「ジャンパーワイヤーが抜けていないか」など、回路の配線をまずはチェックすべきです。 しかし回路の配線に問題がなかった場合、どこに注意してメンテナンスすべきかを以下に記します。上から順にチェックしていきましょう。
  1. 電池の残量不足ではないかチェック:基本ではありますが、まずはここからチェックしましょう。
  2. モーターの軸が空回りしていないかチェック:モーターの軸にはピニオンギアが取り付けられています。ピニオンギアが劣化してゆるくなり、モーターの軸が空回りすることがしばしば起こります。これはモーターをギアボックスから取り外してみないとわかりません。ピニオンギアがゆるくなっていた場合、「AO-7005 8Tピニオンセット白(10個)」や「AO-1014 8Tピニオン(紫)」などを購入して交換しましょう。ギア部で異音がする場合は大体このケースが当てはまります。個人的に、この問題には何度も遭遇しています。
  3. ジャンパワイヤのチェック:ジャンパワイヤの抜き差しをする際、持ち手ではなくケーブルを引っ張ることを繰り返すと中で断線することがあります。断線したかどうかは外から見ただけではわかりません。断線が疑われるジャンパワイヤは捨ててしまった方がよいでしょう。これも回路のパーツを長く使っていると遭遇することの多い問題ですね。
  4. ブレッドボードのチェック:ブレッドボードを長くつかっていると、なんらかの理由でブレッドボード内部の抵抗が大きくなりモーターがあまり回転しなくなることがあります。頻繁に起こることではないと思いますが、筆者は何度かそのような経験をしています。安価なもので良いのでテスターを購入すると内部の抵抗の大きさをチェックできます。内部の抵抗が大きく計測されたブレッドボードは消耗品と考えて捨ててしまった方がよいでしょう。
  5. ギアボックスで空回りしているシャフトがないかチェック:ギアボックスの作成の際、イモネジを六角レンチで締めてシャフトを固定している部分があります。そこが緩んで空回りしていないかチェックしましょう。
  6. モーターのチェック:上のどの問題にも該当しなかった場合、モーターに問題がある可能性があります。新品の「AO-1001 FA-130タイプノーマルモーター」を購入して交換してみるのも手です。
  7. モータードライバーのチェック:上のどの問題にも該当しなかった場合、モータードライバに問題がある可能性があります。新品のモータードライバーを購入して交換してみるのも手です。

付録

p.238, サンプルファイルのダウンロードコマンド

p.238に記した、本書のサンプルファイルのダウンロードコマンドは以下の通りです。Raspberry Piがネットワークに接続されている必要があります。
git clone https://github.com/neuralpi/gihyo

p.238, git コマンドのインストールコマンド

執筆時の Raspberry Pi OS では実行不要ですが、git のインストールのコマンドを念のために記すと以下のようになります。
sudo apt update

sudo apt -y install git

p.240, zip 圧縮されたサンプルファイルgihyo-master.zipを展開するコマンド

p.240に記した、 zip 圧縮されたサンプルファイルgihyo-master.zipを展開するコマンドは以下の通りです。二つのコマンドを一つずつ順に実行してください。
unzip gihyo-master.zip

mv gihyo-master gihyo

p.241, nano の設定ファイル .nanorc に記す内容

p.241に記した、nano の設定ファイル .nanorc に記す内容は以下の通りです。
set tabsize "4"
set tabstospaces

p.241, vi の設定ファイル .vimrc に記す内容

p.241に記した、vim の設定ファイル .vimrc に記す内容は以下の通りです。
set expandtab
set tabstop=4
set softtabstop=4
set shiftwidth=4

p.242, IPアドレスの代わりに利用可能なアドレス

p.241に記した、IPアドレスの代わりに利用可能なアドレスは以下の通りです。
raspberrypi.local
9章の演習で用いるアドレスの形式で書くと、例えば以下のようになるでしょう。
http://raspberrypi.local:8000/9-1

p.242, Windows 用 iTunes をダウンロードするためのリンク

p.242 で紹介した、 Windows 用 iTunes をダウンロードするためのリンクは以下です。 このリンク先のページを少しスクロールしたところにある 「ほかのバージョンをお探しですか? macOS> Windows> 」の「Windows>」をクリックすることで、iTunes64Setup.exe をダウンロードできるのでした。

p.243, Raspberry Pi の IP アドレスを検索するための Android アプリへのリンク

p.243で紹介した、Raspberry Pi の IP アドレスを検索するための Android アプリへのリンクは以下です。 このアプリで raspberrypi という名称を検索すると、IP アドレスを知ることができます。

p.243, 日本語入力ソフトウェアのインストールの準備

p.243に記した、raspi-configの実行コマンドは以下の通りです。
sudo raspi-config

p.244, 日本語入力ソフトウェアのインストールコマンド

p.244に記した、日本語入力ソフトウェアのインストールコマンドは以下の通りです。
sudo apt update

sudo apt -y install fcitx-mozc

p.244, 日本語フォントのインストールコマンド

p.244に記した、日本語フォントのインストールコマンドは以下の通りです。
sudo apt -y install fonts-vlgothic

p.250, 参考文献のリンク

p.250の参考文献で記したリンクは以下の通りです。

Raspberry Pi Zero W 系の機種で本書の演習を行う方法

はじめに

本書の演習で Raspberry Pi Zeroシリーズを用いる方法はサポートページで解説すると述べました。本ページにでその解説を行います。

Raspberry Pi Zero W 系 (以下 Pi Zero W 系) の機種では、GPIO ポートにピンヘッダが取り付けられた Raspberry Pi Zero WH (以下 Pi Zero WH) が最も簡単です。ピンヘッダが取り付けられていないと、本書で用いるオス-メスタイプのジャンパーワイヤを用いることができません。
なお、Pi Zero W の後継である Pi Zero 2 W も登場しており、ピンヘッダが取り付けられた Pi Zero 2 WH も販売中です。

また、Pi Zero W 系の機種は、搭載メモリ量が 512MB と少ないためデスクトップでブラウザを使うのにも支障が出るレベルです。ですので、Pi Zero W 系の機種は「デスクトップなど不要」と思えるような上級者向けのものだと考えるのが良いと思います。

Pi Zero W 系を含めた Raspberry Pi の種類と、それを購入できるサイトへのリンクを 「Raspberry Piではじめる機械学習:Raspberry PiへのOSのインストール方法」の冒頭部にまとめてありますので、参考にしてみてください。

周辺機器の接続方法

Pi Zero 2 Wと周辺機器との接続は下図のようになります。
図からわかるように、以下のものが必要となります。
Pi Zero 系の機種をセット販売で購入した場合、「HDMI(メス)-ミニHDMI(オス)変換アダプタ」や「USB OTGケーブル」はセットに含まれる場合もあるようですので、ご確認ください。

なお、microSD カードはなるべく高速で高性能なものを使うことをお勧めします。Zero 系の機種はメモリが512MBしか搭載されておらず、microSDカードをメモリの代替として用いる「スワップ」という技術が多用されるためです。

なお、ピンヘッダが取り付けられていない Pi Zero 系の機種で電子工作の演習を行いたい場合、以下の方法がありますが自己責任でお願いします。
  1. まず、下記のようなテストワイヤをGPIO部の穴に差し込んで使うという方法がまずあります。ただし、これはあくまでテスト用であり、本書のように何度もGPIOを利用する場合、何度も抜き差しすることで接触が悪くなることが考えられるためお勧めできません。
  2. それ以外には、下記のように 40 ピンのピンヘッダをハンマーで打ち込む GPIO Hammer Header という製品があります。日本のサイトでは売り切れの場合もありますが、下記のスイッチサイエンスでは、定期的に入荷するようです。 なお、amazon.co.jp でも買えるようですが、レビューを見る限り装着に必要な治具 (Jig) が付属しない可能性があり、お勧めしにくいです。 海外通販を利用できる方なら、公式から Jig つきのもの Pimoroni: GPIO Hammer Header (Solderless) – Male + Female + Installation Jig を購入するのも良いでしょう。 治具 (Jig) の利用法はこちらで見られます。

  3. 最後に、ピンヘッダ 2×20 (40P)を半田付けする方法です。半田付けが得意な方以外にはお勧めできません。 個人的な感想ですが、一般的なセンサモジュールなどよりも半田ごてで熱すべき時間が長く、かなり難易度が高いと思いました。

本書の演習の実行について

Pi Zero W 系の機種を用いて本書の演習を行う場合、注意が必要なのは下記となるでしょう。
  • 5.6 カメラのシャッターの演習:カメラモジュールを接続するための専用ケーブルが必要
  • 5.7 MP3ファイルの再生:オーディオジャックがないので、音声はHDMI経由のみでの出力となるでしょう
  • 6.5 音声のボリューム:同様に音声はHDMI経由のみとなるでしょう
  • 10.4 キャタピラ式模型へのカメラの搭載:カメラモジュールを接続するための専用ケーブルが必要
なお、カメラモジュールの専用ケーブルとは、例えば下記のものです。Pi Zero 用のものと Pi 5 用のものの両方が使えます。Pi 5 用のものの方がケーブルの長さを選べる点は便利ですが、ケーブル自体がやや硬いので、好みは分かれるでしょう。 Pi Zero 系の機種をセット販売で購入した場合は付属する場合があるようですので確認してください。 Pi Zero 用のケーブルで Pi Zero 2 W にカメラモジュールを取りつけた様子が下図です。
ケーブルを取り付ける際、金属が露出した端子面を、どちらも緑色の基板の方を向くようにします。基板上のカバーを引き出し、ケーブルを差し込んだ後でカバーを押し込むことでケーブルが固定されます。

10.4 節のカメラ付きキャタピラ式模型を Pi Zero 2 W で実現したのが下図の画像です。Pi Zero を用いるメリットは、模型に搭載する回路が若干コンパクトになることと、低消費電力のため Pi Zero に電源を供給するモバイルバッテリーの性能が低くても良いことです。ここでは、5V/1A のモバイルバッテリー(10年以上前に購入した Panasonic QE-PL102)を用いましたが、問題なく動作しました。ただし、Pi Zero 2 W は最大 2A の電流が流れるそうなので、もう少し良いモバイルバッテリーを用いた方が良かったかもしれません。


デスクトップやブラウザの利用に関する注意

本書で学習する場合、「デスクトップでブラウザで補足ページを開きコマンドなどをコピーしてターミナルに貼り付ける」というスタイルで学習するのが最も容易です。

しかし、Pi Zero 系の機種の計算能力では、ブラウザがまともに動作しないことが多いと思います。ページ表示の待ち時間が長く、十分な時間待ったとしてもページが表示されるとは限らない、というのが主な症状です。

さらに、そもそもグラフィックをもったデスクトップを利用すること自体、OS が新しくなるとともに厳しくなっています。
これらの問題は、 Pi Zero W 系の機種のメモリが少ないことが原因と思われます。

以上から、Pi Zero 系の機種ではブラウザの利用をあきらめ、 「ディスプレイ・マウス・キーボードを接続せずにRaspberry Piを利用する~SSH編」の解説に従い、 Windows や macOS から Raspberry Pi へターミナルソフトウェアでログインして利用する、という方法を用いるのが現実的です。 この方法を用いると、電子回路の制御には Pi Zero W 系の機種を用い、補足ページの閲覧は Windows や macOS を用い、コマンドの貼り付けはターミナルソフトウェア経由で行う、ということが可能になります。

とはいえ、この方法は Linux に慣れている人向けの方法です。ですから、Pi Zero W 系の機種は初心者向けとは言い難いところがあります。