2021年4月4日日曜日

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

はじめに

本ページは、2020年6月に発売された金丸隆志著「カラー図解 最新 Raspberry Piで学ぶ電子工作」(講談社ブルーバックス)の補足情報をまとめるためのページです。

サンプルファイルや回路の配線図、応用PDFなどは下記のページから入手してください。

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

その他の補足情報

カメラモジュールを用いる演習をウェブカメラで実行したい方は以下のページをご覧ください。

2021年1月に発表された Raspberry Pi Pico で電子工作してみたい方は以下のページをご覧ください。

職場や学校などで、プロキシ(Proxy)環境下で Raspberry Pi を使う方は以下のページをご覧ください。

なお、下記は本書の旧版用の補足情報ですが、本書をご利用の方にもお役に立つと思います。

感想やレビューなど

最後に、読者の方々の感想などを下記にまとめます。

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

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

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

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

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

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

2章

p.44, Raspberry Pi Imagerのダウンロードサイトのデザイン変更

図2-8にて示されているRaspberry PiのOSのダウンロードサイトは、以下のようにデザインが変更されています。
本ページではWindowsを用いたインストール法を解説しますので、「Download for Windows」をいうリンクをクリックして Raspberry Pi Imagerをダウンロードします。

p.44, Raspberry Pi Imagerのインストール用ファイルのファイル名変更

執筆時は、Raspberry Pi Imager のインストール用ファイルの名称は imager.exe でしたが、現在は例えば imager_1.4.exe のように imager_(バージョン番号).exe に変わっています。ただし、ファイルの名称以外は書籍の解説がそのまま当てはまりますので問題ありません。

p.49, Raspberry Pi Imagerによるインストールが失敗する場合

職場や学校の環境ではネットワークアクセスの制限により Raspberry Pi Imager による OS のインストールに失敗することがあります。そのような場合、下記のページの方法を試してみてください。

p.45, Raspberry Pi Imagerの日本語化について

p.45の図2-10にRaspberry Pi Imagerの画面が示されています。現在、このRaspberry Pi Imager上の語句の一部が日本語化されており、書籍と異なっています。書籍上の表記が現在どう表記されているか、以下に記しておきます。
  • Operating System → OS
  • CHOOSE OS → OSを選ぶ
  • SD Card → ストレージ
  • CHOOSE SD CARD → ストレージを選ぶ
  • WRITE → 書き込む

p.49, 64-bit 版 OS について

2022年2月より、64-bit 版 OS も Raspberry Pi Imager からインストール可能になっています。しかし、64-bit 版 OS ではカメラモジュールを用いる本書の演習の実行がやや面倒になります(詳細は本ページp.128の注釈)。そのため、64-bit 版 OS ではなく 32-bit 版 OS をインストールすることを推奨します。

p.49, Raspberry Pi Zero WH に対する周辺機器の取り付け

Raspberry Pi Zero WH へ周辺機器を取り付けて電源を入れる方法は以下のページをご覧ください。

p.52, ディスプレイがRaspberry Pi 4と相性が悪い場合の対処法

OS をインストールした microSD カードを挿入して Raspberry Pi 4に 電源を入れてもディスプレイに映像が映らない場合、Raspberry Pi 4 とディスプレイの相性が悪い問題に該当しているかもしれません。そのような場合、下記のページの方法を試してみてください。

p.52, 設定ウィザードの見た目の違い

p.52の図2-16では設定ウィザードの起動画面を紹介しています。2022年4月にリリースされた新OSでは、この見た目が若干変更されていますが、基本的にはおなじものですので、そのまま書籍の指示に従って設定を続けて構いません。

p.53, パスワードの変更画面の変更

p.53の図2-18では、デフォルトユーザー「pi」のデフォルトパスワード「raspberry」を変更する画面について解説しています。

しかし、2022年4月にリリースされた新しい OS ではセキュリティの観点からデフォルトユーザー pi は廃止されました。 そのため、図2-18に相当する画面では、下記の3つの入力を求められるようになりました。
  • 新しく作成するユーザー名
  • そのユーザーで用いる新しいパスワード
  • 確認のため新パスワードをもう一回入力
ここで決めなければならないユーザー名は、このRaspberry Pi上でのみ用いるものですから、他人のユーザー名とかぶることを心配する必要はありません。
アルファベットと数字からなる、シンプルなユーザー名とするのがよいでしょう。記号には、使えない文字もあるので注意が必要です。私の場合だったら「kanamaru」などとします。

入力が終わったら次の画面に進みましょう。

p.57, 設定ウィザード終了時の再起動

設定ウィザード終了時の画面(図2-23)の「Restart」ボタンは、OSのバージョンによっては「Done」ボタンとなっております。その場合、クリックしても再起動が始まりません。 自動で再起動が行われない場合、デスクトップ左上のメニューから「Shutdown」→「Reboot」と辿って再起動しましょう。再起動しないと画面上の文字が日本語になりません。

p.61, OS削除の表記

Raspberry Pi Imager上の語句の一部が日本語化されたため、OS削除の際の表記が書籍と異なっています。書籍上の表記が現在どう表記されているか、以下に記しておきます
  • Operating System → OS
  • CHOOSE OS → OSを選ぶ
  • Erase → 削除
  • WRITE → 書き込む

3章

p.65, 秋月電子通商のパーツセット

本書用の秋月電子通商のパーツセットは、以下のリンク先で購入できます。
下記のように、書籍とパーツのセットもあります。

5章

p.128, Bullseye (Raspberry Pi OS 2021-10-30 以降) でのカメラの利用について

Raspberry Pi OS 2021-10-30 からはじまったバージョン Bullseye ではカメラモジュールの利用方法に大きな変更が加えられました。 そのため、Bullseye にてカメラを利用するには、以下の方法で「Legacy Camera」のサポートを有効にする必要があります。

まず、Raspberry Pi OS 2021-10-30 をお使いのかたは、以下の2つのコマンドを順に実行することで OS を最新にする必要があります。それより新しいOSを利用している方は更新の必要はありません。
sudo apt update
sudo apt dist-upgrade
必要に応じてキーボードで「y」をタイプして「Enter」キーを押すことで、アップデートが進行します。終わったら、Raspberry Pi を再起動してください。

その後、ターミナルを開いて以下の手順に従うことで、raspi-config により Legacy Camera を有効にします。
  1. 「 sudo raspi-config 」を実行することで raspi-config を起動
  2. キーボードの「↓」キーを2回押し、「Interface Options」を選択してから「Enter」キーを押す
  3. 「I1 Legacy Camera Enable/Disable」があらかじめ選択されているので、「Enter」キーを押す
  4. 「Would you like to enable legacy camera support?」と聞かれるので「←」を一回押すことで「はい」を選択し、「Enter」キーを押す
  5. 「非推奨 (deprecated) であり将来サポートされない」という趣旨のことを言われるが、「了解」が選択された状態で「Enter」キーを押す
  6. raspi-configを起動した状態の画面に戻るので、「TAB」キーを二回クリックし、「Finish」を選択した状態で「Enter」キーを押す
  7. 再起動を促されるので、「はい」が選択された状態で「Enter」キーを押す
以上で、カメラモジュールを利用した演習を実行できるようになります。
なお、2022年2月からは、Bullseye の 64-bit 版も正式にインストール可能になっていますが、64-bit 版 OS では本書のカメラモジュールを用いる演習を実行するのはやや面倒です。32-bit 版 OS を利用することを推奨します。 詳細は、以下のようになっています。
32-bit 版 BullseyeLegacy Cameraモードをオンにした上で、本書付属のサンプルファイルを用いる
64-bit 版 BullseyeLegacy Cameraモードをオンにした上で、「本書の演習をウェブカメラで実行する方法」で配布しているサンプルファイルを利用する


p.129, Raspberry Pi Zero WH にカメラモジュールを取り付ける方法

Raspberry Pi Zero WH にカメラモジュールを取り付ける方法以下のページをご覧ください。

p.132, コマンドプロンプトの表記

p.132ではコマンドプロンプトの表記として以下を紹介しました。
pi@raspbberrypi:~ $
ここに見える「pi」はユーザー名を表しており、ユーザー名「pi」は2022年4月以前の古いOSで用いられていたデフォルトのユーザー名です。最新のOSを用いている方ならば、「pi」の部分に自分で決めたユーザー名が表示されているでしょう。

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

以下のコマンドは、インストール可能なソフトウェアのリストを更新します。
sudo apt update
以下のコマンドで、mplayerをインストールします。
sudo apt install mplayer
途中で「続行しますか?」や「検証なしにこれらのパッケージをインストールしますか?」と質問された場合、それぞれで[y]をタイプしたあと[Enter]キーを押して続行しましょう。

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

プログラムの存在するディレクトリ(フォルダ)で以下のコマンドを実行すると、test.mp3 というサンプル音声を再生することができます。音が鳴らない場合は引き続き以下もお読みください。
mplayer test.mp3
なお、サンプルプログラムを bluebacks ディレクトリ(フォルダ)に保存した場合は、上記コマンドを実行する前に以下のコマンドを実行して bluebacks ディレクトリ内に移動する必要があります。
cd bluebacks

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

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

<2020-12-02版およびそれ以降の Raspberry Pi OS をご利用の場合>

2020-12-02版およびそれ以降の Raspberry Pi OS をご利用で、なおかつイヤフォンジャックから音が鳴らない場合、raspi-configというコマンドで音声の出力先をイヤフォンジャックに切り替えます。恐らく今後はこの方法が主流となるでしょう。
以下の手順に従ってください。

ターミナルで下記のコマンドを実行してください。
sudo raspi-config
すると、下図のような設定画面が開きます。
上の画面上で、キーボードの「Enter」キーを押すことで、以下の「1 Systems Option」の設定画面に入ります。
上の画面上でキーボードの「↓」キーを一回押すことで、下図のように「S2 Audio」にフォーカスを合わせ、「Enter」キーを押すことで「S2 Audio」の設定画面に変わります。
下図が「S2 Audio」の設定画面です。
上の画面上でキーボードの「↓」キーを一回押すことで、下図のように「1 Headphones」にフォーカスを合わせ、「Enter」キーを押すことでヘッドフォン(つまりイヤフォンジャック)を出力先にします。
すると下図のように「sudo raspi-config」実行直後の画面に戻ります。
上の画面上で「TAB」キーを二回押すことで、下図のように「Finish」にフォーカスが合います。そこで「Enter」キーを押すことで、「sudo raspi-config」による設定が終了します。
以上で、下記コマンドで
mplayer test.mp3
イヤフォンジャックから音声が出るようになります。

<2020-5-27版および2020-8-20版の Raspberry Pi OS をご利用の場合>

次は、2020-5-27版および2020-8-20版の Raspberry Pi OS をご利用の場合で、なおかつイヤフォンジャックから音が鳴らない場合です。 音声を再生するコマンドを以下に変えるとイヤフォンジャックから音が鳴ります。 「-ao alsa:device=hw=1,0」が「イヤフォンジャックからの再生」を意味します。「-ao alsa:device=hw=0,0」なら「HDMIからの再生」です。
mplayer -ao alsa:device=hw=1,0 test.mp3

<2020年2月までの Raspbian をご利用の場合>

2020年2月までの Raspbian をご利用の場合、ターミナルで一度以下のコマンドを実行すると、以後「mplayer test.mp3」コマンドでイヤフォンジャックから音が鳴るようになります。
amixer cset numid=3 1
なお、末尾の「1」がイヤフォンジャックからの音声出力を意味し、「0」なら自動認識、「2」ならHDMIからの音声出力を意味します。

p.134, 05-05-sw-mp3.pyをイヤフォンジャックからの音声出力で実行する

プログラム 05-05-sw-mp3.py をイヤフォンジャックからの音声出力で実行したい場合の補足です。 やはり、OSのバージョンにより方法が異なります。

<2020-12-02版およびそれ以降の Raspberry Pi OS、または2020年2月までの Raspbian をご利用の場合>

2020-12-02版およびそれ以降の Raspberry Pi OS、または2020年2月までの Raspbian をご利用の場合、上で行った「イヤフォンジャックから音を鳴らす設定」を行っていれば、 デフォルトのままの 05-05-sw-mp3.py で音を鳴らすことができます。「デフォルトのままの 05-05-sw-mp3.py 」とは、 12、13行目が以下の状態になっているものです。
            args = ['mplayer', 'test.mp3']
            #args = ['mplayer', '-ao', 'alsa:device=hw=1,0', 'test.mp3']

<2020-5-27版および2020-8-20版の Raspberry Pi OS をご利用の場合>

2020-5-27版および2020-8-20版の Raspberry Pi OS をご利用の場合、プログラム 05-05-sw-mp3.py に対して以下を実行してください。

まず、Thonny でプログラムを開くと、12、13行目に以下の行が見つかります。
            args = ['mplayer', 'test.mp3']
            #args = ['mplayer', '-ao', 'alsa:device=hw=1,0', 'test.mp3']
一つ目の行が実際に実行される行であり、二つ目の行は「#」があるので無効な行です。これを、以下のように「#」の有無が逆になるよう編集してファイルを保存してください。
            #args = ['mplayer', 'test.mp3']
            args = ['mplayer', '-ao', 'alsa:device=hw=1,0', 'test.mp3']
以上により、2020-5-27版および2020-8-20版の Raspberry Pi OS で 05-05-sw-mp3.py をイヤフォンジャックからの音声出力で実行できるようになります。

6章

p.144:半固定抵抗の回転の向きについて

本書では、半固定抵抗として秋月電子通商の「半固定ボリューム 10kΩ」を用いて解説をしています(パーツセットに含まれるものです)。

半固定抵抗は、製品の種類によって、AD変換により得られた値が大きくなる回転の向きが異なることがあります。

そのような場合、下図のように、3.3VとGNDへの接続を逆にすると良いでしょう。

7章

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

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

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

ターミナルから 07-02-LCD.py を実行するコマンドは以下の通りです。付録C.3「タブによる補完」を学ぶと、ターミナルでのプログラムの実行が格段に楽になりますので興味のある方は参考にしてください。
python3 07-02-LCD.py
なお、サンプルプログラムを bluebacks ディレクトリに保存した場合は、上記コマンドを実行する前に以下のコマンドを実行して bluebacks ディレクトリ内に移動する必要があります。
cd bluebacks

p.179, LCD へ文字を表示するプログラムをコマンドライン引数つきで実行するコマンド

python3 07-02-LCD.py 'test'

8章

p.203, 用いるモータードライバ

本書では「DRV8835使用ステッピング&DCモータドライバモジュール」というモータードライバを用います。 本書のパーツセットを購入する際、本書の旧版用のパーツセットを購入してしまうと、 TA7291P というモータードライバが同梱されています。手元にこのモータードライバしかないという場合、 「旧版との違いについて」ページにある TA7291P 用の回路の配線図を参考にしてください。

なお、2021年6月現在、「DRV8835使用ステッピング&DCモータドライバモジュール」の単体での入手が難しい状況が続いています。 このモータードライバが同梱された本書のパーツセットは入手可能ですので、そちらを購入された方は利用できます。
単体でのモータードライバはいずれ入荷されると聞いていますので、必要な方は少々お待ちください。

p.217, pigpiod の開始・停止・再起動コマンド

pigpiod の開始・停止・再起動コマンドはそれぞれ以下の通りですので、必要なコマンドをコピーしてご利用ください。
sudo service pigpiod start
sudo service pigpiod stop
sudo service pigpiod restart

9章

p.228, WebIOPi のインストールコマンド

WebIOPi のインストールコマンドは下記の通りです。全てのコマンドが長いので、一つずつ順番にコピーして確実に実行していきましょう。なおコピーの際、先頭の「(1)」、「(2)」などの数字を含めないよう注意してください。
(1) wget http://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz
(2) tar zxf WebIOPi-0.7.1.tar.gz
(3) cd WebIOPi-0.7.1/
(4) wget https://raw.githubusercontent.com/neuralassembly/raspi2/master/webiopi-pi2bplus.patch
(5) patch -p1 -i webiopi-pi2bplus.patch
(6) sudo ./setup.sh
WebIOPi のインストールが終了したらそのまま以下の 2 つのコマンドも一つずつコピー&貼り付けにより確実に実行しましょう。
(1) wget https://raw.githubusercontent.com/neuralassembly/raspi2/master/webiopi.service
(2) sudo mv webiopi.service /etc/systemd/system/
なお、一度 WebIOPi のインストールに失敗するなどして、もう一度やり直したい場合、以下の 2 つのコマンドをコピー&貼り付けにより順番に実行し、WebIOPi のファイルを一度削除してからインストールコマンドを再実行しましょう。
(1) sudo rm -f WebIOPi-0.7.1.tar.gz
(2) sudo rm -rf WebIOPi-0.7.1

p.230, WebIOPi の起動コマンド

sudo service webiopi start

p.230, WebIOPi が起動されているか確認するためのコマンド

ps ax |grep webiopi 

p.231, WebIOPi の停止コマンド

sudo service webiopi stop

p.232, WebIOPi を自動起動するためのコマンドとその解除コマンド

sudo systemctl enable webiopi
sudo systemctl disable webiopi

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

ifconfig

p.234:IPアドレスでのURLの指定について

本書では、ブラウザからRaspberry Piにアクセスする際に、ルーターなどからRaspberry Piに割り振られたIPアドレスを用いました。すなわち、IPアドレスが192.168.1.3の場合にブラウザから例えば下記のようにアクセスしました。
  • http://192.168.1.3:8000/bb/01/
しかし、この方法はifconfigコマンドなどで事前にIPアドレスを調べておく必要があり、やや面倒でした。
このIPアドレスの指定を簡単化する方法をPDFの付録Eに記しましたが、ここにも記しておきます。

以下の環境では、IPアドレスを用いずに「raspberrypi.local」のような名前でRaspberry Piにアクセスできます。
  • iTunesをインストールしたWindows(iTunesに含まれるBonjourというアプリケーションが必要なためです)
  • macOS
  • iPhoneやiPad
上記の環境では、ブラウザのアドレス欄に例えば下記のように入力すればIPアドレスを用いずにアクセスできます。
  • http://raspberrypi.local:8000/bb/01/
これは、Raspberry Pi OS上で動作しているavahiというソフトウェアの働きによります。

p.241, サンプルファイルを WebIOPi のフォルダにコピーするコマンド

このコマンドを実行し忘れると、9章、10章の演習を実行できませんので確実に実行しましょう。2つのコマンドがありますので、1つずつ順番に実行してください。
sudo chown -R $USER /usr/share/webiopi/htdocs
cp -r 09-samples/bb /usr/share/webiopi/htdocs

p.242, WebIOPi の設定ファイルを管理者権限のテキストエディタで開くコマンド

sudo mousepad /etc/webiopi/config
なお、NOOBS 3.2.1 (Raspbian 2019-09-26) より前の OS ではテキストエディタとしてleafpadではなくmousepadを用います。
sudo leafpad /etc/webiopi/config

p.243, WebIOPi のパスワードを変更するためのコマンド

sudo webiopi-passwd

p.245, WebIOPi の設定ファイルに追加する内容

こちらの記述も、間違えると9章、10章の演習を実行できませんので、コピー&貼り付けにより確実に記述しましょう。
myscript = /usr/share/webiopi/htdocs/bb/01/script.py

10章

p.287, /etc/rc.local を管理者権限のテキストエディタで開くコマンド

sudo mousepad /etc/rc.local
なお、NOOBS 3.2.1 (Raspbian 2019-09-26) より前の OS ではテキストエディタとしてleafpadではなくmousepadを用います。
sudo leafpad /etc/rc.local

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

python3 /home/pi/07-02-LCD.py $_IP
なお、2022年4月にリリースされた OS よりデフォルトユーザー pi は廃止されています。そのため、上のコマンドの pi の部分は、皆さんが作成したユーザー名で置き換変える必要があります。すなわち、「kanamaru」というユーザーを作成したのなら、「python3 /home/kanamaru/07-02-LCD.py $_IP」となる、ということです。

また、サンプルファイルを bluebacks ディレクトリに展開した方の場合、記入する行は以下です。
python3 /home/pi/bluebacks/07-02-LCD.py $_IP
上と同様に、「pi」は自分のユーザー名に置き換えてください。

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

末尾の「&」も忘れずにコピーしましょう。
python3 /home/pi/10-01-sw-poweroff.py &
上と同様に、「pi」は自分のユーザー名に置き換えてください。

なお、サンプルファイルを bluebacks ディレクトリに展開した方の場合、記入する行は以下です。
python3 /home/pi/bluebacks/10-01-sw-poweroff.py &
上と同様に、「pi」は自分のユーザー名に置き換えてください。

p.293, mjpg-streamer をインストールコマンド

mjpg-streamer のインストールコマンドは下記の通りです。全てのコマンドが長いので、一つずつ順番にコピーして確実に実行していきましょう。なおコピーの際、先頭の「(1)」、「(2)」などの数字を含めないよう注意してください。
(1) sudo apt update
(2) sudo apt install libjpeg8-dev cmake
(3) git clone https://github.com/neuralassembly/mjpg-streamer.git
(4) cd mjpg-streamer/mjpg-streamer-experimental
(5) make
(6) cd
(7) sudo mv mjpg-streamer/mjpg-streamer-experimental /opt/mjpg-streamer
なお、最新の Raspberry Pi OS Bullseye を用いている方は、(2) のコマンドを
(2) sudo apt install libjpeg-dev cmake
に変更してください。さらに、 Bullseye を用いている方は、本ページの 「p.128, Bullseye (Raspberry Pi OS 2021-10-30 以降) でのカメラの利用について」の項目を参考に、Legacy Camera モードを有効にする必要がありますのでその点もご注意ください。 さらに、64-bit版 Bullseye を用いている方は、実行時に「本書の演習をウェブカメラで実行する方法」で配布しているサンプルファイル内の 10-02-stream-webcam.sh を用いる必要があります。

また、一度 mjpg-streamer のインストールに失敗するなどして、もう一度やり直したい場合、以下の 2 つのコマンドをコピー&貼り付けにより順番に実行し、mjpg-streamer のファイルを一度削除してからインストールコマンドを再実行しましょう。
(1) sudo rm -rf /opt/mjpg-streamer
(2) rm -rf mjpg-streamer

p.294, mjpg-streamer の自動実行のために /etc/rc.local に記入するコマンド

sh /home/pi/10-02-stream.sh
なお、2022年4月にリリースされた OS よりデフォルトユーザー pi は廃止されています。そのため、上のコマンドの pi の部分は、皆さんが作成したユーザー名で置き換変える必要があります。すなわち、「kanamaru」というユーザーを作成したのなら、「sh /home/kanamaru/10-02-stream.sh」となる、ということです。

また、サンプルファイルを bluebacks ディレクトリに展開した方の場合、記入する行は以下です。
sh /home/pi/bluebacks/10-02-stream.sh
上と同様に、「pi」は自分のユーザー名に置き換えてください。

付録

p.308, サンプルファイルの展開先(図B-4)

/home/pi/bluebacks
なお、2022年4月にリリースされた OS よりデフォルトユーザー pi は廃止されています。そのため、上の記述の pi の部分は、皆さんが作成したユーザー名で置き換変える必要があります。すなわち、「kanamaru」というユーザーを作成したのなら、「/home/kanamaru/bluebacks」となる、ということです。

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

set tabsize "4"
set tabstospaces

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

set expandtab
set tabstop=4
set softtabstop=4
set shiftwidth=4

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

sudo apt update
sudo apt install ibus-mozc

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

sudo apt install fonts-vlgothic

補足PDF

PDF9, 06-03-volume.py で音声のボリュームを変更する

プログラム 06-03-volume.py で音声のボリュームを変更する場合、音声出力先や、用いているOSのバージョンにより方法が異なりますので以下の指示に従ってください。

<2020-12-02版およびそれ以降の Raspberry Pi OS をご利用の場合>

2020-12-02版およびそれ以降の Raspberry Pi OS をご利用の場合、音声出力先がHDMI、イヤフォンジャックのどちらの場合も、ファイル 06-03-volume.py の変更が必要となります。

まず、イヤフォンジャックから音声を出力したい場合、本ページ「p.134, 音声の出力先を変更する方法」の方法に基づき、音声の出力先をイヤフォンジャックに変更して下さい。HDMI経由で音声出力したい場合はデフォルトのままで構いません。
すると、音声の出力先がどちらであっても、以下のデフォルトのコマンドで音声が鳴ります。
mplayer test.mp3
また、音声の出力先がどちらであっても、06-03-volume.py に対して変更が必要になります。Thonny でプログラムを開くと 57、58行目に以下の行が見つかります。
            args = ['amixer','-q','cset','numid=1',vol]
            #args = ['amixer','-q','-c1','cset','numid=1',vol]
これを以下のように変更して保存して下さい。元からあった行に「#」をつけて無効化し、その上に一行追加しています。
            args = ['amixer','-q','-D','pulse','set','Master',vol]
            #args = ['amixer','-q','cset','numid=1',vol]
            #args = ['amixer','-q','-c1','cset','numid=1',vol]
以上で、06-03-volume.py によりボリュームを変更可能になります。

<2020-5-27版および2020-8-20版の Raspberry Pi OS をご利用の場合>

2020-5-27版および2020-8-20版の Raspberry Pi OS で音声出力先をイヤフォンジャックにしたい場合、 書籍に記述してある通りに実行します。すなわち、音声再生コマンドを以下のコマンドに置き換えるのでした。
mplayer -ao alsa:device=hw=1,0 test.mp3
そして、06-03-volume.py に対しては、変更が必要となるのでした。Thonny でプログラムを開くと、57、58行目に以下の行が見つかります。
            args = ['amixer','-q','cset','numid=1',vol]
            #args = ['amixer','-q','-c1','cset','numid=1',vol]
一つ目の行が実際に実行される行であり、二つ目の行は「#」があるので無効な行です。これを、以下のように「#」の有無が逆になるよう編集してファイルを保存してください。
            #args = ['amixer','-q','cset','numid=1',vol]
            args = ['amixer','-q','-c1','cset','numid=1',vol]
以上で、06-03-volume.py によりボリュームを変更可能になります。

PDF 11, デジタル温度計の自動実行のために /etc/rc.local に記すコマンド

末尾の「&」も忘れずにコピーしましょう。
python3 /home/pi/07-03-LCD-temp.py &
なお、2022年4月にリリースされた OS よりデフォルトユーザー pi は廃止されています。そのため、上のコマンドの pi の部分は、皆さんが作成したユーザー名で置き換変える必要があります。すなわち、「kanamaru」というユーザーを作成したのなら、「python3 /home/kanamaru/07-03-LCD-temp.py &」となる、ということです。

また、サンプルファイルを bluebacks ディレクトリに展開した方の場合、記入する行は以下です。
python3 /home/pi/bluebacks/07-03-LCD-temp.py &
上と同様に、「pi」は自分のユーザー名に置き換えてください。

PDF 29, DCモーターとサーボモーターを同時に使うとサーボモーターが不安定になる場合(図10-13)

図10-13のようにDCモーターとサーボモーターを同時に使うとサーボモーターが不安定になる場合があります。

これは、DCモーターの回転により発生するノイズがサーボモーターに影響を与えているためです。この問題に対する簡単な対処法は、下図のように サーボモーターの電源用配線を、Raspberry Pi の 5V ピンに接続することです。
このような接続をすると、今度はサーボモーターの負荷により Raspberry Pi が不安定になる可能性がありますが、以下の条件が満たされれば Raspberry Pi は安定して動作します。
  • サーボモーターにあまり大きな負荷をかけない。この演習の例では、Raspberry Pi のカメラモジュールという軽いものを動かすだけなので問題にはなりにくいでしょう
  • Raspberry Piを動作させるためのモバイルバッテリーの流せる電流量(「A」や「mA」で表示されているもの)が大きい。筆者は Raspberry Pi 4 に対して 3.0 A のバッテリーを用意しました
なお、この DC モーターによるノイズの問題に関しては、本書p.213の図8-12のように、DCモーターに3つのコンデンサを取り付けることでも改善が期待できます。

読者の方々の声

本ページでは、読者の方々の感想などをご紹介したいと思います。