2018年12月30日日曜日

本書の補足情報

ここでは、本書の補足情報や、OSのバージョンアップに伴う変更点などを記していきます。

はじめに

回路配線図について

本書では、公式サイトより回路の配線図のPDFをダウンロードできます。 その回路配線図をWindowsやOS X上のAdobe Readerで閲覧する際、「編集」→「環境設定」を選択し、下図のように「細い線を拡張」のチェックを外すと、より綺麗な配線図を見ることができます。


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

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

回路配線図をRaspberry Pi上で見る場合

回路配線図をRaspberry Pi上で見る場合、Chromiumブラウザ上で見ると日本語が表示されないことが多いと思います。その場合、一旦PDFファイルをRaspberry Pi上にダウンロードし、デスクトップメニューの「アクセサリ」→「PDF Viewer」から開くようにしてください。 PDFファイルをRaspberry Pi上にダウンロードする方法は、「一旦Chromiumブラウザで開いてから画面上のダウンロードボタンを押す」か「リンク上で右クリックして『名前を付けてリンク先を保存』を選択」のどちらかです。

2章

p.31:Raspberry PiのバージョンおよびRaspberry Pi Zeroシリーズについて

現在までに様々なバージョンのRaspberry Piが発売されていますが、書籍でも記したように、性能が高いバージョンの方が学習が快適に進むでしょう。 2018年6月の時点では、
  • Raspberry Pi 3 Model B+
  • Raspberry Pi 3 Model B
が高性能かつ入手しやすいのでお勧めです。

一方、安さやコンパクトさという点で、Raspberry Pi Zeroシリーズに注目している方も多いでしょう。性能という点では、Pi Zeroシリーズは Pi 3系列にくらべてかなり劣りますので、本書のようにGUIを使ったデスクトップで学ぶのには必ずしも適していません。

とはいえ、Pi Zeroシリーズでも本書の演習を行うことはできます。その方法は以下のページに記されていますので参考にしてください。
なお上記ページは本書の旧版用のページへのリンクなのですが、新版である本書にも当てはまる内容が記されています。

p.33:microSDカードのサイズについて

書籍では「8GB以上のmicroSDカード」と記しましたが、OSであるRaspbianのバージョンが上がるに従い、必要なmicroSDカードの容量も増えています。8GBでも動作はしますが、16GB~32GBのものであれば安心です。なお、64GB以上のサイズのmicroSDカードは、exFATという形式でフォーマットされており、Raspberry Piが起動しませんので、8GB~32GBのmicroSDカードを用意するのが良いでしょう。

p.41:NOOBSのバージョンについて

本書の出版以降、以下のように新しいバージョンのNOOBSがリリースされています。

2016/9/23NOOBS 1.9.3Jessie
2016/10/5NOOBS 2.0.0
2016/11/29NOOBS 2.1.0
2017/2/27NOOBS 2.2.0
2017/3/3NOOBS 2.3.0
2017/4/10NOOBS 2.4.0
2017/6/23NOOBS 2.4.1
2017/7/5NOOBS 2.4.2
2017/8/17NOOBS 2.4.3Stretch
2017/9/8NOOBS 2.4.4
2017/11/29NOOBS 2.4.5
2018/3/14NOOBS 2.6.0
2018/3/14NOOBS 2.7.0
2018/4/18NOOBS 2.8.0
2018/4/24NOOBS 2.8.1
2018/6/27NOOBS 2.8.2
2018/10/11NOOBS 2.9.0

OSのベースバージョンは長らくJessieでしたが、2017年8月にリリースされたNOOBS 2.4.3からは Stretchというバージョンに切り替わっています。Stretchはまだリリースされてから日が浅く、バグも多く含まれると思いますが、可能な限りこのページに対応方法などを記していきます。 上記のどのバージョンでも動作確認を行いますが、手順の変更や注意がある場合以下に追記していきます。このページを「NOOBS」で検索すると変更点などを知ることができるでしょう。

p.41:パッケージやfirmwareを更新したRaspbianについて

「sudo apt-get upgrade」により、インストールされたアプリケーションのパッケージを更新したり、「sudo rpi-update」によりfirmwareを更新したRaspbianはサポートの対象外とします。その理由は下記の通りですのでご了承ください。
  • パッケージやfirmwareは日々変化しており、タイミングによってはバグを含んだパッケージがインストールされることもあること(実際、その問題によりトラブルの原因発見に時間がかかったことがあります)
  • 同じ理由で、読者の方の環境と筆者の環境を一致させることが難しいこと

p.46:NOOBS でのOSの選択について

2017年4月にリリースられたNOOBS 2.4.0以降では、インストール時のOSの選択肢として下図のように「LibreELEC_RPi2」と「Raspbian with PIXEL」の2種類が現れるようになりました。下図のように「Raspbian with PIXEL」にチェックを入れて作業を進めてください。なお、RaspbianとLibreELECの表示の順番はNOOBSのバージョンにより異なることがありますのでご注意ください。



p.44:SDメモリーカードフォーマッターについて

SDメモリーカードフォーマッターを用いたSDカードのフォーマットに関する注意です。 書籍執筆時は、バージョン4でしたが、現在、バージョン5に上がっています。

古いSDメモリーカードフォーマッター4を用いてRaspberry Piで一度用いたSDカードをフォーマットする場合、 最近のNOOBS (Raspbian)では 「一度目のフォーマットに失敗し、二度目のフォーマットで成功する」ようになっていました。
細かく言えば、「一度目でパーティション(ドライブのようなもの)が統合され、二度目でフォーマットに成功する」 状態です。
二度目のフォーマットで成功するため大きな問題はありませんが、 SDメモリーカードフォーマッターをバージョン5にアップグレードすると、一度でフォーマットに成功するようになりましたので、 気になる方はお試しください。

p.48: セットアップウィザードの起動 (NOOBS 2.8.2以降)

NOOBS 2.8.2以降では、Raspbianの初回の起動時、下図のようなセットアップウィザードが起動します。ここではこのアプリケーションに従って設定を行う方法を記していきます。もし、NOOBS 2.8.2より以前のRaspbianをお使いの場合、書籍で解説したように設定アプリケーションで設定を行ってください。

セットアップウィザードに従って設定を進めるには、まず「Next」ボタンをクリックします。

次に、「Set Country」と書かれた、国を設定する画面が現れますので、「Country」を「Japan」に設定しましょう。選択肢はアルファベット順に並んでいます。

すると、「Langage」が「Japanese」に、「Timezone」が「Tokyo」に自動的に変わるはずです。

以上のようにセットした後、「Next」をクリックします。


ここで、デフォルトのパスワードの変更が求められます。
デフォルトで、ユーザー名は「pi」、パスワードは「raspberry」とセットされています。
これを好みのパスワードに変更することができます。

変更する場合、下記の2つのエリアに変更したパスワードを2回入力します(この時点でキーボードは日本語キーボードとして設定されています)。
もし、デフォルトのパスワードから変更しない場合、2つのエリアは空白のままで構いません。

「Next」をクリックします。


ここで、Wifiの設定が行えます。これは後でも行えますので、「Skip」をクリックしてスキップしても構いません。
もし設定を行いたければ、「Next」をクリックします。


上の画面で「Next」をクリックした場合は、下図でWifiのパスワードの入力が求められます。入力したら「Next」をクリックします。


Wifiの設定が「Skip」かパスワードの入力かで完了すると、アップデートの確認をするかどうか問われます。ここは「Skip」をクリックしてスキップします。


以上でセットアップウィザードは終了です。「Reboot」ボタンをクリックすると再起動が始まります。


以上でほとんどの設定が終わりました。 なお、以上のセットアップウィザードは初回の起動時に用いるものですから、これ以後は書籍で解説した設定アプリケーションを用いてください。

p.48:NOOBS 1.9.3以降のデスクトップについて

NOOBS 1.9.3以降に含まれるRaspbianでは、下記のように、デスクトップやアイコンのデザインが一新されました。また、ブラウザがGoogle ChromeのベースとなったChromiumブラウザに変更されています。しかし、デザイン以外の変更はあまり大きくありませんので、書籍の指示のまま変更の必要がない部分がほとんどです。

もし最新のNOOBSを用いて違和感を感じる部分があったら、下記に補足や注意点がないか、チェックしてみてください。



p.48:デスクトップが液晶パネルより狭く表示される場合について

デスクトップが開いたとき、下図(A)左のように、液晶パネルより狭い範囲にデスクトップが表示されることがあります。


そのような場合、設定アプリケーションの「システム」→「オーバースキャン」を「無効」にしてRaspberry Piを再起動すると、上図(A)右のように画面がいっぱいに使われることが多いでしょう。ただし、上図(B)のように、液晶テレビの場合にこの設定を行うと、液晶パネルからはみ出してデスクトップが表示されてしまうことがあります。これが気になる方は、「オーバースキャン」を「有効」に戻して再起動した方がよいでしょう。



p.50:設定アプリケーションを用いたキーボードの設定について

ここでは、設定アプリケーションを用いたキーボードの設定について整理します。まず、書籍の図2-16の設定アプリケーションで 「Localisation(ローカライゼーション)」タブの「Set Keyboard」ボタンをクリックします。

ここから先のキーボードの設定項目の外観は、NOOBS (Raspbian)のバージョンにより異なります。
まずは2018年6月にリリースされたNOOBS 2.8.2での設定方法を記します。
現れたウインドウで、「Model」を「Generic 105-key (Intl) PC」に、「Layout」を「Japanese」に、「Variant」を「Japanese(OADG 109A)」にセットし、OKボタンを押してください。

バージョン2.8.2以前の NOOBS (Raspbian)の場合、現れたウインドウで、「Country」を「Japan(日本)」に、「Variant」を「Japanese(OADG 109A)(日本語(OADG 109A))」にセットし、OKしてください。

以上で日本語109キーボードに設定されます。

p.50:無線LANの国設定変更

Raspberry Pi 3 Model B+ では、「無線LANの国設定」を日本に合わせないと無線LANが有効になりません。その設定は、新設定アプリケーションにより下記の手順で行います。
  • 「Localisation(ローカライゼーション)」タブの「Set WiFi Country(無線LANの国設定)」ボタンをクリック
  • 現れたウインドウで、「Country(国)」を「JP Japan」にセット

p.51:日本語フォントのインストールについて

NOOBS 1.4.2~1.9.2およびNOOBS 2.4.3にはデフォルトで日本語フォントが含まれておらず、「2.4.7 日本語フォントのインストール」節のようにネットワークから日本語フォントをインストールする必要があります。

ただし、NOOBS 1.9.3~NOOBS 2.4.2およびNOOBS 2.4.4~には日本語フォントは含まれておりますので、2.4.7節を飛ばして2.4.8に進んで頂いても文字化けは起こりません。

p.53:シャットダウン時のLEDの状態について

Raspberry Pi 3をシャットダウンした後のLEDの状態について、本書では「ACTの点滅後、緑色に点灯した状態になります」と記しました。

NOOBS 1.9.3およびNOOBS 2.0.0以降では、Raspberry Pi 3のシャットダウン後にACTは消灯状態になりますのでご注意ください。なお、これはRaspberry Pi 2などと同じ挙動です。

3章

p.59:秋月電子通商のパーツセットについて

なお、小型液晶 (LCD)は含まれておりませんのでご注意下さい。
書籍の9章までの演習 (ただし、LCDを用いる7.3および7.4と、オプション扱いでカメラモジュールを用いる5.6は除く) を行えます。

なお、上記以外にamazonなどで本書の名前を冠したパーツセットが取り扱われておりますが、どれも著者や出版社および秋月電子通商様が関わった商品ではありませんので、ご注意ください。

4章

p.85:NOOBS 2.8.2以降におけるIDLEの通常起動について

NOOBS 2.8.2において、デスクトップのメニューから「Python 2 (IDLE)」の項目が削除されました(下図)。ですから、IDLEを通常起動するために別の方法を取らねばなりません。

LXTerminal (ターミナル)から、下記のコマンドを実行してPython 2用のIDLEを起動してください。
idle &
なお、下図に見える「Python 3 (IDLE)」はPython 3用のIDLEなので、用いてないで下さい。

なお、「Python 2とPython 3」、「Python 2用のIDLEとPython 3用のIDLE」について、図の下で解説を加えますので、興味のある方はお読みください。


まず、本書で用いるプログラミング言語はPythonですが、Pythonにはバージョン2 (Python 2) とバージョン 3 (Python 3)が存在します。

Python 3の方が新しいのですが、両者には互換性が保たれていないところがあり、Python 2からPython 3への移行はなかなか進んでいません。そのため、多くのシステムではPython 2とPython 3を共存させています。

実際、Raspberry Pi上で動作するRaspbianでは、2012年のリリース以来Python 2とPython 3が共存しています。

そして、「Python 2用のIDLE」はPython 2でプログラムを実行するための開発環境、「Python 3用のIDLE」はPython 3でプログラムを実行するための開発環境、というわけです。

以上を踏まえ、Pythonのバージョンに関する本書の方針を記しておきます。

本書のプログラムは、実はPython 2とPython 3のどちらでも動作するように記述されています。ですから、Pythonプログラミングに親しんだ方ならば、Python 2とPython 3のお好きな方で演習を行うことができます。

しかし、本書の解説は、Python 2を用いる前提で記されております。例えば、8章8.6節では、サーボモーターの制御のためにWiringPi-Pythonのインストール法を解説していますが、Python 2用のインストール方法しか記していません。

ですから、Pythonの利用は初めて、という方は本書に記した通りPython 2で学習を進めることをお勧めします。

p.88:NOOBS 1.9.3におけるIDLEのデフォルトフォントについて

NOOBS 1.9.3に含まれるRaspbianでIDLEを起動し、プログラム04-02-led.pyを開くと下図(左)のようになります。

このバージョンでは、デフォルトのフォントとしてプロポーショナルフォント(文字により太さが異なるフォント)が用いられてしまっています。そのため、下図(左)の注釈に示したように、本来4個または8個ある空白文字(スペース)の個数が非常に少なく見えてしまっています(本書p.88の図4-9と比べてください)。

Pythonでは空白文字の個数による字下げの区別は重要ですので、空白文字の個数が一目でわかるフォントを用いるべきです。

そのために、IDLEのメニューにある「Options」→「Configure IDLE」を選択し、「DejaVu Sans Mono」や「Droid Sans Mono」のように、名前に「Mono」が含まれるフォントを選んでください。下図(右)のように等幅フォントが選択され、空白の個数がよくわかるようになります。


6章

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

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

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

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

7章

7章全般:本書のプログラムで利用できるLCDについて

2017年4月に、秋月電子通商さんよりRaspberry Piで利用可能なLCDのモジュールキットが販売開始され、さらに2017年6月にはその完成版が販売開始されましたのでここで紹介します。なお、キットの方は狭いピッチ(ピン間隔)の半田付けが必要になりますので、半田付けにある程度慣れている方向けとなります。商品へのリンクは下記になります。
組み立てキットに含まれるパーツを図示したのが下図(左)となっています。ピンソケットが2種含まれていますので、お好みの方を半田付けします。 完成品にはLCDを立てて使うためのピンソケットがあらかじめ取り付けられているようです。

なお、本書のようにブレッドボードで利用するためには、組み立てキットに下図(中)のようにピンヘッダを別途購入して半田付けすることをお勧めします。ピンヘッダとは、例えば下記のようなものです。丁度のサイズのものを購入するよりは、長いものを購入してニッパでカットするのが一般的です。

ピン配置は本書のものとは異なり、上図(右)のようになっています。

利用例は下図のようになっています。下図(左)がピンソケットを用いた場合で、Raspberry PiのGPIO(3.3V/SDA/SCL/GPIO4/GNDと続くピン)に直接させるようになっています。完成品ではLCDを立てて使うようなピンソケットとなっています。ただし、これではGPIOのピンの一部が利用できなくなってしまいますので、「オス-メス ジャンパワイヤ」を介してGPIOに接続するのがお勧めです。

また、本書で紹介したLCDとは異なり、文字の表示サイズが8文字×2行となっていることも見て取れるでしょう。 本書のプログラムを8x2の液晶で用いるためには、少しだけ変更が必要です。LCDを用いるプログラムには下記のようにLCDのコントラストや文字数を設定している行があります。これらは16x2の液晶であることを示しています。
contrast = 36 # 0から63のコントラスト。30から40程度を推奨
chars_per_line = 16 # LCDの横方向の文字数
display_lines = 2   # LCDの行数
これを下記のように横方向の文字数を8に変更して保存すれば完了です。お好みで、コントラストの大きさを変更するのも良いでしょう。
contrast = 36 # 0から63のコントラスト。30から40程度を推奨
chars_per_line = 8 # LCDの横方向の文字数
display_lines = 2   # LCDの行数


ピンヘッダを用いて作成したLCDならば本書のようにブレッドボートで利用可能です。その様子を示したのが下図(右)です。なお、基板の「LED」ピンを3.3Vに接続すると、図のようにLCDのバックライトが点灯した状態になります。お好みで利用してください。ピンソケットでGPIOに直接差したLCDならば、GPIO 4をHIGHにすることでバックライトが点灯します。なお、バックライトを利用するには、LCDを基板に半田付けする際に2か所の四角いピンも半田付けする必要がありますのでご注意ください。

8章

p.209:WiringPi-Pythonのインストールコマンド

書籍に記したように、WiringPi-Pythonをインストールするためのコマンドをコピーできる形で掲載します。

なお、2017年6月23日にリリースされたNOOBS 2.4.1以降では、Raspbianのカーネルと呼ばれるソフトウェアがバージョン4.9になった影響で、「sudo apt-get upgrade」コマンドでOSをアップグレードした後、これまでのWiringPi-Pythonをそのまま使おうとするとエラーがでて正常動作しません。その場合、まずターミナルを起動して下記のコマンドを実行し、古いWiringPi-Pythonを削除して新しいバージョンをインストールしなおしてください。NOOBSをSDカードに新規インストールした場合はその必要はありません。
rm -rf WiringPi-Python
あとは、以下のWiringPi-Pythonのインストール用コマンドを順に実行していきます。WiringPi-Pythonが更新された影響で、書籍に記したコマンドに対してコマンド(5)と(6)を追加しています。これらを省くと、誤って管理者権限(sudo)なしでWiringPi-Pythonを利用した時にRaspbianが異常停止してしましますのでご注意ください。

下記のコマンドをブラウザで1行ずつコピーし、ターミナルソフトウェアLXTerminalへ貼り付けて1つ1つ実行するとトラブルが少ないでしょう。コピーはブラウザ上でキーボードで「Ctrl+c」、貼り付けはLXTerminalのメニューから「編集」→「貼り付け」(またはCtrl+Shift+v)です。なお、行頭の「(1)」などの数字はコピーする必要はありませんのでご注意ください。
(1) sudo apt-get update
(2) sudo apt-get install python-dev python-setuptools swig
(3) git clone --recursive https://github.com/WiringPi/WiringPi-Python.git
(4) cd WiringPi-Python/WiringPi
(5) wget https://raw.githubusercontent.com/neuralassembly/raspi/master/wp-pwm-warning.patch
(6) patch -p2 -i wp-pwm-warning.patch
(7) sudo ./build
(8) cd ..
(9) swig -python wiringpi.i
(10) sudo python setup.py install

9章

p.223:WebIOPiのダウンロードについて

WebIOPiのダウンロードサイトでは、Cayenneというソフトウェアのダウンロードが可能になっていますが、書籍に記した通りWebIOPi 0.7.1をダウンロードし、インストールを行ってください。

p.224:WebIOPiのインストールコマンド

WebIOPiをインストールするためのコマンドはやや長く、写し間違えると正しくインストールが行なわれません。 下記にコピーできる形で再掲しますので、ブラウザで表示して1行ずつコピーし、ターミナルソフトウェアLXTerminalへ貼り付けて1つ1つ実行していけばトラブルが減るでしょう。コピーはブラウザ上でキーボードで「Ctrl+c」、貼り付けはLXTerminalのメニューから「編集」→「貼り付け」(またはCtrl+Shift+v)です。なお、行頭の「(1)」などの数字はコピーする必要はありませんのでご注意ください。なお、(1)のコマンドの実行する前に、p.223の指示に従ってWebIOPi-0.7.1.tar.gzをダウンロードし、ユーザーpiのホームに移動しておく必要がありますのでご注意ください。
(1) tar zxf WebIOPi-0.7.1.tar.gz
(2) cd WebIOPi-0.7.1/
(3) wget https://raw.githubusercontent.com/neuralassembly/raspi2/master/webiopi-pi2bplus.patch
(4) patch -p1 -i webiopi-pi2bplus.patch
(5) sudo ./setup.sh
(5)の処理が終わると最後に「Do you want to access WebIOPi over Internet ? [y/n]」という質問をされますので、キーボードで「n」を入力したあとEnterするのでした。 その後、OSとしてJessieおよびStretchをお使いの方は下記のコマンド(p.226のコマンド)を実行し、起動用ファイルを適切な位置に配置します。これでWebIOPiのインストールは完了です。
(1) wget https://raw.githubusercontent.com/neuralassembly/raspi/master/webiopi.service
(2) sudo mv webiopi.service /etc/systemd/system/
なお、上記の手順でWebIOPiをインストールしてもp.234の図9-5において「IN/OUT等が現れるはずのボタンに文字が現れず灰色のまま」という場合、 まずはWebIOPiの再インストールを試してみましょう。そのためには、ターミナルを起動して下記のコマンドで過去のインストールファイルを一旦削除します。
sudo rm -rf WebIOPi-0.7.1
その後、もう一度上記のコマンドでWebIOPiをインストールします。 それでも症状が改善されない場合、原因はわかりませんが、OSであるRaspbianが壊れているという可能性もないとは言えません。余力があればOSを再インストールしてみることも検討してみると良いでしょう(私自身、OSの再インストールが必要だったことはないのですが、読者の方にはそれで改善したという方が複数名いらっしゃるようです)。

p.236:WebIOPi用サンプルファイルの/usr/share/webiopi/htdocsディレクトリへのコピー

236ページでは、本書のサンプルファイルを/usr/share/webiopi/htdocsディレクトリへコピーするという作業を行います。 この作業は重要であり、これに失敗すると、以後の演習が期待通りに動作しません。そこで、コピーして利用できるよう、 そのコマンドをここに再掲します。 ターミナルソフトウェアLXTerminalを起動して、下記の2コマンドを一つずつ順に実行してください。
sudo chown -R pi /usr/share/webiopi/htdocs
cp -r 09-samples/bb /usr/share/webiopi/htdocs
なお、本書のサンプルファイルをbluebacksディレクトリに展開した方は、上記2コマンド実行の前に「cd bluebacks」コマンドを実行して bluebacksディレクトリに入り、その後2コマンドを実行するようにしてください。

p.240:/etc/webiopi/config の myscript行

9.3以降の演習は設定ファイル /etc/webiopi/config の[SCRIPT]セクションに、Pythonスクリプトの場所を示す行を記す必要があります。 記述に間違いがあるとWebIOPiが起動しませんので、コピーできるように正しい記述を以下に記しておきます。
myscript = /usr/share/webiopi/htdocs/bb/01/script.py


10章

p.290:mjpg-streamerのインストールコマンド

mjpg-streamerをインストールするためのコマンドやや長く、写し間違えると正しくインストールが行なわれません。 下記にコピーできる形で再掲しますので、ブラウザで表示して1行ずつコピーし、ターミナルソフトウェアLXTerminalへ貼り付けて1つ1つ実行していけばトラブルが減るでしょう。コピーはブラウザ上でキーボードで「Ctrl+c」、貼り付けはLXTerminalのメニューから「編集」→「貼り付け」(またはCtrl+Shift+v)です。なお、行頭の「(1)」などの数字はコピーする必要はありませんのでご注意ください。
(1) sudo apt-get update
(2) sudo apt-get install libjpeg8-dev cmake
(3) git clone https://github.com/jacksonliam/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
なお、mjpg-streamerのインストールに一度失敗し、その後何度試行錯誤してもうまくいかない、という方は、上記の7つのコマンドの実行前に、下記の2コマンドにより過去にインストールしたmjpg-streamerを一度削除した方が安全かもしれません。ターミナルLXTerminalを起動した直後の状態で順に実行してください。
(1) sudo rm -rf /opt/mjpg-streamer
(2) rm -rf mjpg-streamer

付録E

p.312:Windows + Bonjourによるraspberrypi.localへの接続について

付録に記したように、WindowsにiTunesをインストールすると、Bonjourというソフトウェアがインストールされ、その働きにより、「raspberrypi.local」という名称でのRaspberry Piへのアクセスが可能になるのでした。しかし、Windows 10 に対して2018年4月にリリースされたApril 2018 Updateを適用すると、この方法でのアクセスが一時的にできなくなるようです。

WindowsからiTunesとBonjourを一旦削除してからiTunesをインストールしなおすとまた使えるようになるようですのでこの問題に直面した方はお試しください。

応用PDF

PDF11:spidevを用いてAD変換を行うプログラムについて

追加PDFでは、spidevとADコンバータMCP3208を用いてAD変換を行うプログラム06-04-spidev.pyを紹介しました。 やや高度な解説になりますが、このプログラムではMCP3208に4バイトのコマンドを送信することで4バイトのデータを受信し、さらにそこから必要な12ビットを切り出してデータとしています。 このデータの送受信をそれぞれ3バイトで実現するプログラムを作成しましたので、プログラムの効率を高めたいという方はお試しください。ただし、結果自体が変わるわけではありません。 ターミナルを起動し、下記のコマンドを実行することで、変更版プログラム06-04-spidev-mod.pyをダウンロードできます。
$ wget https://raw.githubusercontent.com/neuralassembly/raspi/master/06-04-spidev-mod.py
実行方法は、06-04-spidev.pyと同じです。

PDF11:spidevを用いてAD変換を行うプログラムをkernel 4.9.43以降で使う場合

kernel 4.9.43以降 (NOOBS 2.4.5 以降) のRaspberry Piでは、サンプルファイルに含まれる06-04-spidev.pyは動作しません。 上でダウンロード法を解説した06-04-spidev-mod.pyを用いてください。具体的には、kernelの変更により、プログラム内で「spi.max_speed_hz = 1000000」のように最大周波数の設定が必要になったためです。

PDF17:LDCの文字コード表

本書で紹介した2つのLCDでは、PDF17図7-8の文字コード表の一番左の列(0x06~0x0f)の文字は表示されないようです。ご了承ください。

PDF20:Python3用WiringPi-Pythonのインストールコマンド

これまで同様、Python3用WiringPi-Pythonのインストールコマンドを、コピーできる形式で再掲します。8章で、Python2用WiringPi-Pythonをインストール済みであることを前提としていますので、御注意ください。
(1) sudo apt-get update
(2) sudo apt-get install python3-dev python3-setuptools
(3) cd WiringPi-Python
(4) swig -python wiringpi.i
(5) sudo python3 setup.py install

PDF28:最新のRaspbian Stretchでの動作について

Raspbian Stretchをお使いの方で、2017年8月から10月の間にWebIOPiをインストールした方は、10.5章のプログラムにおいて矢印の画像が表示されないという問題が発覚しました。 この問題を解決するには、まずターミナルを起動して下記のコマンドで過去のインストールファイルを一旦削除します。
sudo rm -rf WebIOPi-0.7.1
その後、本ページの「p.224:WebIOPiのインストールコマンド」に基づいてもう一度WebIOPiをインストールしてください。 設定ファイル /etc/webiopi/config や /usr/share/webiopi/htdocs 以下にあるサンプルファイルはそのままで構いません。
また、WebIOPiが起動済であれば一度停止して再び起動する必要があることにもご注意ください。お手数をおかけしますがよろしくお願いします。

PDF32: WebIOPiからWiringPi-Pythonを呼び出すプログラムの自動起動について

「bb/07」や「bb/08」のように、WebIOPiからWiringPi-Pythonを呼び出すプログラムを自動起動する場合、 PDF32に記したように、Raspbianの起動方法をGUIからCLIにしないと正常動作しない(サーボモーターが動かない)ことがあります。

もし、この「CLI起動によるWebIOPiの自動起動」でもサーボモーターが正常動作しない場合、以下を試してください。 まず、以下のコマンドを実行し、WebIOPiの自動起動を無効にします。
sudo systemctrl disable webiopi
次に、以下のコマンドで、/etc/rc.localファイルを管理者権限で編集できる状態にします。
sudo leafpad /etc/rc.local
そして、「exit 0」の上の行に、以下の2行を追記して保存し、再起動してください。
sleep 10
sudo service webiopi start
以上で、/etc/rc.localからWebIOPiが起動され、サーボモーターが正常動作することを期待しています。 なお、「sleep 10」は「10秒待機する」の意味です。 安全のために「10秒」と大きな数値を選びましたが、 私の環境では「sleep 3」(3秒待機)程度でも正常動作しました。 さらに、この方法ではCLI起動ではなくGUI起動のままでもサーボモーターが正常動作しました。

2 件のコメント:

  1. ラズベリーパイ初心者です
    本書の手順に従って、2.4.9の電源を切る方法まで進め、電源を切ったあと、SDカードを本体から取り外しました。再びラズベリーパイが起動するか確認のため、SDカードを取付ないまま、電源を本体に差し込みましたが、ディスプレイには何も表示されませんでした。そこで電源を外して、今度はSDカードをを取り付けた状態で電源を入れましたが、ディスプレイには何も表示されませんでした。2度目に起動するときはもうセットアップに使用したSDカードは不要なのでしょうか?それとも、SDカードは本体に取り付けたままにするのでしょうか?
    また、現状、再度SDカードへの書き込みからやり直したほうが良いのでしょうか?是非ともご教示ください。使用機種はPI3Bです。
    よろしくお願いします。

    返信削除
    返信
    1. 行って頂いたインストール作業により、SDカードにはOSであるRaspbianが書き込まれた状態になっています。ですから、Raspberry Piを使う場合は常にOSインストール済のSDカードを取り付けておく必要があります。

      SDカードを取り付けずにRaspberry Piの電源を入れると、おっしゃる通り、ディスプレイには何も表示されません。これは、Raspberry PiにOSが存在しないためです。この場合、そのまま電源を取り外してください。

      また、Raspberry PiにSDカードを抜き差しする場合は、行って頂いたように、Raspberry Piから電源を取り外した状態で行う必要があります。

      さて、「再度SDカードへの書き込みからやり直したほうが良い」かどうかです。

      一度そのSDカードでOSは起動したようですので、そのOSインストール済SDカードをさした状態でRaspberry Piに電源を入れれば、何かは表示されるのではないでしょうか?(虹色の四角形であるとか、縦にスクロールする文字列など)

      何も表示されない場合、SDカードを取り付けていないのと同じ状態、すなわちSDカードが認識されていない状態に思えます。また、OSがインストールされていない空のSDカードを取り付けても、やはりディスプレイには何も表示されないでしょう。

      OSインストール済SDカードを取り付けた状態でOSが起動したならば問題ありません。
      しかし、何かが表示されたもののそれが途中で止まってしまった場合、SDカードにOSを再インストールする必要があることが多いです。その場合、一度「SDメモリカードフォーマッター」という無料ソフトでSDカードをフォーマットしてからでないとOSの再インストールはできませんのでご注意ください(書籍にも補足ページに記述があります)。

      さらに、私は最近経験していませんが、Raspberry Piと相性の悪いSDカードが存在するそうです。OSの起動が途中で止まるようなケースがある場合、異なるメーカーのSDカードを試した方が良いのですが、今回の場合に該当するかはわかりません。

      以上、お試しください。

      削除