より新しい情報
Raspberry Pi 5 が海外で発表され、それに対応した OS Bookworm がリリースされるに伴い、本ページの内容は古くなっています。下記の新しいページをご覧ください。 以下は、それ以前の古い情報を残しておいたものです。サンプルプログラムと回路配線図について
サンプルプログラム、回路配線図、応用PDFは下記のリンクからダウンロードしてください。 回路配線図の PDF と応用PDF は Raspberry Pi 上のブラウザでも見られますが、ブラウザ上の「↓」(ダウンロード)ボタンでダウンロードし、ファイルマネージャーで PDF ファイルを右クリックし「アプリケーションで開く」→「アクセサリ」→「ドキュメントビューア」などで開いてもよいでしょう。「選択したアプリケーションをこのファイルタイプのデフォルトのアクションとする」にチェックを入れればそのアプリケーションで開くのがデフォルト動作となります。
本ページで表示するコマンドの利用方法
本ページには、本書の演習を実行するために必要なコマンドを全て記し、さらに、本書への補足情報を記していきます。コマンドを本ページからコピーして実行することにより、書き写すことによるミスの恐れがなく確実に実行できます。本ページのコマンドをコピーにより活用するためには、まずRaspberry Pi上のブラウザ(Chromium)で本ページを開きます。
そして、コピーしたいコマンドをマウスでなぞり色を反転してください。その状態からそのコマンドをコピーするには下記の二つの方法のうちどちらかを実行してください。
- 色を反転した領域をマウスで右クリックして「コピー」を選択する
- キーボードの「Ctrl」キーを押しながら「c」キーを押す(Ctrl-c)
そして、コピーされたコマンドをターミナルソフトウェアに貼り付けるには、下記の三つの方法のうちどれかを実行してください。
- LXTerminalのメニューから「編集」→「貼り付け」を選択する
- LXTerminal上でキーボードの「Ctrl」キーと「Shift」キーを押しながら「v」キーを押す(Ctrl+Shift+v)
- LXTerminal上でマウスのホイールを押し込む(ただし、この方法は正確には「コピーされた文字を貼り付ける」のではなく「マウスで色が反転された文字を貼り付ける」という動作になります)
なお、複数のコマンドが複数行にわたって連続して書かれている場合、コピー、貼り付け、実行はコマンド一つごとに行ってください。
2章
p.29: OSインストール法の最新版について
OSである Raspberry Pi OS のインストールから設定の流れは、書籍執筆時から少しずつ変更されております。最新のインストールおよび設定方法は、 「Raspberry Piではじめる機械学習 補足情報」内にある「Raspberry PiへのOSのインストール方法」をご覧ください。本書2章と同等の内容をアップデートされた状態で見ることができますので、参考にしてください。
p.33, microSDカードの容量について
書籍では、容量が16GB以上のmicroSDカードを推奨しました。しかし、2023年10月にリリースされたOSでは、16GBでは容量が足りなくなることを確認しています。容量が32GB以上のmicroSDカードを用意して下さい。p.49, Raspberry Pi Zero W 系の機種に対する周辺機器の取り付け
Raspberry Pi Zero W 系の機種へ周辺機器を取り付けて電源を入れる方法は以下のページをご覧ください。3章
p.65, 秋月電子通商のパーツセット
本書用の秋月電子通商のパーツセットは、以下のリンク先で購入できます。5章
p.128, Bookworm (Raspberry Pi OS 2023-10-10 以降) および Bullseye (Raspberry Pi OS 2021-10-30 以降) でのカメラの利用について
Raspberry Pi OS 2023-10-10 からはじまったバージョン Bookworm およびRaspberry Pi OS 2021-10-30 からはじまったバージョン Bullseye では
カメラモジュールの利用方法に大きな変更が加えられ、libcamera というライブラリを用いるようになりました。 これは、本書でカメラを用いるプログラムは、そのままでは動かなくなるということを意味します。
ただし、Bullseye では「Legacy Camera」という、これまでと互換性のあるカメラの利用方法が可能になっています。この Lecgacy Camera を用いれば本書でカメラを用いるプログラムはそのまま動作しますが、 残念ながら Bookworm では Legacy Camera は削除されてしまいました。
以上を踏まえて現状をカメラの利用方法について整理すると、以下のようになります。将来を見据えると、最新の OS で「本書の演習を picamera2 (libcamera) で実行する方法」を使っていただくのが良いのではないかと思います。
32-bit 版 および 64-bit 版 Bookworm および Bullseye | 「本書の演習を picamera2 (libcamera) で実行する方法」で配布しているサンプルファイルを利用する。なお、2023年1月に発売された Camera Module v.3 はこの手法でしか使えません。 |
32-bit 版 Bullseye | Legacy Cameraモードを有効にした上で、本書付属のサンプルファイルをそのまま用いる。これが一番簡単。 |
64-bit 版 Bullseye | Legacy Cameraモードを有効にした上で、「本書の演習をウェブカメラで実行する方法」で配布しているサンプルファイルを利用する |
さて、上記の方法のうち、Bullseye で Legacy Camera モードを有効にする方法を用いる場合は、以下の方法で「Legacy Camera」のサポートを有効にする必要があります(デフォルトは無効です)。
ターミナルを開いて以下の手順に従うことで、raspi-config により Legacy Camera を有効にします。
- 「 sudo raspi-config 」を実行することで raspi-config を起動
- キーボードの「↓」キーを2回押し、「Interface Options」を選択してから「Enter」キーを押す
- 「I1 Legacy Camera Enable/Disable」があらかじめ選択されているので、「Enter」キーを押す
- 「Would you like to enable legacy camera support?」と聞かれるので「←」を一回押すことで「はい」を選択し、「Enter」キーを押す
- 「非推奨 (deprecated) であり将来サポートされない」という趣旨のことを言われるが、「了解」が選択された状態で「Enter」キーを押す
- raspi-configを起動した状態の画面に戻るので、「TAB」キーを二回クリックし、「Finish」を選択した状態で「Enter」キーを押す
- 再起動を促されるので、「はい」が選択された状態で「Enter」キーを押す
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のバージョンにより異なります。<2023-10-10版以降の Raspberry Pi OS をご利用の場合(Bookworm)>
もし、デフォルトでピンジャックから音が出ていない場合、以下の指示に従ってください。なお、raspi-config コマンドを実行中は、キーボードの Esc キーが「戻る」に対応しますので、困ったら Esc キーを何度か押してみると良いでしょう。- ターミナルで「 sudo raspi-config 」コマンドを実行し、設定画面を開く
- キーボードの「↓」キーを五回押し、「6 Advanced Options」にフォーカスを合わせる
- キーボードの「Enter」キーを押し、「6 Advanced Options」に入る
- キーボードの「↓」キーを六回押し、「A7 Audio Config」にフォーカスを合わせる
- キーボードの「Enter」キーを押し、「A7 Audio Config」に入る
- キーボードの「上」キーを一回押し、「1 PulseAudio」にフォーカスを合わせる
- キーボードの「Enter」キーを押し、「1 PulseAudio」を選択する
- キーボードの「Enter」キーを押し、「了解」を選択する
- キーボードの「TAB」キー二回を押し、「Finish」にフォーカスを合わせる
- キーボードの「Enter」キーを押すと、再起動され設定が有効になる
<2020-12-02版およびそれ以降の Raspberry Pi OS をご利用の場合(Bullseye)>
2020-12-02版およびそれ以降の Raspberry Pi OS をご利用で、なおかつイヤフォンジャックから音が鳴らない場合、raspi-configというコマンドで音声の出力先をイヤフォンジャックに切り替えます。 以下の手順に従ってください。- ターミナルで「 sudo raspi-config 」コマンドを実行し、設定画面を開く
- キーボードの「Enter」キーを押し、「1 System Options」に入る
- キーボードの「↓」キーを一回押し、「S2 Audio」にフォーカスを合わせる
- キーボードの「Enter」キーを押し、「S2 Audio」の設定画面に入る
- キーボードの「↓」キーを一回押し、「1 Headphones」にフォーカスを合わせる
- キーボードの「Enter」キーを押し、「1 Headphones」を選択する
- キーボードの「TAB」キー二回を押し、「Finish」にフォーカスを合わせる
- キーボードの「Enter」キーを押し、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 用の回路の配線図を参考にしてください。なお、「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なお、(6) のコマンド終了後に 「Do you want to access WebIOPi over Internet ? [y/n]」 という質問が出た場合は、キーボードの n をタイプして Enter するのでした(現在はこの質問は出ません)。
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/
このIPアドレスの指定を簡単化する方法をPDFの付録Eに記しましたが、ここにも記しておきます。
以下の環境では、IPアドレスを用いずに「raspberrypi.local」のような名前でRaspberry Piにアクセスできます。
- iTunesをインストールしたWindows(iTunesに含まれるBonjourというアプリケーションが必要なためです)
- macOS
- iPhoneやiPad
- http://raspberrypi.local:8000/bb/01/
p.241, サンプルファイルを WebIOPi のフォルダにコピーするコマンド
このコマンドを実行し忘れると、9章、10章の演習を実行できませんので確実に実行しましょう。 2つのコマンドがありますので、 1つずつ順番に実行してください。サンプルファイルが存在するフォルダで実行する必要がありますので、サンプルファイルを bluebacks フォルダに保存した方は、事前に「cd bluebacks」コマンドを実行しておく必要があります。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章の演習を実行できません。具体的には、記述間違いにより WebIOPi が起動しなくなります。そのため、コピー&貼り付けにより確実に記述するのが良いでしょう。myscript = /usr/share/webiopi/htdocs/bb/01/script.pyなお、この行を記述した後に WebIOPi が起動しなくなった場合、行の記述し間違い以外には、
- サンプルファイルを /usr/share/webiopi/htdocs ディレクトリにコピーしていない
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 の「exit 0」の行の上に記入するコマンド
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 の「exit 0」の行の上に記入するコマンド
末尾の「&」も忘れずにコピーしましょう。python3 /home/pi/10-01-sw-poweroff.py &上と同様に、「pi」は自分のユーザー名に置き換えてください。
なお、サンプルファイルを bluebacks ディレクトリに展開した方の場合、記入する行は以下です。
python3 /home/pi/bluebacks/10-01-sw-poweroff.py &上と同様に、「pi」は自分のユーザー名に置き換えてください。
p.292:キャタピラ式模型のメンテナンス
キャタピラ式模型を長く使っていると、だんだん動作が安定しなくなってくることがあります。例えば「右のキャタピラは正常動作するが、左はなかなか動かない」などです。もちろん、「ジャンパーワイヤーが抜けていないか」など、回路の配線をまずはチェックすべきです。 しかし回路の配線に問題がなかった場合、どこに注意してメンテナンスすべきかを以下に記します。上から順にチェックしていきましょう。
- 電池の残量不足ではないかチェック:基本ではありますが、まずはここからチェックしましょう。
- ジャンパワイヤのチェック:ジャンパワイヤの抜き差しをする際、持ち手ではなくケーブルを引っ張ることを繰り返すと中で断線することがあります。断線したかどうかは外から見ただけではわかりません。断線が疑われるジャンパワイヤは捨ててしまった方がよいでしょう。
- モーターの軸が空回りしていないかチェック:モーターの軸にはピニオンギアが取り付けられています。ピニオンギアが劣化してゆるくなり、モーターの軸が空回りすることがしばしば起こります。これはモーターをギアボックスから取り外してみないとわかりません。ピニオンギアがゆるくなっていた場合、「AO-7005 8Tピニオンセット白(10個)」などを購入して交換しましょう。
- ギアボックスで空回りしているシャフトがないかチェック:ギアボックスの作成の際、イモネジを六角レンチで締めてシャフトを固定している部分があります。そこが緩んで空回りしていないかチェックしましょう。
- ブレッドボードのチェック:ブレッドボードを長くつかっていると、なんらかの理由でブレッドボード内部の抵抗が大きくなりモーターがあまり回転しなくなることがあります。筆者は複数回そのような経験をしています。安価なもので良いのでテスターを購入すると内部の抵抗の大きさをチェックできます。内部の抵抗が大きく計測されたブレッドボードは消耗品と考えて捨ててしまった方がよいでしょう。
- モーターのチェック:上のどの問題にも該当しなかった場合、モーターに問題がある可能性があります。新品の「AO-1001 FA-130タイプノーマルモーター」を購入して交換してみるのも手です。
- モータードライバーのチェック:上のどの問題にも該当しなかった場合、モータードライバに問題がある可能性があります。新品のモータードライバーを購入して交換してみるのも手です。
p.293, mjpg-streamer のインストールコマンド
mjpg-streamer のインストールコマンドは下記の通りです。全てのコマンドが長いので、一つずつ順番にコピーして確実に実行していきましょう。ただし、Bookworm や Bullseye を用いていて、libcamera 対応の mjpg-streamer をインストールする場合は、ここで紹介するコマンドではなく、「本書の演習を picamera2 (libcamera) で実行する方法」で紹介するコマンドを実行する必要がありますのでページを移動してください。
さて、ここで紹介するコマンドは、libcamera を用いない場合すなわち、Bullseye の Legacy Camera モードでカメラを利用する場合です。 コピーの際、先頭の「(1)」、「(2)」などの数字を含めないよう注意してください。
(1) sudo apt update (2) sudo apt install libjpeg-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なお、古い OS を用いている方は、(2) のコマンドを
(2) sudo apt install libjpeg8-dev cmakeに変更しなければならいない場合があります。
また、 Bullseye を用いている方は、本ページの 「p.128, Bookworm (Raspberry Pi OS 2023-10-10 以降) および 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 の「exit 0」の行の上に記入するコマンド
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, 日本語入力ソフトウェアのインストールコマンド
日本語入力ソフトウェアのインストールについて、これまで本書では ibus-mozc のインストールをお勧めしてきましたが、OS の更新に伴い メニューバー上での挙動がおかしい、などの不具合が増えてきましたので、 別のソフトウェアである fcitx-mozc に切り替えた方が良いかもしれません。まず、インストール済の ibus-mozc を削除するには以下のコマンドを実行します。
sudo apt remove ibus-mozc ibusその後 Raspberry Pi を再起動することで ibus-mozc の削除が完了します。
そして、fcitx-mozc のインストールは下記のコマンドで行います。
sudo apt update sudo apt install fcitx-mozc再起動後、半角/全角キーや Ctrl+スペースキーにより、日本語入力をオンオフできます。
p.313, 日本語フォントのインストールコマンド
sudo apt install fonts-vlgothic
補足PDF
PDF9, 06-03-volume.py で音声のボリュームを変更する
プログラム 06-03-volume.py で音声のボリュームを変更する場合、音声出力先や、用いているOSのバージョンにより方法が異なりますので以下の指示に従ってください。<2022年 9 月以降の Raspberry Pi OS をご利用の場合>
2022年 9 月以降の 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]これを以下のように変更して保存して下さい。「numid=1」の部分を「numid=3」に変更しています。
args = ['amixer','-q','cset','numid=3',vol] #args = ['amixer','-q','-c1','cset','numid=1',vol]以上で、06-03-volume.py によりボリュームを変更可能になります。
<2020-12-02版から 2022年春までの Raspberry Pi OS をご利用の場合>
2020-12-02版から 2022年春までの 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 の「exit 0」の行の上に記すコマンド
末尾の「&」も忘れずにコピーしましょう。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 のバッテリーを用意しました