raspibb.blogspot.jp









Search Preview

「Raspberry Piで学ぶ電子工作」補足情報

raspibb.blogspot.jp
講談社ブルーバックス「Raspberry Piで学ぶ電子工作」の補足サイトです
.jp > raspibb.blogspot.jp

SEO audit: Content analysis

Language Error! No language localisation is found.
Title 「Raspberry Piで学ぶ電子工作」補足情報
Text / HTML ratio 61 %
Frame Excellent! The website does not use iFrame solutions.
Flash Excellent! The website does not have any flash contents.
Keywords cloud Pi NOOBS sudo Raspberry aptget Model = Sidekick wget Basic install ►  rm webiopi update cd BRaspberry rf python systemctl
Keywords consistency
Keyword Content Title Description Headings
Pi 57
NOOBS 41
sudo 32
Raspberry 24
aptget 15
Model 14
Headings
H1 H2 H3 H4 H5 H6
0 7 20 71 0 0
Images We found 47 images on this web page.

SEO Keywords (Single)

Keyword Occurrence Density
Pi 57 2.85 %
NOOBS 41 2.05 %
sudo 32 1.60 %
Raspberry 24 1.20 %
aptget 15 0.75 %
Model 14 0.70 %
= 11 0.55 %
Sidekick 10 0.50 %
wget 9 0.45 %
Basic 9 0.45 %
install 9 0.45 %
►  8 0.40 %
rm 7 0.35 %
webiopi 6 0.30 %
update 6 0.30 %
cd 5 0.25 %
BRaspberry 5 0.25 %
rf 4 0.20 %
python 4 0.20 %
systemctl 4 0.20 %

SEO Keywords (Two Word)

Keyword Occurrence Density
sudo aptget 14 0.70 %
Raspberry Pi 12 0.60 %
Sidekick Basic 9 0.45 %
aptget install 8 0.40 %
aptget update 6 0.30 %
Pi Model 6 0.30 %
Pi 2Raspberry 5 0.25 %
2Raspberry Pi 5 0.25 %
BRaspberry Pi 5 0.25 %
Pi 2 4 0.20 %
sudo systemctl 4 0.20 %
sudo rm 4 0.20 %
rm rf 4 0.20 %
update sudo 4 0.20 %
Pi 2やRaspberry 4 0.20 %
2やRaspberry Pi 4 0.20 %
Model B(ただし、本ページによる補足が必要) 3 0.15 %
最新 Raspberry 3 0.15 %
Basic Kit 3 0.15 %
Model B 3 0.15 %

SEO Keywords (Three Word)

Keyword Occurrence Density Possible Spam
sudo aptget install 8 0.40 % No
sudo aptget update 6 0.30 % No
BRaspberry Pi 2Raspberry 5 0.25 % No
Pi 2Raspberry Pi 5 0.25 % No
aptget update sudo 4 0.20 % No
update sudo aptget 4 0.20 % No
Pi 2やRaspberry Pi 4 0.20 % No
sudo rm rf 3 0.15 % No
Raspberry Pi Model 3 0.15 % No
Sidekick Basic Kit 3 0.15 % No
Raspberry Pi 2 3 0.15 % No
B用(26ピン)」と「Model BおよびRaspberry Pi 2 0.10 % No
display_lines = 2 2 0.10 % No
Pi 2およびRaspberry Pi 2 0.10 % No
0703LCDtempmodpy:0703LCDtemppyの修整版。コントラスト調整とカナ表示が可能で、I2C通信時のエラーをスキップする これらをターミナルでダウンロードする場合、下記のコマンドを実行してください。 wget 2 0.10 % No
httpsrawgithubusercontentcomneuralassemblyraspimaster0702LCDmodpy wget httpsrawgithubusercontentcomneuralassemblyraspimaster0703LCDtempmodpy 2 0.10 % No
wget httpsrawgithubusercontentcomneuralassemblyraspimaster0702LCDmodpy wget 2 0.10 % No
0702LCDmodpy:0702LCDpyの修整版。コントラスト調整とカナ表示が可能 0703LCDtempmodpy:0703LCDtemppyの修整版。コントラスト調整とカナ表示が可能で、I2C通信時のエラーをスキップする これらをターミナルでダウンロードする場合、下記のコマンドを実行してください。 2 0.10 % No
で共有するFacebook で共有するPinterest に共有 2 0.10 % No
メールで送信BlogThisTwitter で共有するFacebook で共有するPinterest 2 0.10 % No

SEO Keywords (Four Word)

Keyword Occurrence Density Possible Spam
BRaspberry Pi 2Raspberry Pi 5 0.25 % No
sudo aptget update sudo 4 0.20 % No
aptget update sudo aptget 4 0.20 % No
update sudo aptget install 4 0.20 % No
これらをターミナルでダウンロードする場合、下記のコマンドを実行してください。 wget httpsrawgithubusercontentcomneuralassemblyraspimaster0702LCDmodpy wget 2 0.10 % No
Arduino Sidekick Basic Kitに含まれるRGBフルカラーLEDは共通アノード(アノードコモン)、秋月電子通商のパーツセットに含まれるRGBフルカラーLEDは共通カソード(カソードコモン)です。 2 0.10 % No
►  4月 3 ►  2 0.10 % No
Sidekick Basic Kitに含まれるRGBフルカラーLEDは共通アノード(アノードコモン)、秋月電子通商のパーツセットに含まれるRGBフルカラーLEDは共通カソード(カソードコモン)です。 共通カソード(カソードコモン)のRGBフルカラーLEDを用いる場合、書籍とサンプルファイルの指示に従い、プログラムを編集してから用いる必要がありますので、御注意ください。 2 0.10 % No
Basic Kitに含まれるRGBフルカラーLEDは共通アノード(アノードコモン)、秋月電子通商のパーツセットに含まれるRGBフルカラーLEDは共通カソード(カソードコモン)です。 共通カソード(カソードコモン)のRGBフルカラーLEDを用いる場合、書籍とサンプルファイルの指示に従い、プログラムを編集してから用いる必要がありますので、御注意ください。 回路の配線も異なりますので書籍中の図をよく見て配線しましょう。 2 0.10 % No
件のコメント メールで送信BlogThisTwitter で共有するFacebook で共有するPinterest 2 0.10 % No
B用(26ピン)」と「Model BおよびRaspberry Pi 2用(40ピン)」がありますので、ディスプレイで閲覧するか、印刷するなどしてご活用ください。 2 0.10 % No
投稿者 Takashi Kanamaru 時刻 2 0.10 % No
aptget install libjpeg8dev cmake 2 0.10 % No
メールで送信BlogThisTwitter で共有するFacebook で共有するPinterest に共有 2 0.10 % No
wget httpsrawgithubusercontentcomneuralassemblyraspimaster0702LCDmodpy wget httpsrawgithubusercontentcomneuralassemblyraspimaster0703LCDtempmodpy 2 0.10 % No
0702LCDmodpy:0702LCDpyの修整版。コントラスト調整とカナ表示が可能 0703LCDtempmodpy:0703LCDtemppyの修整版。コントラスト調整とカナ表示が可能で、I2C通信時のエラーをスキップする これらをターミナルでダウンロードする場合、下記のコマンドを実行してください。 wget 2 0.10 % No
sudo rm rf WebIOPi071 2 0.10 % No
0703LCDtempmodpy:0703LCDtemppyの修整版。コントラスト調整とカナ表示が可能で、I2C通信時のエラーをスキップする これらをターミナルでダウンロードする場合、下記のコマンドを実行してください。 wget httpsrawgithubusercontentcomneuralassemblyraspimaster0702LCDmodpy 2 0.10 % No
sudo aptget install libjpeg8dev 2 0.10 % No
Model B(ただし、本ページによる補足が必要) Raspberry Pi 2 0.10 % No

Raspibb.blogspot.jp Spined HTML


「Raspberry Piで学ぶ電子工作」補足情報 2018年12月31日月曜日 「Raspberry Piで学ぶ電子工作」補足情報トップ はじめに 本ページは、金丸隆志著「Raspberry Piで学ぶ電子工作」(講談社ブルーバックス)の補足情報をまとめるためのページです。 まず、書籍のサンプルファイル、回路配線図(PDF)、応用演習(PDF)が必要な方は、下記の公式サポートページからダウンロードしてください。 講談社ブルーバックス「Raspberry Piで学ぶ電子工作」サポートページ 以下では、Raspberry PiのOSの更新に伴う内容の変更や、正誤情報などを記していきます。 補足情報一覧 本書発売後の追加情報:←最新のNOOBSで動作させる方法はこちら 追加コンテンツ サーボモーターをPCやスマートフォンから角度制御する (2015.1) Raspberry Pi Zero シリーズで本書の演習を実行する方法 (2017.3更新) ディスプレイ・マウス・キーボードを接続せずにRaspberry Piを利用する (2016.4) 据置きのルーター機器を介さずキャタピラ式模型を操作してみた (2016.4) Raspberry Pi公式タッチディスプレイで本書の演習を実行する (2015.11) 知っておくと便利な設定など Raspberry PiのIPアドレスを固定する (2016.4) プロキシ(Proxy)環境下での本書の演習の実行 (2015.4) インストールしておくと便利なアプリケーションなど (2015.4) ブラウザepiphanyの検索エンジンを変更する (2015.4) キーボードのCaps LockキーとCtrlキーを入れ替える (2015.4) 感想など 読者の方々の声 投稿者 Takashi Kanamaru 時刻: 21:39 76 件のコメント: メールで送信BlogThis!Twitter で共有するFacebook で共有するPinterest に共有 2018年12月30日日曜日 本書発売後の追加情報 はじめに 改訂版について 2016年7月、本書の改訂版である「カラー図解 最新 Raspberry Piで学ぶ電子工作」が発売になりましたが、当面本書のサポートも継続します。 なお、本書と改訂版の違いについては、改訂版の補足ページ内に「旧版をご利用の方へ」としてまとめましたので、興味のある方はご覧ください。 電子書籍版について 2016年7月、本書の改訂版が発売されるに伴い、kindle版を始めとする電子書籍は 新規の購入はできないが、過去に購入した方はダウンロードできる という状態に移行しています。新規に電子書籍版を購入されたいという方は、改訂版のものをお求めください。 回路配線図について 公式サポートページにて回路の配線図(PDF)をダウンロードできます。「Model B用(26ピン)」と「Model B+およびRaspberry Pi 2用(40ピン)」がありますので、ディスプレイで閲覧するか、印刷するなどしてご活用ください。 回路配線図をWindowsやOS X上のAdobe Readerで閲覧する際、「編集」→「環境設定」を選択し、下図のように「細い線を拡張」のチェックを外すと、より綺麗な配線図を見ることができます。 チェックを外す前後の配線図の状態を示したのが下図です。「細い線を拡張」のチェックを外した方が図がきれいに表示されているのがわかるでしょう。 なお、この設定はPDFの印刷の際には影響しないはずです。 回路配線図をRaspberry Pi上で見る場合 回路配線図をRaspberry Pi上で見る場合、Chromiumブラウザ上で見ると日本語が表示されないことが多いと思います。その場合、一旦PDFファイルをRaspberry Pi上にダウンロードし、デスクトップメニューの「アクセサリ」→「PDF Viewer」から開くようにしてください。 PDFファイルをRaspberry Pi上にダウンロードする方法は、「一旦Chromiumブラウザで開いてから画面上のダウンロードボタンを押す」か「リンク上で右クリックして『名前を付けてリンク先を保存』を選択」のどちらかです。 第2章 p.30:本書でサポートするRaspberry Piについて 2018年6月現在、本書で推奨するRaspberry Piのバージョンは下記の通りです。 Raspberry Pi Model B(現在はやや入手しにくい) Raspberry Pi Model B+ Raspberry Pi 2 Model B(ただし、本ページによる補足が必要) Raspberry Pi 3 Model B(ただし、本ページによる補足が必要) Raspberry Pi 3 Model B+(ただし、本ページによる補足が必要) 性能の点で、Raspberry Pi 3以降の購入をお勧めします。Raspberry Pi 3の場合無線機能が基板上に備わっていますので、無線LAN USBアダプタを別途購入する必要がないというメリットがあります。 Model B、Model B+、Raspberry Pi 2、Raspberry Pi 3の写真は下記のようになります。ご覧になってわかるように、Raspberry Pi 2やRaspberry Pi 3の形状やピン数などはModel B+とほとんど同じです。そのため、本書を読む際、Model B+についての記述がRaspberry Pi 2やRaspberry Pi 3にも該当するとお考えください。さらに、下記に続く補足も合わせてご参照ください。 なお、Model A、Model A+というバージョンもあるのですが、これらは「USBインターフェイス1つ」、「ネットワークインターフェイスなし」であり初心者向けではないため、本書での利用は推奨しません。 また、2015年11月に、Raspberry Piの新型であるRaspberry Pi Zeroが発表され、その価格が5ドルということでで大きな話題となりました。こちらもModel A/A+と同じく初心者向けではないので本書での利用は推奨しません。ただし、実際に試してみた結果を下記のページにまとめましたので、興味のある方は御覧ください。 Raspberry Pi Zeroで本書の演習は実行できるか p.32:SDカードのサイズについて 書籍では「8GB以上のSDメモリーカード」と記しましたが、OSであるRaspbianのバージョンが上がるに従い、必要なSDメモリーカードの容量も増えています。8GBでも動作はしますが、16GB~32GBのものであれば安心です。なお、64GB以上のサイズのmicroSDカードは、exFATという形式でフォーマットされており、Raspberry Piが起動しませんので、8GB~32GBのmicroSDカードを用意するのが良いでしょう。 p.32:SDカードのスピードクラスについて Raspberry Pi 2およびRaspberry Pi 3は、Model B+と同様、microSDカードが必須です。そのため、本書を読む際にModel B+についての情報を参考にしてください。 さらに、個人的な体験ですが、Raspberry Pi 2やRaspberry Pi 3にclass 2などの遅いmicroSDカードを用いた場合、動作に引っかかりを感じることが多くありました。そのため、Raspberry Pi 2やRaspberry Pi 3に用いるmicroSDカードは、高速なclass 10のものを推奨します。 p.34:Raspberry Pi 2およびRaspberry Pi 3に用いるマイクロUSB接続の電源 本書ではRaspberry Pi用の電源として1.0A以上の5V電源を用いるよう記述しております。2015年2月に発売されたRaspberry Pi 2でも同じ電源で動作することを確認しましたが、ネットの情報によると、安価で信頼性の低い電源やケーブルを用いるとRaspberry Pi 2が起動しないことがある、とのことでした。もしRaspberry Pi 2が起動しない場合、電源やケーブルの変更を検討してみると良いでしょう。 また、Raspberry Pi 3用の電源として、公式では2.5A以上の5V電源を推奨しています。ただし、これは電力消費の大きいUSB機器を複数接続する場合などを想定した高めの推奨値と考えられます。私自身は、1.5Aの5V電源でRaspberry Pi 3を起動し本書の動作確認をとっていますが、特に問題は起こっていません。 ただし、流せる電流の小さい電源を用いると、Raspberry Pi 3は正常動作するものの、Raspberry Pi 3の性能をフルに引き出すことができない、という報告もあります。ですから、高性能なRaspberry Pi 3の性能をフル活用したい方は、Raspberry Pi 3の公式電源を導入してみると良いでしょう。 p.39:NOOBSのバージョン 本書はNOOBS 1.3.10をベースに解説しておりますが、発売以来下記のようにNOOBSの新バージョンがリリースされています。 2014/12/24NOOBS 1.3.11Wheezy 2015/2/2NOOBS 1.3.12 2015/2/18NOOBS 1.4.0 2015/5/11NOOBS 1.4.1 2015/9/24NOOBS 1.4.2Jessie 2015/11/21NOOBS 1.5.0 2016/2/3NOOBS 1.6.0 2016/2/9NOOBS 1.7.0 2016/2/26NOOBS 1.8.0 2016/3/18NOOBS 1.9.0 2016/5/10NOOBS 1.9.1 2016/5/27NOOBS 1.9.2 2016/9/23NOOBS 1.9.3 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/4/24NOOBS 2.8.2 どのバージョンでも動作確認しておりますが、手順を変更しなければならない部分がありますので、下記の補足情報をご覧ください。 p.39:パッケージやfirmwareを更新したRaspbianについて 「sudo apt-get upgrade」により、インストールされたアプリケーションのパッケージを更新したり、「sudo rpi-update」によりfirmwareを更新したRaspbianはサポートの対象外とします。その理由は下記の通りですのでご了承ください。 パッケージやfirmwareは日々変化しており、タイミングによってはバグを含んだパッケージがインストールされることもあること(実際、その問題によりトラブルの原因発見に時間がかかったことがあります) 同じ理由で、読者の方の環境と筆者の環境を一致させることが難しいこと p.41:SDメモリーカードフォーマッターについて SDメモリーカードフォーマッターを用いたSDカードのフォーマットに関する注意です。 書籍執筆時は、バージョン4でしたが、現在、バージョン5に上がっています。 古いSDメモリーカードフォーマッターを用いてRaspberry Piで一度用いたSDカードをフォーマットする場合、 最近のNOOBS (Raspbian)では 「一度目のフォーマットに失敗し、二度目のフォーマットで成功する」ようになっていました。 細かく言えば、「一度目でパーティション(ドライブのようなもの)が統合され、二度目でフォーマットに成功する」 状態です。 二度目のフォーマットで成功するため大きな問題はありませんが、 SDメモリーカードフォーマッターを最新版にアップグレードすると、一度でフォーマットに成功するようになりましたので、 気になる方はお試しください。 p.43 : OSのインストールについて さて、OSであるRaspbbianのインストールから設定の流れは、書籍執筆時から大きく変更を受けております。 最新のインストールおよび設定方法は、 「Raspberry Piではじめる機械学習 補足情報」内にある「Raspberry PiへのOSのインストール方法」をご覧ください。本書2章と同等の内容をアップデートされた状態で見ることができます。 第3章 p.64:Arduino Sidekick Basic Kitについて 電子工作に必要なパーツを集めたセットの1つとして、本書ではArduino Sidekick Basic Kitを紹介しましたが、この商品は現在千石電商オンラインショップやamazonではバージョン2に切り替わっています。 Arduino周辺部品セットV2 旧バージョンとの違いは以下の通りのようですが、本書のために用いる際には影響のない変更です。 ジャンプワイヤの本数が減っている(50本→25本) LEDの個数が減っている(10個→5個) 抵抗早見表が付属しない 収納用ケース(4仕切り)の追加 RGBフルカラーLEDが8mmサイズの大きなものになり、光拡散キャップが不要なパッケージに変更されている 電子工作のセットはこれ以外にも様々なものが販売されております。ここで紹介した「Arduino Sidekick Basic Kit」も含め、どのセットを購入するにせよ本書で必要なパーツが全て揃うわけではないことはあらかじめご了承ください。 p.64:秋月電子通商のパーツセットについて 本書の改訂版である「カラー図解 最新 Raspberry Piで学ぶ電子工作」が発売されました。この改訂版向けのパーツセットが下記になります。 Raspberry Pi で学ぶ電子工作 パーツセット (秋月電子通商) このパーツセットを旧版である本書でも用いることができます。 ただし、小型液晶 (LCD)は含まれておりませんのでご注意下さい。 書籍の9章までの演習 (ただし、LCDを用いる7.3および7.4と、オプション扱いでカメラモジュールを用いる5.6を除く) を行えます。 さらに下記のような注意がありますので御注意ください。 含まれる半固定抵抗において、値が大きくなる回転の向きが旧版と異なる これについては、本ページ「p.145:半固定抵抗の回転の向きについて」の注意をご覧ください 含まれるRGBフルカラーLEDが共通カソード(カソードコモン)である共通カソード(カソードコモン)用の回路を作成した上で、書籍の注意に基づきサンプルファイルを編集して用いる必要があります。 p.64:非公認の電子工作キットについて Amazonにて、本書の名前を冠したキットが販売されているのですが、私や出版社が関わった製品ではありませんし、本書の方法では動作しない電子工作パーツが含まれているようです。本ページではそれらの電子工作パーツのサポートは行えませんので御了承ください。 p.70:5Vピン、3.3Vピン、GPIOに流すことのできる電流について 本書では、Raspberry Pi Model Bの5Vピン、3.3Vピン、GPIOに流せる電流を解説していますが、Model B+以降は5Vから3.3Vへ降圧するレギュレータの効率が上がったことと、Raspberry Pi自体の消費電力が変更になった影響で、このデータが大きく変わっています。 公式情報ではありませんが、インターネット上の議論に基づいたデータを下記にまとめます。参考にしたサイトを表の下に記します。 5Vピン3.3VピンGPIO(1本)GPIO(トータル) Model BマイクロUSBの電源が流すことのできる電流 - 700mA50mA8mA (注)50mA Model B+マイクロUSBの電源が流すことのできる電流 - 600mA1000mA - 600mA = 400mA (程度) Raspberry Pi 2マイクロUSBの電源が流すことのできる電流 - 900mA1000mA - 900mA = 100mA (程度) (注)デフォルトでの値です。こちらを参考に設定するとこの上限を2mAから16mAまで変化させられるようですが私は未確認です。 参考サイト GPIO Electrical Specifications (Model Bの情報) 3.3V, GPIO and GND max current Power Supply p.75:Raspberry Pi Model B+/Raspberry Pi 2/Raspberry Pi 3のGPIOについて 図3-12で解説したように、Model BとModel B+はGPIOポートのピン数が異なり、上から13段目まで(ピン1からピン26まで)が両モデルで共通となっています。本書ではこの共通部分のみを使うようにしておりますので、本書の回路は全てModel BとModel B+の両方で動作します。また、Raspberry Pi 2とRaspberry Pi 3はModel B+と同じピン配置なので、Model B+と同様に回路を作成します。 ただし、ピンを使う際にその「ピンの数え方」に注意しないとModel B+/Raspberry Pi 2/Raspberry Pi 3で間違った回路を作成してしまう可能性がありますので、その点について補足したいと思います。 下図をご覧ください。この図は「Model B」と「Model B+/Raspberry Pi 2/Raspberry Pi 3」におけるGPIO 25の数え方を解説したものです。図のように、GPIO 25を「図の上から(ピン番号の小さいほうから)11番目」のように数えることで、本書の回路図を「Model B+/Raspberry Pi 2/Raspberry Pi 3」でも用いることができます。88ページの図4-4をModel B+/Raspberry Pi 2/Raspberry Pi 3のGPIOポートを用いた図に変更したものが下図の(C)ですので参考にしてください。 また、公式サポートページにて回路の配線図(PDF)の提供を開始しました。「Model B用(26ピン)」と「Model B+およびRaspberry Pi 2用(40ピン)」がありますので、ディスプレイで閲覧するか、印刷するなどしてご活用ください。 第4章 p.89: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節では、サーボモーターの制御のためにWiringPi2-Pythonのインストール法を解説していますが、Python 2用のインストール方法しか記していません。 ですから、Pythonの利用は初めて、という方は本書に記した通りPython 2で学習を進めることをお勧めします。 p.89:NOOBS 1.4.2以降における、アプリケーション実行時の管理者権限について NOOBS 1.4.1までに含まれるRaspbianでは、PythonでGPIOにアクセスするプログラムを実行するためには管理者権限が必要でした。すなわち、本書でプログラムを実行する際、 ターミナルで「sudo idle &」を実行して起動したIDLEからプログラムを実行 ターミナルで「sudo python プログラムファイル名」を実行して起動 のどちらかの方法を用いる場合がほとんどでした。  NOOBS 1.4.2以降では、PythonでGPIOにアクセスするプログラムでも、管理者権限が不要になりました。そのため、下記のような方法でもプログラムを実行できます。 ターミナルで「idle &」を実行して起動したIDLEからプログラムを実行 起動したメニューから「Python 2」を選択して起動したIDLEからプログラムを実行(管理者権限なしのIDLEが起動します) ターミナルで「python プログラムファイル名」を実行して起動 p.92:NOOBS 1.9.3におけるIDLEのデフォルトフォントについて NOOBS 1.9.3に含まれるRaspbianでIDLEを起動し、プログラム04-02-led.pyを開くと下図(左)のようになります。 このバージョンでは、デフォルトのフォントとしてプロポーショナルフォント(文字により太さが異なるフォント)が用いられてしまっています。そのため、下図(左)中の注釈に示したように、本来4個または8個ある空白文字(スペース)の個数が非常に少なく見えてしまっています(本書p.92の図4-9と比べてください)。 Pythonでは空白文字の個数による字下げの区別は重要ですので、空白文字の個数が一目でわかるフォントを用いるべきです。 そのために、IDLEのメニューにある「Options」→「Configure IDLE」を選択し、「DejaVu Sans Mono」や「Droid Sans Mono」のように、名前に「Mono」が含まれるフォントを選んでください。下図(右)のように等幅フォントが選択され、空白の個数がよくわかるようになります。 第5章 p.128:カメラモジュールv2について 2016年4月、Raspberry Piのカメラモジュールのバージョン2が発売になりました。こちらでも5章のプログラムは動作します。 p.129:ファイルマネージャから画像ファイルを開く方法 カメラで撮影した画像をファイルマネージャーから開く方法が解説されていますが、NOOBS (Raspbian)によっては、画像閲覧用のアプリケーションが起動せず、「ファイル"JPEG画像"を開くアプリケーションを選択してください」というウインドウが開く場合があります。その場合、そのウインドウ上で「アクセサリ」→「イメージビューワ」を選択してください。 第6章 p.133:12ビットADコンバータMCP3208 6章および8章ではADコンバータとして秋月電子通商で取り扱われている 12ビット8ch ADコンバータ MCP3208-CI/P を用いますが、この在庫が切れている場合、下記のMCP3204を用いても構いません 12ビット4ch ADコンバータ MCP3204-BI/P ただし、MCP3204はMCP3208に比べて2ピン少ないので、少しだけ回路の読み替えが必要です。図6-5、図6-6を例に、変更箇所を赤で示しますので参考にして下さい。 MCP3204を用いる場合の図6-5の変更点 MCP3204を用いる場合の図6-6の変更点 p.145:半固定抵抗の回転の向きについて 本書は、Arduino Sidekick Basic Kit付属の半固定抵抗を用い、「右に回すとAD変換後の値が大きくなる」回路を組みました。この回転の向きは、下図のように「半固定抵抗の3.3VピンとGNDへの接続を入れ替える」ことで逆にすることができます。書籍で「半固定抵抗の向きを上下逆さに」と記述したのと同じことです。 お使いの半固定抵抗により回転の向きが異なることがありますので、配線の入れ替えにより好みの向きを選択してください。 第7章 p.158:電子工作キットの温度センサとLCDモジュールについて  Amazonにて、本書の名前を冠したキットが販売されているのですが、私や出版社が関わった製品ではありませんのでご注意ください。  さらに、そのキットには本書のプログラムでは動作しない温度センサとLCDモジュールが含まれているようです(「DS18B20使用温度センサ」および「SainSmart IIC/I2C/TWI 16*02 LCD液晶 モジュール」)。この温度センサはI2C通信を行なうセンサではなく、LCDモジュールは本書使用のものと仕様が異なります。そのため、本ページではそれらのパーツのサポートは行えませんので御了承ください。 p.158:LCDモジュールピッチ変換キット 7章および10章では秋月電子通商で取り扱われている I2C接続小型LCDモジュールピッチ変換キット を用いました。2015年3月にこのキットの完成版が販売されるようになりましたので、はんだづけに自信がない方はこちらを用いてもかまいません。 I2C接続小型LCDモジュールピッチ変換モジュール(完成品) また、上記のキットと完成品の両方の在庫が切れている場合、下記の製品を組み合わせても構いません。ただし、こちらはキットと同様にはんだづけが必要です。 I2C接続小型キャラクタLCDモジュール 8x2行 I2C接続小型LCDモジュール用ピッチ変換基板 細ピンヘッダ 1×7 上記の完成品により、多くの方が簡単にLCDを用いることができるようになりました。 しかし、2015年12月頃以降に購入した完成品LCDではRaspberry Piで動作(認識)しない、という報告が読者の方から入ってきました。販売店に確認したところ、「LCDの新しいロットでは電流の引き込み能力が低くRaspberry Piで動作(認識)しない」との回答でした。 このままでは多くの方が第7章の演習を実行できなくなってしまいますので、2つの対処方法を下の「p.171:完成品のLCDを購入しても認識されない場合の対処法」に記しましたのでご覧ください。 そのため、これからLCDを購入しようという方は、下記の選択肢から選ぶことになるでしょう 上記の完成品LCDを購入し、動作(認識)しなかったら下の「対処法」を試す 下の「7章全般:利用できるLCDについて」で紹介している16x2のLCDを試す なお、『「7章全般:利用できるLCDについて」で紹介している16x2のLCD』も、同じチップを用いたLCDですので、このロットによる問題が将来起こらないとは限りません。その場合はやはり下で紹介する対処法を試すことになるでしょう。 ご迷惑をおかけしますが、よろしくお願いします。 p.159:LCDのはんだづけについて 完成品ではなくLCDピッチ変換キットを購入した場合、温度センサモジュールとLCDモジュールの作成の際にはんだづけが必要となります。温度センサーモジュールに比べ、LCDモジュールはピンの間隔が狭い上に本数が多いので、はんだづけに失敗しやすいかもしれません。典型的な失敗例は下図(A)のいもはんだと下図(B)のブリッジです。 いもはんだは図(A)の通り、ピンとランドが導通していない点が問題です。この問題を解決するには、もう一度はんだごてでピンとランドを加熱しなおせば良いでしょう。 図(B)のブリッジは書籍でも解説したように、2つのピンが接触してしまっている点が問題です。ブリッジを解決することは、はんだごてだけでも不可能ではないですが、図(C)のように「はんだ吸い取り線」と呼ばれるものを用いて一度はんだを除去し、もう一度はんだづけし直す、という手もあります。はんだ部を、はんだ吸い取り線を挟んではんだごてで熱することで、はんだがはんだ吸い取り線に吸い取られます。YouTubeを「はんだ吸い取り線」というキーワードで検索すると使用方法の解説がたくさん見つかりますので、参考にしてみると良いでしょう。 p.161:I2C用モジュールを有効にする方法 RaspbianでI2Cを有効にする方法が、書籍から大きく変化しています。Raspbianのバージョンにより方法が異なりますので、順に解説します。 NOOBS 1.4.2以降のRaspbian (Jessie, Stretch)では、GUIによる設定アプリケーションを利用できるので簡単です。まず、「Menu」→「Preferences(設定)」→「Raspberry Pi Configuration(Raspberry Piの設定)」により設定アプリケーションを起動します。そして、「インターフェイス(Interfaces)」タブを選択し、「I2C」の項目を「有効(Enabled)」にしてください。「OK」ボタンで設定アプリケーションを終了すると再起動(reboot)を促されますので、再起動します。なお、本書163ページの「●I2C用モジュールの読み込み」における、「/etc/modules」に対する「i2c-dev」の追記は、デフォルトで記入済みなので、そのまま163ページのパッケージのインストールに進んでください。 NOOBS 1.4.1までのRaspbian (Wheezy)での方法は下記の通りです。 ターミナルLXTerminalで「sudo raspi-config」を実行し、設定画面を開く 「8 Advanced Options」を選択 「A7 I2C」を選択 「Would you like the ARM I2C interface to be enabled?」に「はい」を選択 確認画面で「了解」する 「Would you like the I2C kernel module to be loaded by default?」に「はい」を選択 確認画面で「了解」する 以上でraspi-configを終了するとリブート(再起動)を促されますので、そのままリブートします。 その後、本書163ページの「●I2C用モジュールの読み込み」に進み、「/etc/modules」に「i2c-dev」を追記して再起動します。Raspbianのバージョンによっては「i2c-dev」が既に書かれている場合もあります。その場合はそのままで構いません。あとは本書の通りに進めてください。 raspi-configを実行中の画面が下図になりますので、参考にしてください。 p.171:07-02-LCD.py実行時のエラーについて LCDを用いるプログラムの一つ目である07-02-LCD.pyを実行した際、下記のエラーが出たという報告がありました。 Traceback (most recent undeniability last): File "/home/pi/07-02-LCD.py", line 70, in <module> setup_aqm0802a() File "/home/pi/07-02-LCD.py", line 17, in setup_aqm0802a sys.exit() SystemExit これは、回路上のLCDがプログラムから認識されていない場合に起こるエラーです。まずはLCDが認識されることを目指します。認識されているかどうかのチェックは次項をご覧ください。 p.171:I2Cデバイスの認識について LCDを用いたプログラムを実行するためには、Raspberry PiからLCDが認識されていることが必要です。LCDが認識されているかどうかのチェック方法は、書籍に記さなかったのですが、ここで紹介します。 まず、温度センサとLCDを接続した回路(p.170の図7-7)を作成した状態でLXTerminalを起動し、下記のコマンドを実行しましょう。 sudo i2cdetect -y 1 このコマンドは、Raspberry Piに接続されたI2Cデバイスのアドレスを出力するものです。NOOBS 1.4.2以降のRaspbian(Jessie, Stretch)では管理者権限を表す「sudo」は不要ですが、上記のようにsudoをつけても問題なく動作します。 正常な出力結果は下図のようになります。48が温度センサのアドレス0x48を表し、3eがLCDのアドレス0x3eを表します。48が表示されなければ温度センサを用いるプログラムは正常動作しませんし、3eが表示されなければLCDを用いるプログラムは動作しませんので、まずは下図の出力が得られることを目指しましょう。 そのためには、温度センサ、LCDの製作過程や回路などを見直すのが基本的な方針ですが、上で述べたように、「新しいロットのLCDはRaspberry Piから認識されない」という問題に該当しているかもしれません。そのため、次項も引き続きお読みください。 p.171:完成品のLCDを購入しても認識されない場合の対処法 <LCD対処法:予備知識> 読者の方により、完成品のLCD(AQM0802)を購入しても、Raspberry Piから認識されない(上記のi2cdetectコマンドを実行しても3eが表示されない)ことがあることを教えて頂きました。 私も新たに完成品のLCD(AQM0802)を購入してみましたが、確かに同じ状況になりました。販売店に問い合わせたところ、「LCDの新しいロットでは電流の引き込み能力が低くRaspberry Piで動作(認識)しない」との回答でした。 しかし、そのようなLCDでも動作させる方法はありますので、ここで紹介したいと思います。まず、必要な予備知識から解説します。 LCDモジュールの基板の裏には、下図(A)または(B)のように、PUと書かれた部分にジャンパとよばれる電極が2セットあります。LCDモジュールを自分ではんだづけした方は下図(A)の状態、完成品を購入した方は下図(B)の状態の方が多いでしょう。下図(A)の状態では、一つの正方形内の凹凸状の電極は絶縁されています。ここにはんだを盛り下図(B)のようにすると電極が接続され、LCDモジュールの基板上のプルアップ抵抗が有効になります。そのため、これらの状態をそれぞれ 「PUなし」、「PUあり」と呼ぶことにします(PUはpull-upの略です)。 一般に、プルアップ抵抗はI2C接続時に必要になるものですが、Raspberry Pi内部に既にこのプルアップ抵抗が存在するので、LCDモジュールの基板上では必ずしもこのプルアップ抵抗の有効化は必要ありませんでした。そのため、正常動作するLCDでは「PUなし」、「PUあり」のどちらでもLCDは動作しました。 既に述べたように、「PUなし」から「PUあり」の状態にするには、凸と凹の電極にまたがるようにはんだを盛ります。逆に、「PUあり」から「PUなし」の状態に戻すには、上図(C)のように、はんだ吸い取り線(例えばこちら)を用いてPU部からはんだを除去するのが簡単です。 以上の予備知識のもと、どなたにでも容易に実現可能な暫定的対処法と、上級者向けの正式な対処法との2つを紹介します。 <LCD対処法:暫定版> まずは、どなたにでも容易に実現可能な暫定的対処法を紹介しましょう。 Raspberry Piから認識されない完成品LCD(AQM0802)に対して、回路に下図のようにSDA部からGNDの間に抵抗を追加すると、動作を確認することができます。 抵抗の大きさRとしては、下記の範囲のものが有効でした。 PUありの場合のR:2kΩ PUなしの場合のR:2kΩ~4.7kΩ程度 後に述べるように、私はPUなし(PU部のはんだをはんだ吸い取り線で除去した状態)で4.7kΩの抵抗を用いることを推奨します。4.7kΩでI2C通信のエラーの頻度が高い場合は3.9kΩが良いかもしれません。抵抗は例えば、2kΩ、3.9kΩ、4.7kΩなどが購入できます。 なお、この方法を用いると、3.3VピンからGNDまで1.8kΩ+RkΩの抵抗で接続されることになるので、約0.5mAから1.0mA程度の電流が流れ続けます(1.8kΩの抵抗は、Raspberry Pi本体内部にあるI2C用のプルアップ抵抗です)。この程度の大きさの電流がRaspberry Piに問題を起こすことはないと思われますが、本来不要な電流が流れる手法であることは注意しておいてください。なお、比較のために記すと、3章でLEDを点灯したときに流れる電流は約5mAです。 以上で、暫定的対処法の解説は終わりますが、以下、動作しない完成品LCDで何が起こっているか、そしてこの方法により何が起こるのかを簡単に記しておきます。 まず、「動作しない完成品LCD」の何が問題かを記したのが下図です。I2C通信時にLCDから Raspberry Piに対してACK信号と呼ばれるLOW信号を出力する場面があります。正常動作するLCDでは、このACK信号は約0.8Vとなっています。これはこのLCDの仕様の範囲内の動作です。しかし、「動作しない完成品LCD」ではこれが約1.2Vとなってしまっています。これをRaspberry PiがLOWと認識できないため、処理がそこで止まっているようです。 これに対し、暫定的な対応法ではこのACK信号を下図のように約1.0Vまで引き下げています。ただし、下図に示されている通り、3.3VであるべきHIGH信号まで下げてしまいますので、下げすぎると、Rapberry PiからHIGH信号も認識できなくなってしまいます。図を見るとわかる通り、「PUあり、R=2kΩ」ではHIGHが2Vまで下がっており、HIGHと認識されなくなる直前だろうと思います。これが「PUなし、R=4.7kΩ」を推奨する理由です。 ただし、いずれにせよこれはあくまで暫定的な対処法です。正常なI2C通信では必要のない対処法ですのでご注意ください。 <LCD対処法:正式版(ただし上級者向け)> 最後に、LCD(AQM0802)を用いるための正式な方法を紹介します。ただし、これは「表面実装用」と呼ばれるタイプのチップをはんだづけする必要があり、かなりの上級者向けとなりますので、自信のある方のみお試しください。 この方法には、I2CバスリピーターPCA9515ADと呼ばれるチップが必要となります。これをブレッドボードで用いるためには、下記の3点が必要となり、下図のようにはんだづけする必要があります。 I2Cバスリピーター PCA9515AD SOP8(1.27mm)DIP変換基板 金フラッシュ (9枚入) 細ピンヘッダ 1×4:2つ必要 なお、上図の「EN」はENABLEの略で、利用時はHIGH(3.3V)に接続します。 PCA9515ADはリンク先の写真で分かる通り、表面実装用と呼ばれるタイプの部品であり、これを基板上にはんだづけするには、やや高度な技術が必要です。そのため、この方法は上級者向けと言えるでしょう。 表面実装用の部品のはんだづけする方法は、例えば下記のYouTube動画が参考になるでしょう。 3216チップ抵抗、チップコンデンサのはんだ付け(実装) さらに、この動画にあるように、ピンセットやフラックスもあると良いでしょう。例えば下記のようなものです。 精密ピンセット TS-15 goot BS-75B 無洗浄タイプフラックス20cc このPCA9515を利用するための概念図が下図です。書籍の図7-5をイメージして記しました。 この小型液晶AQM0802の新しいロットを使う上で問題になるのが、Raspberry Pi上にあるプルアップ抵抗1.8kΩが小さすぎることです。新しいロットのAQM0802を使う上では10kΩが推奨されています。しかし、Raspberry Piのプルアップ抵抗は基板上に固定されており、そのため、プルアップ抵抗を小さくすることは容易なものの(接続するプルアップ抵抗の数を増やせばよい)、大きくすることは簡単ではありません。 そこで、上図のようにPCA9515を用いてRaspberry Piおよび温度センサ側と小型液晶側を切り離し、左側をプルアップ抵抗1.8kΩで、右側をプルアップ抵抗10kΩで利用できるようにするというわけです。 そのためには、ブレッドボード上で下図のような回路を組みます。図を簡単にするために、小型液晶側のプルアップ抵抗は、小型液晶モジュールのプルアップ抵抗PUを用いることにしました。上の解説「<LCD対処法:予備知識>」を参考に、2箇所のPUに半田を盛り、基板上のプルアップ抵抗を有効にしてください。 p.178:プログラム07-03-LCD-temp.py実行中のエラーについて プログラム07-03-LCD-temp.pyは、温度計のデータを毎秒取得し、LCDに表示するものですが、実行開始からしばらくたつとエラーがでてプログラムが終了する、という報告がありました。LCDへのI2C通信が失敗したタイミングでエラーが起こるようです。 I2C通信に失敗する頻度は人により異なるようですが、頻繁にプログラムが終了するという方は、対策済みのプログラム07-03-LCD-temp-mod.pyをダウンロードし、そちらをお試しください。 ターミナルでダウンロードする場合は下記の命令を試してください。 $ wget https://raw.githubusercontent.com/neuralassembly/raspi/master/07-03-LCD-temp-mod.py ブラウザからダウンロードしたいかたは、こちらのリンク上でマウスを右クリックし、「対象をファイルに保存」や「リンク先を別名で保存」などを選択して下さい。 使い方は旧ファイルと同じです。I2C通信に失敗しても終了しないプログラムになっています。このプログラムは毎秒LCDに表示をしますので、接続エラーが連続して起こらない限りは正しく動作します。 7章全般:利用できるLCDについて1~秋月電子編 本書で紹介したLCDの新しいロットでは、上で記したように何らかの対処をしないとRaspberry Piでは利用できなくなってしまいました。抵抗1本の追加で暫定的に利用可能になるのは不幸中の幸いではありました。 2017年4月に、秋月電子通商さんより上記のLCDを正式にRaspberry Piで利用可能にしたモジュールキットが販売開始され、さらに2017年6月にはその完成版が販売開始されましたのでここで紹介します。なお、組み立てキットの方は狭いピッチ(ピン間隔)の半田付けが必要になりますので、半田付けにある程度慣れている方向けとなります。商品へのリンクは下記になります。 Raspberry Pi キャラクタ液晶ディスプレイモジュール完成品 Raspberry Pi キャラクタ液晶ディスプレイモジュールキット 組み立てキットに含まれるパーツを図示したのが下図(左)となっています。ピンソケットが2種含まれていますので、お好みの方を半田付けします。 完成品にはLCDを立てて使うためのピンソケットがあらかじめ取り付けられているようです。 なお、本書のようにブレッドボードで利用するためには、組み立てキットに下図(中)のようにピンヘッダを別途購入して半田付けすることをお勧めします。ピンヘッダとは、例えば下記のようなものです。丁度のサイズのものを購入するよりは、長いものを購入してニッパでカットするのが一般的です。 ピンヘッダ 1×6 (6P) ピンヘッダ 1×40 (40P) ピン配置は本書のものとは異なり、上図(右)のようになっています。 利用例は下図のようになっています。下図(左)がピンソケットを用いた場合で、Raspberry PiのGPIO(3.3V/SDA/SCL/GPIO4/GNDと続くピン)に直接させるようになっています。完成品ではLCDを立てて使うようなピンソケットとなっています。ただし、これではGPIOのピンの一部が利用できなくなってしまいますので、「オス-メス ジャンパワイヤ」を介してGPIOに接続するのがお勧めです。 ピンヘッダを用いて作成したLCDならば本書のようにブレッドボートで利用可能です。その様子を示したのが下図(右)です。なお、基板の「LED」ピンを3.3Vに接続すると、図のようにLCDのバックライトが点灯した状態になります。お好みで利用してください。ピンソケットでGPIOに直接差したLCDならば、GPIO 4をHIGHにすることでバックライトが点灯します。なお、バックライトを利用するには、LCDを基板に半田付けする際に2か所の四角いピンも半田付けする必要がありますのでご注意ください。 7章全般:利用できるLCDについて2~ストロベリーリナックス編 本書では上で紹介したように、秋月電子通商で入手可能な8文字x2行のLCDを用いました。 よりたくさんの文字を表示できるLCDとして、ストロベリーリナックスで取り扱われている以下のものが利用可能です。どちらも16文字x2行ですので、本書で取り扱ったものの倍の文字数を表示できます。 【大型】I2C低電圧キャラクタ液晶モジュール(16x2行)通過型 I2C低電圧キャラクタ液晶モジュール(16x2行) 利用している様子が下図になります。「sudo python 07-02-LCD.py 'Hello, Raspberry Pi!'」を実行した様子です。 なお、プログラムですが、本書刊行後に修整した下記をお勧めします。このLCDのための修整ではありませんが、下記に記した通りのメリットがあります。 07-02-LCD-mod.py:07-02-LCD.pyの修整版。コントラスト調整とカナ表示が可能 07-03-LCD-temp-mod.py:07-03-LCD-temp.pyの修整版。コントラスト調整とカナ表示が可能で、I2C通信時のエラーをスキップする これらをターミナルでダウンロードする場合、下記のコマンドを実行してください。 $ wget https://raw.githubusercontent.com/neuralassembly/raspi/master/07-02-LCD-mod.py $ wget https://raw.githubusercontent.com/neuralassembly/raspi/master/07-03-LCD-temp-mod.py なお、これらのLCDが本書のLCDと共通でのプログラムで利用可能な理由は、コントローラーICとしてST7032iと呼ばれるものが共通で用いられているためです。それ以外のLCDは本書のプログラムでは動作しませんのでご注意ください。 なお、回路の接続は本書のものとは少し異なります。上図のどちらの液晶を用いる場合も下図を参考にしてください。 プログラムは、一行だけ変更が必要です。07-02-LCD.pyや07-03-LCD-temp.pyには下記のようにLCDの文字数を設定している行があります。これらは8x2の液晶であることを示しています。 chars_per_line = 8 display_lines = 2 これを下記のように変更して保存すれば完了です。 chars_per_line = 16 display_lines = 2 また、「I2C低電圧キャラクタ液晶モジュール(16x2行)」では文字がやや薄いことがわかるでしょう。その場合、上記の修整版プログラムにしか存在しませんが、下記の行を見つけ、数字を40程度にすると見やすい濃さの文字になります。 unrelatedness = 32 # 0から63のコントラスト。通常は32、文字が薄いときは40を推奨 7章全般:LCDにカタカナを表示する 本書で用いたLCD、および上で紹介した16x2のLCDはどちらもカタカナを表示することができます。本書のプログラムを若干修整したものを用いる必要がありますが、ここで紹介します。 修整したプログラムは下記です(上の補足で何度か紹介したものと同じです)。 07-02-LCD-mod.py:07-02-LCD.pyの修整版。コントラスト調整とカナ表示が可能 07-03-LCD-temp-mod.py:07-03-LCD-temp.pyの修整版。コントラスト調整とカナ表示が可能で、I2C通信時のエラーをスキップする これらをターミナルでダウンロードする場合、下記のコマンドを実行してください。 $ wget https://raw.githubusercontent.com/neuralassembly/raspi/master/07-02-LCD-mod.py $ wget https://raw.githubusercontent.com/neuralassembly/raspi/master/07-03-LCD-temp-mod.py 例えば、07-02-LCD-mod.pyを開いて見ると、末尾に下記の記述があります。 # アルファベットと記号は「''」でくくってそのまま表示可能 write_string('Hello World') # カタカナや特殊記号は文字コードを一文字ずつ入力 # 以下は「ラズベリー パイ」と表示する例 #s = chr(0xd7)+chr(0xbd)+chr(0xde)+chr(0xcd)+chr(0xde)+chr(0xd8)+chr(0xb0)+' '+chr(0xca)+chr(0xdf)+chr(0xb2) #write_string(s) このうち、「write_string('Hello World')」の先頭に「#」を記述して無効にし、 「s = chr(0xd7)+(略)」と「write_string(s)」の先頭の「#」を削除して有効にします。これを保存して実行すれば、下図のように「ラズベリー パイ」と表示されます。 上のコードでは「ch(0xd7)」が「ラ」を表しており、それを「+」記号でつないでいます。空白文字だけは英数字と同じ扱いで「' '」と表記しています。カタカナと記号の対応表は下記になります。色々試して見ると面白いでしょう。 ただし、上で紹介したストロベリーリナックスの2つのLCDでは、下記対応表の一番左の列の文字(0x06~0x0f)は表示されないようです。ご了承ください。 第8章 p.192など:半固定抵抗の回転の向きについて 6章の注釈でも既に述べたように、「半固定抵抗の3.3VピンとGNDへの接続を入れ替える」ことで、AD変換の値が大きくなる回転の向きを逆にすることができます。 お使いの半固定抵抗により回転の向きが異なることがありますので、配線の入れ替えにより好みの向きを選択してください。 p.181:RGBフルカラーLEDについて Arduino Sidekick Basic Kitに含まれるRGBフルカラーLEDは共通アノード(アノードコモン)、秋月電子通商のパーツセットに含まれるRGBフルカラーLEDは共通カソード(カソードコモン)です。 共通カソード(カソードコモン)のRGBフルカラーLEDを用いる場合、書籍とサンプルファイルの指示に従い、プログラムを編集してから用いる必要がありますので、御注意ください。 回路の配線も異なりますので書籍中の図をよく見て配線しましょう。 p.181:LED光拡散キャップ白(5mm) 8章および9章で5mmサイズのRGBフルカラーLEDを使う際、光拡散キャップを取り付けると色が見やすくなるため使用を推奨しました。 上で紹介した「Arduino Sidekick Basic Kit バージョン2」を購入された場合、含まれるRGBカラーLEDは光拡散キャップが不要なパッケージに変更されておりますので、使用する必要はありません。 下記の写真は、左から順に「Arduino Sidekick Basic Kit バージョン1に含まれるRGBフルカラーLED(端子カット済)」、「光拡散キャップ」、「Arduino Sidekick Basic Kit バージョン2に含まれるRGBフルカラーLED」です。 p.204:DCモーターのノイズについて 書籍でも触れたように、DCモーターを動かすと大きなノイズが発生します。Wifiを使ってRaspberry Piをネットワークに接続している場合、 ある条件が重なったときにDCモーターのノイズによりWifiの接続が切れてしまう現象が見られました。USB機器の相性に起因するようですが、起こる確率はあまり高くないように思います。もし運悪くそのような状況に遭遇した場合、下記の対策を検討してみてください。 Raspberry Piに接続してるUSB機器、典型的にはキーボードとマウスを別のものに変更する 書籍p.212の図8-12のように、DCモーターにコンデンサを3個とりつける(端子間1個、端子-外装間2個)。書籍p.212の図8-12をカラーで再掲しますので、参考にしてみてください。 筆者の場合、上記2つのどちらの方法でも解決できました。なお、このDCモーターのノイズの問題は9.6章および10章でも起こりえますので注意してください。 p.181:サーボモーター 本書では、Arduino Sidekick Starter Kitに含まれるサーボモーター以外に、比較的安価に入手できるサーボモーターとして秋月電子通商で取り扱われている下記のものを紹介しました。 GWSサーボ PIC+F/BB/F(フタバ) GWSサーボ S03N/2BBMG/F(フタバ) その後、秋月電子通商ではさらに安価なサーボモーターとして下記のものも取り扱われるようになりました。 マイクロサーボ9g SG-90 マイクロサーボ SG92R amazonではSG-90の複数個セットも取り扱われております。 デジタル・マイクロサーボ SG90 このSG-90やSG92Rを用いて本書の演習を行うこともできるのですが、このような安価なサーボは故障や動作不良もあり得ると考え、1個ではなく複数個購入すべきだと思います。そういう意味では、これらのサーボモーターはトラブルがあった時に対処できる上級者向けの商品であると個人的には思います。 p.212:wiringPiを用いたハードウェアPWM信号によるサーボモーターの制御 本書ではwiringPiを用いてGPIO 18に対して精度の高いハードウェアPWM信号を出力し、サーボモーター1個の角度を制御しました。 Raspberry Pi Model BではハードウェアPWM信号はGPIO 18からの1つのみしか出力できなかったのですが、Raspberry Pi Model B+以降(Raspberry Pi 2 Model B含む)では、ハードウェアPWM信号を2つ出力できます。 下図のように、1つ目のPWM0はGPIO 18かGPIO 12のどちらかから、2つ目のPWM1はGPIO 13かGPIO 19のどちらかから出力できます。その方法は本書で解説した方法と同じですので試してみてください。 p.213:wiringPiのダウンロードとインストール 書籍執筆時に比べ、wiringPiのインストール方法が大きく異なっています。Raspbianのバージョンにより異なりますので、順に解説します。 NOOBS 1.4.2以降に含まれるRaspbian(Jessie, Stretch)では、wiringPiはデフォルトでインストールされていますので、改めてインストールをする必要はありません。p.214のWiringPi2-Pythonのインストールから行ってください。なお、NOOBS 1.4.2以降ではPythonでGPIOにアクセスするプログラムに管理者権限が不要になったのですが、このwiringPiを用いる場合は依然として管理者権限が必要です。「sudo idle &」で起動したIDLEでプログラムを実行してください。 NOOBS 1.4.1までのRaspbian(Wheezy)では下記のコマンドのようにapt-getで簡単にwiringPiをインストールできるようになっています。 $ sudo apt-get update $ sudo apt-get install wiringpi これがp.213の3つのコマンドの代わりとなりますので、これを終えた後にp.214のWiringPi2-Pythonのインストールに進んでください。 p.214:WiringPi2-Pythonのインストール p.214のWiringPi2-Pythonのインストールですが、やや長いコマンドが多いので、コピー&貼り付けできる形で以下に再掲します。必要に応じて活用してください。なお、(3)のダウンロードサイトは、書籍に記したサイトでは更新が終了されたので変更してあります。 (1) $ cd (2) $ sudo apt-get update (3) $ sudo apt-get install python-dev python-setuptools (4) $ git clone https://github.com/neuralassembly/WiringPi2-Python.git (5) $ cd WiringPi2-Python (6) $ sudo python setup.py install 第9章 p.227:WebIOPiのダウンロードサイト WebIOPiのダウンロードサイトは、下記に変更されていますので注意してください。現在、ページの上部に「Cayenne」というソフトへのリンクがありますが、「Cayenne」ではなく、「WebIOPi 0.7.1」をダウンロードするようにしてください。 http://webiopi.trouch.com/ p.227:NOOBS 1.4.2以降におけるWebIOPiのダウンロードと展開 書籍の段階では、epiphanyでWebIOPiをダウンロードするとXarchiverという展開ソフトが自動で起動しましたので、そのソフトを用いて圧縮ファイルの展開を行いました。 しかしNOOBS 1.4.2以降では、epiphanyでWebIOPiをダウンロードしてもXarchiverは起動しない場合があります。その場合、ユーザーpiのホームのダウンロード(Downloads)ディレクトリにWebIOPi-0.7.1.tar.gzが保存されていますので、それを以下の手順で展開してください。 ファイルマネージャを起動し、ダウンロード(Downloads)ディレクトリにあるWebIOPi-0.7.1.tar.gzを、ユーザーpiのホームディレクトリに移動する(p.306の図B-2が類似しているので参考になるでしょう) ターミナルを起動し、下記のコマンドでWebIOPi-0.7.1.tar.gzを展開してください。  tar zxf WebIOPi-0.7.1.tar.gz 以上が終わったら、このまま以下の記述に従い、WebIOPiをインストールしてください。 p.227:WebIOPiのバージョンとインストール 本書はWebIOPi 0.7.0を用いて解説しましたが、2015年2月10日にWebIOPi 0.7.1がリリースされました。Model BとModel B+で正常動作するこのバージョンでWebIOPiの開発は実質停止しているようですが、有志により Raspberry Pi 2 や Pi 3 で動作させる方法が公開されていますので、その方法でインストールしましょう。 全てのバージョンのRaspberry Piで以下の方法でインストールしてください。なお、デモアプリケーションではGPIOが40ピン分表示されますが、GPIOが26ピンのModel Bでは、26ピン分までのGPIOのみを用いるようにしてください。 まず、本書p.228と同じ方法でWebIOPi-0.7.1をダウンロードし、/home/piに展開してください。必ず、WebIOPi-0.7.0ではなくWebIOPi-0.7.1を用いてください。この時点でユーザーpiのホームディレクトリにWebIOPi-0.7.1ディレクトリができています。そして、p.228のインストール時の2つのコマンドを以下の4つに変更します。 二つ目の命令は複雑なので、ブラウザ上でCtrl-cでコマンドをコピーし、「編集」→「貼り付け」でターミナルに貼り付けると良いかもしれませんね。 $ cd WebIOPi-0.7.1/ $ wget https://raw.githubusercontent.com/neuralassembly/raspi2/master/webiopi-pi2bplus.patch $ patch -p1 -i webiopi-pi2bplus.patch $ sudo ./setup.sh 最後に、下記のような質問をされますので、「n」を入力してEnterキーを押し、インストールを完了してください。 Do you want to wangle WebIOPi over Internet ? [y/n] この質問は「インターネットから家の中などにあるRaspberry Piにアクセスしますか?」という内容の質問なのですが、本書ではp.226で触れたように、同一ネットワーク内からのアクセスのみを考えますので、「いいえ」に相当する「n」を入力するわけです。 以上の方法に従わずにそのままWebIOPi 0.7.1をインストールすると、下図のようにデモアプリケーションであるGPIO Headerにおいて、「IN/OUT」などの文字が現れるべきボタンが灰色のみのボタンとなってしまいます(書籍237ページ図9-6に対応)。その場合、WebIOPiを再インストールしてみましょう。ユーザーpiのホームディレクトリ(フォルダ)で下記のコマンドにより過去のインストール時のファイルを一旦削除します。 $ sudo rm -rf WebIOPi-0.7.1/ その後、上記の4コマンドを入力し、WebIOPi 0.7.1をインストールしてみてください。なお、この「ボタンに文字がなく灰色一色になる」状況を解決しないと、9章の残りの内容は正常に動作しませんのでご注意ください。 なお、再インストールを行っても状況が変わらないという場合、原因はわかりませんが、OSであるRaspbianが壊れているという可能性もないとは言えません。余力があればOSを再インストールしてみることも検討してみると良いでしょう(私自身、OSの再インストールが必要だったことはないのですが、読者の方にはそれで改善したという方が複数名いらっしゃるようです)。 p.229:NOOBS 1.4.2以降(Jessie, Stretch)でのWebIOPI 0.7.1の起動について NOOBS 1.4.2以降ではサービスの管理方法が変更されたため、書籍に書かれている方法でのWebIOPiの起動(sudo /etc/init.d/webiopi start)ができません。WebIOPIの新しいバージョンがリリースされれば、この問題は解決される可能性がありますが、WebIOPi 0.7.1を使う場合は下記の手順に従ってください。 まず、WebIOPi 0.7.1をインストールし終えた後、NOOBS 1.4.2以降を用いている方は以下の手順に従ってください。 ターミナルで以下のコマンドを実行します。 $ wget https://raw.githubusercontent.com/neuralassembly/raspi/master/webiopi.service $ sudo mv webiopi.service /etc/systemd/system/ 本書において、WebIOPiの起動と終了のコマンドを下記で読み替えます。 (旧) sudo /etc/init.d/webiopi start sudo /etc/init.d/webiopi stop → sudo systemctl start webiopi sudo systemctl stop webiopi また、本書において、WebIOPiのの自動起動の有効化と無効化のコマンドを下記で読み替えます。 (旧) sudo update-rc.d webiopi defaults sudo update-rc.d webiopi remove → sudo systemctl enable webiopi sudo systemctl disable webiopi p.232:IPアドレスでのURLの指定について 本書では、ブラウザからRaspberry Piにアクセスする際に、ルーターなどからRaspberry Piに割り振られたIPアドレスを用いました。すなわち、IPアドレスが192.168.1.3の場合にブラウザから例えば下記のようにアクセスしました。 http://192.168.1.3:8000/bb/01/ しかし、この方法はifconfigコマンドなどで事前にIPアドレスを調べておく必要があり、やや面倒でした。 このIPアドレスの指定を簡単化する方法としては、以下の2つが考えられます。 Raspberry PiのIPアドレスを固定し、毎回同じアドレスの指定で済むようにする IPアドレスではなく、「raspberrypi.local」のような名前で指定する 1つ目については、解説がやや長くなるため「Raspberry PiのIPアドレスを固定する」というページにまとめましたので興味のある方は御覧ください。 以下では、2つめの「raspberrypi.local」のような名前で指定する方法について記します NOOBS 1.4.2以降に含まれるRaspbian(Jessie, Stretch)では、IPアドレスを用いずに「raspberrypi.local」のような名前でRaspberry Piにアクセスできます。ただし、この方法でRaspberry Piにアクセスできるのは下記のみです。 iTunesをインストールしたWindows(iTunesに含まれるBonjourというアプリケーションが必要なためです。ただし、Windows 10にApril 2018 Updateを適用すると、この方法が一時的に使えなくなります。WindowsからiTunesとBonjourを一旦削除してからiTunesをインストールしなおすとまた使えるようになるようです) Mac OS X iPhoneやiPad Androidスマートフォンでは現時点ではこの方法ではRasbperry Piにはアクセスできないように思われます。 上記の条件が満たされた場合、方法は簡単で、ブラウザのアドレス欄に例えば下記のように入力すればOKです。 http://raspberrypi.local:8000/bb/01/ すなわち、IPアドレス「192.168.1.3」などの代わりに「raspberrypi.local」という記法が使える、というわけです。これは、JessieおよびStretch上で動作しているavahiというソフトウェアの働きによります。 なお、Jessie以前のWheezyで同じことを実現したい場合、LXTerminalを起動して下記のようにavahi-daemonをインストールする必要があります。 sudo apt-get update sudo apt-get install avahi-daemon インストール後に再起動すると、自動的にavahiが起動し、「raspberrypi.local」でのアクセスが可能になります。 なお、同じネットワーク内でavahiが起動したRaspberry Piが2台以上あると、同じ名前「raspberrypi」のマシンが2つ以上ある状態になり、名前の衝突が起こります。その場合、2台目以降のRaspberry Piには「raspberrypi-2.local」などの名前が自動的につけられますのでご注意ください。名前が衝突しないよう、あらかじめ「raspberrypi」というマシン名を変更しておく方法もありますが、ここでは省略します。 p.240:WebIOPi用サンプルファイルの/usr/share/webiopi/htdocsディレクトリへのコピー 240ページでは、本書のサンプルファイルを/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 p.251:Python3でI2Cを用いる方法について 執筆時に比べ、Python3でI2Cを用いるためのインストール作業が簡単になっています。 $ sudo apt-get update $ sudo apt-get install python3-smbus この2行がp.251の9つのコマンドの代わりとなります。機会があれば試してみてください。 p.255:デジタル温度計のloop関数について 9.4節において、WebIOPiを用いて温度計の値をブラウザから読み取る方法を紹介しました。書籍のように、手動でWebIOPiを起動する場合は問題ないのですが、10章のキャタピラ式模型のようにWebIOPiを自動起動する場合、9.4節のプログラムがうまく動作せず温度がブラウザで読み取れないことがわかりました。 これは、WebIOPiのloop関数が、手動起動した場合は問題なく動作するものの、自動起動ではうまく機能しないことが原因のようです。 修正プログラムは以下の手順で導入できますので、デジタル温度計プログラムを自動起動で実行したい方は試してみてください。WebIOPiのloop関数を用いず、スレッドという機能で温度を読み取るように変更しています。もちろん、自動起動ではなく手動起動でも動作します。 $ sudo rm -r /usr/share/webiopi/htdocs/bb/02 $ rm -r 02 $ rm 02.zip $ wget https://raw.githubusercontent.com/neuralassembly/raspi/master/02.zip $ unzip 02.zip $ mv 02 /usr/share/webiopi/htdocs/bb/ 2番目と3番目の命令では既存のディレクトリとファイルの削除を行っており、「そのようなファイルは存在しない」というメッセージが出る場合がありますが気にしなくとも構いません。 p.256:RGBフルカラーLEDについて Arduino Sidekick Basic Kitに含まれるRGBフルカラーLEDは共通アノード(アノードコモン)、秋月電子通商のパーツセットに含まれるRGBフルカラーLEDは共通カソード(カソードコモン)です。 共通カソード(カソードコモン)のRGBフルカラーLEDを用いる場合、書籍とサンプルファイルの指示に従い、プログラムを編集してから用いる必要がありますので、御注意ください。 回路の配線も異なりますので書籍中の図をよく見て配線しましょう。 p.262:最新のRaspbian Stretchでの動作について Raspbian Stretchをお使いの方で、2017年8月から10月の間にWebIOPiをインストールした方は、9.6章のプログラムにおいて画像が表示されないという問題が発覚しました。 この問題を解決するには、まずターミナルを起動して下記のコマンドで過去のインストールファイルを一旦削除します。 sudo rm -rf WebIOPi-0.7.1 その後、本ページの「p.227:WebIOPiのバージョンとインストール」に記されたインストールコマンドに基づいてもう一度WebIOPiをインストールしてください。 設定ファイル /etc/webiopi/config や /usr/share/webiopi/htdocs 以下にあるサンプルファイルはそのままで構いません。 また、WebIOPiが起動済であれば一度停止して再び起動する必要があることにもご注意ください。お手数をおかけしますがよろしくお願いします。 p.262:DCモーターのノイズについて もし、DCモーターを動かしたときにWifiの接続が切れるような現象が見られた場合、本ページ上部の「p.204:DCモーターのノイズについて」にある対策を御覧ください。 10章 p.276:DCモーターのノイズについて もし、DCモーターを動かしたときにWifiの接続が切れるような現象が見られた場合、本ページ上部の「p.204:DCモーターのノイズについて」にある対策を御覧ください。 p.288: LCDへのIPアドレスの表示について(1) 本書では、Raspberry Piにブラウザからアクセスする際にIPアドレスを用いました。そのため、Raspberry Piにルーターなどから割り振られたIPアドレスを知る目的で、LCDを回路に取り付けました。 しかし、「p.232:IPアドレスでのURLの指定について」の注意で紹介しましたように、avahiという仕組みを用いると、IPアドレスではなく、下記のようなアドレスでのアクセスが可能になるのでした。 http://raspberrypi.local:8000/bb/05/ これを用いると、回路からLCDが不要になるなどのメリットがあります。具体的には下記の通りです。 p.286の図10-6からLCDを取り外して良い p.288での/etc/rc.localへの「sudo python /home/pi/07-02-LCD.py $_IP &」の記述が不要 さらに、Raspberry PiのIPアドレスを固定する、という方法でも、毎回IPアドレスを調べる必要がなくなりますね。こちらについては「Raspberry PiのIPアドレスを固定する」にまとめましたので、興味のある方は御覧ください。 7章の補足で述べたように、LCDにはロットの問題によるトラブルが発生していますので、これら方法を用いてLCDなしの回路とする方が良いかもしれませんね。 p.288: LCDへのIPアドレスの表示について(2) 起動時にLCDへIPアドレスを表示する方法を記しましたが、IPアドレスの表示に成功するのは、「Raspberry PiにIPアドレスが割り振られる」→「LCDにIPアドレスが表示される」という順番で処理が行なわれたときのみです。 ネットワーク環境やNOOBSのバージョンによっては、Raspberry PiにIPアドレスが割り振られるタイミングが遅く、LCDにIPアドレスが表示されない、ということがありました。その場合、LCDには「Raspberry Pi」と表示されます。 そのような問題に直面した場合、下記の2つの方法を試し、LCDにIPアドレスを表示するタイミングを遅らせてみましょう。 まず、NOOBS 1.4.2以降に含まれるRaspbian(Jessie, Stretch)を用いている方向けの方法です。 Jessie以降に含まれる設定アプリケーションでは、下図(左)のように「Network at Boot」という項目があります。この「Wait for network」にチェックを入れて再起動すると、Raspberry Piのネットワークへの接続が完了してから起動が完了するようになります。その結果、LCDにIPアドレスが表示されるようになる、というわけです。下図(右)のように以前からの設定アプリケーションraspi-configにも「Wait for Network at Boot」という項目が追加されており、「Slow Wait for network connection surpassing completing boot」を選択することで、同様の効果が得られます。 次に、NOOBS 1.4.1までのRaspbian(Wheezy)を用いている方向けの方法です。 /etc/rc.localの下記の位置に下記のように「sleep 10」と記入して、LCDへのIPアドレスの表示を10秒遅らせると、LCDへのIPアドレスの表示に成功することがあります。「10」という数字はLCDの表示を遅らせる秒数ですので、環境により適切な秒数に調節してください。 (略) # By default this script does nothing. sleep 10 # Print the IP write (略) ただし、こうするとRaspberry Piの起動が10秒遅くなることになりますので御了承ください。 p.292:mjpg-streamerインストール用コマンドの2番め mjpg-streamerをインストールするためのコマンドの2番めは下記のようなものでした。 $ sudo apt-get install libjpeg62-dev cmake このコマンドが E: Package ′libjpeg62-dev′ has no installation candidate というエラーにより終了する場合、このコマンドを下記のように変更してください。libjpeg62-devをlibjpeg8-devに変更しています。 $ sudo apt-get install libjpeg8-dev cmake せっかくですので、(1)~(7)のコマンドを変更済みの形で全て書くと下記の通りです。長いコマンドが多いので一つずつコピーして実行しても良いでしょう。その際、行頭の「(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 p.296:カメラモジュールv2について 2016年4月、Raspberry Piのカメラモジュールのバージョン2が発売になりました。こちらでも10章のプログラムは動作します。 p.296:誤字について このページに下記の誤字があることをお知らせ頂きました。お知らせ頂きありがとうございました。 金属性のビス → 金属製のビス 付録A p.300:Wifi Config NOOBS 1.4.1以降のRaspbianでは、Wifiの設定をするための方法が下図のようにシンプルになり、さらに接続状況がひと目でわかるようになっています。 NOOBS 1.3.11~1.4.0までののRaspbianでは、Wifiの設定をするためのアプリケーションWifi Configは「Menu」→「設定」→「Wifi Configuration」で起動します。 付録B p.305:USBメモリの利用について このページでは、USBメモリを用いて本書のサンプルファイルをRaspberry Piへコピーする方法を解説していますが、NOOBSが更新されGUIが大きく変更されたため、この部分の操作に少し変更があるので補足します。 まず、USBメモリをRaspberry Piにさすと、下図のようにファイルマネージャで開くかどうかの確認画面が現れます。ここでOKをクリックしてください。USBメモリの中身が見える状態でファイルマネージャが起動します。 USBメモリの中身をRaspberry Piにコピーする操作は書籍から変更ありません。 最後に、USBメモリをRaspberry Piから抜く操作です。NOOBS 1.4.2以降を用いている方は、下図のように画面右上に「安全な取り外し」に相当するボタンがありますので、それを押してからUSBメモリを抜くようにしましょう。Windowsなどと同じ手順ですね。 追加PDF PDF10:spidevのインストールについて 公式サポートページでダウンロードできる追加PDFの内容についてです。spidevを用いてADコンバータから値を取得する方法を紹介しておりますが、2015年2月に公開されたNOOBS 1.3.12以降のRaspbianでは追加PDFの通りに操作してもプログラムが意図通りに動作せず、値が取得できません。そこで、以下のようにspidevのインストール方法を変更する必要があります。Raspbianのバージョンにより異なりますので、順に解説します。 NOOBS 1.4.2以降のRaspbian(Jessie, Stretch)の場合は、python-spidevというパッケージをインストールします。バージョンによってはデフォルトでインストール済の場合もあります。 $ sudo apt-get update $ sudo apt-get install python-spidev 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」のように最大周波数の設定が必要になったのです。 投稿者 Takashi Kanamaru 時刻: 22:42 8 件のコメント: メールで送信BlogThis!Twitter で共有するFacebook で共有するPinterest に共有 前の投稿 ホーム 登録: 投稿 (Atom) 公式サポートページ サンプルファイルや応用PDFはこちら カラー図解 最新 Raspberry Piで学ぶ電子工作 本書の改訂版が発売されました 実例で学ぶRaspberry Pi電子工作 本書の次のステップとして最適です カラー図解 Raspberry Piではじめる機械学習 Raspberry Piで機械学習したい方へ ブログ アーカイブ ▼  2018 (2) ▼  12月 (2) 「Raspberry Piで学ぶ電子工作」補足情報トップ 本書発売後の追加情報 ►  2016 (4) ►  4月 (3) ►  2月 (1) ►  2015 (7) ►  12月 (1) ►  11月 (1) ►  4月 (3) ►  1月 (2) 「シンプル」テーマ. Powered by Blogger.