tag:blogger.com,1999:blog-65585743045927255962024-03-04T21:33:47.646+09:00Raspberry Piで学ぶ電子工作 補足情報Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.comBlogger14125tag:blogger.com,1999:blog-6558574304592725596.post-10614474166123783782024-02-16T22:11:00.000+09:002024-02-16T22:14:43.284+09:00Raspberry Piで学ぶ電子工作 補足情報トップ<h3>
はじめに</h3>
本ページは、2014年11月に発売された金丸隆志著「Raspberry Piで学ぶ電子工作」(講談社ブルーバックス)の補足情報をまとめるためのページです。
<br />
<br />
2016年7月に発売された本書の改訂版のページは「<a href="https://raspibb1.blogspot.jp/" target="_blank">カラー図解 最新 Raspberry Piで学ぶ電子工作</a>」、<br />
2020年6月に発売された本書の改訂版のページは「<a href="https://raspibb1a.blogspot.jp/" target="_blank">ラズパイ4対応 カラー図解 最新 Raspberry Piで学ぶ電子工作</a>」、<br />
ですのでご注意ください。<br />
<br />
以下では、Raspberry PiのOSの更新に伴う内容の変更や、正誤情報などを記していきます。<br />
<br />
<h3>
補足情報一覧</h3>
<div>
<ul>
<li><a href="https://raspibb.blogspot.com/2024/02/pi-zero-pi-5.html" target="_blank">本書の内容を Pi Zero ~ Pi 5 で実行する方法</a></li>
</ul>
<br />
<h3>
追加コンテンツ</h3>
<ul>
<li><a href="https://raspibb.blogspot.com/2015/01/pc.html" target="_blank">サーボモーターをPCやスマートフォンから角度制御する</a></li>
</ul>
<ul>
<li><a href="https://raspibb.blogspot.com/2015/12/raspberry-pi-zero.html" target="_blank">Raspberry Pi Zero シリーズで本書の演習を実行する方法</a></li>
</ul>
<ul>
<li><a href="https://raspibb.blogspot.com/2016/04/raspberry-pi.html" target="_blank">ディスプレイ・マウス・キーボードを接続せずにRaspberry Piを利用する</a></li>
</ul>
<ul>
<li><a href="https://raspibb.blogspot.com/2016/04/blog-post.html" target="_blank">据置きのルーター機器を介さずキャタピラ式模型を操作してみた</a></li>
</ul>
<ul>
<li><a href="https://raspibb.blogspot.com/2015/11/raspberry-pi.html" target="_blank">Raspberry Pi公式タッチディスプレイで本書の演習を実行する</a></li>
</ul>
<br />
<h3>
知っておくと便利な設定など</h3>
<ul>
<li><a href="https://raspibb.blogspot.com/2016/04/raspberry-piip.html" target="_blank">Raspberry PiのIPアドレスを固定する</a></li>
</ul>
<ul>
<li><a href="https://raspibb.blogspot.com/2015/04/proxy.html" target="_blank">プロキシ(Proxy)環境下での本書の演習の実行</a></li>
</ul>
<ul>
<li><a href="https://raspibb.blogspot.com/2015/04/blog-post.html" target="_blank">インストールしておくと便利なアプリケーションなど</a></li>
</ul>
<ul>
<li><a href="https://raspibb.blogspot.com/2015/04/epiphany.html" target="_blank">ブラウザepiphanyの検索エンジンを変更する</a></li>
</ul>
<ul>
<li><a href="https://raspibb.blogspot.com/2015/04/caps-lockctrl.html" target="_blank">キーボードのCaps LockキーとCtrlキーを入れ替える</a></li>
</ul>
<br />
<h3>
感想など</h3>
<ul>
<li><a href="https://raspibb.blogspot.com/2015/01/blog-post.html" target="_blank">読者の方々の声</a></li>
</ul>
</div>
<br />
<br />Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com106tag:blogger.com,1999:blog-6558574304592725596.post-76253562088283296702024-02-16T22:10:00.000+09:002024-02-16T22:14:01.432+09:00本書の内容を Pi Zero ~ Pi 5 で実行する方法本書の演習を Raspberry Pi 5 で行いたいという場合、本書の最新版の解説サイトである下記をご覧ください。Raspberry Pi 5 対応のサンプルファイルをダウンロードできます。
もちろん、Pi 5 以前のモデルでも動作します。
<ul>
<li><a href="https://raspibb1a.blogspot.com/2024/02/pi-zero-pi-5.html" target="_blank">ラズパイ4対応 カラー図解 最新 Raspberry Pi で学ぶ電子工作 | 本書の内容を Pi Zero ~ Pi 5 で実行する方法</a></li>
</ul>
Raspberry Pi 5 登場以前の本書の補足ページは下記に残されていますが、今後需要は減っていくでしょう。
<ul>
<li><a href="https://raspibb.blogspot.com/2016/02/blog-post.html" target="_blank">本書の補足情報(Pi Zero~Pi 4までの古い情報)</a></li>
</ul>
Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com0tag:blogger.com,1999:blog-6558574304592725596.post-23655389363971159222024-02-16T22:09:00.000+09:002024-02-16T22:15:08.627+09:00読者の方々の声発売以来、たくさんの方にご愛読頂きありがとうございます。<br />
ここでは、読者の方々のレビューなどをご紹介したいと思います。<br />
<br />
<h4>
ご利用に感謝</h4>
<ul>
<li><a href="http://shinsho.kadokawa.jp/serial/2124/" target="_blank">角川新書 新書座談会</a></li>
</ul>
<div>
書籍をご紹介頂いています。
</div>
<ul>
<li><a href="http://marchin-1989.hatenablog.com/entry/2016/05/16/201544" target="_blank">marchin-1989のブログ:電子工作を学ぶ(RaspberryPi)</a></li>
</ul>
<div>
AD変換やI2Cの演習を試されています。
</div>
<br />
<ul>
<li><a href="http://qiita.com/xiao/items/5f18d826f7811f29afd2" target="_blank">Web屋の電子工作DIY:夜更かしテレビを罰金性にして、早起き生活を手に入れる①</a></li>
</ul>
<div>
電子工作の参考書としてご利用頂いております。
</div>
<br />
<ul>
<li><a href="http://makerslove.com/ew_school.html" target="_blank">超入門!スマホで動かす電子工作。ゼロから学ぶ未来の家電作り </a></li>
</ul>
<div>
電子工作セミナーの教材としてご利用頂いています。
</div>
<br />
<ul>
<li><a href="http://www.canvas.ws/nanako/?p=7036" target="_blank">Raspberry Piを使ったロボット制作開始! </a></li>
</ul>
<div>
ロボット制作教室の教材としてご利用頂いています。
</div>
<br />
<ul>
<li><a href="http://darmus.net/raspberry-pi-necessary-equipments/" target="_blank">Raspberry Piで電子工作をはじめるにあたって必要なものリストまとめ(2016年2月版)</a></li>
</ul>
<div>
参考書としてご紹介頂いています。
</div>
<br />
<ul>
<li><a href="http://qiita.com/kamotsuru/items/6520c17428d39d3b8e9f" target="_blank">Raspberry PiでErlang使ってADコンバータでアナログ値取得してみた</a></li>
</ul>
<div>
AD変換のプログラムをErlang環境に移植されています。
</div>
<br />
<ul>
<li><a href="http://shinogasa.hatenablog.com/entry/2016/01/07/112738" target="_blank">「ポンコツ備忘録」さん</a></li>
</ul>
<div>
手作り目覚まし時計を作る際にタクトスイッチを利用されています。
</div>
<br />
<ul>
<li><a href="http://iwasakiyouhei.com/category/raspberry-pi/" target="_blank">「いわへいへーいの(日記||メモ)」さん</a></li>
</ul>
<div>
本書をベースに様々な電子工作の例を試されており、解説も充実しています。
</div>
<br />
<ul>
<li><a href="http://meuse.co.jp/%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C/raspberry-pi%E3%81%A7%E9%81%A0%E9%9A%94%E3%82%AB%E3%83%A1%E3%83%A9/" target="_blank">株式会社ミューズ・ロボティクスさん「Raspberry Piで遠隔カメラ」</a></li>
</ul>
<div>
遠隔操作できるカメラを作成する際、10章や<a href="https://raspibb.blogspot.jp/2015/01/pc.html" target="_blank">追加コンテンツ</a>の内容の一部を<br />
参考にして頂いております。</div>
<br />
<ul>
<li><a href="http://kuhjaeger.co.jp/laboratory/raspberrypi/pyroinfraredsensor/" target="_blank">株式会社クーイエガーさん「人感センサー(焦電型赤外線センサー)~家電制御の起点になります」</a></li>
</ul>
<div>
人感センサーを利用する際に6章のA/D変換の章を参考にして頂いております。</div>
<br />
<ul>
<li><a href="http://robots1.blog.jp/" target="_blank">「ロボットを作る」さん</a></li>
</ul>
<div>
Raspberry Pi 2で本書の内容を順に試されています。<br />
動作確認がとれている範囲は問題なく動いているようで安心しました。
</div>
<br />
<ul>
<li><a href="http://blog.goo.ne.jp/ftblock/e/f924abd1294fa617ead60ad6671e1972" target="_blank">「フィッシャーテクニックのブロックキット」さん</a></li>
</ul>
<div>
<a href="http://www.kknomoto.co.jp/products/FischerTechnik/" target="_blank">フィッシャーテクニックのブロックキット</a>で作成した自走ロボットに<br />
10章のカメラつき回路を搭載してブラウザ経由で操作されています。
</div>
<br />
<ul>
<li><a href="http://raspberrypi.sblo.jp/" target="_blank">「ラズベリー・パイ(Raspberry Pi) 始めました!」さん</a></li>
</ul>
<div>
LED点滅から順にプログラムの改造を加えながら試されていて参考になります。
</div>
<br />
<h3>
レビュー</h3>
<ul>
<li><a href="http://makit.tokyo/raspberry-pi/12" target="_blank">MAKIT.TOKYOさん「Raspberry Piを学びたい人におすすめの入門書ランキング5選」</a></li>
</ul>
<ul>
<li><a href="http://mandarinnote.hotcom-cafe.com/l-chika/" target="_blank">Mandarin Noteさん</a></li>
</ul>
<ul>
<li><a href="http://kurima.hatenablog.com/entry/2015/06/13/095430" target="_blank">てけとーぶろぐ。さん</a></li>
</ul>
<ul>
<li><a href="http://karaage.hatenadiary.jp/entry/2015/05/07/080000" target="_blank">からあげさん</a></li>
</ul>
<ul>
<li><a href="http://blog.siliconhouse.jp/archives/52065302.html" target="_blank">シリコンハウス共立さんの「シリコンハウスへようこそ」</a></li>
</ul>
<ul>
<li><a href="http://mamerium.com/raspberry-pi-isbn-9784062578912/" target="_blank">「まめりうむ」さん</a></li>
</ul>
<ul>
<li><a href="http://74th.hateblo.jp/entry/2014/12/29/235042" target="_blank">74thさんの「ITは遊び」</a></li>
</ul>
<ul>
<li>Booklog登録者の皆さん:<a href="http://booklog.jp/users/diver0620/archives/1/4062578913" target="_blank">diver0620さん</a>、<a href="http://booklog.jp/users/yusuke0205/archives/1/4062578913" target="_blank">yusuke0205さん</a></li>
</ul>
<ul>
<li><a href="http://bookmeter.com/b/4062578913" target="_blank">読書メーター登録者の皆さん</a></li>
</ul>
<ul>
<li><a href="http://www.amazon.co.jp/gp/product/4062578913/#customerReviews" target="_blank">amazon.co.jpでの購入者の皆さん</a></li>
</ul>
<ul>
<li><a href="http://review.rakuten.co.jp/item/1/213310_17150576/1.1/" target="_blank">楽天ブックスでの購入者の皆さん</a></li>
</ul>
<ul>
<li><a href="http://www.7netshopping.jp/books/detail/review/-/accd/1106467671/subno/1/lst/1" target="_blank">セブンネットショッピングでの購入者の皆さん</a></li>
</ul>
Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com2tag:blogger.com,1999:blog-6558574304592725596.post-84484859369726306242020-12-30T22:42:00.038+09:002024-02-16T22:15:57.562+09:00本書発売後の追加情報(Pi Zero~Pi 4までの古い情報)
<h3>
より新しい情報</h3>
Raspberry Pi 5 が海外で発表され、それに対応した OS Bookworm がリリースされるに伴い、本ページの内容は古くなっています。下記の新しいページをご覧ください。
<ul>
<li><a href="https://raspibb.blogspot.com/2024/02/pi-zero-pi-5.html" target="_blank">本書の内容を Pi Zero ~ Pi 5 で実行する方法</a></li>
</ul>
以下は、それ以前の古い情報を残しておいたものです。
<br />
<br />
<h3>
はじめに</h3>
<h4>
サンプルプログラムと回路配線図について</h4>
サンプルプログラム、回路配線図、応用PDFは下記のリンクからダウンロードしてください。
<ul>
<li><a href="https://bluebacks.kodansha.co.jp/books/9784062578912/appendix/attachments/raspi-sample.zip" target="_blank">サンプルプログラム</a></li>
<li><a href="https://bluebacks.kodansha.co.jp/books/9784062578912/appendix/attachments/RaspberryPi-CircuitBplus.pdf" target="_blank">回路配線図</a></li>
<li><a href="https://bluebacks.kodansha.co.jp/books/9784062578912/appendix/attachments/RaspberryPi-PDF_p01-30.pdf" target="_blank">応用PDF(電子版には書籍末尾についています)</a></li>
</ul>
回路配線図の PDF と応用PDF は Raspberry Pi 上のブラウザでも見られますが、ブラウザ上の「↓」(ダウンロード)ボタンでダウンロードし、ファイルマネージャーで PDF ファイルを右クリックし「アプリケーションで開く」→「アクセサリ」→「ドキュメントビューア」などで開いてもよいでしょう。<br />
「選択したアプリケーションをこのファイルタイプのデフォルトのアクションとする」にチェックを入れればそのアプリケーションで開くのがデフォルト動作となります。
<br /><br />
<h4>
電子書籍版について</h4>
2016年7月、本書の改訂版が発売されるに伴い、kindle版を始めとする電子書籍は<br />
<ul>
<li>新規の購入はできないが、過去に購入した方はダウンロードできる</li>
</ul>
という状態に移行しています。新規に電子書籍版を購入されたいという方は、改訂版のものをお求めください。<br />
<br />
<h4>
回路配線図について</h4>
回路配線図をWindowsやOS X上のAdobe Readerで閲覧する際、「編集」→「環境設定」を選択し、下図のように「細い線を拡張」のチェックを外すと、より綺麗な配線図を見ることができます。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh0EpH5Osjpsa26sweV-01FLHzahfN_BVt6NkGV46gL2Da-bdS2H1POQtpm4ibFbkHW3G6uY81cEVCmqOtqdIxxJGyP4O23eJLQqVOEE-iZ0Uxj_w7o1QQFJa3gLPTWe5HmgHEDKLk1znf/s1600/acrobat01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh0EpH5Osjpsa26sweV-01FLHzahfN_BVt6NkGV46gL2Da-bdS2H1POQtpm4ibFbkHW3G6uY81cEVCmqOtqdIxxJGyP4O23eJLQqVOEE-iZ0Uxj_w7o1QQFJa3gLPTWe5HmgHEDKLk1znf/s1600/acrobat01.png" /></a></div>
<br />
チェックを外す前後の配線図の状態を示したのが下図です。「細い線を拡張」のチェックを外した方が図がきれいに表示されているのがわかるでしょう。
<br />
<br />
なお、この設定はPDFの印刷の際には影響しないはずです。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmlyFMBhJDZaRlY-aHLK_TGyUYyv7CgU-fUiEgNfg4nLRdJj-M7WV7mj7sgRkpm1dYLBu67WIn94Z3GDwgj1QND9RaqyIBy2jz24pR5yCP9zPj-rZB4yzs9hRuWWAD2zS2CX_CfWy-hTP_/s1600/acrobat02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmlyFMBhJDZaRlY-aHLK_TGyUYyv7CgU-fUiEgNfg4nLRdJj-M7WV7mj7sgRkpm1dYLBu67WIn94Z3GDwgj1QND9RaqyIBy2jz24pR5yCP9zPj-rZB4yzs9hRuWWAD2zS2CX_CfWy-hTP_/s640/acrobat02.png" width="640" /></a></div>
<div>
<br /></div>
<h4>
回路配線図をRaspberry Pi上で見る場合</h4>
回路配線図をRaspberry Pi上で見る場合、古いRaspbianではChromiumブラウザ上で日本語が表示されないことが多いと思います。その場合、一旦PDFファイルをRaspberry Pi上にダウンロードし、デスクトップメニューの「アクセサリ」→「PDF Viewer」から開くようにしてください。
PDFファイルをRaspberry Pi上にダウンロードする方法は、「一旦Chromiumブラウザで開いてから画面上のダウンロードボタンを押す」か「リンク上で右クリックして『名前を付けてリンク先を保存』を選択」のどちらかです。<br />
新しいRaspbianではChromiumブラウザ上でPDFを見ても日本語が表示されます。
<br />
<br />
<h3>
第2章</h3>
<h4>
p.28: OSインストール法の最新版について</h4>
OSであるRaspbianのインストールから設定の流れは、書籍執筆時から大きく変更を受けております。
<br />
最新のインストールおよび設定方法は、
「Raspberry Piではじめる機械学習 補足情報」内にある<span style="font-size: large;">「<a href="https://mlbb1.blogspot.com/2018/03/raspberry-pios.html" target="_blank">Raspberry PiへのOSのインストール方法</a>」</span>をご覧ください。本書2章と同等の内容をアップデートされた状態で見ることができます。
<br />
<br />
本書はRaspberry Pi 4のような最新のRaspberry Piでの動作もサポートしています。
<br />
<br />
<h4>
p.39:NOOBSのバージョン</h4>
本書はNOOBS 1.3.10をベースに解説しておりますが、発売以来下記のようにNOOBSの新バージョンがリリースされています。<br />
<br />
<table border="1">
<tbody>
<tr>
<td>2014/12/24</td><td>NOOBS 1.3.11</td><td rowspan="4">Wheezy</td>
</tr>
<tr>
<td>2015/2/2</td><td>NOOBS 1.3.12</td>
</tr>
<tr>
<td>2015/2/18</td><td>NOOBS 1.4.0</td>
</tr>
<tr>
<td>2015/5/11</td><td>NOOBS 1.4.1</td>
</tr>
<tr>
<td>2015/9/24</td><td>NOOBS 1.4.2</td><td rowspan="16">Jessie</td>
</tr>
<tr>
<td>2015/11/21</td><td>NOOBS 1.5.0</td>
</tr>
<tr>
<td>2016/2/3</td><td>NOOBS 1.6.0</td>
</tr>
<tr>
<td>2016/2/9</td><td>NOOBS 1.7.0</td>
</tr>
<tr>
<td>2016/2/26</td><td>NOOBS 1.8.0</td>
</tr>
<tr>
<td>2016/3/18</td><td>NOOBS 1.9.0</td>
</tr>
<tr>
<td>2016/5/10</td><td>NOOBS 1.9.1</td>
</tr>
<tr>
<td>2016/5/27</td><td>NOOBS 1.9.2</td>
</tr>
<tr>
<td>2016/9/23</td><td>NOOBS 1.9.3</td>
</tr>
<tr>
<td>2016/10/5</td><td>NOOBS 2.0.0</td>
</tr>
<tr>
<td>2016/11/29</td><td>NOOBS 2.1.0</td>
</tr>
<tr>
<td>2017/2/27</td><td>NOOBS 2.2.0</td>
</tr>
<tr>
<td>2017/3/3</td><td>NOOBS 2.3.0</td>
</tr>
<tr>
<td>2017/4/10</td><td>NOOBS 2.4.0</td>
</tr>
<tr>
<td>2017/6/23</td><td>NOOBS 2.4.1</td>
</tr>
<tr>
<td>2017/7/5</td><td>NOOBS 2.4.2</td>
</tr>
<tr>
<td>2017/8/17</td><td>NOOBS 2.4.3</td><td rowspan="11">Stretch</td>
</tr>
<tr>
<td>2017/9/8</td><td>NOOBS 2.4.4</td>
</tr>
<tr>
<td>2017/11/29</td><td>NOOBS 2.4.5</td>
</tr>
<tr>
<td>2018/3/14</td><td>NOOBS 2.6.0</td>
</tr>
<tr>
<td>2018/3/14</td><td>NOOBS 2.7.0</td>
</tr>
<tr>
<td>2018/4/18</td><td>NOOBS 2.8.0</td>
</tr>
<tr>
<td>2018/4/24</td><td>NOOBS 2.8.1</td>
</tr>
<tr>
<td>2018/6/27</td><td>NOOBS 2.8.2</td>
</tr>
<tr>
<td>2018/10/11</td><td>NOOBS 2.9.0</td>
</tr>
<tr>
<td>2018/11/15</td><td>NOOBS 3.0.0</td>
</tr>
<tr>
<td>2019/4/8</td><td>NOOBS 3.0.1</td>
</tr>
<tr>
<td>2019/6/24</td><td>NOOBS 3.1.1</td><td rowspan="11">Buster</td>
</tr>
<tr>
<td>2019/7/10</td><td>NOOBS 3.2.0</td>
</tr>
<tr>
<td>2019/9/30</td><td>NOOBS 3.2.1</td>
</tr>
<tr>
<td>2020/2/7</td><td>NOOBS 3.3.0</td>
</tr>
<tr>
<td>2020/2/14</td><td>NOOBS 3.3.1</td>
</tr>
<tr>
<td>2020/5/27</td><td>Raspberry Pi OS 2020-05-27</td>
</tr>
<tr>
<td>2020/8/20</td><td>Raspberry Pi OS 2020-08-20</td>
</tr>
<tr>
<td>2020/12/2</td><td>Raspberry Pi OS 2020-12-02</td>
</tr>
<tr>
<td>2021/1/11</td><td>Raspberry Pi OS 2021-01-11</td>
</tr>
<tr>
<td>2021/3/4</td><td>Raspberry Pi OS 2021-03-04</td>
</tr>
<tr>
<td>2021/5/7</td><td>Raspberry Pi OS 2021-05-07</td>
</tr>
<tr>
<td>2021/10/30</td><td>Raspberry Pi OS 2021-10-30</td><td rowspan="7">Bullseye</td>
</tr>
<tr>
<td>2022/1/28</td><td>Raspberry Pi OS 2022-01-28</td>
</tr>
<tr>
<td>2022/4/4</td><td>Raspberry Pi OS 2022-04-04</td>
</tr>
<tr>
<td>2022/9/6</td><td>Raspberry Pi OS 2022-09-06</td>
</tr>
<tr>
<td>2022/9/22</td><td>Raspberry Pi OS 2022-09-22</td>
</tr>
<tr>
<td>2023/2/21</td><td>Raspberry Pi OS 2023-02-21</td>
</tr>
<tr>
<td>2023/5/4</td><td>Raspberry Pi OS 2023-05-3</td>
</tr>
<tr>
<td>2023/10/10</td><td>Raspberry Pi OS 2023-10-10</td><td rowspan="2">Bookworm</td>
</tr>
<tr>
<td>2023/12/5</td><td>Raspberry Pi OS 2023-12-5</td>
</tr>
</tbody></table>
<br />
全てのバージョンで動作確認しています。以前バージョンを使いたい方は下記のJAISTのミラーサイトで適切な日付をたどると見つけられます。
<br />
<ul>
<li><a href="http://ftp.jaist.ac.jp/pub/raspberrypi/raspios_full_armhf/images/" target="_blank">2020年5月以降のRaspberry Pi OS フルインストール版のイメージ</a></li>
<li><a href="http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian_full/images/" target="_blank">2018年11月~2020年2月のRaspbian フルインストール版のイメージ</a></li>
<li><a href="http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/" target="_blank">それ以前のRaspbian のイメージ</a></li>
<li><a href="http://ftp.jaist.ac.jp/pub/raspberrypi/NOOBS/images/" target="_blank">NOOBSの場合</a></li>
</ul>
<br />
<h4>
p.45: セットアップウィザードの起動</h4>
現在のRaspbianでは、初回起動時に設定用のセットアップウィザードが起動するようになっております。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbUL27b9rA27XFGt0T4Pq32Vw8HjuBfJUUB0SKUl-WaRuzT6nI4IsJtdX11JMx7Drp2KPn1NPUgPMMTIkF3GIGegwaG3USC_opaMTy0cFZPFq08a1poIvEK7I_EfFjO-nf342PdBZTUgc/s1600/piwiz1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="327" data-original-width="498" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbUL27b9rA27XFGt0T4Pq32Vw8HjuBfJUUB0SKUl-WaRuzT6nI4IsJtdX11JMx7Drp2KPn1NPUgPMMTIkF3GIGegwaG3USC_opaMTy0cFZPFq08a1poIvEK7I_EfFjO-nf342PdBZTUgc/s1600/piwiz1.png" /></a></div>
<br />
その操作法は、「Raspberry Piではじめる機械学習 補足情報」内にある<span style="font-size: large;">「<a href="https://mlbb1.blogspot.com/2018/03/raspberry-pios.html" target="_blank">Raspberry PiへのOSのインストール方法</a>」</span>に記されておりますのでそちらをご覧ください。本書2章と同等の内容をアップデートされた状態で見ることができます。
<br />
<br />
<h4>
p.45:パッケージやfirmwareを更新したRaspbianについて</h4>
「sudo apt upgrade」により、インストールされたアプリケーションのパッケージを更新したり、「sudo rpi-update」によりfirmwareを更新したRaspbianはサポートの対象外とします。その理由は下記の通りですのでご了承ください。
<br />
<ul>
<li>パッケージやfirmwareは日々変化しており、タイミングによってはバグを含んだパッケージがインストールされることもあること(実際、その問題によりトラブルの原因発見に時間がかかったことがあります)</li>
<li>同じ理由で、読者の方の環境と筆者の環境を一致させることが難しいこと</li>
</ul>
<h4>p.52, コマンドプロンプトの表記</h4>
p.52ではコマンドプロンプトの表記として以下を紹介しました。
<pre class="prettyprint">
pi@raspbberrypi:~ $
</pre>
ここに見える「pi」はユーザー名を表しており、ユーザー名「pi」は2022年4月以前の古いOSで用いられていたデフォルトのユーザー名です。最新のOSを用いている方ならば、「pi」の部分に自分で決めたユーザー名が表示されているでしょう。
<br />
<br />
<h3>
第3章</h3>
<h4>
</h4>
<h4>
p.64:Arduino Sidekick Basic Kitについて</h4>
電子工作に必要なパーツを集めたセットの1つとして、本書ではArduino Sidekick Basic Kitを紹介しましたが、この商品は現在千石電商オンラインショップやamazonではバージョン2に切り替わっています。
<br />
<ul>
<li><a href="http://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4NSB" target="_blank">Arduino周辺部品セットV2</a></li>
</ul>
旧バージョンとの違いは以下の通りのようですが、本書のために用いる際には影響のない変更です。
<br />
<ul>
<li>ジャンプワイヤの本数が減っている(50本→25本)</li>
<li>LEDの個数が減っている(10個→5個)</li>
<li>抵抗早見表が付属しない</li>
<li>収納用ケース(4仕切り)の追加</li>
<li>RGBフルカラーLEDが8mmサイズの大きなものになり、光拡散キャップが不要なパッケージに変更されている</li>
</ul>
電子工作のセットはこれ以外にも様々なものが販売されております。ここで紹介した「Arduino Sidekick Basic Kit」も含め、どのセットを購入するにせよ本書で必要なパーツが全て揃うわけではないことはあらかじめご了承ください。
<br />
<br />
さらに下記のような注意がありますので御注意ください。<br />
<br />
<ul>
<li><b>含まれる半固定抵抗において、値が大きくなる回転の向きが旧版と異なる</b><br />
これについては、本ページ「p.145:半固定抵抗の回転の向きについて」の注意をご覧ください
</li>
</ul>
<ul>
<li><b>含まれるRGBフルカラーLEDが共通カソード(カソードコモン)である</b><br />共通カソード(カソードコモン)用の回路を作成した上で、書籍の注意に基づきサンプルファイルを編集して用いる必要があります。
</li>
</ul>
<br />
<h4>
p.64:非公認の電子工作キットについて</h4>
<b>Amazonにて、本書の名前を冠したキットが販売されているのですが、私や出版社が関わった製品ではありませんし、本書の方法では動作しない電子工作パーツが含まれているようです。</b>本ページではそれらの電子工作パーツのサポートは行えませんので御了承ください。<br />
<ul>
</ul>
<br />
<h4>
p.70:5Vピン、3.3Vピン、GPIOに流すことのできる電流について</h4>
本書では、Raspberry Pi Model Bの5Vピン、3.3Vピン、GPIOに流せる電流を解説していますが、Model B+以降は5Vから3.3Vへ降圧するレギュレータの効率が上がったことと、Raspberry Pi自体の消費電力が変更になった影響で、このデータが大きく変わっています。
公式情報ではありませんが、インターネット上の議論に基づいたデータを下記にまとめます。参考にしたサイトを表の下に記します。
<br />
<br />
<table border="1">
<tbody>
<tr>
<td></td><td>5Vピン</td><td>3.3Vピン</td><td>GPIO(1本)</td><td>GPIO(トータル)</td>
</tr>
<tr>
<td>Model B</td><td>マイクロUSBの電源が流すことのできる電流 - 700mA</td><td>50mA</td><td rowspan="3">8mA (注)</td><td rowspan="3">50mA</td>
</tr>
<tr>
<td>Model B+</td><td>マイクロUSBの電源が流すことのできる電流 - 600mA</td><td>1000mA - 600mA = 400mA (程度)</td>
</tr>
<tr>
<td>Raspberry Pi 2</td><td>マイクロUSBの電源が流すことのできる電流 - 900mA</td><td>1000mA - 900mA = 100mA (程度)</td>
</tr>
</tbody></table>
<span style="font-size: x-small;">(注)デフォルトでの値です。<a href="http://ja.scribd.com/doc/101830961/GPIO-Pads-Control2" target="_blank">こちら</a>を参考に設定するとこの上限を2mAから16mAまで変化させられるようですが私は未確認です。
</span><br />
<span style="font-size: x-small;"><br /></span>
参考サイト<br />
<ul>
<li><a href="http://www.mosaic-industries.com/embedded-systems/microcontroller-projects/raspberry-pi/gpio-pin-electrical-specifications" target="_blank">GPIO Electrical Specifications (Model Bの情報)</a></li>
<li><a href="https://www.raspberrypi.org/forums/viewtopic.php?t=90390&p=634795" target="_blank">3.3V, GPIO and GND max current</a></li>
<li><a href="https://learn.adafruit.com/introducing-the-raspberry-pi-model-b-plus-plus-differences-vs-model-b/power-supply" target="_blank">Power Supply</a></li>
</ul>
<br />
<h4>
p.75:Raspberry Pi Model B+/Raspberry Pi 2/Raspberry Pi 3のGPIOについて</h4>
図3-12で解説したように、Model BとModel B+はGPIOポートのピン数が異なり、上から13段目まで(ピン1からピン26まで)が両モデルで共通となっています。本書ではこの共通部分のみを使うようにしておりますので、本書の回路は全てModel BとModel B+の両方で動作します。また、Raspberry Pi 2とRaspberry Pi 3はModel B+と同じピン配置なので、Model B+と同様に回路を作成します。
<br />
<br />
ただし、ピンを使う際にその「ピンの数え方」に注意しないとModel B+/Raspberry Pi 2/Raspberry Pi 3で間違った回路を作成してしまう可能性がありますので、その点について補足したいと思います。
<br />
<br />
下図をご覧ください。この図は「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)ですので参考にしてください。<br />
<br />
また、<a href="http://bluebacks.kodansha.co.jp/bsupport/rspi.html" target="_blank">公式サポートページ</a>にて回路の配線図(PDF)の提供を開始しました。「Model B用(26ピン)」と「Model B+およびRaspberry Pi 2用(40ピン)」がありますので、ディスプレイで閲覧するか、印刷するなどしてご活用ください。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR6JlA887S3lTU8ZHzDspAGNAIKLgPQUbDtu4W3JKo9wFtG6CXFx-hTMXyImBI8uUAlPnz1EJnQj8pJIY76H6YXd7fcffMLsUCoGwUSPJ0yMjLLLKU1OcMXqBwzXgKDkTpbS4xESwkE-4/s1600/fig03-12-exp_v2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="328" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBR6JlA887S3lTU8ZHzDspAGNAIKLgPQUbDtu4W3JKo9wFtG6CXFx-hTMXyImBI8uUAlPnz1EJnQj8pJIY76H6YXd7fcffMLsUCoGwUSPJ0yMjLLLKU1OcMXqBwzXgKDkTpbS4xESwkE-4/s640/fig03-12-exp_v2.png" width="640" /></a></div>
<br />
<h3>
第4章</h3>
<h4>
p.89:開発環境IDLEの代替としてThonny Python IDEを用いる方法</h4>
2019年11月現在、本書で解説した開発環境IDLEはデフォルトでRaspbianに含まれていません。IDLE を別途インストールして利用する方法もあるのですが、より簡単にPythonプログラムを実行する方法として、デフォルトでインストール済の「Thonny Python IDE」を用いる方法をここで紹介します。
<br />
<br />
Thonny Python IDEはpython3用のプログラムを実行するための環境です。本書のプログラムはPython3での実行をサポートしていますので問題なく実行できます。
Python 3用ツールのインストール法は本ページで解説されておりますので注意して本ページをお読みください。
<br />
<br />
さて、メニューの下図に示されている「Thonny Python IDE」をマウスでクリックするとThonny Python IDEが起動します。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivubS9WzoIZFBXwHBtpcoxNthRTiYHRgVFfe2EKWYHT_zFv8ubGuAgaWBGV_9iW_xis6CexbohQuUZh2FVUWw-1N2nEhZZMxCKG34rGzrNwnhDGXnvA0ZzNFBa-NbCb6pbWqvKC2wY7So/s1600/thonny1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="550" data-original-width="510" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivubS9WzoIZFBXwHBtpcoxNthRTiYHRgVFfe2EKWYHT_zFv8ubGuAgaWBGV_9iW_xis6CexbohQuUZh2FVUWw-1N2nEhZZMxCKG34rGzrNwnhDGXnvA0ZzNFBa-NbCb6pbWqvKC2wY7So/s1600/thonny1.png" /></a></div>
<br />
次図のように、「LOAD」がファイルの読み込み、「RUN」がプログラム実行、「STOP」がプログラム停止であることを理解すれば問題なく利用できるでしょう。
<br />
<br />
ただし、「STOP」ボタンでプログラムを停止すると、GPIOの終了処理が正しく機能しないようです。<strong>「Shell」と書かれた領域の上でキーボードの「Ctrl-C」によりプログラムを終了</strong>するのが良いでしょう。なお、Thonnyには「時々Ctrl-cが効かなくなる」という不具合があるようなので、そういうときのみ「STOP」ボタンでプログラムを停止すると良いでしょう。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpCnrLVIAlWSTIJV-0FZ-_mhNhdYt0qfWPKWT3Su90ATPYVAPJikoaRqoq61AL4NfklG6Be6Cq79ZcgbkDqVLhE4W6b9Q2v7X0NDVQKdGCN_cJNQCeDwUGCIhMzXO5kSKXm0ZoxRf7hBo/s1600/thonny2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="682" data-original-width="804" height="540" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpCnrLVIAlWSTIJV-0FZ-_mhNhdYt0qfWPKWT3Su90ATPYVAPJikoaRqoq61AL4NfklG6Be6Cq79ZcgbkDqVLhE4W6b9Q2v7X0NDVQKdGCN_cJNQCeDwUGCIhMzXO5kSKXm0ZoxRf7hBo/s640/thonny2.png" width="640" /></a></div>
<br />
なお、本書では8.6章でサーボモータを用いる場合に管理者権限が必要となります。その場合、管理者権限のThonnyでプログラムを読み込んで実行する必要があります。
その方法は、LXTerminalを開いてから下記のコマンドを実行してください。
<br />
<pre class="prettyprint">sudo thonny &
</pre>
管理者権限のThonnyが現れるので、8.6章のファイルを読み込んで実行してください。
<br />
<br />
<h4>
p.89:Python2とPython3について</h4>
さて、上で紹介した Thonny Python IDEを用いるということは、Python バージョン 3 を用いることを意味します。<b>本書で利用を推奨していた Python バージョン 2 は 2020年1月1日にサポートが切れますので、これを機会に本ページでは Python 3 による実行方法のみを解説することにします</b>。本書のプログラムは Python 3 でも動作するよう更新済ですし、Python 3用のツールのインストール法も、全て本ページで解説していますので大きな問題はありません。
<br />
<br />
なお、コマンドによりプログラムを実行する場合は、Python 2とPython 3および対応コマンドが下記のように異なります。以下ではPython3 用のコマンドを用いることになりますので参考にしてください。
<br />
<br />
<table border="1">
<tbody>
<tr>
<td>項目</td><td>Python2用コマンド</td><td>Python3用コマンド</td>
</tr>
<tr>
<td>プログラム実行コマンド</td><td>python または python2</td><td>python3</td>
</tr>
<tr>
<td>IDLE実行コマンド</td><td>idle-python2.7</td><td>idle-python3.7</td>
</tr>
<tr>
<td>Thonny実行コマンド</td><td>なし</td><td>thonny</td>
</tr>
<tr>
<td>Python用プログラムインストールコマンド(本書では用いない)</td><td>pipまたはpip2</td><td>pip3</td>
</tr>
</tbody></table>
<br />
プログラム実行時に自分がPython2 と Python3 のどちらで実行しているかを意識するとPythonプログラムにより早く慣れることができるでしょう。
<br />
<br />
<h4>
p.89:NOOBS 2.8.2 (Raspbian 2018-06-27) 以降でのIDLEの通常起動について</h4>
NOOBS 2.8.2 (Raspbian 2018-06-27) から、デスクトップのメニューから開発環境IDLEの項目が削除されています。そのため、その代替としてThonny Python IDEを用いる方法を上で解説しました。通常はこのThonny Python IDEを用いてください。
<br />
ここでは、それでも敢えてIDLEを用いたいという方のためにその方法を解説します。
<br />
<br />
ターミナル LXTerminal を起動し、下記の2つのコマンドを順に実行してください。Python 3 用のIDLEがインストールされます。
<pre class="prettyprint">sudo apt update
sudo apt install idle-python3.7
</pre>
Python 3用のIDLEの実行は、やはりターミナルから下記のコマンドにより行います。
<pre class="prettyprint">idle-python3.7 &
</pre>
を実行します。
<br />
<br />
<h4>
p.89:Jessie 以降における、アプリケーション実行時の管理者権限について</h4>
Raspbian Wheezyでは、PythonでGPIOにアクセスするプログラムを実行するためには管理者権限が必要でした。すなわち、本書でプログラムを実行する際、
<br />
<ul>
<li>ターミナルで「sudo idle &」を実行して起動したIDLEからプログラムを実行</li>
<li>ターミナルで「sudo python プログラムファイル名」を実行して起動</li>
</ul>
のどちらかの方法を用いる場合がほとんどでした。
<br />
Raspbian Jessie 以降は、PythonでGPIOにアクセスするプログラムでも、管理者権限が不要になりました。
<br /><br />
<h3>
第5章</h3>
<h4>p.128, Bookworm (Raspberry Pi OS 2023-10-10 以降) および Bullseye (Raspberry Pi OS 2021-10-30 以降) でのカメラの利用について</h4>
Raspberry Pi OS 2023-10-10 からはじまったバージョン Bookworm および <br />
Raspberry Pi OS 2021-10-30 からはじまったバージョン Bullseye では<br />
カメラモジュールの利用方法に大きな変更が加えられ、libcamera というライブラリを用いるようになりました。
これは、本書でカメラを用いるプログラムがそのままでは動かなくなる、ということを意味します。
<br /><br />
ただし、Bullseye では「Legacy Camera」という、これまでと互換性のあるカメラの利用方法が可能になっています。この Lecgacy Camera を用いれば本書でカメラを用いるプログラムはそのまま動作しますが、
残念ながら Bookworm では Legacy Camera モードは削除されてしまいました。
<br /><br />
以上を踏まえて現状をカメラの利用方法について整理すると、以下のようになります。
将来を見据えれば、最新の OS で「<a href="https://raspibb1.blogspot.com/2023/03/picamera2-libcamera.html" target="_blank">本書の演習を picamera2 (libcamera) で実行する方法</a>」を用いるのがよいと思います。
<br /><br />
<table border="1">
<tr>
<td>32-bit / 64-bit 版 Bookworm および Bullseye</td><td>「<a href="https://raspibb1.blogspot.com/2023/03/picamera2-libcamera.html" target="_blank">本書の演習を picamera2 (libcamera) で実行する方法</a>」で配布しているサンプルファイルを利用する。なお、2023年1月に発売された Camera Module v.3 はこの手法でしか使えません。
</td>
</tr>
<tr>
<td>32-bit 版 Bullseye</td><td>Legacy Cameraモードを有効にした上で、本書付属のサンプルファイルを用いる。これが一番簡単。</td>
</tr>
<tr>
<td>64-bit 版 Bullseye</td><td>Legacy Cameraモードを有効にした上で、「<a href="https://raspibb1.blogspot.com/2020/12/blog-post.html" target="_blank">本書の演習をウェブカメラで実行する方法</a>」で配布しているサンプルファイルを利用する</td>
</tr>
</table>
<br />
さて、上記の方法のうち、Bullseye で Legacy Camera モードを有効にする方法を用いる場合は、以下の方法で「Legacy Camera」のサポートを有効にする必要があります(デフォルトは無効です)。
<br /><br />
ターミナルを開いて以下の手順に従うことで、raspi-config により Legacy Camera を有効にします。
<ol>
<li>「 sudo raspi-config 」を実行することで raspi-config を起動</li>
<li>キーボードの「↓」キーを2回押し、「Interface Options」を選択してから「Enter」キーを押す</li>
<li>「I1 Legacy Camera Enable/Disable」があらかじめ選択されているので、「Enter」キーを押す</li>
<li>「Would you like to enable legacy camera support?」と聞かれるので「←」を一回押すことで「はい」を選択し、「Enter」キーを押す</li>
<li>「非推奨 (deprecated) であり将来サポートされない」という趣旨のことを言われるが、「了解」が選択された状態で「Enter」キーを押す</li>
<li>raspi-configを起動した状態の画面に戻るので、「TAB」キーを二回クリックし、「Finish」を選択した状態で「Enter」キーを押す</li>
<li>再起動を促されるので、「はい」が選択された状態で「Enter」キーを押す</li>
</ol>
以上で、Legacy Camera モードが有効になりますので、あとは上の表に従ってプログラムを利用してください。
<br /><br />
<h4>
p.129:ファイルマネージャから画像ファイルを開く方法</h4>
カメラで撮影した画像をファイルマネージャーから開く方法が解説されていますが、Raspbian のバージョンによっては、画像閲覧用のアプリケーションが起動せず、「ファイル"JPEG画像"を開くアプリケーションを選択してください」というウインドウが開く場合があります。その場合、そのウインドウ上で「アクセサリ」→「イメージビューワ」を選択してください。
<br />
<br />
<h4>p.131, 音声の出力先を変更する方法</h4>
音声を HDMI ケーブル経由ではなく、Raspberry Pi の基板上のイヤフォンジャックから聞きたい場合、デフォルトでは音が鳴らないことが多いでしょう。
イヤフォンジャックから鳴らすための方法は、OSのバージョンにより異なります。
<br /><br />
<h4><2020-12-02版およびそれ以降の Raspberry Pi OS をご利用の場合></h4>
2020-12-02版およびそれ以降の Raspberry Pi OS をご利用で、なおかつイヤフォンジャックから音が鳴らない場合、raspi-configというコマンドで音声の出力先をイヤフォンジャックに切り替えます。恐らく今後はこの方法が主流となるでしょう。
<br />
以下の手順に従ってください。
<br /><br />
ターミナルで下記のコマンドを実行してください。
<pre class="prettyprint">sudo raspi-config
</pre>
すると、下図のような設定画面が開きます。
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB8iFgU8I9CCsjslqaYbC6s1DH_uWfAJ86wsV4Doz9JjUq_BH5y90STUuINjqimpu0XMNbLk4YADskyuO1u9wy3eZKh0EAHYbPlk0AN9WiZizD8-dfK5nDkMZrn4ZRnZOqBQS4YAUdKdA/s0/pulseaudio01.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="449" data-original-width="659" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB8iFgU8I9CCsjslqaYbC6s1DH_uWfAJ86wsV4Doz9JjUq_BH5y90STUuINjqimpu0XMNbLk4YADskyuO1u9wy3eZKh0EAHYbPlk0AN9WiZizD8-dfK5nDkMZrn4ZRnZOqBQS4YAUdKdA/s0/pulseaudio01.png"/></a></div>
上の画面上で、キーボードの「Enter」キーを押すことで、以下の「1 Systems Option」の設定画面に入ります。
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCUr-rM-GBzBKoL3Z3qPJOEeiqk0UTA8Y1eWjZRhLS1bauBzr4MlTszCFvI_8wTF7yzbVRkfBVKUOQZzUSa3gylzf5Ok02JCjkSltI7epmmEM2Y981cVR7SBUZIG5H_L0j-Ooc4jIoM7Y/s0/pulseaudio02.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="449" data-original-width="659" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCUr-rM-GBzBKoL3Z3qPJOEeiqk0UTA8Y1eWjZRhLS1bauBzr4MlTszCFvI_8wTF7yzbVRkfBVKUOQZzUSa3gylzf5Ok02JCjkSltI7epmmEM2Y981cVR7SBUZIG5H_L0j-Ooc4jIoM7Y/s0/pulseaudio02.png"/></a></div>
上の画面上でキーボードの「↓」キーを一回押すことで、下図のように「S2 Audio」にフォーカスを合わせ、「Enter」キーを押すことで「S2 Audio」の設定画面に変わります。
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbXD_ErMu6ASl0FmD_6Zz1ZhBx0dOigrKVKf_45_8p-nZI6nCSgwqk6svG_cGQytq8MJarSGEwDJ5yjfmC6aEk-IjhZJv1eEBcRjVuf-P1dcTRvqxr3xkhivMVsI1ftnSpO9wwG6-qYaM/s0/pulseaudio03.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="449" data-original-width="659" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbXD_ErMu6ASl0FmD_6Zz1ZhBx0dOigrKVKf_45_8p-nZI6nCSgwqk6svG_cGQytq8MJarSGEwDJ5yjfmC6aEk-IjhZJv1eEBcRjVuf-P1dcTRvqxr3xkhivMVsI1ftnSpO9wwG6-qYaM/s0/pulseaudio03.png"/></a></div>
下図が「S2 Audio」の設定画面です。
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmhQNcVeMVjIBE8XWPrImHyg0lvuzhiRPYHJTVPm6nxiuUU2FH1uZbWfZKYYJbqFFKRVZnrfsfJv9SLtXmYNHabu3IoLq_FTwu_SaaIAqWc47WWTcD4wF8v8-rt9ADGBFaTYenVy91SMs/s0/pulseaudio04.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="449" data-original-width="659" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmhQNcVeMVjIBE8XWPrImHyg0lvuzhiRPYHJTVPm6nxiuUU2FH1uZbWfZKYYJbqFFKRVZnrfsfJv9SLtXmYNHabu3IoLq_FTwu_SaaIAqWc47WWTcD4wF8v8-rt9ADGBFaTYenVy91SMs/s0/pulseaudio04.png"/></a></div>
上の画面上でキーボードの「↓」キーを一回押すことで、下図のように「1 Headphones」にフォーカスを合わせ、「Enter」キーを押すことでヘッドフォン(つまりイヤフォンジャック)を出力先にします。
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh57lA0q2HOG1prWBR-jmY3zYtdeKa0WpKHXY25bv8YwIbnfT26gCFQDTr4TocxVeVWf5YtBSToMZKVfGxw-c7ZeZxbNvPBHCkpHl4SbG6q6kuhgVJNLTKC3_wvmJftXd_gI8Y68AuKLb4/s0/pulseaudio05.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="449" data-original-width="659" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh57lA0q2HOG1prWBR-jmY3zYtdeKa0WpKHXY25bv8YwIbnfT26gCFQDTr4TocxVeVWf5YtBSToMZKVfGxw-c7ZeZxbNvPBHCkpHl4SbG6q6kuhgVJNLTKC3_wvmJftXd_gI8Y68AuKLb4/s0/pulseaudio05.png"/></a></div>
すると下図のように「sudo raspi-config」実行直後の画面に戻ります。
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB8iFgU8I9CCsjslqaYbC6s1DH_uWfAJ86wsV4Doz9JjUq_BH5y90STUuINjqimpu0XMNbLk4YADskyuO1u9wy3eZKh0EAHYbPlk0AN9WiZizD8-dfK5nDkMZrn4ZRnZOqBQS4YAUdKdA/s0/pulseaudio01.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="449" data-original-width="659" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB8iFgU8I9CCsjslqaYbC6s1DH_uWfAJ86wsV4Doz9JjUq_BH5y90STUuINjqimpu0XMNbLk4YADskyuO1u9wy3eZKh0EAHYbPlk0AN9WiZizD8-dfK5nDkMZrn4ZRnZOqBQS4YAUdKdA/s0/pulseaudio01.png"/></a></div>
上の画面上で「TAB」キーを二回押すことで、下図のように「Finish」にフォーカスが合います。そこで「Enter」キーを押すことで、「sudo raspi-config」による設定が終了します。
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUR2K9cFtHwJEb2PvikgrJl60N5J6TXhCLbcB9zliMk5yjC84r7hPvR0553qLwrD1VtdRDbFGw1wM9jPl-rIALDG2P0K2UBLlXgpzhK280J91jDCbpCfKvmp0QLAf6FhSPdV6C7Ns8QpA/s0/pulseaudio06.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="449" data-original-width="659" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUR2K9cFtHwJEb2PvikgrJl60N5J6TXhCLbcB9zliMk5yjC84r7hPvR0553qLwrD1VtdRDbFGw1wM9jPl-rIALDG2P0K2UBLlXgpzhK280J91jDCbpCfKvmp0QLAf6FhSPdV6C7Ns8QpA/s0/pulseaudio06.png"/></a></div>
以上で、下記コマンドで
<pre class="prettyprint">mpg321 test.mp3
</pre>
イヤフォンジャックから音声が出るようになります。
<br /><br />
<h4><2020-5-27版および2020-8-20版の Raspberry Pi OS をご利用の場合></h4>
次は、2020-5-27版および2020-8-20版の Raspberry Pi OS をご利用の場合で、なおかつイヤフォンジャックから音が鳴らない場合です。
音声を再生するコマンドを以下に変えるとイヤフォンジャックから音が鳴ります。
「--a hw:1,0 」が「イヤフォンジャックからの再生」を意味します。「-a hw:0,0 」なら「HDMIからの再生」です。
<pre class="prettyprint">mpg321 -a hw:1,0 test.mp3
</pre>
<h4><2020年2月までの Raspbian をご利用の場合></h4>
2020年2月までの Raspbian をご利用の場合、ターミナルで一度以下のコマンドを実行すると、以後「mpg321 test.mp3」コマンドでイヤフォンジャックから音が鳴るようになります。
<pre class="prettyprint">amixer cset numid=3 1
</pre>
なお、末尾の「1」がイヤフォンジャックからの音声出力を意味し、「0」なら自動認識、「2」ならHDMIからの音声出力を意味します。
<br /><br />
<h4>p.132, 05-05-sw-mp3.pyをイヤフォンジャックからの音声出力で実行する</h4>
プログラム 05-05-sw-mp3.py をイヤフォンジャックからの音声出力で実行したい場合の補足です。
やはり、OSのバージョンにより方法が異なります。
<br /><br />
<h4><2020-12-02版およびそれ以降の Raspberry Pi OS、または2020年2月までの Raspbian をご利用の場合></h4>
2020-12-02版およびそれ以降の Raspberry Pi OS、または2020年2月までの Raspbian をご利用の場合、上で行った「イヤフォンジャックから音を鳴らす設定」を行っていれば、
デフォルトのままの 05-05-sw-mp3.py で音を鳴らすことができます。「デフォルトのままの 05-05-sw-mp3.py 」とは、12行目が以下の状態になっているものです。
<pre class="prettyprint">
args = ['mpg321', 'test.mp3']
</pre>
<h4><2020-5-27版および2020-8-20版の Raspberry Pi OS をご利用の場合></h4>
2020-5-27版および2020-8-20版の Raspberry Pi OS をご利用の場合、プログラム 05-05-sw-mp3.py に対して以下を実行してください。
<br /><br />
まず、Thonny でプログラムを開くと、12行目に以下の行が見つかります。
<pre class="prettyprint">
args = ['mpg321', 'test.mp3']
</pre>
この行を以下のように変更して保存してください。
<pre class="prettyprint">
args = ['mpg321', '-a', 'hw:1,0', 'test.mp3']
</pre>
以上により、2020-5-27版および2020-8-20版の Raspberry Pi OS で 05-05-sw-mp3.py をイヤフォンジャックからの音声出力で実行できるようになります。
<br /><br />
<h3>
第6章</h3>
<h4>
p.133:12ビットADコンバータMCP3208</h4>
6章および8章ではADコンバータとして秋月電子通商で取り扱われている
<br />
<ul>
<li><a href="https://akizukidenshi.com/catalog/g/g100238/" target="_blank">12bit 8ch ADコンバータ MCP3208-CI/P</a></li>
</ul>
を用いますが、この在庫が切れている場合、下記のMCP3204を用いても構いません
<br />
<ul>
<li><a href="https://akizukidenshi.com/catalog/g/g117732/" target="_blank">12bit 4ch ADコンバータ MCP3204-BI/P</a></li>
</ul>
ただし、MCP3204はMCP3208に比べて2ピン少ないので、少しだけ回路の読み替えが必要です。図6-5、図6-6を例に、変更箇所を赤で示しますので参考にして下さい。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx4pyV0QojeCaDSh1ghKK86ycC-NwNFVmsohd37tkP1mSZ7x9AZMrJ1fxNYF0MDQK5it0upSi7dCm2bkXC7ogegqNp7y9KOvCxhgSK1gNu4q4UuZrlsVJl1ajW9RCWrMER858VArK-6wcf/s1600/chap06-05-as.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="257" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx4pyV0QojeCaDSh1ghKK86ycC-NwNFVmsohd37tkP1mSZ7x9AZMrJ1fxNYF0MDQK5it0upSi7dCm2bkXC7ogegqNp7y9KOvCxhgSK1gNu4q4UuZrlsVJl1ajW9RCWrMER858VArK-6wcf/s400/chap06-05-as.png" width="400" /></a></div>
<div aligh="center">
MCP3204を用いる場合の図6-5の変更点</div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGCN1j1Aqii5MktNmANyHwpe1f0up4wdvusMTmoSlyMrRhk_cLJIoOPhZUhQX-1Mb9g9LiT38RGJy38UywUWl8RX-pAuPH8IBQC9CA3-cuN7fyZO5jKuZ0P1d631o_kKOBPmmaPoqGgnhF/s1600/chap06-06-as.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGCN1j1Aqii5MktNmANyHwpe1f0up4wdvusMTmoSlyMrRhk_cLJIoOPhZUhQX-1Mb9g9LiT38RGJy38UywUWl8RX-pAuPH8IBQC9CA3-cuN7fyZO5jKuZ0P1d631o_kKOBPmmaPoqGgnhF/s640/chap06-06-as.png" width="640" /></a></div>
<div aligh="center">
MCP3204を用いる場合の図6-6の変更点</div>
<br />
<h4>
p.145:半固定抵抗の回転の向きについて</h4>
本書は、Arduino Sidekick Basic Kit付属の半固定抵抗を用い、「右に回すとAD変換後の値が大きくなる」回路を組みました。この回転の向きは、下図のように「半固定抵抗の3.3VピンとGNDへの接続を入れ替える」ことで逆にすることができます。書籍で「半固定抵抗の向きを上下逆さに」と記述したのと同じことです。<br />
<br />
お使いの半固定抵抗により回転の向きが異なることがありますので、配線の入れ替えにより好みの向きを選択してください。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQFKv0DiNEV8xVSvD1rTJpYmKIF66fMpy-neFIEN9senTMptZ8HJ1mlgwMgXKsm5oUYcG_IEmHiFir-4nIl_yLADQIArGxQU5UWP2_wT0LKd0MYZ88dasOLMTCeya5TAQZwWiakvCzUJkm/s1600/DirectionOfVolume.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQFKv0DiNEV8xVSvD1rTJpYmKIF66fMpy-neFIEN9senTMptZ8HJ1mlgwMgXKsm5oUYcG_IEmHiFir-4nIl_yLADQIArGxQU5UWP2_wT0LKd0MYZ88dasOLMTCeya5TAQZwWiakvCzUJkm/s400/DirectionOfVolume.png" width="400" /></a></div>
<br />
<h3>
第7章</h3>
<h4>
p.158:電子工作キットの温度センサとLCDモジュールについて</h4>
Amazonにて、本書の名前を冠したキットが販売されているのですが、<b>私や出版社が関わった製品ではありません</b>のでご注意ください。
<br />
さらに、そのキットには本書のプログラムでは動作しない温度センサとLCDモジュールが含まれているようです(「DS18B20使用温度センサ」および「SainSmart IIC/I2C/TWI 16*02 LCD液晶 モジュール」)。この温度センサはI2C通信を行なうセンサではなく、LCDモジュールは本書使用のものと仕様が異なります。そのため、本ページではそれらのパーツのサポートは行えませんので御了承ください。
<br />
<br />
<h4>
p.171:I2Cデバイスの認識について</h4>
LCDを用いたプログラムを実行するためには、Raspberry PiからLCDが認識されていることが必要です。LCDが認識されているかどうかのチェック方法は、書籍に記さなかったのですが、ここで紹介します。<br />
<br />
まず、温度センサとLCDを接続した回路(p.170の図7-7)を作成した状態でLXTerminalを起動し、下記のコマンドを実行しましょう。
<br />
<pre class="prettyprint">i2cdetect -y 1
</pre>
このコマンドは、Raspberry Piに接続されたI2Cデバイスのアドレスを出力するものです。以前の Raspbian では管理者権限を表す「sudo」が必要でしたが、現在のRaspbianではsudoは不要です。<br />
<br />
正常な出力結果は下図のようになります。48が温度センサのアドレス0x48を表し、3eがLCDのアドレス0x3eを表します。48が表示されなければ温度センサを用いるプログラムは正常動作しませんし、3eが表示されなければLCDを用いるプログラムは動作しませんので、まずは下図の出力が得られることを目指しましょう。<br />
<br />
そのためには、温度センサ、LCDの製作過程や回路などを見直すのが基本的な方針ですが、上で述べたように、「新しいロットのLCDはRaspberry Piから認識されない」という問題に該当しているかもしれません。そのため、次項も引き続きお読みください。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQcuFCJMytvFetqFRQ0NTNABjzKyJ8SWvElwFU1Ds34zNtb_C4AbSSCdV7BZSShmu2l3MGXVr4u_O5srR02He7WPz_GzUWjfkOALiwYWLxe04RmWZG7ZE0x1A_khOsTM4aKQEM3tQSqnhS/s1600/i2cdetect.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQcuFCJMytvFetqFRQ0NTNABjzKyJ8SWvElwFU1Ds34zNtb_C4AbSSCdV7BZSShmu2l3MGXVr4u_O5srR02He7WPz_GzUWjfkOALiwYWLxe04RmWZG7ZE0x1A_khOsTM4aKQEM3tQSqnhS/s1600/i2cdetect.png" /></a></div>
<br />
<h4>
7章全般:利用できるLCDについて1~秋月電子編</h4>
本書で紹介したLCDの新しいロットでは、本ページ下部で記すように何らかの対処をしないとRaspberry Piでは利用できなくなってしまいました(抵抗1本の追加で暫定的に利用可能になるのですが)。そこで、正常に動作するLCDをいくつか紹介します。<br />
<br />
まず、秋月電子通商が書籍のLCDを正式にRaspberry Pi対応させたモジュールキットです。なお、組み立てキットの方は狭いピッチ(ピン間隔)の半田付けが必要になりますので、半田付けにある程度慣れている方向けとなります。通常は完成品を推奨します。商品へのリンクは下記になります。
<br />
<ul>
<li><a href="https://akizukidenshi.com/catalog/g/g111753/" target="_blank">Raspberry Pi キャラクタ液晶ディスプレイモジュール完成品</a></li>
<li><a href="https://akizukidenshi.com/catalog/g/g111354" target="_blank">Raspberry Pi キャラクタ液晶ディスプレイモジュールキット</a></li>
</ul>
組み立てキットに含まれるパーツを図示したのが下図(左)となっています。ピンソケットが2種含まれていますので、お好みの方を半田付けします。
完成品にはLCDを立てて使うためのピンソケットがあらかじめ取り付けられています。
<br />
<br />
なお、本書のようにブレッドボードで利用するためには、組み立てキットに下図(中)のようにピンヘッダを別途購入して半田付けする方法があります。ピンヘッダとは、例えば下記のようなものです。丁度のサイズのものを購入するよりは、長いものを購入してニッパでカットするのが一般的です。
<br />
<ul>
<li><a href="https://akizukidenshi.com/catalog/g/g101669/" target="_blank">ピンヘッダ 1×6 (6P)</a></li>
<li><a href="https://akizukidenshi.com/catalog/g/g100167/" target="_blank">ピンヘッダ 1×40 (40P)</a></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibaLCX55AtZd2Wii9UFPMYQ-hvP52x3SZTgIxUvK24GA4yPCgaTtZIyjVkbcyjworzaRQfZ0oUtEe700Gh1oYf0XrTi1x7YBWPnNxz9C2No3CR79mJydDPReO3Th6ezXPnaX6F-6-Ho78q/s1600/newlcd1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibaLCX55AtZd2Wii9UFPMYQ-hvP52x3SZTgIxUvK24GA4yPCgaTtZIyjVkbcyjworzaRQfZ0oUtEe700Gh1oYf0XrTi1x7YBWPnNxz9C2No3CR79mJydDPReO3Th6ezXPnaX6F-6-Ho78q/s640/newlcd1.png" width="640" /></a></div>
<br />
ピン配置は本書のものとは異なり、上図(右)のようになっています。<br />
<br />
利用例は下図のようになっています。下図(左)がピンソケットを用いた場合で、Raspberry PiのGPIO(3.3V/SDA/SCL/GPIO4/GNDと続くピン)に直接させるようになっています。完成品ではLCDを立てて使うようなピンソケットとなっています。ただし、これではGPIOのピンの一部が利用できなくなってしまいますので、ジャンパワイヤを介してGPIOに接続するのがお勧めです。また、本LCDの完成品には以下に記すLEDのバックライト機能はありませんのでご注意ください。
<br />
<br />
ピンヘッダを用いて作成したLCDならば本書のようにブレッドボートで利用可能です。その様子を示したのが下図(右)です。なお、基板の「LED」ピンを3.3Vに接続すると、図のようにLCDのバックライトが点灯した状態になります。お好みで利用してください。ピンソケットでGPIOに直接差したLCDならば、GPIO 4をHIGHにすることでバックライトが点灯します。なお、バックライトを利用するには、LCDを基板に半田付けする際に2か所の四角いピンも半田付けする必要がありますのでご注意ください。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ5cZMW9yEO9Zk1f3RWnnzdXbDBWLJg0PyAh9XYuk6fQc9qFM82XtwPvKA19cW0N-A0xytupEZ2KY7XjjH6R6wWb9ZmN6vYfGi-UpBN_Vuc7GgDNMkh7c75tcw0jhjteMTHXkOWZ6Qwh63/s1600/newlcd2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ5cZMW9yEO9Zk1f3RWnnzdXbDBWLJg0PyAh9XYuk6fQc9qFM82XtwPvKA19cW0N-A0xytupEZ2KY7XjjH6R6wWb9ZmN6vYfGi-UpBN_Vuc7GgDNMkh7c75tcw0jhjteMTHXkOWZ6Qwh63/s640/newlcd2.png" width="640" /></a></div>
<br />
<h4>
7章全般:利用できるLCDについて2~ストロベリーリナックス編</h4>
他に用いることのできるLCDとしては、例えばストロベリーリナックスで取り扱われている以下のものがあります。どちらも16文字x2行ですので、本書で取り扱ったものの倍の文字数を表示できます。
<br />
<ul>
<li><a href="https://strawberry-linux.com/catalog/items?code=27002" target="_blank">【大型】I2C低電圧キャラクタ液晶モジュール(16x2行)通過型</a></li>
<li><a href="https://strawberry-linux.com/catalog/items?code=27001" target="_blank">I2C低電圧キャラクタ液晶モジュール(16x2行)</a></li>
</ul>
下図は、<br />
<ul>
<li>python3 bb2-04-03-lcd-practice.py 'Hello, Raspberry Pi!'</li>
</ul>
を実行した様子です。現在のRaspbianでは管理者権限を表す「sudo」は不要です。<br />
<br />
ただし、この2つのLCDでは、本書p.115図4-11の文字コード表の一番左の列(0x06~0x0f)の文字は表示されないようです。ご了承ください。<br />
<br />
これらのLCDが本書のLCDと共通でのプログラムで利用可能な理由は、コントローラーICとしてST7032iと呼ばれるものが共通で用いられているためです。そのため、書籍で紹介したLCDにあったロットによる問題が将来起こらないとは限りません。その場合はやはり上記の暫定的対処法を試すことになるでしょう。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-vOaqtPrGSGSUnjWSEWLuoQgSyH1SPk_ayCavT3akF2nqT42w_yYYg85icNSAg2SdNUasLNY3NzKCe5UVVG_OtTVL9NxWMH5W6yexSQKOc8JKWVG42uNfc7Tk0rlFEWfLMANraWFakrM6/s1600/LCDall.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-vOaqtPrGSGSUnjWSEWLuoQgSyH1SPk_ayCavT3akF2nqT42w_yYYg85icNSAg2SdNUasLNY3NzKCe5UVVG_OtTVL9NxWMH5W6yexSQKOc8JKWVG42uNfc7Tk0rlFEWfLMANraWFakrM6/s640/LCDall.jpg" width="640" /></a></div>
<br />
なお、回路の接続は本書のものとは少し異なります。上図のどちらの液晶を用いる場合も下図を参考にしてください。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVjOtjsr28-HSiVoVZsvIZTGmKfp-es16lplldlp03macUGeHK99D6ZfKt62c-RIMbc-bCgmKjBh87A5_qhjsl8jdnOu_OTvpxqm2_-TPqLQXg0woFDx9sNzmRjUKRcYYFTi8uJr4Br6xv/s1600/LCDconnect.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVjOtjsr28-HSiVoVZsvIZTGmKfp-es16lplldlp03macUGeHK99D6ZfKt62c-RIMbc-bCgmKjBh87A5_qhjsl8jdnOu_OTvpxqm2_-TPqLQXg0woFDx9sNzmRjUKRcYYFTi8uJr4Br6xv/s320/LCDconnect.png" width="320" /></a></div>
<br />
プログラムは、一行だけ変更が必要です。LCDを用いるプログラムには下記のようにLCDの文字数を設定している行があります。これらは8x2の液晶であることを示しています。
<br />
<pre class="prettyprint">chars_per_line = 8
display_lines = 2
</pre>
これを下記のように変更して保存すれば完了です。
<br />
<pre class="prettyprint">chars_per_line = 16
display_lines = 2
</pre>
この変更をしなければ、単に8x2の液晶として動作します。<br />
<br />
また、「I2C低電圧キャラクタ液晶モジュール(16x2行)」(小さいほう)を用いるとデフォルトでは文字がやや薄くなります。2019/6/25に更新されたサンプルファイルでは文字の濃さを調整できるよう変更されていますので、必要に応じて raspi2-sample.zip をダウンロードしなおし、展開した上で利用してください。
<br />
<br />
更新されたそれぞれのファイルで下記の行を見つけ、contrastの値を40に変更し保存してください。必要に応じて、上で記した「chars_per_line」を16にする変更も行なってください。
<br />
<pre class="prettyprint">contrast = 32 # 0から63のコントラスト。通常は32、文字が薄いときは40を推奨
</pre>
<br />
<h4>
p.159:以前のLCDを購入した場合の暫定的な対処法</h4>
<h4>
<LCD対処法:予備知識></h4>
読者の方により、書籍内で紹介したLCD(AQM0802)を2015年12月頃以降に購入した場合、Raspberry Piから認識されない(i2cdetectコマンドを実行しても3eが表示されない)ことがあることを教えて頂きました。
<br />
<br />
私も新たに完成品のLCD(AQM0802)を購入してみましたが、確かに同じ状況になりました。販売店に問い合わせたところ、「LCDの新しいロットでは電流の引き込み能力が低くRaspberry Piで動作(認識)しない」との回答でした。<br />
<br />
このままでは7章の演習を実行できなくなってしまいます。そこで、そのように問題のあるLCDを動作させる方法をここで紹介します。なお、最も簡単な解決方法は、本ページ上部で紹介した動作確認済のLCDを購入することです。以下は、古いLCDをなんとか活用したいという方向けの情報です。<br />
<br />
まず、対処法を理解するための予備知識から解説します。LCDモジュールの基板の裏には、下図(A)または(B)のように、PUと書かれた部分にジャンパとよばれる電極が2セットあります。LCDモジュールを自分ではんだづけした方は下図(A)の状態、完成品を購入した方は下図(B)の状態の方が多いでしょう。下図(A)の状態では、一つの正方形内の凹凸状の電極は絶縁されています。ここにはんだを盛り下図(B)のようにすると電極が接続され、LCDモジュールの基板上のプルアップ抵抗が有効になります。そのため、これらの状態をそれぞれ「PUなし」、「PUあり」と呼ぶことにします(PUはpull-upの略です)。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnTf3W__GM0gfzuYWoQPynnnc9Rqvm0cxxSxklF0wNE1ik43O6R3WKYsMIVlhlG2VImBMH-flYjOBr4u0mbyv9JVAWN2rqPCNp4V9dvhK80bndAjJqzSt-3ILElRzo54RS5fEnrITNvwN0/s1600/LCDTrouble01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnTf3W__GM0gfzuYWoQPynnnc9Rqvm0cxxSxklF0wNE1ik43O6R3WKYsMIVlhlG2VImBMH-flYjOBr4u0mbyv9JVAWN2rqPCNp4V9dvhK80bndAjJqzSt-3ILElRzo54RS5fEnrITNvwN0/s640/LCDTrouble01.png" width="640" /></a></div>
<br />
一般に、プルアップ抵抗はI2C接続時に必要になるものですが、Raspberry Pi内部に既にこのプルアップ抵抗が存在するので、LCDモジュールの基板上では必ずしもこのプルアップ抵抗の有効化は必要ありませんでした。そのため、7章において正常動作するLCDでは「PUなし」、「PUあり」のどちらでもLCDは動作しました。
<br />
<br />
既に述べたように、「PUなし」から「PUあり」の状態にするには、凸と凹の電極にまたがるようにはんだを盛ります。逆に、「PUあり」から「PUなし」の状態に戻すには、上図(C)のように、はんだ吸い取り線を用いてPU部からはんだを除去するのが簡単です。
<br />
<br />
以上の予備知識のもと、どなたにでも容易に実現可能な暫定的対処法と、上級者向けの正式な対処法との2つを紹介します。
<br />
<br />
<h4>
<LCD対処法:暫定版></h4>
まずは、どなたにでも容易に実現可能な暫定的対処法を紹介しましょう。
<br />
Raspberry Piから認識されない完成品LCD(AQM0802)に対して、回路に下図のようにSDA部からGNDの間に抵抗を追加すると、動作を確認することができました。
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3ci2eIhHQibAJN-YpnakAAstjM5Rx9M1DHSUivEY3Jpe7t72lqk2jIxztpMaBmFYBOa8vnJHgK0vyHNMyh1VIOHvRM94G5hyphenhyphenFEW30U5MA0r0sfbFqjO5cyRxu9VQEqFRgJXiEjX8XOEGK/s1600/LCDTrouble02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="408" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3ci2eIhHQibAJN-YpnakAAstjM5Rx9M1DHSUivEY3Jpe7t72lqk2jIxztpMaBmFYBOa8vnJHgK0vyHNMyh1VIOHvRM94G5hyphenhyphenFEW30U5MA0r0sfbFqjO5cyRxu9VQEqFRgJXiEjX8XOEGK/s640/LCDTrouble02.png" width="640" /></a></div>
<br />
抵抗の大きさRとしては、下記の範囲のものが有効でした。
<br />
<ul>
<li>PUありの場合のR:2kΩ</li>
<li>PUなしの場合のR:2kΩ~4.7kΩ程度</li>
<li>ただし、8章でサーボドライバとともに用いる場合「PUなし、R=2kΩ」のみ。サーボドライバにプルアップ抵抗が含まれており、実質「PUあり」と同じ状態になるためです。</li>
</ul>
後に述べるように、私はPUなし(PU部のはんだをはんだ吸い取り線で除去した状態)で4.7kΩの抵抗を用いることを推奨します。4.7kΩでI2C通信のエラーの頻度が高い場合は3.9kΩが良いかもしれません。抵抗は例えば、<a href="https://akizukidenshi.com/catalog/g/g125202/" target="_blank">2kΩ</a>、<a href="https://akizukidenshi.com/catalog/g/g125392/" target="_blank">3.9kΩ</a>、<a href="https://akizukidenshi.com/catalog/g/g125472/" target="_blank">4.7kΩ</a>などが購入できます。
<br />
<br />
なお、この方法を用いると、3.3VピンからGNDまで1.8kΩ+RkΩの抵抗で接続されることになるので、約0.5mAから1.0mA程度の電流が流れ続けます(1.8kΩの抵抗は、Raspberry Pi本体内部にあるI2C用のプルアップ抵抗です)。この程度の大きさの電流がRaspberry Piに問題を起こすことはないと思われますが、本来不要な電流が流れる手法であることは注意しておいてください。なお、比較のために記すと、2章でLEDを点灯したときに流れる電流は約5mAです。
<br />
<br />
以上で、暫定的対処法の解説は終わりますが、以下、動作しない完成品LCDで何が起こっているか、そしてこの方法により何が起こるのかを簡単に記しておきます。
<br />
<br />
まず、「動作しない完成品LCD」の何が問題かを記したのが下図です。I2C通信時にLCDから
Raspberry Piに対してACK信号と呼ばれるLOW信号を出力する場面があります。正常動作するLCDでは、このACK信号は約0.8Vとなっています。これはこのLCDの仕様の範囲内の動作です。しかし、「動作しない完成品LCD」ではこれが約1.2Vとなってしまっています。これをRaspberry PiがLOWと認識できないため、処理がそこで止まっているようです。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdZ2WNp6X5nFArvgknTJO2dRmMM7O01AUW1fSA5cl-CrPd0wJz-AaM0EpVfLChbJkTxP4RpBDP7RT0gWOXKlrahvCnsvvCjxtxOkJPF2bChqYvx0m1FZDcbs0AH4XCsjnjqSBNQsmGbRX6/s1600/LCDTrouble04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdZ2WNp6X5nFArvgknTJO2dRmMM7O01AUW1fSA5cl-CrPd0wJz-AaM0EpVfLChbJkTxP4RpBDP7RT0gWOXKlrahvCnsvvCjxtxOkJPF2bChqYvx0m1FZDcbs0AH4XCsjnjqSBNQsmGbRX6/s640/LCDTrouble04.png" width="640" /></a></div>
<br />
これに対し、暫定的な対応法ではこのACK信号を下図のように約1.0Vまで引き下げています。ただし、下図に示されている通り、3.3VであるべきHIGH信号まで下げてしまいますので、下げすぎると、Rapberry PiからHIGH信号も認識できなくなってしまいます。図を見るとわかる通り、「PUあり、R=2kΩ」ではHIGHが2Vまで下がっており、HIGHと認識されなくなる直前だろうと思います。これが「PUなし、R=4.7kΩ」を推奨する理由です。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_3j6gVny1Klxca5fMuT3tqkVPfgnr6RAXK19WEIjZ7Ek-vfC7lN9Lw-CChRMm3U4OjS2c1eE8AhLS-zEtr7508V5jZ7MOG1sM-13obADuP43ebQKNSm0vWjFX0CG4AvQ6K2rrHriI4f2Q/s1600/LCDTrouble05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_3j6gVny1Klxca5fMuT3tqkVPfgnr6RAXK19WEIjZ7Ek-vfC7lN9Lw-CChRMm3U4OjS2c1eE8AhLS-zEtr7508V5jZ7MOG1sM-13obADuP43ebQKNSm0vWjFX0CG4AvQ6K2rrHriI4f2Q/s640/LCDTrouble05.png" width="640" /></a></div>
<br />
ただし、いずれにせよこれはあくまで暫定的な対処法です。正常なI2C通信では必要のない対処法ですのでご注意ください。<br />
<br />
<h4>
<LCD対処法:正式版(ただし上級者向け)></h4>
最後に、LCD(AQM0802)を用いるための正式な方法を紹介します。ただし、これは「表面実装用」と呼ばれるタイプのチップをはんだづけする必要があり、かなりの上級者向けとなりますので、自信のある方のみお試しください。<br />
<br />
この方法には、I2CバスリピーターPCA9515ADと呼ばれるチップが必要となります。これをブレッドボードで用いるためには、下記の3点が必要となり、下図のようにはんだづけする必要があります。
<br />
<ul>
<li><a href="hhttps://akizukidenshi.com/catalog/g/g110882/" target="_blank">I2Cバスリピーター PCA9515AD</a></li>
<li><a href="hhttps://akizukidenshi.com/catalog/g/g105154/" target="_blank">SOP8(1.27mm)DIP変換基板 金フラッシ</a></li>
<li><a href="https://akizukidenshi.com/catalog/g/g104392/" target="_blank">細ピンヘッダ 1×4</a>:2つ必要</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw9fE3qGQ_ZZE3_adcANNONFeD4GNEMsaJ2ebZ6AhIaqZX0YGwik_hAzkB1znQPF1mRANmyGB2iq_sdg9fVNfuZcTkYXNXrv8GnS2GTrFYvRMMhgNsXNkP-RJMCjBnqkPjpXv-bK4_-bpO/s1600/repeater-all.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw9fE3qGQ_ZZE3_adcANNONFeD4GNEMsaJ2ebZ6AhIaqZX0YGwik_hAzkB1znQPF1mRANmyGB2iq_sdg9fVNfuZcTkYXNXrv8GnS2GTrFYvRMMhgNsXNkP-RJMCjBnqkPjpXv-bK4_-bpO/s400/repeater-all.png" width="400" /></a></div>
<br />
なお、上図の「EN」はENABLEの略で、利用時はHIGH(3.3V)に接続します。<br />
<br />
PCA9515ADはリンク先の写真で分かる通り、表面実装用と呼ばれるタイプの部品であり、これを基板上にはんだづけするには、やや高度な技術が必要です。そのため、この方法は上級者向けと言えるでしょう。<br />
<br />
表面実装用の部品のはんだづけする方法は、例えば下記のYouTube動画が参考になるでしょう。
<br />
<ul>
<li><a href="https://www.youtube.com/watch?v=QZMJhrPfYBk" target="_blank">3216チップ抵抗、チップコンデンサのはんだ付け(実装)</a></li>
</ul>
さらに、この動画にあるように、ピンセットやフラックスもあると良いでしょう。例えば下記のようなものです。
<br />
<ul>
<li><a href="https://akizukidenshi.com/catalog/g/g102541/" target="_blank">精密ピンセット TS-15</a></li>
<li><a href="http://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=82ZA-2BKF" target="_blank">goot BS-75B 無洗浄タイプフラックス20cc</a></li>
</ul>
このPCA9515を利用するための概念図が下図です。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoIj7sYUcAP5DsEf5BO6z0b3d4aymmkKujFBwVM332mnW_g58H8GJkHFksLdasTipgT_sLTWDCC7JirBPJCELbAoUrE7Y4r9SEqFgiTCCWZZ9oTnOj7XAeRFB2n5FPqcu7YWMXKJou3COM/s1600/fig07-05-I2Crepeater.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoIj7sYUcAP5DsEf5BO6z0b3d4aymmkKujFBwVM332mnW_g58H8GJkHFksLdasTipgT_sLTWDCC7JirBPJCELbAoUrE7Y4r9SEqFgiTCCWZZ9oTnOj7XAeRFB2n5FPqcu7YWMXKJou3COM/s400/fig07-05-I2Crepeater.png" width="400" /></a></div>
<br />
この小型液晶AQM0802の新しいロットを使う上で問題になるのが、Raspberry Pi上にあるプルアップ抵抗1.8kΩが小さすぎることです。新しいロットのAQM0802を使う上では10kΩが推奨されています。しかし、Raspberry Piのプルアップ抵抗は基板上に固定されており、そのため、プルアップ抵抗を小さくすることは容易なものの(接続するプルアップ抵抗の数を増やせばよい)、大きくすることは簡単ではありません。<br />
<br />
そこで、上図のようにPCA9515を用いてRaspberry Piおよび温度センサ側と小型液晶側を切り離し、左側をプルアップ抵抗1.8kΩで、右側をプルアップ抵抗10kΩで利用できるようにするというわけです。<br />
<br />
そのためには、ブレッドボード上で下図のような回路を組みます。図を簡単にするために、小型液晶側のプルアップ抵抗は、小型液晶モジュールのプルアップ抵抗PUを用いることにしました。上の解説「<LCD対処法:予備知識>」を参考に、<b>2箇所のPUに半田を盛り、基板上のプルアップ抵抗を有効に</b>してください。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxEhVF1A4xDd6WGd6fCLPqneJyrSr7GWzNU98o6-EFQm5bTwh6pswOzBjr8dCtjXcZ57onLlYNLKa-lhsU9WFzyarQ3c9McMFTMsNa9dlkKxPXDsp9qRdvl0VUd0JRr_X5K00J69sxdGw/s1600/bb2-fig04-09-I2Crepeater.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="339" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxEhVF1A4xDd6WGd6fCLPqneJyrSr7GWzNU98o6-EFQm5bTwh6pswOzBjr8dCtjXcZ57onLlYNLKa-lhsU9WFzyarQ3c9McMFTMsNa9dlkKxPXDsp9qRdvl0VUd0JRr_X5K00J69sxdGw/s640/bb2-fig04-09-I2Crepeater.png" width="640" /></a></div>
<br />
<h4>
7章全般:LCDにカタカナを表示する</h4>
本書で用いたLCD、および上で紹介した16x2のLCDはどちらもカタカナを表示することができます。
07-02-LCD.pyを開いて見ると、末尾に下記の記述があります。
<br />
<pre class="prettyprint"> # アルファベットと記号は「''」でくくってそのまま表示可能
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)
</pre>
このうち、「write_string('Hello World')」の先頭に「#」を記述して無効にし、
「s = chr(0xd7)+(略)」と「write_string(s)」の先頭の「#」を削除して有効にします。これを保存して実行すれば、下図のように「ラズベリー パイ」と表示されます。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlJ7vV6qpva3yi5f35keuQgd-AhOaNosxERMDAVmiIw3M_RI7GQJNxv0lNzaWhy2_g6xYCe_pxek05sVdO0EyTuNv9eJW428IrNnC6qS43Hjyp_uV4vWLB3VVKHUiWaDabimL12kIElYmx/s1600/LCD-kana-mini.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlJ7vV6qpva3yi5f35keuQgd-AhOaNosxERMDAVmiIw3M_RI7GQJNxv0lNzaWhy2_g6xYCe_pxek05sVdO0EyTuNv9eJW428IrNnC6qS43Hjyp_uV4vWLB3VVKHUiWaDabimL12kIElYmx/s320/LCD-kana-mini.jpg" width="320" /></a></div>
<br />
上のコードでは「ch(0xd7)」が「ラ」を表しており、それを「+」記号でつないでいます。空白文字だけは英数字と同じ扱いで「' '」と表記しています。カタカナと記号の対応表は下記になります。色々試して見ると面白いでしょう。<br />
<br />
ただし、上で紹介したストロベリーリナックスの2つのLCDでは、下記対応表の一番左の列の文字(0x06~0x0f)は表示されないようです。ご了承ください。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk4YvhqoNmwEdTUb9oDyCcip9lpVE1zDn0q66w7fT1FuP_9fmsC7c1bPVXCZvjMCdjecrkTsBemHVPmTgVKM7_esQlG8mAy6eQJfN4vkeqBloO35sDf1JRvt6AW6ipxCBvhXtlWdWRhlU2/s1600/fig04-09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjk4YvhqoNmwEdTUb9oDyCcip9lpVE1zDn0q66w7fT1FuP_9fmsC7c1bPVXCZvjMCdjecrkTsBemHVPmTgVKM7_esQlG8mAy6eQJfN4vkeqBloO35sDf1JRvt6AW6ipxCBvhXtlWdWRhlU2/s400/fig04-09.png" width="285" /></a></div>
<br />
<h3>
第8章</h3>
<h4>
p.192など:半固定抵抗の回転の向きについて</h4>
6章の注釈でも既に述べたように、「半固定抵抗の3.3VピンとGNDへの接続を入れ替える」ことで、AD変換の値が大きくなる回転の向きを逆にすることができます。
<br />
<br />
お使いの半固定抵抗により回転の向きが異なることがありますので、配線の入れ替えにより好みの向きを選択してください。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQFKv0DiNEV8xVSvD1rTJpYmKIF66fMpy-neFIEN9senTMptZ8HJ1mlgwMgXKsm5oUYcG_IEmHiFir-4nIl_yLADQIArGxQU5UWP2_wT0LKd0MYZ88dasOLMTCeya5TAQZwWiakvCzUJkm/s1600/DirectionOfVolume.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQFKv0DiNEV8xVSvD1rTJpYmKIF66fMpy-neFIEN9senTMptZ8HJ1mlgwMgXKsm5oUYcG_IEmHiFir-4nIl_yLADQIArGxQU5UWP2_wT0LKd0MYZ88dasOLMTCeya5TAQZwWiakvCzUJkm/s400/DirectionOfVolume.png" width="400" /></a></div>
<br />
<h4>
p.181:RGBフルカラーLEDについて</h4>
Arduino Sidekick Basic Kitに含まれるRGBフルカラーLEDは共通アノード(アノードコモン)、秋月電子通商のパーツセットに含まれるRGBフルカラーLEDは共通カソード(カソードコモン)です。
<br />
<br />
共通カソード(カソードコモン)のRGBフルカラーLEDを用いる場合、書籍とサンプルファイルの指示に従い、プログラムを編集してから用いる必要がありますので、御注意ください。<br />
<br />
回路の配線も異なりますので書籍中の図をよく見て配線しましょう。<br />
<br />
<h4>
p.181:LED光拡散キャップ白(5mm)</h4>
8章および9章で5mmサイズのRGBフルカラーLEDを使う際、光拡散キャップを取り付けると色が見やすくなるため使用を推奨しました。<br />
<br />
上で紹介した「Arduino Sidekick Basic Kit バージョン2」を購入された場合、含まれるRGBカラーLEDは光拡散キャップが不要なパッケージに変更されておりますので、使用する必要はありません。<br />
<br />
下記の写真は、左から順に「Arduino Sidekick Basic Kit バージョン1に含まれるRGBフルカラーLED(端子カット済)」、「光拡散キャップ」、「Arduino Sidekick Basic Kit バージョン2に含まれるRGBフルカラーLED」です。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbI4gDLKtKZbd9vyfRxmCPNeqN1LE2D3Gl_iQWYjQRasdfXjTB1iPrS8Up8MUySthzdE0-LL4OWZU5aG9MvcA6NNlIiq_nCsSydHB34kxEu-xtQHN3YDDgGdr5BjdEmsCBdArMeelbHZ6_/s1600/RGBLED.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbI4gDLKtKZbd9vyfRxmCPNeqN1LE2D3Gl_iQWYjQRasdfXjTB1iPrS8Up8MUySthzdE0-LL4OWZU5aG9MvcA6NNlIiq_nCsSydHB34kxEu-xtQHN3YDDgGdr5BjdEmsCBdArMeelbHZ6_/s1600/RGBLED.jpg" width="320" /></a></div>
<br />
<h4>
p.204:DCモーターのノイズについて</h4>
書籍でも触れたように、DCモーターを動かすと大きなノイズが発生します。Wifiを使ってRaspberry Piをネットワークに接続している場合、 ある条件が重なったときにDCモーターのノイズによりWifiの接続が切れてしまう現象が見られました。USB機器の相性に起因するようですが、起こる確率はあまり高くないように思います。もし運悪くそのような状況に遭遇した場合、下記の対策を検討してみてください。<br />
<ol>
<li>Raspberry Piに接続してるUSB機器、典型的にはキーボードとマウスを別のものに変更する</li>
<li>書籍p.212の図8-12のように、DCモーターにコンデンサを3個とりつける(端子間1個、端子-外装間2個)。書籍p.212の図8-12をカラーで再掲しますので、参考にしてみてください。</li>
</ol>
筆者の場合、上記2つのどちらの方法でも解決できました。なお、このDCモーターのノイズの問題は9.6章および10章でも起こりえますので注意してください。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ3nAQcl6uJIU1jGNLYrLLMXbGiXKdo96ehUjUHEGH-1lK2Ds-9ZiGlcmbCsKPGkbGjVMi04bxJ7IV7xlnhLxKFnOJYhXdabiA8cmsdAdsBH_KNI0h-4KytIGSrCzs1aBCCsucF08eIg6P/s1600/fig08-12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ3nAQcl6uJIU1jGNLYrLLMXbGiXKdo96ehUjUHEGH-1lK2Ds-9ZiGlcmbCsKPGkbGjVMi04bxJ7IV7xlnhLxKFnOJYhXdabiA8cmsdAdsBH_KNI0h-4KytIGSrCzs1aBCCsucF08eIg6P/s320/fig08-12.png" width="320" /></a></div>
<br />
<h4>
p.181:サーボモーター</h4>
本書の発売後、秋月電子通商では安価なサーボモーターとして下記のものも取り扱われるようになりました。
<br />
<ul>
<li><a href="https://akizukidenshi.com/catalog/g/g108761/" target="_blank">マイクロサーボ9g SG-90</a></li>
</ul>
amazonではSG-90の複数個セットも取り扱われております。
<br />
<ul>
<li><a href="http://www.amazon.co.jp/dp/B00VUJYNWG/" target="_blank">デジタル・マイクロサーボ SG90</a></li>
</ul>
このSG-90やSG92Rを用いて本書の演習を行うこともできるのですが、このような安価なサーボは故障や動作不良もあり得ると考え、1個ではなく複数個購入すべきだと思います。そういう意味では、これらのサーボモーターはトラブルがあった時に対処できる上級者向けの商品であると個人的には思います。
<br />
<br />
<h4>
p.202:モータードライバ TA7291Pについて</h4>
モータードライバのTA7291Pはすでに生産が終了しており、今後入手が困難になることが予想されます。
代替品として、下記を選びました。TA7291Pを入手できないときはお試しください。
<br />
<ul>
<li><a href="https://akizukidenshi.com/catalog/g/g109848/" target="_blank">DRV8835使用ステッピング&DCモータドライバモジュール</a> : 一つのモジュール内に二つのモータードライバーが含まれますので、購入は一つで構いません</li>
<li><a href="https://akizukidenshi.com/catalog/g/g112240/" target="_blank">電池ボックス 単3×3本 リード線・スイッチ付</a> : 上記モータードライバは、3本の乾電池でお使いください。</li>
</ul>
このモータードライバは、ピンヘッダを自分で半田付けするキットとなっています。完成状態は下図の通りです。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAuhgJ-TE7XXxP_eZDhQjHdhhVyHCMEY80QpDuyCuWNfejvh7Fdsd5pMJQqbxpXV5-BhRwK7snMDkbtV2wt782neSFtZtVtqDlvMa1_xImXxV-xhdSv6LIApJBlEeYnnXbmO-k5vjdgB0/s1600/newmd.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="742" data-original-width="1024" height="231" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAuhgJ-TE7XXxP_eZDhQjHdhhVyHCMEY80QpDuyCuWNfejvh7Fdsd5pMJQqbxpXV5-BhRwK7snMDkbtV2wt782neSFtZtVtqDlvMa1_xImXxV-xhdSv6LIApJBlEeYnnXbmO-k5vjdgB0/s320/newmd.jpg" width="320" /></a></div>
<br />
このモータードライバを用いて図8-11と同等の回路を組むには下図のようにします(クリックすると拡大されます)。上で述べたように、電池ボックスは電池三本用のものをお使いください。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf9VkC6k9HZBQvU3JE1ecLVAV7AjvnbOherPEJpkmVlin0Zo9gISyjaOXcbEWtUlJ-nBMC67WL0GtfF7RIfEEk8XkBpszkihxmeZ2JmqnC_bNBMQ69vanoEb0-2XZPdvRmNFu4qZTUkg0/s1600/bitfig08-11-NewMD.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="830" data-original-width="1430" height="368" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf9VkC6k9HZBQvU3JE1ecLVAV7AjvnbOherPEJpkmVlin0Zo9gISyjaOXcbEWtUlJ-nBMC67WL0GtfF7RIfEEk8XkBpszkihxmeZ2JmqnC_bNBMQ69vanoEb0-2XZPdvRmNFu4qZTUkg0/s640/bitfig08-11-NewMD.png" width="640" /></a></div>
<br />
<br />
<h4>
p.212:wiringPiを用いたハードウェアPWM信号によるサーボモーターの制御</h4>
本書ではwiringPiを用いてGPIO 18に対して精度の高いハードウェアPWM信号を出力し、サーボモーター1個の角度を制御しました。<br />
<br />
Raspberry Pi Model BではハードウェアPWM信号はGPIO 18からの1つのみしか出力できなかったのですが、Raspberry Pi Model B+以降(Raspberry Pi 2 Model B含む)では、ハードウェアPWM信号を2つ出力できます。<br />
<br />
下図のように、1つ目のPWM0はGPIO 18かGPIO 12のどちらかから、2つ目のPWM1はGPIO 13かGPIO 19のどちらかから出力できます。その方法は本書で解説した方法と同じですので試してみてください。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-JTGU70lPqdziipmALThNrRfBa9YD-JlK25zHQ-DPEvf1422qyUo26TBYLAUA_r9-WTZqHhU_NEzczOeeom3iKzeZIuK6Bt0zh-S2LHcp4MnK30ogFKKEAC51wzJdP-30AX-qVjo3lZqA/s1600/GPIOwithPWM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-JTGU70lPqdziipmALThNrRfBa9YD-JlK25zHQ-DPEvf1422qyUo26TBYLAUA_r9-WTZqHhU_NEzczOeeom3iKzeZIuK6Bt0zh-S2LHcp4MnK30ogFKKEAC51wzJdP-30AX-qVjo3lZqA/s1600/GPIOwithPWM.png" /></a></div>
<br />
<h4>
p.213:wiringPiのインストール</h4>
現在のRasbianでは、wiringPiのインストール作業は不要です。そのままこの下のWiringPi2-Pythonのインストールに進んでください。
<br />
<br />
<h4>
p.214:WiringPi2-Pythonのインストール</h4>
p.214のWiringPi2-Pythonのインストールですが、やや長いコマンドが多いので、コピー&貼り付けできる形で以下に再掲します。必要に応じて活用してください。なお、(3)のダウンロードサイトは、書籍に記したサイトでは更新が終了されたので変更してあります。
<br />
(2020.10.23: python3用のインストール法のみを記すようにしました)
<br />
<pre class="prettyprint">(1) $ cd
(2) $ sudo apt update
(3) $ sudo apt install python3-dev python3-setuptools
(4) $ git clone https://github.com/neuralassembly/WiringPi2-Python.git
(5) $ cd WiringPi2-Python
(6) $ sudo python3 setup.py install
</pre>
<br />
<h4>
p.216:WiringPi2-Pythonを用いたプログラムの実行について</h4>
現在の Raspbian では、多くの電子工作プログラムの実行には管理者権限が不要になりました。
<br />
しかし、WiringPi2-Pythonを用いる08-04-servo.pyの実行には今でも管理者権限が必要です。<br />
正確には、精度の高いPWM(ハードウェアPWM)を用いるプログラムの実行には管理者権限が必要です。
<br />
<br />
用いている実行方法により下記のどれかのコマンドの実行が必要となります。
<br />
<pre class="prettyprint">管理者権限のIDLEで実行
sudo idle-python3.7 &
</pre>
<pre class="prettyprint">管理者権限のThonnyで実行
sudo thonny &
</pre>
<pre class="prettyprint">管理者権限のPython3コマンドで実行
sudo python3 08-04-servo.py
</pre>
<br />
<h3>
第9章</h3>
<h4>
p.227:WebIOPiのダウンロードとインストール</h4>
書籍では、WebIOPiのダウンロードをブラウザから行いましたが、以下で紹介する方法では、ダウンロード・展開・インストールを全てコマンドから行います。
<br />
<br />
ターミナルを起動し、以下のコマンドを一つずつ順に実行してください。WebIOPiのダウンロード・展開・インストールが行われます。ブラウザからコマンドを一つずつコピーし、ターミナルへ貼り付けて実行するのが確実でしょう。
<br />
<br />
コピーはブラウザ上でキーボードで「Ctrl+c」、貼り付けはLXTerminalのメニューから「編集」→「貼り付け」(またはCtrl+Shift+v)です。なお、行頭の「$」の記号はコピーする必要はありませんのでご注意ください。
<br />
<pre class="prettyprint">$ wget http://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz
$ tar zxf WebIOPi-0.7.1.tar.gz
$ 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
</pre>
最後に、下記のような質問が出た場合は、キーボードの n をタイプして Enter するのでした(現在はこの質問は出ません)。<br />
<pre class="prettyprint">Do you want to access WebIOPi over Internet ? [y/n]
</pre>
<br />
<br />
そして、以下のコマンドを実行し、起動用ファイルを適切な位置に配置します。このコマンドもやや長いので、コピー&貼り付けにより実行しましょう。<br />
<pre class="prettyprint">$ wget https://raw.githubusercontent.com/neuralassembly/raspi2/master/webiopi.service
$ sudo mv webiopi.service /etc/systemd/system/
</pre>
以上の方法に従わずにそのままWebIOPi 0.7.1をインストールすると、下図のようにデモアプリケーションであるGPIO Headerにおいて、「IN/OUT」などの文字が現れるべきボタンが灰色のみのボタンとなってしまいます(書籍237ページ図9-6に対応)。
<br />
<br />
その場合、WebIOPiを再インストールしてみましょう。そのためには、まずユーザーpiのホームディレクトリ(フォルダ)で下記の2つのコマンドを一つずつ実行し、過去のインストール時のファイルを一旦削除します。
<br />
<pre class="prettyprint">$ sudo rm -f WebIOPi-0.7.1.tar.gz
$ sudo rm -rf WebIOPi-0.7.1/
</pre>
その後、WebIOPi 0.7.1を再インストールしてみてください。なお、この「ボタンに文字がなく灰色一色になる」状況を解決しないと、9章の残りの内容は正常に動作しませんのでご注意ください。<br />
<br />
なお、再インストールを行っても状況が変わらないという場合、原因はわかりませんが、OSであるRaspbianが壊れているという可能性もないとは言えません。余力があればOSを再インストールしてみることも検討してみると良いでしょう(私自身、OSの再インストールが必要だったことはないのですが、読者の方にはそれで改善したという方が複数名いらっしゃるようです)。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwSSCBEQ8S8wh9tO8bkQpKEo-a1VqFQcc6lCGSLolfWRiZcHC3NXbCsVyxt4cmIqNEZOEiO-tXVyMwzd84_2jqTPdN7yzQ-xHu8T7Gm8swY_oFFkGFedR9xK5VIk_O7gcaEbugS3xZvB_U/s1600/rpi2_webiopi_failure.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwSSCBEQ8S8wh9tO8bkQpKEo-a1VqFQcc6lCGSLolfWRiZcHC3NXbCsVyxt4cmIqNEZOEiO-tXVyMwzd84_2jqTPdN7yzQ-xHu8T7Gm8swY_oFFkGFedR9xK5VIk_O7gcaEbugS3xZvB_U/s1600/rpi2_webiopi_failure.png" /></a></div>
<br />
<h4>
p.229:WebIOPiについての各種コマンド</h4>
WebIOPiの起動/停止、自動起動/自動起動の停止、などのコマンドは現在では書籍と異なっています。下記の通りですので、コピーするなどしてご活用ください。
<br />
<br />
WebIOPiの起動コマンド
<br />
<pre class="prettyprint">sudo service webiopi start
</pre>
WebIOPiの停止コマンド
<br />
<pre class="prettyprint">sudo service webiopi stop
</pre>
WebIOPiが動作確認しているか確認するコマンド
<br />
<pre class="prettyprint">ps ax |grep webiopi
</pre>
WebIOPiの自動起動
<br />
<pre class="prettyprint">sudo systemctl enable webiopi
</pre>
WebIOPiの自動起動の停止
<br />
<pre class="prettyprint">sudo systemctl disable webiopi
</pre>
<br />
<h4>
p.232:IPアドレスでのURLの指定について</h4>
本書では、ブラウザからRaspberry Piにアクセスする際に、ルーターなどからRaspberry Piに割り振られたIPアドレスを用いました。すなわち、IPアドレスが192.168.1.3の場合にブラウザから例えば下記のようにアクセスしました。
<br />
<ul>
<li>http://192.168.1.3:8000/bb/01/</li>
</ul>
しかし、この方法はifconfigコマンドなどで事前にIPアドレスを調べておく必要があり、やや面倒でした。<br />
<br />
このIPアドレスの指定を簡単化する方法としては、以下の2つが考えられます。<br />
<ul>
<li>Raspberry PiのIPアドレスを固定し、毎回同じアドレスの指定で済むようにする</li>
<li>IPアドレスではなく、「raspberrypi.local」のような名前で指定する</li>
</ul>
1つ目については、解説がやや長くなるため「<a href="https://raspibb.blogspot.jp/2016/04/raspberry-piip.html" target="_blank">Raspberry PiのIPアドレスを固定する</a>」というページにまとめましたので興味のある方は御覧ください。<br />
<br />
以下では、2つめの「raspberrypi.local」のような名前で指定する方法について記します<br />
<br />
NOOBS 1.4.2以降に含まれるRaspbian(Jessie, Stretch, Buster)では、IPアドレスを用いずに「raspberrypi.local」のような名前でRaspberry Piにアクセスできます。ただし、この方法でRaspberry Piにアクセスできるのは下記のみです。<br />
<ul>
<li>iTunesをインストールしたWindows(iTunesに含まれるBonjourというアプリケーションが必要なためです。ただし、Windows 10にApril 2018 Updateを適用すると、この方法が一時的に使えなくなります。WindowsからiTunesとBonjourを一旦削除してからiTunesをインストールしなおすとまた使えるようになるようです)</li>
<li>Mac OS X</li>
<li>iPhoneやiPad</li>
</ul>
Androidスマートフォンでは現時点ではこの方法ではRasbperry Piにはアクセスできないように思われます。<br />
<br />
上記の条件が満たされた場合、方法は簡単で、ブラウザのアドレス欄に例えば下記のように入力すればOKです。
<br />
<ul>
<li>http://raspberrypi.local:8000/bb/01/</li>
</ul>
すなわち、IPアドレス「192.168.1.3」などの代わりに「raspberrypi.local」という記法が使える、というわけです。これは、Jessie、Stretch、Buster上で動作しているavahiというソフトウェアの働きによります。<br />
<br />
なお、Jessie以前のWheezyで同じことを実現したい場合、LXTerminalを起動して下記のようにavahi-daemonをインストールする必要があります。
<br />
<ul>
<li>sudo apt update</li>
<li>sudo apt install avahi-daemon</li>
</ul>
インストール後に再起動すると、自動的にavahiが起動し、「raspberrypi.local」でのアクセスが可能になります。<br />
<br />
なお、同じネットワーク内でavahiが起動したRaspberry Piが2台以上あると、同じ名前「raspberrypi」のマシンが2つ以上ある状態になり、名前の衝突が起こります。その場合、2台目以降のRaspberry Piには「raspberrypi-2.local」などの名前が自動的につけられますのでご注意ください。名前が衝突しないよう、あらかじめ「raspberrypi」というマシン名を変更しておく方法もありますが、ここでは省略します。
<br />
<br />
<h4>
p.240:WebIOPi用サンプルファイルの/usr/share/webiopi/htdocsディレクトリへのコピー</h4>
240ページでは、本書のサンプルファイルを/usr/share/webiopi/htdocsディレクトリへコピーするという作業を行います。
この作業は重要であり、これに失敗すると、以後の演習が期待通りに動作しません。そこで、コピーして利用できるよう、
そのコマンドをここに再掲します。
ターミナルソフトウェアLXTerminalを起動して、下記の2コマンドを一つずつ順に実行してください。
<br />
<pre class="prettyprint">sudo chown -R $USER /usr/share/webiopi/htdocs
cp -r 09-samples/bb /usr/share/webiopi/htdocs
</pre>
なお、本書のサンプルファイルをbluebacksディレクトリに展開した方は、上記2コマンド実行の前に「cd bluebacks」コマンドを実行して
bluebacksディレクトリに入り、その後2コマンドを実行するようにしてください。
<br />
<br />
<h4>
p.240:/etc/webiopi/config の myscript行</h4>
9.3以降の演習は設定ファイル /etc/webiopi/config の[SCRIPT]セクションに、Pythonスクリプトの場所を示す行を記す必要があります。
記述に間違いがあるとWebIOPiが起動しませんので、コピーできるように正しい記述を以下に記しておきます。
<br />
<pre class="prettyprint">myscript = /usr/share/webiopi/htdocs/bb/01/script.py
</pre>
なお、この行を記述した後に WebIOPi が起動しなくなった場合、行の記述し間違い以外には、
<ul>
<li>サンプルファイルを /usr/share/webiopi/htdocs ディレクトリにコピーしていない
</ul>
という原因もありえます。その場合、本ページ上部の「p.240:WebIOPi用サンプルファイルの/usr/share/webiopi/htdocsディレクトリへのコピー」を参照してください。
<br />
<br />
<h4>
p.251:Python3でI2Cを用いる方法について</h4>
現在のRaspbianでは、インストール作業なしにPython3でI2Cを用いることができるようになっています。そのため、サンプルファイルに含まれていた 09-samples/smbusmodule.c はいずれ削除する予定です。
<br />
<br />
<h4>
p.255:デジタル温度計のloop関数について</h4>
9.4節において、WebIOPiを用いて温度計の値をブラウザから読み取る方法を紹介しました。書籍のように、手動でWebIOPiを起動する場合は問題ないのですが、10章のキャタピラ式模型のようにWebIOPiを自動起動する場合、9.4節のプログラムがうまく動作せず温度がブラウザで読み取れないことがわかりました。<br />
<br />
これは、WebIOPiのloop関数が、手動起動した場合は問題なく動作するものの、自動起動ではうまく機能しないことが原因のようです。<br />
<br />
修正プログラムは以下の手順で導入できますので、デジタル温度計プログラムを自動起動で実行したい方は試してみてください。WebIOPiのloop関数を用いず、スレッドという機能で温度を読み取るように変更しています。もちろん、自動起動ではなく手動起動でも動作します。<br />
<pre class="prettyprint">$ 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/
</pre>
2番目と3番目の命令では既存のディレクトリとファイルの削除を行っており、「そのようなファイルは存在しない」というメッセージが出る場合がありますが気にしなくとも構いません。
<br />
<br />
<h4>
p.256:RGBフルカラーLEDについて</h4>
Arduino Sidekick Basic Kitに含まれるRGBフルカラーLEDは共通アノード(アノードコモン)、秋月電子通商のパーツセットに含まれるRGBフルカラーLEDは共通カソード(カソードコモン)です。<br />
<br />
共通カソード(カソードコモン)のRGBフルカラーLEDを用いる場合、書籍とサンプルファイルの指示に従い、プログラムを編集してから用いる必要がありますので、御注意ください。<br />
<br />
回路の配線も異なりますので書籍中の図をよく見て配線しましょう。<br />
<br />
<h4>
p.262:モータードライバ TA7291Pについて</h4>
上の「p.202:モータードライバ TA7291Pについて」で述べたように、モータードライバ TA7291Pの入手が難しいときは下記の代替品をお使いください。
<br />
<ul>
<li><a href="http://akizukidenshi.com/catalog/g/gK-09848/" target="_blank">DRV8835使用ステッピング&DCモータドライバモジュール</a> : 一つのモジュール内に二つのモータードライバーが含まれますので、購入は一つで構いません</li>
<li><a href="http://akizukidenshi.com/catalog/g/gP-12240/" target="_blank">電池ボックス 単3×3本 リード線・スイッチ付</a> : 上記モータードライバは、3本の乾電池でお使いください。</li>
</ul>
このモータードライバを用いて図9-13と同等の回路を組むには下図のようにします(クリックすると拡大されます)。上で述べたように、電池ボックスは電池三本用のものをお使いください。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx-Y7_WLwFCAUUAo8gjX73GjcCijJczswc_oeFZSL4FSDU9J3cetxWHGr8SOddkYH0DSn6vW1Jye3pcQ3VFHrgUOxp_zCfruqqT6cNtFPwGHYfontn0JfbeXBHsRXxBQZ4_JAHlcr_-Fc/s1600/bitfig09-12-NewMD.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="840" data-original-width="1050" height="512" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx-Y7_WLwFCAUUAo8gjX73GjcCijJczswc_oeFZSL4FSDU9J3cetxWHGr8SOddkYH0DSn6vW1Jye3pcQ3VFHrgUOxp_zCfruqqT6cNtFPwGHYfontn0JfbeXBHsRXxBQZ4_JAHlcr_-Fc/s640/bitfig09-12-NewMD.png" width="640" /></a></div>
<br />
<br />
<h4>
p.262:DCモーターのノイズについて</h4>
もし、DCモーターを動かしたときにWifiの接続が切れるような現象が見られた場合、本ページ上部の「p.204:DCモーターのノイズについて」にある対策を御覧ください。<br />
<br />
<h3>
10章</h3>
<h4>
p.281:モータードライバ TA7291Pについて</h4>
上の「p.202:モータードライバ TA7291Pについて」で述べたように、モータードライバ TA7291Pの入手が難しいときは下記の代替品をお使いください。
<br />
<ul>
<li><a href="https://akizukidenshi.com/catalog/g/g109848/" target="_blank">DRV8835使用ステッピング&DCモータドライバモジュール</a> : 一つのモジュール内に二つのモータードライバーが含まれますので、購入は一つで構いません</li>
<li><a href="https://akizukidenshi.com/catalog/g/g112240/" target="_blank">電池ボックス 単3×3本 リード線・スイッチ付</a> : 上記モータードライバは、3本の乾電池でお使いください。</li>
</ul>
このモータードライバを用いて図10-4と同等の回路を組むには下図のようにします(クリックすると拡大されます)。上で述べたように、電池ボックスは電池三本用のものをお使いください。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVvaqVpqcsHjqqb0rsEU5tOv2-sxQkArlZHM_nTBKdcd5RApV7a2OTbOg9seufZJL9JavyOiToEVKmEyDDf8mnzqb8oV-wh7RxtH_ryVWd4eA8FGemNQuQ3IPDua9AbLdx6LUxdPWWuJs/s1600/bitfig10-04-NewMD.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="910" data-original-width="1420" height="409" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVvaqVpqcsHjqqb0rsEU5tOv2-sxQkArlZHM_nTBKdcd5RApV7a2OTbOg9seufZJL9JavyOiToEVKmEyDDf8mnzqb8oV-wh7RxtH_ryVWd4eA8FGemNQuQ3IPDua9AbLdx6LUxdPWWuJs/s640/bitfig10-04-NewMD.png" width="640" /></a></div>
<br />
さらに、このモータードライバを用いて図10-6と同等の回路を組むには下図のようにします(クリックすると拡大されます)。こちらも電池ボックスは電池三本用のものをお使いください。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDSk44rccjOC9m-zXkevdkvZxWOxYLNJGfTrW08HiufAddR6iQYgbq9P3TOOEBqMkKcBlaZ2esYZvRDoXLX4ibvBl1kYwS6ask3ltC3H7GCKtEl79oTj_H3uCzvhfBbImjqLR9v0DWtHI/s1600/bitfig10-06-NewMD.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1040" data-original-width="1500" height="441" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDSk44rccjOC9m-zXkevdkvZxWOxYLNJGfTrW08HiufAddR6iQYgbq9P3TOOEBqMkKcBlaZ2esYZvRDoXLX4ibvBl1kYwS6ask3ltC3H7GCKtEl79oTj_H3uCzvhfBbImjqLR9v0DWtHI/s640/bitfig10-06-NewMD.png" width="640" /></a></div>
<br />
<br />
<br />
<h4>
p.276:DCモーターのノイズについて</h4>
もし、DCモーターを動かしたときにWifiの接続が切れるような現象が見られた場合、本ページ上部の「p.204:DCモーターのノイズについて」にある対策を御覧ください。<br />
<br />
<h4>
p.288:/etc/rc.localに追加する1行</h4>
LCDにIPアドレスを表示するプログラムの自動起動のために/etc/rc.localに追加する行は下記の通りです。必要に応じてコピーしてご活用ください。書籍から「sudo」コマンドを省略しました。
<br />
<pre class="prettyprint">python3 /home/pi/07-02-LCD.py $_IP &
</pre>
なお、2022年4月にリリースされた OS よりデフォルトユーザー pi は廃止されています。そのため、上のコマンドの pi の部分は、皆さんが作成したユーザー名で置き換変える必要があります。すなわち、「kanamaru」というユーザーを作成したのなら、「python3 /home/kanamaru/07-02-LCD.py $_IP &」となる、ということです。
<br /><br />
また、サンプルファイルをbluebacksディレクトリに保存した場合は下記になるのでしたね。
<br />
<pre class="prettyprint">python3 /home/pi/bluebacks/07-02-LCD.py $_IP &
</pre>
上と同様に、「pi」は自分のユーザー名に置き換えてください。
<br /><br />
<h4>
p.288: LCDへのIPアドレスの表示について(1)</h4>
本書では、Raspberry Piにブラウザからアクセスする際にIPアドレスを用いました。そのため、Raspberry Piにルーターなどから割り振られたIPアドレスを知る目的で、LCDを回路に取り付けました。<br />
<br />
しかし、「p.232:IPアドレスでのURLの指定について」の注意で紹介しましたように、avahiという仕組みを用いると、IPアドレスではなく、下記のようなアドレスでのアクセスが可能になるのでした。
<br />
<ul>
<li>http://raspberrypi.local:8000/bb/05/</li>
</ul>
これを用いると、回路からLCDが不要になるなどのメリットがあります。具体的には下記の通りです。
<br />
<ul>
<li>p.286の図10-6からLCDを取り外して良い</li>
<li>p.288での/etc/rc.localへの「python3 /home/pi/07-02-LCD.py $_IP &」の記述が不要</li>
</ul>
さらに、Raspberry PiのIPアドレスを固定する、という方法でも、毎回IPアドレスを調べる必要がなくなりますね。こちらについては「<a href="https://raspibb.blogspot.jp/2016/04/raspberry-piip.html" target="_blank">Raspberry PiのIPアドレスを固定する</a>」にまとめましたので、興味のある方は御覧ください。<br />
<br />
7章の補足で述べたように、LCDにはロットの問題によるトラブルが発生していますので、これら方法を用いてLCDなしの回路とする方が良いかもしれませんね。
<br />
<br />
<h4>
p.288: LCDへのIPアドレスの表示について(2)</h4>
起動時にLCDへIPアドレスを表示する方法を記しましたが、IPアドレスの表示に成功するのは、「Raspberry PiにIPアドレスが割り振られる」→「LCDにIPアドレスが表示される」という順番で処理が行なわれたときのみです。
<br />
ネットワーク環境や Raspbian のバージョンによっては、Raspberry PiにIPアドレスが割り振られるタイミングが遅く、LCDにIPアドレスが表示されない、ということがありました。その場合、LCDには「Raspberry Pi」と表示されます。
<br />
<br />
そのような問題に直面した場合、下記の2つの方法を試し、LCDにIPアドレスを表示するタイミングを遅らせてみましょう。<br />
<br />
まず、Jessie 以降の Raspbian を用いている方向けの方法です。
Jessie以降に含まれる設定アプリケーションでは、下図(左)のように「Network at Boot」という項目があります。この「Wait for network」にチェックを入れて再起動すると、Raspberry Piのネットワークへの接続が完了してから起動が完了するようになります。その結果、LCDにIPアドレスが表示されるようになる、というわけです。
<br />
<br />
下図(右)のように以前からの設定アプリケーションraspi-configにも「Wait for Network at Boot」という項目が追加されており、「Slow Wait for network connection before completing boot」を選択することで、同様の効果が得られます。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjn8i2DSKB5f9fvTZgTi5WpjNGWi2dLeeF6ga36yW3TJre-se_zlY7jXkKSXwqQALLZhFAMQKCNRLqrZyay9TTInnyE6wqI3yLHUfl1k6jjCyZfWTMtoSqlihYg-SQgsH2pxnkWbqPsSg/s1600/NetworkAtBootAll.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="243" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjn8i2DSKB5f9fvTZgTi5WpjNGWi2dLeeF6ga36yW3TJre-se_zlY7jXkKSXwqQALLZhFAMQKCNRLqrZyay9TTInnyE6wqI3yLHUfl1k6jjCyZfWTMtoSqlihYg-SQgsH2pxnkWbqPsSg/s640/NetworkAtBootAll.png" width="640" /></a></div>
<br />
次に、Raspbian Wheezy を用いている方向けの方法です。<br />
/etc/rc.localの下記の位置に下記のように「sleep 10」と記入して、LCDへのIPアドレスの表示を10秒遅らせると、LCDへのIPアドレスの表示に成功することがあります。「10」という数字はLCDの表示を遅らせる秒数ですので、環境により適切な秒数に調節してください。<br />
<pre class="prettyprint">(略)
# By default this script does nothing.
sleep 10
# Print the IP address
(略)
</pre>
ただし、こうするとRaspberry Piの起動が10秒遅くなることになりますので御了承ください。<br />
<br />
<h4>
p.290:/etc/rc.localに追加する1行</h4>
シャットダウンプログラムの自動起動のために/etc/rc.localに追加する行は下記の通りです。必要に応じてコピーしてご活用ください。書籍から「sudo」コマンドを省略しました。
<br />
<pre class="prettyprint">python3 /home/pi/10-01-sw-poweroff.py &
</pre>
なお、2022年4月にリリースされた OS よりデフォルトユーザー pi は廃止されています。そのため、上のコマンドの pi の部分は、皆さんが作成したユーザー名で置き換変える必要があります。すなわち、「kanamaru」というユーザーを作成したのなら、「python3 /home/kanamaru/10-01-sw-poweroff.py &」となる、ということです。
<br /><br />
また、サンプルファイルをbluebacksディレクトリに保存した場合は下記になるのでしたね。
<br />
<pre class="prettyprint">python3 /home/pi/bluebacks/10-01-sw-poweroff.py &
</pre>
上と同様に、「pi」は自分のユーザー名に置き換えてください。
<br /><br />
<h4>
p.291:キャタピラ式模型のメンテナンス</h4>
キャタピラ式模型を長く使っていると、だんだん動作が安定しなくなってくることがあります。例えば「右のキャタピラは正常動作するが、左はなかなか動かない」などです。
<br />
<br />
もちろん、「ジャンパーワイヤーが抜けていないか」など、回路の配線をまずはチェックすべきです。
しかし回路の配線に問題がなかった場合、どこに注意してメンテナンスすべきかを以下に記します。上から順にチェックしていきましょう。
<br />
<ol>
<li>電池の残量不足ではないかチェック:基本ではありますが、まずはここからチェックしましょう。</li>
<li>ジャンパワイヤのチェック:ジャンパワイヤの抜き差しをする際、持ち手ではなくケーブルを引っ張ることを繰り返すと中で断線することがあります。断線が疑われるジャンパワイヤは捨ててしまった方がよいでしょう。
</li>
<li>ギアボックスで空回りしているシャフトがないかチェック:ギアボックスの作成の際、イモネジを六角レンチで締めてシャフトを固定している部分があります。そこが緩んで空回りしていないかチェックしましょう。
</li>
<li>モーターの軸が空回りしていないかチェック:モーターの軸にはピニオンギアが取り付けられています。ピニオンギアが劣化してゆるくなり、モーターの軸が空回りすることがあります。これはモーターをギアボックスから取り外してみないとわかりません。ピニオンギアがゆるくなっていた場合、「<a href="https://www.tamiya.com/japan/products/89836/index.html" target="_blank">AO-7005 8Tピニオンセット白(10個)</a>」などを購入して交換しましょう。
</li>
<li>ブレッドボードのチェック:ブレッドボードを長くつかっていると、なんらかの理由でブレッドボード内部の抵抗が大きくなりモーターがあまり回転しなくなることがあります。筆者は複数回そのような経験をしています。安価なもので良いのでテスターを購入すると内部の抵抗の大きさをチェックできます。内部の抵抗が大きく計測されたブレッドボードは消耗品と考えて捨ててしまった方がよいでしょう。
</li>
<li>モータードライバーのチェック:回路には左右のキャタピラ用のモータードライバーが二つあります。これをブレッドボート上で交換して、左右のキャタピラの動きの軽快さが入れ替わるかどうか試してみましょう。動きの軽快さが入れ替わるならば、モータードライバのどちらかに問題がある可能性がありますので、新品と交換してみるのも手です。
</li>
<li>モーターのチェック:上で二つのモータードライバーを交換しても左右のキャタピラの動きの軽快さが入れ替わらなかった場合、モーターに問題がある可能性があります。新品の「<a href="https://www.tamiya.com/japan/products/94380/index.html" target="_blank">AO-1001 FA-130タイプノーマルモーター</a>」を購入して交換してみるのも手です。
</li>
</ol>
<br />
<h4>
p.292:mjpg-streamerインストール用コマンド</h4>
mjpg-streamerのインストールコマンドを全て書くと下記の通りです。長いコマンドが多いので一つずつコピーして実行しても良いでしょう。
<br /><br />
ただし、Bookworm や Bullseye を用いている方で、 libcamera 対応の mjpg-streamer をインストールする場合はここで紹介したコマンドではなく、「<a href="https://raspibb1.blogspot.com/2023/03/picamera2-libcamera.html" target="_blank">本書の演習を picamera2 (libcamera) で実行する方法</a>」で紹介するコマンドを実行する必要がありますのでページを移動してください。
<br /><br />
さて、ここで紹介するコマンドは、libcamera を用いない場合(すなわち、Legacy Camera モードでカメラを利用する場合です。
コピーの際、行頭の「(1)」などの数字はコピーしないよう注意しましょう。
<br />
<pre class="prettyprint">(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
</pre>
なお、古い OS を用いている方は、(2) のコマンドを
<pre class="prettyprint">(2) sudo apt install libjpeg8-dev cmake
</pre>
に変更する必要がある場合があります。
<br /><br />
また、 Bullseye で Legacy Camera モードを用いている方は、本ページの
「p.128, Bookworn (Raspberry Pi OS 2023-10-10 以降) および Bullseye (Raspberry Pi OS 2021-10-30 以降) でのカメラの利用について」の項目を参考に、Legacy Camera モードを有効にする必要がありますのでその点もご注意ください。
さらに、64-bit版 Bullseye を用いている方は、実行時に「<a href="https://raspibb1.blogspot.com/2020/12/blog-post.html" target="_blank">本書の演習をウェブカメラで実行する方法</a>」で配布しているサンプルファイル内の 10-02-stream-webcam.sh を用いる必要があります。
<br /><br />
また、mjpg-streamerのインストールに失敗し、何度も試行錯誤しているという方は、上記の7つのコマンドの実行前に、下記の2コマンドにより過去にインストールしたmjpg-streamerを一度削除した方が安全かもしれません。ターミナルLXTerminalを起動した直後の状態で順に実行してください。
<br />
<pre class="prettyprint">(1) sudo rm -rf /opt/mjpg-streamer
(2) rm -rf mjpg-streamer
</pre>
<br />
また、mjpg-streamerの自動起動のために/etc/rc.localに追加する行は下記の通りです。必要に応じてコピーしてご活用ください。書籍から「sudo」コマンドを省略しました。
<br />
<pre class="prettyprint">sh /home/pi/10-02-stream.sh
</pre>
なお、2022年4月にリリースされた OS よりデフォルトユーザー pi は廃止されています。そのため、上のコマンドの pi の部分は、皆さんが作成したユーザー名で置き換変える必要があります。すなわち、「kanamaru」というユーザーを作成したのなら、「sh /home/kanamaru/10-02-stream.sh」となる、ということです。
<br /><br />
また、サンプルファイルをbluebacksディレクトリに保存した場合は下記になるのでしたね。
<br />
<pre class="prettyprint">sh /home/pi/bluebacks/10-02-stream.sh
</pre>
上と同様に、「pi」は自分のユーザー名に置き換えてください。
<br /><br />
<h4>
p.294:mjpg-streamerの映像が表示されない場合のチェック項目</h4>
mjpg-streamerによる映像が表示されるためには、下記の条件が満たされている必要があります。<br />
<br />
(1) カメラが正しく接続されていること<br />
(2) カメラが有効に設定されていること<br />
(3) mjpg-streamerが正しくインストールされていること<br />
(4) mjpg-streamerが起動されていること<br />
(5) 適切なPCやスマートフォンなどのブラウザからmjpg-streamerにアクセスしていること<br />
(6) ブラウザから適切なアドレスにアクセスされていること<br />
<br />
それぞれが正しく実行されているか確認するためのチェック項目は下記のようになります。<br />
<br />
(1') 金属が露出した端子面がmicroSDカード側を向いて接続されており、<br />
コネクタが適切に押し込まれていることを確認してください。<br />
<br />
(2') デスクトップのメニューから「設定」→「Raspberry Piの設定」→「インターフェイス」<br />
→「カメラ」が「有効」になっていることを確認してください。<br />
<br />
(3') 補足ページ「p.292:mjpg-streamerのインストールコマンド」に掲載したのコマンドを<br />
正しく(コピーするなどして)実行したことを確認してください。<br />
/opt/mjpg-streamer/mjpg_streamer というファイルが存在すれば問題ないでしょう。<br />
一つ目の「mjpg-streamer」はディレクトリ名、二つ目の「mjpg-streamer」は<br />
ファイル名です。<br />
二つ目の「mjpg-streamer」が存在しなければインストールに失敗しています。<br />
<br />
(4') mjpg-streamerの起動法は下記の2通りあります。<br />
(a) ターミナルで「sh 10-02-stream.sh」を実行する<br />
(b) /etc/rc.local に記述して自動起動する<br />
まずは(a)の手動での起動が成功するか確認しましょう。<br />
mjpg-streamerは起動済みだと思ったら、<br />
ターミナルで「ps ax | grep mjpg」と実行してそれを確認してみましょう。<br />
下記のように表示されれば起動に成功しています。細かな数字は人によって異なります。<br />
<br />
2393 pts/0 Sl 0:00 /opt/mjpg-streamer/mjpg_streamer -i input_raspicam.so <br />
-fps 15 -q 50 -x 640 -y 480 -o output_http.so -p 9000 -w /opt/mjpg-streamer/www<br />
2545 pts/0 S+ 0:00 grep --color=auto mjpg<br />
<br />
一方、下記のような表示しかなければ起動に失敗しています。<br />
ここまでの内容を見直す必要があります。<br />
<br />
2545 pts/0 S+ 0:00 grep --color=auto mjpg<br />
<br />
(5')「適切なPCやスマートフォンなど」とは、本書図9-1に記されているように、<br />
Raspberry Piと同じネットワークに属しているPCやスマートフォンのことです。<br />
スマートフォンの場合は本書図9-1のようにWifiで<br />
Raspberry Piと同じネットワークに続している必要があります。<br />
自信がなければRaspberry PiのChromiumブラウザからアクセスするのが確実ですので、<br />
まずはRaspberry Piからのアクセスに成功することを目指しましょう。<br />
<br />
(6') 図10-8のテスト用画面を確認するためにブラウザに記すアドレスは<br />
http://xxx.xxx.xxx.xxx:9000/ です。<br />
もちろん、「xxx.xxx.xxx.xxx」の部分はRaspberry Piに割り当てられているIPアドレスで<br />
読み替える必要があります。
<br />
<br />
<h4>
p.296:誤字について</h4>
このページに下記の誤字があることを<a href="http://errata.g.hatena.ne.jp/keyword/Raspberry%20Pi%E3%81%A7%E5%AD%A6%E3%81%B6%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C" target="_blank">お知らせ頂きました</a>。お知らせ頂きありがとうございました。
<br />
<pre class="prettyprint">金属<strong>性</strong>のビス
→
金属<strong>製</strong>のビス
</pre>
<br />
<h3>
付録A</h3>
<h4>
p.300:Wifi Config</h4>
現在のRaspbianでは、Wifiの設定をするための方法が下図のようにシンプルになり、さらに接続状況がひと目でわかるようになっています。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJY21_lmKGIH_UN9ej891KOUuQJy9sEqhCf-AT7W36QJ7Fgx0T-0Af-oKQs4GVbhNt4DXQQ5jrUN3eAGGuiaYQ4WHW2wCEJzjPm8PWc-UfAYbKCnd7cIxbUw8HU0TQCXI-Qk562gLZUXov/s1600/A-04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="370" data-original-width="734" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJY21_lmKGIH_UN9ej891KOUuQJy9sEqhCf-AT7W36QJ7Fgx0T-0Af-oKQs4GVbhNt4DXQQ5jrUN3eAGGuiaYQ4WHW2wCEJzjPm8PWc-UfAYbKCnd7cIxbUw8HU0TQCXI-Qk562gLZUXov/s640/A-04.png" width="640" /></a></div>
<br />
<h3>
付録B</h3>
<h4>
p.305:USBメモリの利用について</h4>
このページでは、USBメモリを用いて本書のサンプルファイルをRaspberry Piへコピーする方法を解説していますが、Raspbian が更新されGUIが大きく変更されたため、この部分の操作に少し変更があるので補足します。<br />
<br />
まず、USBメモリをRaspberry Piにさすと、下図のようにファイルマネージャで開くかどうかの確認画面が現れます。ここでOKをクリックしてください。USBメモリの中身が見える状態でファイルマネージャが起動します。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi79PmANCyiTAkt8SQFerYErtRD1DOs4W0QzsUPN23qwFnZMm3rE7nAaDLRl82goNTpt8mnrYtNFVxxGXtaNQ8_xvdRzF44_fEreUr6-hRNef5fMnNMO5wUMjU1HzXg89Ek1Y3mJaIdRilA/s1600/USBmemory01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="387" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi79PmANCyiTAkt8SQFerYErtRD1DOs4W0QzsUPN23qwFnZMm3rE7nAaDLRl82goNTpt8mnrYtNFVxxGXtaNQ8_xvdRzF44_fEreUr6-hRNef5fMnNMO5wUMjU1HzXg89Ek1Y3mJaIdRilA/s400/USBmemory01.png" width="400" /></a></div>
<br />
USBメモリの中身をRaspberry Piにコピーする操作は書籍から変更ありません。<br />
<br />
最後に、USBメモリをRaspberry Piから抜く操作です。Jessie 以降を用いている方は、下図のように画面右上に「安全な取り外し」に相当するボタンがありますので、それを押してからUSBメモリを抜くようにしましょう。Windowsなどと同じ手順ですね。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb68oLM3XGmjZEAGqGySxl8C0WL4uQDn_ASUG0nrRHovOD9ZXjn83onYQt4mKyXQRea6zEK-EpPb_eXUGc-kjp9caVjLd0QNI3lSm7OlxvlcZPGrYTj4Ah-_GcmHMveI81CHUyee47IS-s/s1600/tmp6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="102" data-original-width="273" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb68oLM3XGmjZEAGqGySxl8C0WL4uQDn_ASUG0nrRHovOD9ZXjn83onYQt4mKyXQRea6zEK-EpPb_eXUGc-kjp9caVjLd0QNI3lSm7OlxvlcZPGrYTj4Ah-_GcmHMveI81CHUyee47IS-s/s1600/tmp6.png" /></a></div>
<br />
<br />
<h4>
p.307 圧縮されたサンプルファイルの展開に関する注意</h4>
NOOBS 3.1.1 (Raspbian 2019-06-20) 以降、圧縮ファイルを展開するためのソフトウェアのデフォルトの設定が変化しましたので利用の際は注意が必要です。
<br />
下図(左)のように、展開先のデフォルトが「/tmp」とされ、また、展開時に自動的にフォルダが作られるようになっています。
<br />
これを、下図(右)のように
<br />
<ul>
<li>展開先に「 /home/pi 」または「 /home/pi/bluebacks 」と記入。ただし、2022年4月にリリースされた OS よりデフォルトユーザー pi は廃止されていますので、この記述の pi の部分は、皆さんが作成したユーザー名で置き換変える必要があります。すなわち、「kanamaru」というユーザーを作成したのなら、「 /home/kanamaru 」や「 /home/kanamaru/bluebacks 」となる、ということです。</li>
<li>「Ensure a containing directory」のチェックを外す</li>
</ul>
の2点を行ってから「展開」ボタンを押すようにしましょう。展開先に記す文字は、このページからコピー (Ctrl-c) して貼り付ける (Ctrl-v) と安心です。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx1uGieYjJ81ogw6MguSTG8lsvavYFpg6sKtGSBAKcRbDUJch-01V5-vAPlOeTcK4rQXlGJ6Iu0-6QZxY98UpNx74ccQ2p-62komDKtoy95BW4y6Ri_VhGAirdXCZA32quAS_G_KInS98/s1600/archiver_all.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="457" data-original-width="725" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx1uGieYjJ81ogw6MguSTG8lsvavYFpg6sKtGSBAKcRbDUJch-01V5-vAPlOeTcK4rQXlGJ6Iu0-6QZxY98UpNx74ccQ2p-62komDKtoy95BW4y6Ri_VhGAirdXCZA32quAS_G_KInS98/s640/archiver_all.png" width="640" /></a></div>
<br />
<br />
<h4>
p.312:コマンドでのプログラムの実行について</h4>
p.312にて、本書のプログラムをターミナルでコマンドで実行する方法が記されています。
本ページは、すべてのプログラムを python3 で実行するよう方針を変更しましたので、プログラムの実行例は
<pre class="prettyprint">
python3 04-01-led.py
</pre>
となります。管理者権限を表す sudo も不要になっていますのでご注意ください。
<br /><br />
<h3>
追加PDF</h3>
<h4>PDF9, 06-03-volume.py で音声のボリュームを変更する</h4>
プログラム 06-03-volume.py で音声のボリュームを変更する場合、音声出力先や、用いているOSのバージョンにより方法が異なりますので以下の指示に従ってください。
<br /><br />
<h4><2022年 9 月以降の Raspberry Pi OS をご利用の場合></h4>
2022年 9 月以降の Raspberry Pi OS をご利用の場合、音声出力先がHDMI、イヤフォンジャックのどちらの場合も、ファイル 06-03-volume.py の変更が必要となります。
<br /><br />
まず、イヤフォンジャックから音声を出力したい場合、本ページ「p.128, 音声の出力先を変更する方法」」の方法に基づき、音声の出力先をイヤフォンジャックに変更して下さい。HDMI経由で音声出力したい場合はデフォルトのままで構いません。
<br />
すると、音声の出力先がどちらであっても、以下のデフォルトのコマンドで音声が鳴ります。
<pre class="prettyprint">
mpg321 test.mp3
</pre>
また、音声の出力先がどちらであっても、06-03-volume.py に対して変更が必要になります。Thonny でプログラムを開くと 57行目に以下の行が見つかります。
<pre class="prettyprint">
args = ['amixer','-q','cset','numid=1',vol]
</pre>
これを以下のように変更して保存して下さい。「numid=1」の部分を「numid=3」に変更しています。
<pre class="prettyprint">
args = ['amixer','-q','cset','numid=3',vol]
</pre>
以上で、06-03-volume.py によりボリュームを変更可能になります。
<br /><br />
<h4><2020-12-02版から 2022年春までの Raspberry Pi OS をご利用の場合></h4>
2020-12-02版から 2022年春までの Raspberry Pi OS をご利用の場合、音声出力先がHDMI、イヤフォンジャックのどちらの場合も、ファイル 06-03-volume.py の変更が必要となります。
<br /><br />
まず、イヤフォンジャックから音声を出力したい場合、本ページ「p.128, 音声の出力先を変更する方法」の方法に基づき、音声の出力先をイヤフォンジャックに変更して下さい。HDMI経由で音声出力したい場合はデフォルトのままで構いません。
<br />
すると、音声の出力先がどちらであっても、以下のデフォルトのコマンドで音声が鳴ります。
<pre class="prettyprint">
mpg321 test.mp3
</pre>
また、音声の出力先がどちらであっても、06-03-volume.py に対して変更が必要になります。Thonny でプログラムを開くと 57行目に以下の行が見つかります。
<pre class="prettyprint">
args = ['amixer','-q','cset','numid=1',vol]
</pre>
これを以下のように変更して保存して下さい。
<pre class="prettyprint">
args = ['amixer','-q','-D','pulse','set','Master',vol]
</pre>
以上で、06-03-volume.py によりボリュームを変更可能になります。
<br /><br />
<h4><2020-5-27版および2020-8-20版の Raspberry Pi OS をご利用の場合></h4>
2020-5-27版および2020-8-20版の Raspberry Pi OS で音声出力先をイヤフォンジャックにしたい場合、音声再生用のコマンドは下記になります。
<pre class="prettyprint">
mpg321 -a hw:1,0 test.mp3
</pre>
そして、06-03-volume.py に対しては、変更が必要となるのでした。Thonny でプログラムを開くと、57行目に以下の行が見つかります。
<pre class="prettyprint">
args = ['amixer','-q','cset','numid=1',vol]
</pre>
この行を以下のように変更してファイルを保存してください。
<pre class="prettyprint">
args = ['amixer','-q','-c1','cset','numid=1',vol]
</pre>
以上で、06-03-volume.py によりボリュームを変更可能になります。
<br /><br />
<h4>
PDF10:spidevのインストールについて</h4>
<a href="http://bluebacks.kodansha.co.jp/bsupport/rspi.html" target="_blank">公式サポートページ</a>でダウンロードできる追加PDFの内容についてです。spidevを用いてADコンバータから値を取得する方法を紹介しておりますが、
現在はspidevはデフォルトでRaspbianに含まれておりますので、インストール作業は必要ありません。
<br />
<br />
<h4>
PDF11:spidevを用いてAD変換を行うプログラムについて</h4>
追加PDFでは、spidevとADコンバータMCP3208を用いてAD変換を行うプログラム06-04-spidev.pyを紹介しました。
<br />
kernel 4.9.43以降 (NOOBS 2.4.5 (Raspbian 2017-11-29) 以降) のRaspberry Piでは、執筆時の06-04-spidev.pyはそのままでは動作しません。具体的には、kernelの変更により、プログラム内で「spi.max_speed_hz = 1000000」のように最大周波数の設定が必要になったのです。
<br />
<br />
2019/6/25にアップロードしたサンプルファイル (raspi-sample.zip) にはこの問題に対応したバージョンが含まれていますので、エラーが出るという方は公式サイトよりraspi-sample.zipをダウンロードしなおしてください。
Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com12tag:blogger.com,1999:blog-6558574304592725596.post-65187796698883507002016-04-18T22:44:00.002+09:002020-03-26T01:44:31.696+09:00ディスプレイ・マウス・キーボードを接続せずにRaspberry Piを利用する<h3>
はじめに</h3>
Raspberry Piは名刺サイズの超小型コンピュータですが、ディスプレイを接続して利用するとRaspberry Piの省スペース性が犠牲になるという問題がありました。<br />
<br />
それを解消する方法のひとつとして、本サイトでは「<a href="https://raspibb.blogspot.jp/2015/11/raspberry-pi.html" target="_blank">Raspberry Pi公式タッチディスプレイで本書の演習を実行する</a>」というページにて、7インチの小型ディスプレイを用いる方法を紹介しました。<br />
<br />
それでもRaspberry Piにキーボードやマウスを接続する必要はあり、ある程度のスペースが必要であることは変わりません。<br />
<br />
そこで、本ページではタイトルにあります通り、「Raspberry Piにディスプレイ・マウス・キーボードを接続せずに利用する」ことを目指します。<br />
<br />
具体的には、下記のように一つのネットワークにRaspberry PiとPCが属しており、PCからRaspberry Piを利用する、というスタイルになります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt0hplmsyvvnIlj08N9MAjYQ4Rw566CHfMwzf5o_YAZgCRMeZWP6XLZiJuksjenT1cdC2PyE_ig-ElCd3R1KQPFiXYa4bTgdP-PeC2IwnnWRaPvNb80RAbitLxlqfUfs06WAugVS7H1XVz/s1600/vcxsrv_exp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt0hplmsyvvnIlj08N9MAjYQ4Rw566CHfMwzf5o_YAZgCRMeZWP6XLZiJuksjenT1cdC2PyE_ig-ElCd3R1KQPFiXYa4bTgdP-PeC2IwnnWRaPvNb80RAbitLxlqfUfs06WAugVS7H1XVz/s400/vcxsrv_exp.png" width="353" /></a></div>
<br />
<div>
この図だけ見ると、本書の9章や10章で行ったように「PCのブラウザからRaspberry Piの回路にアクセスする」方法とあまり変わらないように思えるかもしれません。<br />
<br />
9章や10章と異なるのは、Raspberry Piにディスプレイ、マウス、キーボードを一切接続せず、「プログラムの作成」、「プログラムの実行」、「Raspberry Piのシャットダウン」などをすべてPCから行う、ということです。<br />
<br />
この際、PCのデスクトップの外観は下図のようになります。右上のアプリケーションはTera TermというWindows用のターミナルアプリケーション、右下はRaspberry PiのターミナルアプリケーションであるLXTerminal、左はRaspberry PiのPython開発環境であるIDLEです。LXTerminalやIDLEがWindows上のウインドウとして表示されているのがポイントです。<br />
<br />
以下、この動作を実現する方法を解説していきます。<br />
<br />
なお、Windowsに対する解説を最初に行い、OS Xに対する解説はページ末尾で行います。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLedR_Af7uVLeL1l_jONGjpvY6R8cTZuM2mm9zu1UYaATshyRDxa4weuB08YnWq2GVWtZVlpU572IOxmUIuM-3YPwRrEncV09AL244sEIgYx15_8i5IcAUjoHrpLJ7Yj2B73Sbs2QC8u0N/s1600/vcxsrv_final.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLedR_Af7uVLeL1l_jONGjpvY6R8cTZuM2mm9zu1UYaATshyRDxa4weuB08YnWq2GVWtZVlpU572IOxmUIuM-3YPwRrEncV09AL244sEIgYx15_8i5IcAUjoHrpLJ7Yj2B73Sbs2QC8u0N/s640/vcxsrv_final.png" width="640" /></a></div>
<br />
<h3>
必要なツールのインストールと設定(Windows編)</h3>
<div>
上図の動作をWindowsで実現するためには、下記の2つのアプリケーションをインストールする必要があります。
<br />
<ul>
<li>Tera Term(ターミナル)</li>
<li>VcXsrv(Xサーバー)</li>
</ul>
<div>
Tera Termは、WindowsからRaspberry Piにログインするために利用するターミナルアプリケーションです。VcXsrvは、上図のようにRaspberry PiのアプリケーションをWindows上に表示するために必要なアプリケーションで、Xサーバーと呼ばれることもあります。</div>
<div>
<br /></div>
<div>
以下、順に解説していきます。</div>
<div>
<br /></div>
<h4>
Tera Termのインストールと設定</h4>
<a href="https://osdn.jp/projects/ttssh2/" target="_blank">Tera Termのサイト</a>よりインストールファイルをダウンロードします。ここでは、執筆時の最新版である teraterm-4.90.exe をダウンロードしました。<br />
<br />
ダウンロード後はファイルをダブルクリックしてインストールします。デフォルトの設定のままインストールを終えて構いません。<br />
<br />
インストール後、Tera Termを起動すると、下記のようなウインドウが現れます。これは、Raspberry Piに接続するためのウインドウなのですが、接続前に設定が必要ですので、ここでは図のように「キャンセル」ボタンを押します。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg5CSfZfPvuwmyS4J-War8tiPjmwk72mEeVIim1B3WFEZfA9vKHDjn9WNllmHcn93KBpvKTgxd1F6ZpQPRuUqgzDpN8vV8gXGCgoHsRdrgpxt39IfKieUOLqRPsgCdjSREdnrucGHMtexY/s1600/vcxsrv00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="471" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg5CSfZfPvuwmyS4J-War8tiPjmwk72mEeVIim1B3WFEZfA9vKHDjn9WNllmHcn93KBpvKTgxd1F6ZpQPRuUqgzDpN8vV8gXGCgoHsRdrgpxt39IfKieUOLqRPsgCdjSREdnrucGHMtexY/s640/vcxsrv00.png" width="640" /></a></div>
<br />
<div>
その後、残ったウインドウで下記のように「設定」→「SSH転送」を選択します。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFeMK27KBVxM1FSP6nS0i6kU85VtBuWWFNHtvIGTsBctunGgVnnyfyqMCYoTL8C_pHNtvHvLCipR3ildLLfJgJprcVaQ5xxGBufmohqnd2BVNbVwhzHEJ8SOK0Ezaq0jBMxZSwIA2TEO_h/s1600/vcxsrv01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="468" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFeMK27KBVxM1FSP6nS0i6kU85VtBuWWFNHtvIGTsBctunGgVnnyfyqMCYoTL8C_pHNtvHvLCipR3ildLLfJgJprcVaQ5xxGBufmohqnd2BVNbVwhzHEJ8SOK0Ezaq0jBMxZSwIA2TEO_h/s640/vcxsrv01.png" width="640" /></a></div>
<br />
<div>
すると、下図のようなウインドウが現れますので、図のように「リモートの(X)アプリケーションをローカルのXサーバに表示する」にチェックを入れ、「OK」を押します。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIPf2LqEOiKqniK9O-RA9KsfG58a-xPRZr3UkCU5vWYbTypVoeh4Nl8lZ69DrsirT1UJ0pbddALqkfk0IuRwoA57WVFb1CuYrGmCbsbOX-QOAzAZJQA-D0seDDgXHDcx5mVYOdBaF1A2UU/s1600/vcxsrv02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIPf2LqEOiKqniK9O-RA9KsfG58a-xPRZr3UkCU5vWYbTypVoeh4Nl8lZ69DrsirT1UJ0pbddALqkfk0IuRwoA57WVFb1CuYrGmCbsbOX-QOAzAZJQA-D0seDDgXHDcx5mVYOdBaF1A2UU/s1600/vcxsrv02.png" /></a></div>
<br />
<div>
その後、「設定」→「設定の保存」を選択し、今の設定を保存します。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4XwLYsu-PphnogVob2XFccLRfjy86zakvRpk8frMHB-kYjCmSbl5kzr4pqMC-hTtRN7eu7sseFqRn8PSDsxfQyyswZ1dYqIsCryKPdknpteepEWft0e0a-fjwNUnsGZFyC9LiJRz1RF-8/s1600/vcxsrv03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="471" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4XwLYsu-PphnogVob2XFccLRfjy86zakvRpk8frMHB-kYjCmSbl5kzr4pqMC-hTtRN7eu7sseFqRn8PSDsxfQyyswZ1dYqIsCryKPdknpteepEWft0e0a-fjwNUnsGZFyC9LiJRz1RF-8/s640/vcxsrv03.png" width="640" /></a></div>
<br />
<div>
保存するファイル名や場所は変更せず、そのまま「保存」ボタンを押せば設定が保存されます。<br />
<br />
以上でTera Termの設定は終わりですので、一旦Tera Termのウインドウを閉じます。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTJ5nRwSDs8vkVIMoi_TViCO9GbWAOASB3jQGy0praUU7Asc3_bqiGkDpLtFWjU60dDA2Z1uRaB7uSfpBcGoMjaLuGTwjNJJTY2QFHk2MdRLbiNM8rLl7kGg93Hx9kOhvtaPB1XyH5ICz_/s1600/vcxsrv04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="428" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTJ5nRwSDs8vkVIMoi_TViCO9GbWAOASB3jQGy0praUU7Asc3_bqiGkDpLtFWjU60dDA2Z1uRaB7uSfpBcGoMjaLuGTwjNJJTY2QFHk2MdRLbiNM8rLl7kGg93Hx9kOhvtaPB1XyH5ICz_/s640/vcxsrv04.png" width="640" /></a></div>
<br />
<div>
<h4>
VcXsrvのインストールと設定</h4>
</div>
次に、VcXsrvのインストールを行います。<br />
<br />
まず、<a href="https://sourceforge.net/projects/vcxsrv/" target="_blank">公式サイト</a>よりファイルをダウンロードします。なお、ダウンロードされるファイルについては注意が必要で、<a href="https://sourceforge.net/projects/vcxsrv/files/vcxsrv/" target="_blank">こちらのダウンロードサイト</a>より、自分に適したバージョンを選択してダウンロードする必要がある場合があります。<br />
<br />
Windows 7以降をご利用の場合、最新版をダウンロードしますが、Windowsが64bit用か32bit用かで異なるファイルをダウンロードする必要があります。執筆時の場合、バージョン1.20.1.1の下記のようなファイルでした。
<br />
<ul>
<li>Windows 7以降(64bit)をご利用の場合:vcxsrv-64.1.20.1.1.installer.exe</li>
<li>Windows 7以降(32bit)をご利用の場合:vcxsrv.1.20.1.1.installer.exe</li>
</ul>
<div>
Windows XPをご利用の場合、VcXsrvの最新版ではXPは既にサポートされていませんので、旧バージョン1.14.2.1に該当する以下をダウンロードします。ただし、私はXPでの動作は確認していませんのでご注意ください。</div>
<ul>
<li>Windows XP(64bit)をご利用の場合:vcxsrv-64.1.14.2.1.installer.exe</li>
<li>Windows XP(32bit)をご利用の場合:vcxsrv.1.14.2.1.installer.exe</li>
</ul>
ダウンロードが終わったら、デフォルトの設定でインストールします。インストール時に警告が出ますので、「詳細情報」リンクをクリックしてから実行します。<br />
<br />
インストールが終了すると、デスクトップにいくつかアイコンが現れます。図には2つのアイコンを示していますが、最近のバージョンのVcXsrvではXLaunchアイコン一つしか現れません。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHgZXqutXmbv6p5SYtpGKoQxJtDULX8b9gNrtPNxkV9MpaZxvxjVJyV7X2kolVb_LUsnsi4gqd2F4kEnhsJrBTHlqaLBOLGdtUXST2MRw_dw2T616YsDb7LzkjtzF8vNzFNh44_cCYAOkf/s1600/vcxsrv05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHgZXqutXmbv6p5SYtpGKoQxJtDULX8b9gNrtPNxkV9MpaZxvxjVJyV7X2kolVb_LUsnsi4gqd2F4kEnhsJrBTHlqaLBOLGdtUXST2MRw_dw2T616YsDb7LzkjtzF8vNzFNh44_cCYAOkf/s1600/vcxsrv05.png" /></a></div>
<br />
XLaunchアイコンをダブルクリックして起動してみましょう。幾つかウインドウで設定を求められますが、デフォルトのままで構いません。すなわち、
<br />
<ul>
<li>「Multiple windows」にチェックが入った状態で「次へ」</li>
<li>「Start no client」にチェックが入った状態で「次へ」</li>
<li>「Clipboard」、「Primary Selection」、「Native opengl」にチェックが入った状態で「次へ」</li>
<li>「完了」をクリックする前に「Save configuration」を押すと、そこまでの設定が保存できますので、場所を選んで保存しましょう。デスクトップ上でも構いません。「config.xlaunch」というファイルが保存されます</li>
<li>最後に「完了」でXが起動されます</li>
</ul>
なお、保存された「config.xlaunch」をダブルクリックすると、その時の設定でXが起動されますので、次回からは「config.xlaunch」をダブルクリックしてXを起動するようにしましょう。
<br />
<br />
なお、「config.xlaunch」をダブルクリックしてXを起動できることを確認したら、デスクトップ上のXLaunchのアイコンは削除してしまっても構いません。<br />
<br />
初回起動時に、下記のようにファイアウォールへのアクセス許可を求める警告が現れますが、そのまま「アクセスを許可する」ボタンをクリックします。チェックボックスの状態は環境により異なりますので、デフォルトのままで構いません。<br />
<br />
なお、サードパーティ製のウイルス対策ソフトなどをインストールしている場合、そのソフトウェアのファイアウォール機能に対してVcXsrvへのアクセス許可を行う必要があるかもしれません。しかし、私はそのようなソフトウェアを持っておらず、その設定方法についての質問には答えられませんのでご了承ください。ここではWindows標準のファイアウォール機能のみを用いている場合について解説しています。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4JEMzDtgET546s352ijE-mweYhYjJPru9rSujU6ZvINi3BaBgwbICu5X2x2YgfMvvtC2Q5hL3_UauXi67bKKmtPJN5BYTR9EphA8lTIQZA2BJovvOmZqrJiXi7Y-9bpXplHECY7Yx3lQ1/s1600/vcxsrv12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4JEMzDtgET546s352ijE-mweYhYjJPru9rSujU6ZvINi3BaBgwbICu5X2x2YgfMvvtC2Q5hL3_UauXi67bKKmtPJN5BYTR9EphA8lTIQZA2BJovvOmZqrJiXi7Y-9bpXplHECY7Yx3lQ1/s1600/vcxsrv12.png" /></a></div>
<br />
<br />
さて、VcXsrvが起動した状態では下図のようにタスクトレイに「X」というアイコンが現れます。以下で行うRaspberry Piへの接続時は、必ずこの「X」というアイコンが表示された状態で行ってください。<br />
<br />
デフォルトではVcXsrvの起動は自動では行われませんので、Windowsを再起動するたびに手動でVcXsrvを起動する必要があります。
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0ogli3oDnPpiNGJM_-AXXPa7ZQe7vDQ9Poy1S82lo5ydmo_vD0eDXHAAJrr8sEl8M1t5wsEpOk77BxGScdAgddLNEUN27ijqJdhvwyKdtLT4180Vzo-0VfjCYvPjKecaYnpCNx4T1WOCM/s1600/vcxsrv06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0ogli3oDnPpiNGJM_-AXXPa7ZQe7vDQ9Poy1S82lo5ydmo_vD0eDXHAAJrr8sEl8M1t5wsEpOk77BxGScdAgddLNEUN27ijqJdhvwyKdtLT4180Vzo-0VfjCYvPjKecaYnpCNx4T1WOCM/s1600/vcxsrv06.png" /></a></div>
<br />
<h3>
Raspberry Piでの準備</h3>
NOOBS 2.0.0までは、Raspberry Pi側の準備は必要なかったのですが、2016年11月29日にリリースされたNOOBS 2.1.0以降では、sshというソフトウェアが無効になったので、これをあらかじめ有効にしておく必要がでてきました。
<br />
<br />
Raspberry Piのデスクトップ左上にあるメニューから「設定」→「RaspberryPiの設定」と進み、下図のように「インターフェイス」タブの「SSH」を「有効」にしてから、Raspberry Piを再起動します。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJUs8gf-al_gLWoSA2Dqgqp-2a02P8O6m7kKZGwyZBKjqMIS1GdZR33qjpwkGxQyJ1U6-2u4kA_I1N-uE4iqVOeUKVz4-C8mUyIcg_N9PzTNQ_o9FQlcEXVy87uMzxZQpyG8QpRJnstjmm/s1600/ssh_enable1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="346" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJUs8gf-al_gLWoSA2Dqgqp-2a02P8O6m7kKZGwyZBKjqMIS1GdZR33qjpwkGxQyJ1U6-2u4kA_I1N-uE4iqVOeUKVz4-C8mUyIcg_N9PzTNQ_o9FQlcEXVy87uMzxZQpyG8QpRJnstjmm/s640/ssh_enable1.png" width="640" /></a></div>
<br />
これでsshが有効になり、以下の手順に進むことができるのですが、デスクトップに下記のように、パスワードを変更するよう警告が出るようになっています。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNZ8NRrjd76kTr69M9rlo4auDkIcyRKdVQIvpVUq9Y0RHJ-HhQIspYTh956G2ht5m9io5rOSlHXap9BgrBHkrB3_7sZbAqEXki5ulRAAuLhx4cqxY9Tm1TFWKIMD5tK2L9GIVJydnwTTdy/s1600/ssh_enable2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="112" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNZ8NRrjd76kTr69M9rlo4auDkIcyRKdVQIvpVUq9Y0RHJ-HhQIspYTh956G2ht5m9io5rOSlHXap9BgrBHkrB3_7sZbAqEXki5ulRAAuLhx4cqxY9Tm1TFWKIMD5tK2L9GIVJydnwTTdy/s640/ssh_enable2.png" width="640" /></a></div>
<br />
ユーザーpiのパスワードをデフォルトである「raspberry」のままにしておくと、外部から誰でもログインできてしまいセキュリティ上危険があるので、自分にしかわからないパスワードに変更するよう促されているわけです。<br />
<br />
先ほどと同様に「RaspberryPiの設定」アプリケーションでパスワードを変更するとよいでしょう。<br />
<br />
<h3>
WindowsからRaspberry Piへの接続</h3>
<div>
以上の準備が終わったら、Raspberry Piへ接続してみましょう。あらかじめRaspberry Piを起動しておきます。慣れないうちは、これまで通りRaspberry Piにディスプレイ、キーボード、マウスを接続しておいてもよいでしょう。<br />
<br />
その状況で、WindowsでTera Termを起動し、Raspberry Piに接続します。<br />
<br />
下図のように、Tera Termの「新しい接続」ウインドウの「ホスト」欄に、Raspberry PiのIPアドレスを記入して「OK」を押します。<br />
<br />
なお、本書10章で注意したように、ここでRaspberry Piに接続するためには、IPアドレスを知る必要があります。そのためには、Raspberry Piにディスプレイとキーボードを接続しておく必要があり、本末転倒です。<br />
<br />
この問題を解決するためには、以下の2つの方法が有効です。興味のある方はトライしてみてください。
<br />
<ul>
<li><a href="https://raspibb.blogspot.jp/2016/04/raspberry-piip.html" target="_blank">Raspberry PiのIPアドレスを固定する</a>:別ページにその方法をまとめました</li>
<li>「ホスト」欄に、IPアドレスではなく「raspberrypi.local」と記入する:RaspbianのバージョンがJessieであり、WindowsにiTunesがインストールされている必要がある(iTunesに含まれるBonjourというソフトウェアが必要なため)</li>
</ul>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWZXDAzhOotT9Hj9erX7o_hF1sEtV8-Su7EvKcDd1dk9YWPt1ly2Go_GZ2XZ0IXdHjI0kvOBbcgfx0t-LdUlKtMwhgSbcjO9Nr7AzNMJkQA4kR6yut5QB0ynKvHGjR0sC4M0XTqQ06kxvn/s1600/vcxsrv07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="471" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWZXDAzhOotT9Hj9erX7o_hF1sEtV8-Su7EvKcDd1dk9YWPt1ly2Go_GZ2XZ0IXdHjI0kvOBbcgfx0t-LdUlKtMwhgSbcjO9Nr7AzNMJkQA4kR6yut5QB0ynKvHGjR0sC4M0XTqQ06kxvn/s640/vcxsrv07.png" width="640" /></a></div>
<br />
<div>
さて、何らかの方法でRaspberry Piを「ホスト」欄に指定して「OK」を押すと、下記のようにユーザー名とパスワードが求められます。これらのデフォルト値は下記のようでした。
<br />
<ul>
<li>ユーザー名:pi</li>
<li>パスワード:raspberry</li>
</ul>
入力したら「OK」を押します。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1gLUuVLwke__xYbua2oanCoYxedhqXw2nfNRdvzHsp_S7JNqzmTPLt6H_9-3bHG13i6rDs4rCJYM5KkA9pSLC0hPlcsBWK3_cE0VMzykDSNi-s2MiNft-Ay0Tl8cdco7Gihq8jFCDi9v3/s1600/vcxsrv08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1gLUuVLwke__xYbua2oanCoYxedhqXw2nfNRdvzHsp_S7JNqzmTPLt6H_9-3bHG13i6rDs4rCJYM5KkA9pSLC0hPlcsBWK3_cE0VMzykDSNi-s2MiNft-Ay0Tl8cdco7Gihq8jFCDi9v3/s1600/vcxsrv08.png" /></a></div>
<br />
<div>
なお、初回起動時に、上記プロセスの途中で下図のようなセキュリティ警告が現れますが、そのまま「続行」をクリックしてください。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5W4D6DK24hTY0fPUZmmOdgHe7z1jj7dNESwHqaNfiYMR0AGgfgaUaZWmrVddnSZNVZreaQ8f9nwA8DtZUor4A8SesTQF3zZU5MzQ4ttQfdsRgf5Fk236db24BtZg33ht_YN0acMn0HOgt/s1600/vcxsrv13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5W4D6DK24hTY0fPUZmmOdgHe7z1jj7dNESwHqaNfiYMR0AGgfgaUaZWmrVddnSZNVZreaQ8f9nwA8DtZUor4A8SesTQF3zZU5MzQ4ttQfdsRgf5Fk236db24BtZg33ht_YN0acMn0HOgt/s1600/vcxsrv13.png" /></a></div>
<br />
<br />
最終的に下図のような状態になります。Raspberry PiでLXTerminalを起動した状態に似ていますね。これが、Windows上のターミナルソフトウェアTera TermでRaspberry Piに接続した状態になります。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLQfTU0H_R_JAI7JG9NY7-HjD1GbuuLFSE8osrTn07RG1xhjGsSJ0J_GFxEls_7Gg4wykE3a8rmKYVHPXI7u9Pg1n8bNGOye5j8Ov311FzxtjQALgEJWMqYqnpiEzjeOBc6qiZwWozyRPq/s1600/vcxsrv09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="471" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLQfTU0H_R_JAI7JG9NY7-HjD1GbuuLFSE8osrTn07RG1xhjGsSJ0J_GFxEls_7Gg4wykE3a8rmKYVHPXI7u9Pg1n8bNGOye5j8Ov311FzxtjQALgEJWMqYqnpiEzjeOBc6qiZwWozyRPq/s640/vcxsrv09.png" width="640" /></a></div>
<br />
<div>
このTera Term上でRaspberry Piのコマンドを実行してみます。例えば、LXTerminalを起動するためのコマンド「lxterminal」(すべて小文字であることに注意)を実行した様子が下図になります。本書で多く行ったように、末尾に「&」をつけて「lxterminal &」でももちろん構いません。<br />
<br />
別ウインドウでLXTerminalが起動していることがわかります。これは、VcXservをあらかじめ動作させたことの効果です。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWwzI4kKhTcCw-CpeVzNWPxE7wv2TbfNqn3YhQEiO8NIt1EGDLU5HQM0zu1UFyn4c2XZGct2yHOo2OFQjlZy7zr1zHRd_xckXPiVvFG56Qa3OV1h1FzFpfSewYCZMLy8UKdNOdhADjb4py/s1600/vcxsrv10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWwzI4kKhTcCw-CpeVzNWPxE7wv2TbfNqn3YhQEiO8NIt1EGDLU5HQM0zu1UFyn4c2XZGct2yHOo2OFQjlZy7zr1zHRd_xckXPiVvFG56Qa3OV1h1FzFpfSewYCZMLy8UKdNOdhADjb4py/s640/vcxsrv10.png" width="640" /></a></div>
<br />
<div>
さらに、このLXTerminal上で「idle」コマンドでPythonの開発環境IDLEを起動したのが下図です。もちろん「idle &」でも構いません。このように、ターミナルからアプリを起動して利用できる、というのがポイントです。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2ZlADthtJM8cpxF01GpkayjPg-ssY5HoiJ6_vGiEthZnqgQRGMIGnVKaKeT775Wn9gk4nOqYmnvNO4RiktsIxPVzwdp_YO6fFY6aoSe375OZMvtq9TyXoj-NPNbbWmRCZoRi2TFCmwcgP/s1600/vcxsrv11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2ZlADthtJM8cpxF01GpkayjPg-ssY5HoiJ6_vGiEthZnqgQRGMIGnVKaKeT775Wn9gk4nOqYmnvNO4RiktsIxPVzwdp_YO6fFY6aoSe375OZMvtq9TyXoj-NPNbbWmRCZoRi2TFCmwcgP/s640/vcxsrv11.png" width="640" /></a></div>
<br />
そのため、よく使うアプリケーションのコマンド名を知っておくと便利です。本書に関連するのは下記のアプリやコマンドです。<br />
<ul>
<li>ファイルマネージャ:pcmanfm</li>
<li>ブラウザ(chromium):chromium-browser</li>
<li>ブラウザ(epiphany):epiphany</li>
<li>テキストエディタ:leafpad (NOOBS 3.2.1以降では mousepad)</li>
<li>設定アプリケーション(Jessie以降):rc_gui</li>
<li>シャットダウン:sudo poweroff</li>
<li>再起動:sudo reboot</li>
</ul>
</div>
<br />
<h3>
日本語入力は?</h3>
以上の方法では、テキストエディタなどに日本語を直接入力する方法がないように思えます。<br />
<br />
ただし、Windowsアプリから文字をコピーしてRaspberry Piのアプリケーションに貼り付けることはできますので、Windowsのメモ帳などで日本語を書いてRaspberry Piのアプリケーションに貼り付けるという手はあります。<br />
<br />
もし、よりスマートな方法をご存知の方はお知らせ頂けると幸いです。<br />
<br />
<h3>
管理者権限でGUIアプリケーションを実行する際の注意</h3>
<div>
上記の方法でWindowsからRaspberry Piのアプリケーションを実行できるようになったのですが、管理者権限でウインドウのあるGUIアプリケーションを実行しようとすると、エラーが出て実行に失敗します。例えば管理者権限でのテキストエディタの起動「sudo leafpad」などです(本書ではこれをしばしば用いました)。</div>
<div>
<br /></div>
<div>
本ページの方法でGUIアプリケーションを管理者権限で実行するには、例えばleafpadの場合、下記のコマンドで実行しなければなりません。</div>
<div>
<pre class="prettyprint">XAUTHORITY=/home/pi/.Xauthority sudo leafpad
</pre>
</div>
<div>
これを毎回実行するのは非常に面倒ですね。</div>
<div>
<br /></div>
<div>
下記の手順に従うと、この長い実行コマンドを簡略化できますので、試してみると良いでしょう。</div>
<div>
<br /></div>
<div>
まず、.bashrcという設定ファイルをテキストエディタleafpadで開きます。ターミナルで下記を実行するのでした。</div>
<pre class="prettyprint">leafpad .bashrc
</pre>
なお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
<br />
<pre class="prettyprint">mousepad .bashrc
</pre>
このファイルの末尾に、下記の1行を追加します。これは「XAUTHORITY=/home/pi/.Xauthority sudo」という長い命令を「xsudo」で置き換える、という設定です。<br />
<pre class="prettyprint">alias xsudo="XAUTHORITY=/home/pi/.Xauthority sudo"
</pre>
追加したらファイルを保存してleafpadを閉じます。<br />
<br />
この設定を有効にするには、Raspberry Piを再起動してしまうのが簡単です。<br />
<br />
その後、ターミナル(Tera TermでもLXTerminalでも可)にて、
<br />
<pre class="prettyprint">xsudo leafpad
</pre>
を実行すると、管理者権限のテキストエディタがWindows上に開く、というわけです。NOOBS 3.2.1以降では
<br />
<pre class="prettyprint">xsudo mousepad
</pre>
です。コマンドがかなり簡略化されたことがわかるでしょうか。<br />
<br />
なお、この方法が必要なのは、GUIアプリケーションを管理者権限で実行する場合のみです。例えば、シャットダウンコマンド「sudo poweroff」は管理者権限ですが、GUIがないのでこれまで通りの実行方法でエラーはでません。<br />
<br />
<h3>
さらなる発展</h3>
以上で、Raspberry Piにディスプレイ、マウス、キーボードを接続せずに運用できるようになりました。<br />
<br />
しかし、実際に使ってみると、Raspberry Pi上のGUIアプリケーションの動作がやや緩慢であることに不満を覚える方が多いのではないでしょうか。これは、GUIの描画をネットワーク経由で行っていることが原因です。<br />
<br />
実際、よりLinuxに慣れている方は、上記のようにRaspberry PiのGUIアプリケーションをWindows上に表示して用いる、ということはほとんど行いません。<br />
<br />
どうするかというと、Raspberry Pi上で行う全ての処理を、上記のターミナルソフトウェアTera Term上で行ってしまうのです。Tera TermはRaspberry Piとコマンド(文字)のやりとりしかしませんから、ネットワーク経由でも動作が軽快なわけです。<br />
<br />
しかし、そのためには、例えば下記のような操作をすべてターミナル上で行えなければいけません。
<br />
<ul>
<li>ファイルの編集(プログラムや設定ファイルの記述)</li>
<li>ファイルの操作(削除、移動、名前の変更など)</li>
<li>プログラムの実行</li>
</ul>
一つ目の「ファイルの編集」について、本書ではleafpadというアプリケーションを用いましたが、これはターミナル外で動作するGUIアプリケーションなので、ターミナル上で動作するという条件を満たしません。<br />
<br />
ターミナル内のみでファイルを編集できるアプリケーションとして良く知られているのは、
<br />
<ul>
<li>nano(起動したら、終了するにはCtrl-x)</li>
<li>vi</li>
<li>emacs</li>
</ul>
<div>
などです。viやemacsは、利用法の解説で一冊の本が書けるくらい奥が深いものなので、初めての方が試すならnanoでしょうか。</div>
<div>
<br /></div>
<div>
二つ目の「ファイルの操作」についてはamazonなどの書店で「Linux コマンド」などのキーワードで検索すると、参考書が多数見つかるでしょう。
ブルーバックスでもLinuxの入門書が出ましたね。とてもわかりやすいので、本書の読者の方にはお勧めです。
<br />
<ul>
<li><a href="https://www.amazon.co.jp/dp/4062579898/" target="_blank">入門者のLinux 素朴な疑問を解消しながら学ぶ</a></li>
</ul>
</div>
<div>
<br />
三つ目の「プログラムの実行」については本書付録Cに少し解説があります。<br />
<br />
<br /></div>
<h3>
必要なツールのインストールと設定(OS X編)</h3>
<div>
さてここからは、OS Xで同じことを行う方法を記していきます。私はYosemiteで行いましたが、他のバージョンでも同様に動作すると思います。Windowsと同様、
<br />
<ul>
<li>ターミナル</li>
<li>Xサーバー</li>
</ul>
の2つが必要になります。OS Xは「アプリケーション / ユーティリティ / ターミナル」としてターミナルが既に含まれていますので、Xサーバーのインストールから行います。<br />
<br /></div>
<h4>
XQuartzのインストールと起動</h4>
<div>
ここでは、OS X用のXサーバー(X11)であるXQuartzをインストールします。<a href="http://www.xquartz.org/" target="_blank">XQuartzの公式サイト</a>よりファイルをダウンロードします。執筆時はXQuartz-2.7.8.dmgが最新版でした。<br />
<br />
ダウンロード後はdmgファイルをダブルクリック→現れたpkgファイルをダブルクリック、という流れでインストールを行います。<br />
<br />
インストール後は下記のようにアプリケーション→ユーティリティに「XQuartz」アイコンが現れます。また、本ページで多用する「ターミナル」も存在するのがわかるでしょう。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBdMT0nJ2vzlGIXjOtVr-og3w0CSmIVkzO7P5LPo-7kSB9hqZPgrMpMkwDbsL2aBpe8OJFdm98_SVP3U4qwQnfnVfUGMm1LhtwrRTQcLRVxApufA3xiX5rzQ2KNCUZY9ZWqi4qiv6M-YEk/s1600/osx01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="511" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBdMT0nJ2vzlGIXjOtVr-og3w0CSmIVkzO7P5LPo-7kSB9hqZPgrMpMkwDbsL2aBpe8OJFdm98_SVP3U4qwQnfnVfUGMm1LhtwrRTQcLRVxApufA3xiX5rzQ2KNCUZY9ZWqi4qiv6M-YEk/s640/osx01.png" width="640" /></a></div>
<br />
<div>
XQuartzをダブルクリックして起動すると、下記のようにドックにXQuartzのアイコンが現れます。下記でRaspberry Piに接続するときは、このアイコンが現れているときに行います(ただし、必要な時にXQuartzが自動的に起動するようですので、手動での起動は必ずしも必要ないかもしれません)。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiqdPHlOHpKH1SppAF7K2SIgSUZgI_0OyJ1mZhXL5LaS6_qbYeDLSThhlwqDUzTLx0syvCyxxx8BN72jojW2rXOnFRJwMGjs8Ipv_MFC4Isaa17Er1Bvt9M1KA3OyebN-3J40ofYa-HaVd/s1600/osx02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiqdPHlOHpKH1SppAF7K2SIgSUZgI_0OyJ1mZhXL5LaS6_qbYeDLSThhlwqDUzTLx0syvCyxxx8BN72jojW2rXOnFRJwMGjs8Ipv_MFC4Isaa17Er1Bvt9M1KA3OyebN-3J40ofYa-HaVd/s1600/osx02.png" /></a></div>
<br />
<div>
なお、XQuartzを手動で起動すると、下記のような「xterm」というアプリケーションも同時に起動するのですが、これは用いませんので閉じてしまって構いません。以上で、XQuartzのインストールと起動は完了です。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHxv5fxmSLHPwlYdzcLDLu2GRDH_p5oaEKeuwpplHXl9njQO-XYT_dAcoXPodBwKFz6qsue5dYLPH-Y4OCWLYsSYBq0hCDsS1phZrytmIoBZ-r0B960q7od6IoJ9a8l7X-A-dn-uCxpKAV/s1600/osx03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHxv5fxmSLHPwlYdzcLDLu2GRDH_p5oaEKeuwpplHXl9njQO-XYT_dAcoXPodBwKFz6qsue5dYLPH-Y4OCWLYsSYBq0hCDsS1phZrytmIoBZ-r0B960q7od6IoJ9a8l7X-A-dn-uCxpKAV/s1600/osx03.png" /></a></div>
<br />
<h4>
sshの設定</h4>
次に、Raspberry Piに接続してGUIアプリケーションを表示するための設定を行います。<br />
<br />
/etc/ssh_configという設定ファイルを管理者権限で編集する必要があります。ここではnanoというテキストエディタで行います。<br />
<br />
まず、OS X上で「アプリケーション→ユーティリティ→ターミナル」を起動しましょう。そして、下図のようにターミナル上で
<br />
<pre class="prettyprint">sudo nano /etc/ssh_config
</pre>
を実行しましょう。すると、OS Xにログインする際のパスワードを聞かれますので、入力してください。その際、パスワード記入欄のカーソルは変化しませんが、気にせずに入力してEnterキーを押してください。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWFRIhWJhbFQPCzRNalaJtH8yjfrlU5woLgVZ8NKASJrmf04ekstBKtu0naw2MD9oEKtCU4gLRhCfR6pAe57Sed-KGFVmtEO_Qnz9hFYbGcCjO_zreBj5Du6Iyh-2gjEHPTjmWiOInRFPj/s1600/osx04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWFRIhWJhbFQPCzRNalaJtH8yjfrlU5woLgVZ8NKASJrmf04ekstBKtu0naw2MD9oEKtCU4gLRhCfR6pAe57Sed-KGFVmtEO_Qnz9hFYbGcCjO_zreBj5Du6Iyh-2gjEHPTjmWiOInRFPj/s1600/osx04.png" /></a></div>
<br />
<div>
パスワードの入力に成功すると、下図のようにターミナル上でテキストエディタnanoが管理者権限で起動します。矢印キーでカーソルを移動できますので、操作はそれほど難しくないでしょう。<br />
<br />
そして、下図のように「# ForwardX11 no」という行を見つけ、その下に<br />
<pre class="prettyprint">ForwardX11 yes
</pre>
という行を一行追記します。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgBAOKsQSBNT-GOgQlBW13DQ-mFMldEgN7Z8HqaJJHCw92psjaQo3n2M_1zS9BKbUyR_J_pJehXXOBPYDUM4RNGGInJVkpHzcgR0rkCCjLu8ivSNC5oU5f1CgSIaJFEtXzUzUbgtqU32-5/s1600/osx05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgBAOKsQSBNT-GOgQlBW13DQ-mFMldEgN7Z8HqaJJHCw92psjaQo3n2M_1zS9BKbUyR_J_pJehXXOBPYDUM4RNGGInJVkpHzcgR0rkCCjLu8ivSNC5oU5f1CgSIaJFEtXzUzUbgtqU32-5/s1600/osx05.png" /></a></div>
<br />
<div>
追記が終わったら、保存してnanoを閉じます。以下の流れで行いましょう。
<br />
<ul>
<li>Ctrl-x(Ctrlキーを押しながらxキー)を入力</li>
<li>変更を保存するか?(Save modified buffer?)と聞かれるので「y」を入力</li>
<li>ファイル名(File Name to Write)を聞かれるので、変更せずそのままEnterを入力</li>
</ul>
<div>
以上で変更が保存されnanoが終了するはずです。</div>
<br />
<h3>
OS XからRaspberry Piへの接続</h3>
以上で準備が整いましたので、OS XからRaspberry Piに接続しましょう。<br />
<br />
なお、Windows編で注意したように、2016年11月29日にリリースされたNOOBS 2.1.0以降では、sshというソフトウェアが無効になったので、Raspberry Pi上でこれをあらかじめ有効にしておく必要がでてきました。Windows編の「Raspberry Piでの準備」を参考に、Raspberry Pi上でsshを有効にしてから先に進んでください。<br />
<br />
準備ができたら、OS X上で「アプリケーション→ユーティリティ→ターミナル」を起動し、下図のように
<br />
<pre class="prettyprint">ssh pi@raspberrypi.local
</pre>
と入力してEnterキーを押しましょう。<br />
<br />
なお、これは「raspberrypi.localというホストにユーザーpiでログインする」という意味になります。IPアドレスで指定したい場合、例えば「ssh pi@192.168.1.3」などとなります。<br />
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpodn1C6poPy1bf3AMo840Cq0CWya4xgt1nt6oqn08ELX0PaCVVbOfmIhOQtmpFYv68wSxdhRBcem-LD4twpL_jsDapaScOvskG4Nh5fdxgHLTtdUW8A4Ni3Hex_H-qZWzjPeBg2kOHNgU/s1600/osx06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpodn1C6poPy1bf3AMo840Cq0CWya4xgt1nt6oqn08ELX0PaCVVbOfmIhOQtmpFYv68wSxdhRBcem-LD4twpL_jsDapaScOvskG4Nh5fdxgHLTtdUW8A4Ni3Hex_H-qZWzjPeBg2kOHNgU/s1600/osx06.png" /></a></div>
<br />
<div>
すると、パスワードの入力を求められますので、ユーザーpiのパスワード(デフォルトで「raspberry」)を入力してEnterキーを押します。その際、パスワード記入欄のカーソルは変化しませんが、気にせずに入力してEnterキーを押してください。</div>
<br />
パスワードの入力に成功すると、下図のようにログインに成功します。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnSXIq6UUqe_y_85lqzC-H-ywgKCQcDPBh9wgHgI8gBxW9ihg0aYUWhUp-fnr04bgBdQpvtmfECLK-xijfsnZ1L3P85n3sX8cw4-KCNG-yNESGJLqWnG1B6pTIUOSlbSDGpOMDc6aSsE3c/s1600/osx07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnSXIq6UUqe_y_85lqzC-H-ywgKCQcDPBh9wgHgI8gBxW9ihg0aYUWhUp-fnr04bgBdQpvtmfECLK-xijfsnZ1L3P85n3sX8cw4-KCNG-yNESGJLqWnG1B6pTIUOSlbSDGpOMDc6aSsE3c/s1600/osx07.png" /></a></div>
<br />
<div>
あとは自由にアプリケーションを起動してみましょう。下図は、Windowsで行ったように
<br />
<ul>
<li>ターミナルからlxterminalを起動</li>
<li>lxterminalからidleを起動</li>
</ul>
<div>
を実行した様子です。</div>
<div>
<br /></div>
<div>
なお、管理者権限でGUIアプリケーションの実行するとそのままではエラーが出ますので、本ページ中ほどにある「管理者権限でGUIアプリケーションを実行する際の注意」を参照してください。同様に、よく使うアプリケーションのコマンド名も本ページ中ほどで紹介しています。</div>
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4us9Ucr99srI9jVObr6Bh__tMmQSP9EImvO5fmIuqhjeAOx01_mR9o8uwydBBRPm6olKZKGis2PSZo25MQEkKN1doboYFFYA4D_h07KjMpUJNOetexeZRLhN7qHfZW8XDBwsJatqy4DfC/s1600/osx08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4us9Ucr99srI9jVObr6Bh__tMmQSP9EImvO5fmIuqhjeAOx01_mR9o8uwydBBRPm6olKZKGis2PSZo25MQEkKN1doboYFFYA4D_h07KjMpUJNOetexeZRLhN7qHfZW8XDBwsJatqy4DfC/s640/osx08.png" width="640" /></a></div>
<br /></div>
Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com0tag:blogger.com,1999:blog-6558574304592725596.post-3641146296011603282016-04-13T21:39:00.000+09:002020-03-26T01:44:47.568+09:00Raspberry PiのIPアドレスを固定する<h3>
はじめに</h3>
本書の9章および10章では、下図のようにRaspberry PiとPC(またはスマートフォン)とをルーター機器に接続したネットワークを構成し、PC(またはスマートフォン)からRaspberry Piにアクセスしました。<br />
<br />
その際、Raspberry Piに振られるIPアドレスはルーター機器から自動的に割り当てれるものを利用しました。<br />
<br />
例えば、下の図ではRaspberry PiのIPアドレスが「192.168.10.3」、PCのIPアドレスが「192.168.10.2」と示されています。「IPアドレスが自動的に割り当てられる」ということは、このIPアドレスが逆になることや、「192.168.10.4」以降のIPアドレスが割り当てられることもある、ということを意味します。<br />
<br />
そのため、10章でRaspberry Piを搭載したキャタピラ式模型を作成した際、どのようなIPアドレスがRaspberry Piに割り当てられたかを知る方法が必要でした。本書ではLCDをキャタピラ式模型に搭載し、そこにIPアドレスを表示することでその問題を解決しました。<br />
<br />
しかし、Raspberry PiのIPアドレスがルーターから自動的に割り当てられるものではなく、最初から固定されたものであったら、IPアドレスを知るための工夫は不要になります。<br />
<br />
本ページではそれを実現するために必要な予備知識と、具体的な方法について解説します。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh1AQ8VIukWsR2XiVQQw_K5CjU4kfG_Kn3mBwSvb_p_1Hmo-DdNxPzEvDnwIOWaeSLtyV8G3DyokcLaJgFTaREo5a6N2cbiXi_mcGx16mmxlZPtG1oQv-9nsWspjdoo5JGYWmopFGiXRrj/s1600/fixip01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh1AQ8VIukWsR2XiVQQw_K5CjU4kfG_Kn3mBwSvb_p_1Hmo-DdNxPzEvDnwIOWaeSLtyV8G3DyokcLaJgFTaREo5a6N2cbiXi_mcGx16mmxlZPtG1oQv-9nsWspjdoo5JGYWmopFGiXRrj/s400/fixip01.png" width="396" /></a></div>
<h3 style="clear: both; text-align: left;">
<br />どのようなIPアドレスに固定すれば良いかを知ろう</h3>
Raspberry PiのIPアドレスを固定したい場合、まずはどのようなIPアドレスを利用してよいのかを知るところから始めます。そのためには、お使いのルーター機器の設定を確認する必要があります。
<br />
<br />
何故でしょうか。例えば、Raspberry Piに「192.168.10.2」というIPアドレスを固定アドレスとして(勝手に)割り当てたとします。しかし、「192.168.10.2」というIPアドレスはWifiルーターによって管理されていますので、そのIPアドレスがPCに割り当てられることがあり得ます。<br />
<br />
すると、ネットワーク内に同じIPアドレスの機器が2台存在することになり、ネットワークが正常に機能しなくなります。<br />
<br />
そのため、固定アドレスとして利用するためには、Wifiルーターにより自動的に割り当てられるアドレスを避けなければいけないわけです。<br />
<br />
以下、本ページでは、高度な解説をさけるため、家庭用の一般的なルーター機器のデフォルトの設定に基づいて解説を進めます。例としてNECとBuffaloのルーター機器を取り上げます。<br />
<br />
学校や職場のような環境の場合、本ページの解説が当てはまらないことがありますので、詳細はネットワーク管理者にお尋ねください。
<br />
<br />
<h4>
1. NEC Aterm WG600HPの場合</h4>
まず、WifiルーターであるNEC Aterm WG600HPを例に解説します。NEC社のWifiルーターであれば、似た手順で設定を確認できると思います。<br />
<br />
まず、上の図のようにRaspberry Piに192.168.10.3のようなIPアドレスが自動的に割り当てられているとします。このアドレスは、メーカーや機種によって異なりますので、適切に読み替えてください。<br />
<br />
このとき、実はルーター機器(のLAN側)にもIPアドレスが割り当てられています。多くの家庭用ルーター機器のデフォルト設定では、Raspberry PiのIPアドレスの3つめのピリオドの右側の数値を「1」に置き換えたIPアドレスとなります。すなわち、上図では「192.168.10.1」です。<br />
(繰り返しますが、学校や職場などでは必ずしもそうはなっておりませんのでご注意ください)
<br />
<br />
そのIPアドレスに対してブラウザでアクセスすると、ルーター機器の設定画面に入ることができます。上図の状況の場合、ブラウザのアドレス欄に「 http://192.168.10.1/ 」を記入します。
<br />
<br />
NEC Aterm WG600HPの場合、ユーザーadminに対し、購入時の初回設定で決めたパスワードを入力する必要があります。詳細はルーター機器の説明書をご覧ください。本ページでは、ルーター機器の一般的な設定方法についてのご質問には回答できません。
<br />
<br />
設定画面において、下図のように「詳細設定」→「LAN側設定」のページを見ると、ここで知りたい情報が記されています。
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6GrtlHxXYYKfZXFL8CIM55YWvg_jeO9R_042t7Kg4ZtHQ3TJQ_6YACWpUVhCO85_W6NJ1UjnIFxcpQlqBJhdQ6lpk2fvBzfGMGyU4RYFDU1e7vY_SoQNJjODz1pco4nZsek7snR5vcjBA/s1600/fixip02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="552" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6GrtlHxXYYKfZXFL8CIM55YWvg_jeO9R_042t7Kg4ZtHQ3TJQ_6YACWpUVhCO85_W6NJ1UjnIFxcpQlqBJhdQ6lpk2fvBzfGMGyU4RYFDU1e7vY_SoQNJjODz1pco4nZsek7snR5vcjBA/s640/fixip02.png" width="640" /></a></div>
<br />
まず、「IPアドレス」欄に「192.168.10.1」と記されています。これがこのルーターのIPアドレスです。機種によって異なることも多いでしょう。<br />
<br />
その横に記されている「24」という数字は、「このネットワークでは192.168.10.0~192.168.10.255のIPアドレスが使える」、ということを示すネットマスクと呼ばれる数値に関連するのですが、ここでの解説は省略します。ほとんどの機種で「24」となっているのではないでしょうか。<br />
<br />
さらに、赤い四角で囲われた以下の情報に着目してください。
<br />
<ul>
<li>アドレス割当パターン:自動指定</li>
<li>割当先頭アドレス:(指定なし)</li>
<li>割当数:32</li>
</ul>
最初の2つの項目によって「PCやRaspberry Piに割り当てられるIPアドレスは192.168.10.2を先頭とする」ということが示されています。これは、設定ページ上の「?(ヘルプ)」マークをクリックすることでわかります。
<br />
<br />
さらに3つ目の項目も合わせると、「PCやRaspberry Piに割り当てられるIPアドレスは192.168.10.2~192.168.10.33の32個」であることがわかります。
<br />
<br />
以上をまとめると、このネットワークにおけるアドレスの利用のされ方は下図のようになります。
192.168.10.0と192.168.10.255はそれぞれネットワークアドレス、ブロードキャストアドレスと呼ばれる特別なアドレスなので利用できません。また、192.168.10.1はルーターのIPアドレス、192.168.10.2~192.168.10.33はルーターから割り当てられるアドレスなのでやはり利用できません。
<br />
<br />
その結果、このルーターでは、固定するIPアドレスとして利用可能なのは192.168.10.34以降であることがわかりました。
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwGqvBvFEuI1p1BHeWlblP5lK6agKk3RLVLKEA3lqILNE4lgd58b935_OD_yTyZai9s0z2nIUr4Ujg_J-1r0ci-EIOgb3e9nD_3In9IBiu2aD9RlRV13MHG__15qyId5alHgzWN7S3IIGk/s1600/fixip03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwGqvBvFEuI1p1BHeWlblP5lK6agKk3RLVLKEA3lqILNE4lgd58b935_OD_yTyZai9s0z2nIUr4Ujg_J-1r0ci-EIOgb3e9nD_3In9IBiu2aD9RlRV13MHG__15qyId5alHgzWN7S3IIGk/s400/fixip03.png" width="400" /></a></div>
なお、上のルーターの設定画面で設定を変更すると、ルーターによって割り当てられるIPアドレスの先頭アドレスを後方にずらすことも可能です。そうすると192.168.10.2などの若いIPアドレスを固定IPアドレス用として利用可能になりますが、ルーターの設定変更が必要になりますので、適用は自己責任でお願いします。
<br />
<br />
<h4>
2. Buffalo WHR-1166DHP2の場合</h4>
次に、BuffaloのWifiルーター WHR-1166DHP2の場合の解説を行います。Buffalo社のルーターならば、似たような手順で設定を確認できるでしょう。<br />
<br />
NEC社のWifiルーターで解説したのと同様に、ルーターのIPアドレスを知る必要があります。WHR-1166DHP2の場合、Raspberry PiやPCにはデフォルトで192.168.11.XというIPアドレスが振られていました。そのため、ルーターのIPアドレスは192.168.11.1と考えられます。<br />
<br />
そこで、PCのブラウザで、アドレス欄に「 http://192.168.11.1/ 」を記入し、ルーターにアクセスします。<br />
<br />
WHR-1166DHP2の場合、ユーザーadminに対し、出荷時のパスワードを入力する必要があります。詳細はルーター機器の説明書をご覧ください。本ページでは、ルーター機器の一般的な設定方法についてのご質問には回答できません。<br />
<br />
設定画面において、「詳細設定」→「LAN」→「LAN」と辿ると、下図のように知りたい情報が記されています。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn8zOoeiyFmkPklvs213FOB4ZJzNFhQHyhdlrrbPMoJ7FjzxQhyphenhyphennfnXjVW7EfAvAJuij5Qmiy5gpNCfeQpdzanXYCNZi3k0WXzDgAD3QnUhnvefwa3uti6XOfBGzdhSIGkY4Xh7hmImL18/s1600/fixip04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="508" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn8zOoeiyFmkPklvs213FOB4ZJzNFhQHyhdlrrbPMoJ7FjzxQhyphenhyphennfnXjVW7EfAvAJuij5Qmiy5gpNCfeQpdzanXYCNZi3k0WXzDgAD3QnUhnvefwa3uti6XOfBGzdhSIGkY4Xh7hmImL18/s640/fixip04.png" width="640" /></a></div>
<br />
まず、「LAN側IPアドレス」欄に「192.168.11.1」と記されています。これがこのルーターの(LAN側の)IPアドレスです。機種によって異なることも多いでしょう。<br />
<br />
その下の「255.255.255.0」という数字はネットマスクと呼ばれ、「このネットワークでは192.168.11.0~192.168.11.255のIPアドレスが使える」、ということを示します。NECのルーターで書かれていた「/24」と同じ意味です。多くのルーターでこの値となっているでしょう。<br />
<br />
「割り当てIPアドレス」に書かれているように『「192.168.11.2」から64個』がこのWifiルーターにより自動的に割り当てられるIPアドレスです。<br />
<br />
以上をまとめると、このネットワークにおけるアドレスの利用のされ方は下図のようになります。 192.168.11.0と192.168.11.255はそれぞれネットワークアドレス、ブロードキャストアドレスと呼ばれる特別なアドレスなので利用できません。また、192.168.11.1はルーターのIPアドレス、192.168.11.2~192.168.11.65はルーターから割り当てられるアドレスなのでやはり利用できません。<br />
<br />
その結果、このルーターでは、固定するIPアドレスとして利用可能なのは192.168.11.66以降であることがわかりました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRjsYgFpdECCchgJ4A8arfrjiYCTvRmd8OcOL6YGT46MieKkM373hgmRZvs3xKi3kzO5D84TTxMgqJZGxnLqmSgsLy6opwOzx77DDruhiHwzTj8TGjdMP-S46ubPXCXJI7IGXY786x1NjZ/s1600/fixip05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRjsYgFpdECCchgJ4A8arfrjiYCTvRmd8OcOL6YGT46MieKkM373hgmRZvs3xKi3kzO5D84TTxMgqJZGxnLqmSgsLy6opwOzx77DDruhiHwzTj8TGjdMP-S46ubPXCXJI7IGXY786x1NjZ/s400/fixip05.png" width="400" /></a></div>
<br />
<h3>
IPアドレスを固定する</h3>
さて、以上で固定するIPアドレスを決めることができました。ここから、実際に設定を行っていきましょう。NECのルーターの例で示したように、192.168.10.34に固定する場合を例に解説します。
<br />
<br />
RaspbianのバージョンはJessie系列(NOOBS 1.9.0)とWheezy系列(NOOBS 1.4.1)の両方で動作を確認しました。
<br />
<br />
まず、ターミナル上で下記のコマンドを実行し、設定ファイル /etc/dhcpcd.conf を管理者権限で編集します。
<br />
<ul>
<li>sudo leafpad /etc/dhcpcd.conf</li>
</ul>
なお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
<br />
<ul>
<li>sudo mousepad /etc/dhcpcd.conf</li>
</ul>
このファイルの末尾に、下記のような4行を追加します。
<br />
<pre class="prettyprint">interface wlan0
static ip_address=192.168.10.34/24
static routers=192.168.10.1
static domain_name_servers=192.168.10.1
</pre>
これらの行は、環境に応じて変更が必要ですので、順に解説します。
<br />
<ul>
<li>1行目:無線LANについての設定であることを示します。有線LANの場合、「wlan0」を「eth0」に変更してください。</li>
<li>2行目:「192.168.10.34」がRaspberry Piに固定するIPアドレスを表します。</li>
<li>2行目:「/24」はNECのルーターの解説で少し触れたように、利用可能なIPアドレスの範囲を指定するための数値です。多くのルーターのデフォルト状態では、「/24」のままで良いでしょう。</li>
<li>3行目と4行目:ここはルーターのIPアドレスを記します。</li>
</ul>
<div>
以上を記述した後ファイルを保存し、Raspberry Piを再起動してください。指定したIPアドレスが割り当てられていれば成功です。</div>
Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com0tag:blogger.com,1999:blog-6558574304592725596.post-21668787640623758432016-04-11T15:15:00.002+09:002020-03-26T01:45:00.307+09:00据置きのルーター機器を介さずキャタピラ式模型を操作してみた<h3>
はじめに
</h3>
本書の最終章において、Raspberry Piを搭載したキャタピラ式の模型を作成し、PCやスマートフォンから操作するという演習を行ないました。<br />
<br />
その際、Raspberry Piとスマートフォンの間の通信は、下図のようにルーター機器(典型的にはWifiルーター)を介しました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOwXzi-i6YXTIXx5RnCwpQTZv-xQYiwIGyx8cPrG4H6iRzHC_JF_qALn9vwrG76WMsLGH5Bp91N2NVfPJPtYaPKmcEK__I8FS_0CT-0RQpOlcYO5CZbSzOf-oE8KCXTVL0qHktFnKcQu8w/s1600/tethering_exp01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOwXzi-i6YXTIXx5RnCwpQTZv-xQYiwIGyx8cPrG4H6iRzHC_JF_qALn9vwrG76WMsLGH5Bp91N2NVfPJPtYaPKmcEK__I8FS_0CT-0RQpOlcYO5CZbSzOf-oE8KCXTVL0qHktFnKcQu8w/s400/tethering_exp01.png" width="355" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
この方法では、Wifiルーターから離れた場所ではキャタピラ式模型を操作することはできません。キャタピラ式模型を家から持ち出して操作したい場合などです。<br />
<br />
本ページでは、そのような場合の対処法を記します。いくつか方法はあるのですが、実現が簡単な方法を紹介します。<br />
<br />
<h3>
方法1~ポータブルWifiルーターを用いる</h3>
まず、最も簡単なのは、上図の「ルーター機器」を「ポータブルWifiルーター」にそのまま置き換えることです。これにより、「キャタピラ式模型」、「スマートフォン」、「ポータブルWifiルーター」の3点を持ち出せば、外出先でキャタピラ式模型の操作ができます。<br />
<br />
ただし、多くの場合、これはdocomoなどの通信業者との契約が必要なので、既に「ポータブルWifiルーター」をお持ちの方向けの方法となるでしょう。<br />
<br />
<h3>
方法2~スマートフォンのテザリング機能を用いる</h3>
2つめの方法は、上図の「ルーター機器」の機能をスマートフォンに肩代わりさせる方法です。図で示すと下図のようになるでしょう。<br />
<br />
図から分かるとおり、据置きのルーター機器が不要になり、構成がシンプルになるのがメリットです。ただし、スマートフォンの電池の消費が速くなるという欠点もあります。<br />
<br />
Androidスマートフォンではこの機能は「Wi-Fiテザリング」や「ポータブルWi-Fiアクセスポイント」などと呼ばれます。iPhoneでは「インターネット共有機能」と呼ばれます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggWPDmIktHpE6Z7PR97S54EtcmCQlh-Y9RNyK79pOnhv0FgJmPd-jtYc1Z7snZ-TlZWObvelpTVwBErOI6frUFO31gFkJRiKP1O-O6ErCE_UEmeWjsqCZ9FwrZ_hB7cEJKrksl8SaxLyax/s1600/tethering_exp02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="295" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggWPDmIktHpE6Z7PR97S54EtcmCQlh-Y9RNyK79pOnhv0FgJmPd-jtYc1Z7snZ-TlZWObvelpTVwBErOI6frUFO31gFkJRiKP1O-O6ErCE_UEmeWjsqCZ9FwrZ_hB7cEJKrksl8SaxLyax/s400/tethering_exp02.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
この機能を用いるには、お持ちのスマートフォンに対して、下記の制限があります。
<br />
<ul>
<li>テザリング機能に対応した機種をもち、さらに対応した契約をしていること。なお、以下に各通信会社へのリンクを貼りますが、これらの契約についての質問には答えられませんのでご了承ください。<ul>
<li>docomoの場合:<a href="https://www.nttdocomo.co.jp/service/tethering/" target="_blank">テザリング</a></li>
<li>auの場合:<a href="http://www.au.kddi.com/mobile/service/smartphone/tethering/" target="_blank">テザリングオプション</a></li>
<li>SoftBankの場合:<a href="http://www.softbank.jp/mobile/price_plan/options/tethering/" target="_blank">テザリング</a><span id="goog_1992369678"></span><span id="goog_1992369679"></span><a href="https://www.blogger.com/"></a></li>
</ul>
</li>
<li>SIM契約のないiPadの場合、この機能は利用できません(私のiPad mini Wi-Fiでは利用できませんでした)</li>
</ul>
条件を満たしている場合、利用はそれほど難しくありません。Androidスマートフォンの場合の例を以下に示します。機種やOSのバージョンにより異なる可能性がありますのでご了承ください。<br />
<br />
まず、Wi-Fiアクセスポイントの初期設定を行なう必要があります。
<br />
<ul>
<li>ネットワーク名(任意。下図ではspnetとしています)</li>
<li>パスワード(任意。8文字以上)</li>
</ul>
<div>
を入力して保存します。この設定は一度行なえば二度目は必要ありません。</div>
<div>
<br /></div>
<div>
設定が終わったら、右図のようにポータブルアクセスポイントを有効にします。やはり機種やOSのバージョンにより異なりますが、通知領域にポータブルアクセスポイントが有効であることを示すアイコンが現れるでしょう。</div>
<div>
<br /></div>
<div>
この状態で、Raspberry PiにてWifiの設定を行い、スマートフォンによるネットワークに接続します。その際、ネットワーク名は上で設定したものを選択し、パスワードも上で決めたパスワードを入力します。この操作は通常のルーターに接続する場合と同じです。</div>
<div>
<br /></div>
<div>
なお、キャタピラ式模型の操作が終わったら、「<b>ポータブルアクセスポイントをOFFにする</b>」ことを忘れないでください。OFFにしないとスマートフォンの電池の消費が速くなりますので、必要なときのみ有効にする、という使い方をします。<br />
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifs-AL9I7MbIKmeTj7CPZNSUqHESxXb7Hfw1f23EFd5YnRktJtkIsSbSlWiMDTOATptjIXs5BMDTI2ibibgic94OzUuF6TaFRmYalOXpQCtn5k4oH7gg0c1EO20StgWsGohvvYq4XriSZC/s1600/tethering_all.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="352" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifs-AL9I7MbIKmeTj7CPZNSUqHESxXb7Hfw1f23EFd5YnRktJtkIsSbSlWiMDTOATptjIXs5BMDTI2ibibgic94OzUuF6TaFRmYalOXpQCtn5k4oH7gg0c1EO20StgWsGohvvYq4XriSZC/s640/tethering_all.png" width="640" /></a></div>
<div>
<br />
なお、iPhoneにおける設定は<a href="https://support.apple.com/ja-jp/HT204023" target="_blank">Appleによる「インターネット共有」の解説</a>をご覧ください。私のSIM契約のないiPad miniでは、インターネット共有機能を利用できず、解説を作成できないためです。iPhoneによるインターネット共有でうまく動作した、という方はお知らせいただけると幸いです。<br />
<br />
<h3>
方法3~Raspberry Pi側にルーター機能を持たせる</h3>
最後の方法は、スマートフォンにではなくRaspberry Pi側にルーター機能を持たせるという方法です。<br />
<br />
しかし、今回のようにキャタピラ式模型を動かすという目的では、この方法には以下の欠点があります。
<br />
<ul>
<li>初期設定が複雑である</li>
<li>アクセスポイント化したRaspberry PiにスマートフォンをWifi接続すると、その間スマートフォンがインターネットに接続できなくなる</li>
</ul>
<div>
そのため、本ページではこの方法の解説は省略します。興味のある方はコメント欄に少し情報を記しましたのでご覧ください。</div>
</div>
Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com5tag:blogger.com,1999:blog-6558574304592725596.post-10604484421371767452016-02-10T23:56:00.000+09:002019-10-02T23:37:15.479+09:00キーボードのCaps LockキーとCtrlキーを入れ替えるRaspberry PiはLinux系OSをインストールして用いられることが多いのですが、Linux系OSではキーボードの「Ctrl」キーを多用します(Windowsでも「コピー」と「貼り付け」の機能に「Ctrl」キーを使いますね)。<br />
<br />
そのため、Ctrlキーが押しやすい位置に配置されたキーボードが好まれる傾向があります。典型的には「A」キーの左隣にCtrlキーが配置されたものです。<br />
<br />
古くはSunワークステーション用のキーボード、最近では<br />
<ul>
<li><a href="http://www.pfu.fujitsu.com/hhkeyboard/" target="_blank">Happy Hacking Keyboard</a></li>
<li><a href="https://www.apple.com/jp/keyboard/" target="_blank">Appleのキーボード</a></li>
</ul>
などでは「A」キーの左隣にCtrlキーが配置されています。
<br />
<br />
一般的には「A」キーの左隣に「Caps Lock」キーが配置されたキーボードが広く流通しています。そのようなキーボードを用いる場合も、この「Caps Lock」キーを「Ctrl」キーと入れ替えて「Ctrl」を「A」の左隣に配置する、という設定が、Linux系OSのユーザーに好まれています。<br />
<br />
ここではその設定を紹介します(<a href="http://raspberrypi.stackexchange.com/questions/5333/how-to-map-caps-lock-key-to-something-useful" target="_blank">参考にしたサイト</a>)。なお、Raspbianのバージョンにより方法が異なりますので、順に解説します。<br />
<br />
まずは、NOOBS 2.8.2 以降のRaspbian (Stretch) の場合について解説します。なお、この解説はかなり古いNOOBS 1.4.1より以前のRaspbian(Wheezy)についても当てはまります。
<br />
<br />
これらのバージョンのRaspbianの場合、キーボードの設定ファイルは /etc/default/keyboard です。ターミナルソフトウェアLXTerminalで下記のコマンドを実行し、テキストエディタleafpadで設定ファイル /etc/default/keyboard を開きます。<br />
<pre class="prettyprint">sudo leafpad /etc/default/keyboard
</pre>
なお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
<pre class="prettyprint">sudo mousepad /etc/default/keyboard
</pre>
このファイルは10行程度が記されていますが、
この中にXKBOPTIONSを設定する「XKBOPTIONS=」という1行があるはずです。これに以下のように「ctrl:swapcaps」という設定を追記します。
<br />
<pre class="prettyprint">XKBOPTIONS=ctrl:swapcaps
</pre>
編集が終わったら、保存してleafpadを閉じます。その後Raspberry Piを再起動すると「Caps Lock」と「Ctrl」が入れ替えられ、「A」キーの左隣が「Ctrl」キーとなっているはずです。
<br />
<br />
なお、XKBOPTIONSに既存の設定があった場合、例えば下記のような設定が既にあった場合は…、
<br />
<pre class="prettyprint">XKBOPTIONS=terminate:ctrl_alt_bksp
</pre>
「,」で区切ってctrl:swapcapsを追記すればOKです。<br />
<pre class="prettyprint">XKBOPTIONS=terminate:ctrl_alt_bksp,ctrl:swapcaps
</pre>
<br />
なお、「Caps Lock」キーは不要と言う場合、下記のようにnocapsを指定すると、「Caps Lock」キーと「Ctrl」キーがどちらも「Ctrl」キーとして機能するようになりますので、お好みの設定を用いてください。<br />
<pre class="prettyprint">XKBOPTIONS=ctrl:nocaps
</pre>
XKBOPTIONSに設定できる内容は「/usr/share/doc/keyboard-configuration/xorg.lst」というファイルに列挙されていますので、興味のある方は参照してください。
<br />
<br />
次に、NOOBS 1.5.0~2.8.1 のRaspbian(Jessie/Stretch)でGUIの設定アプリケーションを用いた場合の解説です。これらのバージョンのRaspbianでは、設定ファイルは /home/pi/.config/lxkeymap.cfg でした。このファイルは、GUIのRapsberry Piの設定アプリケーションでキーボードの設定を一回行うと、自動的に生成されています。<br />
<br />
ターミナルソフトウェアLXTerminalで下記のコマンドを実行し、テキストエディタleafpadで設定ファイル .config/lxkeymap.cfg を開きましょう。<br />
<pre class="prettyprint">leafpad .config/lxkeymap.cfg
</pre>
なお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
<pre class="prettyprint">mousepad .config/lxkeymap.cfg
</pre>
このファイルの中に、「option =」という、optionを設定した行があるはずです。この右辺に「ctrl:swapcaps」を追記ましょう。<br />
<pre class="prettyprint">option = ctrl:swapcaps
</pre>
Raspbianのバージョンによっては、右辺に既存の設定が書かれていることがあります。<br />
<pre class="prettyprint">option = lv3:ralt_switch
</pre>
その場合、「,」で区切って設定を追加すればOKです。<br />
<pre class="prettyprint">option = lv3:ralt_switch,ctrl:swapcaps
</pre>
編集が終わったら、保存してleafpadを閉じます。その後Raspberry Piを再起動すると「Caps Lock」と「Ctrl」が入れ替えられ、「A」キーの左隣が「Ctrl」キーとなっているはずです。<br />
<br />
なお、このバージョンのRaspbianにおけるキーボードの設定ファイルは、Raspberry Piの起動時は /home/pi/.config/lxkeymap.cfg であり、Raspberry Piの起動後にキーボードを抜き差しすると /etc/default/keyboard が読まれるようになっていますので注意しましょう。
Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com0tag:blogger.com,1999:blog-6558574304592725596.post-43593871358792550592015-12-07T23:48:00.000+09:002020-06-12T14:52:55.064+09:00Raspberry Pi Zero シリーズで本書の演習を実行する方法<h3>
はじめに</h3>
2015年11月26日、Raspberry Piの新型であるRaspberry Pi Zeroが発表され、その価格が5ドルということでで大きな話題となりました。長らく海外のみでの販売でしたが、2017年2月に日本でも発売されることが報じられました。さらに、2017年2月28日にはWifiとBluetooth機能のついたRaspberry Pi Zero Wが発表されました。<br />
<br />
このRaspberry Pi Zero シリーズで本書の演習を実行する方法を、本ページで解説したいと思います。まずはRaspberry Pi Zero シリーズについて整理してみましょう。下記のバージョンがあります。<br />
<br />
<table border="1">
<tbody>
<tr>
<td>製品名
</td>
<td>海外での価格
</td>
<td>特徴
</td>
<td>販売店
</td>
</tr>
<tr>
<td>Raspberry Pi Zero WH
</td>
<td>16ドル
</td>
<td>Pi Zero Wにピンヘッダを取り付けたもの。<br />
カメラ利用可(<a href="https://www.switch-science.com/catalog/3195/" target="_blank">要専用ケーブル</a>)・Wifi/Bluetoothつき
</td>
<td><a href="https://raspberry-pi.ksyic.com/main/index/pdp.id/406" target="_blank">KSY</a>、<a href="https://www.switch-science.com/catalog/3646/" target="_blank">スイッチサイエンス</a>
</td>
</tr>
<tr>
<td>Raspberry Pi Zero W
</td>
<td>10ドル
</td>
<td>カメラ利用可(<a href="https://www.switch-science.com/catalog/3195/" target="_blank">要専用ケーブル</a>)・Wifi/Bluetoothつき
</td>
<td><a href="https://raspberry-pi.ksyic.com/main/index/pdp.id/219" target="_blank">KSY</a>、<a href="https://www.switch-science.com/catalog/3200/" target="_blank">スイッチサイエンス</a></td>
</tr>
<tr>
<td>Raspberry Pi Zero v1.3
</td>
<td>5ドル
</td>
<td>カメラ利用可(<a href="https://www.switch-science.com/catalog/3195/" target="_blank">要専用ケーブル</a>)・Wifi/Bluetoothなし
</td>
<td><a href="https://raspberry-pi.ksyic.com/main/index/pdp.id/222" target="_blank">KSY</a>、<a href="https://www.switch-science.com/catalog/3190/" target="_blank">スイッチサイエンス</a></td>
</tr>
<tr>
<td>Raspberry Pi Zero v1.2
</td>
<td>5ドル
</td>
<td>カメラ利用不可・Wifi/Bluetoothなし
</td>
<td>現在は入手困難
</td>
</tr>
</tbody></table>
<br />
下図の写真において、左から、v1.2、v1.3、W です。v1.2にのみピンヘッダがついていますが、後述するようにこれは自分で半田づけしたものです。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS8AEE-4WOgyQzGk46ARj47gw3c38fkfltdr4YjDBJiht3Fr8Wv2GVukz_iiYHpdrLl0Q1UHe4TSVOFyWEW346secmWv1oubPur4nU9bL8UYDEJdRa-almVDP16QrukNngzL57zW_fdu_F/s1600/2017-03-07+18.34.09-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS8AEE-4WOgyQzGk46ARj47gw3c38fkfltdr4YjDBJiht3Fr8Wv2GVukz_iiYHpdrLl0Q1UHe4TSVOFyWEW346secmWv1oubPur4nU9bL8UYDEJdRa-almVDP16QrukNngzL57zW_fdu_F/s640/2017-03-07+18.34.09-1.jpg" width="640" /></a></div>
<br />
Raspberry Pi Zero シリーズを使う場合、次に述べるように特有な機器がいくつか必要になるので注意が必要です。<br />
<br />
<h3>
接続方法(Raspberry Pi Zero W、Pi Zero WH、Pi Zero v1.3の場合)</h3>
Raspberry Pi Zero W、Pi Zero WHおよびPi Zero v1.3の場合、接続は下図のようになります。以下の3つのものが必須となります。<br />
<ul>
<li>HDMI(メス)-ミニHDMI(オス)変換アダプタ。例えば<a href="https://www.amazon.co.jp/dp/B004FWEULO/" target="_blank">SANWA SUPPLY AD-HD07M</a></li>
<li>USB OTGケーブル。例えば <a href="https://www.amazon.co.jp/dp/B005WNBLN0/" target="_blank">iBUFFALO BSMPC11C01BK</a></li>
<li>USBハブ(ACアダプターなしのバスパワータイプでOK)。
マウス、キーボードを接続します。Pi Zero WおよびPi Zero WHの場合、Wifiデバイスは基板上に実装されているので、Wifiアダプタは不要です。Pi Zero 1.3の場合、ここにさらに無線LAN USBアダプタを接続します</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq-HS6tNDflYd35OduNDeLWQagJBqXlg8GtnVX3IEqQTdaZLMzE9lQAVmabYdFdbs0lmQy7groe-XFysLX0zCgE8ejfRSQ7tZ1-aE-Pp-1tmvBb_DgxWllQ9lpqssH3M0cyruPpsr8Erxl/s1600/PiZeroW-Connection-all.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="768" data-original-width="1024" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq-HS6tNDflYd35OduNDeLWQagJBqXlg8GtnVX3IEqQTdaZLMzE9lQAVmabYdFdbs0lmQy7groe-XFysLX0zCgE8ejfRSQ7tZ1-aE-Pp-1tmvBb_DgxWllQ9lpqssH3M0cyruPpsr8Erxl/s640/PiZeroW-Connection-all.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<h3>
接続方法(Raspberry Pi Zero v1.2の場合)</h3>
Pi Zero v1.2の場合、接続は下図のようになります。以下の3つのものが必須となります。<br />
<ul>
<li>HDMI(メス)-ミニHDMI(オス)変換アダプタ。例えば<a href="https://www.amazon.co.jp/dp/B004FWEULO/" target="_blank">SANWA SUPPLY AD-HD07M</a></li>
<li>USB OTGケーブル。例えば <a href="https://www.amazon.co.jp/dp/B005WNBLN0/" target="_blank">iBUFFALO BSMPC11C01BK</a></li>
<li>USBハブ(ACアダプターつきのセルフパワータイプ)。マウス、キーボード、無線LAN USBアダプタなどを接続します。ACアダプターのないバスパワータイプを用いると、Wifiが不安定になり途中で接続が切れることがあります</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd5BU2_-g2J5REM5Ia9l8uXE-g1Jvzs6Dc-RdOWN2C6_h5A5ccA5b6KKNens3aR_r1mRiLD7TfFItOz7jXHwVRp-1c-6AoDQI9r05-0I4GHUk07Rdih99Tv1Mm9S36IHruqoDPtx6nZA01/s1600/PiZero-Connection4-all.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="768" data-original-width="1024" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd5BU2_-g2J5REM5Ia9l8uXE-g1Jvzs6Dc-RdOWN2C6_h5A5ccA5b6KKNens3aR_r1mRiLD7TfFItOz7jXHwVRp-1c-6AoDQI9r05-0I4GHUk07Rdih99Tv1Mm9S36IHruqoDPtx6nZA01/s640/PiZero-Connection4-all.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<h3>
GPIO ポートの利用</h3>
Pi Zero WH以外のRaspberry Pi Zero シリーズには、GPIOポートにピンがあらかじめ取りつけられていません(下図)。別途2x20のピンを購入し、自分ではんだ付けする必要があります。<br />
例えば秋月電子通商さんの<a href="http://akizukidenshi.com/catalog/g/gC-00080/" target="_blank">ピンヘッダ 2×20 (40P)</a>などです。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo1f9Uv0tFAmkMSwMQN9L1suSQOZm-QGJ15CXXYym_CvcEeNAkguZI_8MnEEGZNaTH9qxA5UejvU3Moet2sirqgsOV0AErg4TrPGpFKZ9bcvPxeqJep6UvsdWMz1do1OB2PNmmO6b5P4dA/s1600/2015-12-07+17.18.45.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo1f9Uv0tFAmkMSwMQN9L1suSQOZm-QGJ15CXXYym_CvcEeNAkguZI_8MnEEGZNaTH9qxA5UejvU3Moet2sirqgsOV0AErg4TrPGpFKZ9bcvPxeqJep6UvsdWMz1do1OB2PNmmO6b5P4dA/s400/2015-12-07+17.18.45.jpg" width="400" /></a></div>
<br />
なお、このピンヘッダの半田づけが嫌だという場合、下記のようなテストワイヤをGPIO部の穴に差し込んで使うという方法もあります。ただし、これはあくまでテスト用であり、本書のように何度もGPIOを利用する場合、ピンヘッダを半田付けするのをお勧めします(何度も抜き差しすると接触が悪くなるためです)。<br />
<ul>
<li><a href="http://akizukidenshi.com/catalog/g/gC-09831/" target="_blank">スルホール用テストワイヤ TT-200 (10本入):秋月電子通商</a></li>
<li><a href="https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-0GTW" target="_blank">サンハヤト TTW-200 スルホール用テストワイヤ:千石電商</a></li>
</ul>
それ以外には、40ピンのピンヘッダをハンマーで打ち込む、という製品もあります。
<br />
<ul>
<li><a href="https://www.switch-science.com/catalog/3189/" target="_blank">GPIO Hammer Header : スイッチサイエンス</a></li>
</ul>
こちらは私は使用したことがありませんが、商品名で検索すると使用した方の体験記などが見つかるでしょう。
<br />
<br />
<h3>
本書の演習の実行について</h3>
Raspberry Pi Zeroを用いて本書の演習を行う場合、注意が必要なのは下記となるでしょう。
<br />
<ul>
<li>5.6 カメラのシャッターの演習:カメラモジュールを接続するための専用ケーブルが必要</li>
<li>5.7 MP3ファイルの再生:オーディオジャックがないので、音声はHDMI経由のみでの出力となるでしょう</li>
<li>6.5 音声のボリューム:同様に音声はHDMI経由のみとなるでしょう</li>
<li>10.4 キャタピラ式模型へのカメラの搭載:カメラモジュールを接続するための専用ケーブルが必要</li>
</ul>
なお下図は、初期バージョンのRaspberry Pi Zero v1.2で、4章のLEDの点滅(Lチカ)を試しているところです。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQVovlPRa3xiElocRdyiKygTUp1wlirGc1RpGYZkaVsjNDJThjk8FlvVM2rQYqInkFa58qA8VEYBLQMTNGmf-ScQaSz0XkNkhg1QHD-ZV-3Ckn9LPihRDsQ4fK-uUOOBouFVb9rRYpq9jS/s1600/2015-12-07+19.12.18.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQVovlPRa3xiElocRdyiKygTUp1wlirGc1RpGYZkaVsjNDJThjk8FlvVM2rQYqInkFa58qA8VEYBLQMTNGmf-ScQaSz0XkNkhg1QHD-ZV-3Ckn9LPihRDsQ4fK-uUOOBouFVb9rRYpq9jS/s640/2015-12-07+19.12.18.jpg" width="640" /></a></div>
<br />
また、カメラモジュールを使うには、下記のように専用ケーブルが必要です。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg52tCp8ZtI5KDdSLXmTxpk9tdwwy0zjmtzHZFOkM2HvaDl9TB3MtJUgVQxy4ZHf_HY9IBiUti9SQWScDjmh0cejNpG2pLz0b_YjsA6fYWXARe-_OrFQG6LMuXQxmkoVSUPkYs-nK-U38gV/s1600/ZeroW-Camera.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="252" data-original-width="1280" height="124" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg52tCp8ZtI5KDdSLXmTxpk9tdwwy0zjmtzHZFOkM2HvaDl9TB3MtJUgVQxy4ZHf_HY9IBiUti9SQWScDjmh0cejNpG2pLz0b_YjsA6fYWXARe-_OrFQG6LMuXQxmkoVSUPkYs-nK-U38gV/s640/ZeroW-Camera.jpg" width="640" /></a></div>
<br />
ケーブルを取り付ける際、金属が露出した端子面を、どちらも緑色の基板の方を向くようにします。基板上のカバーを引き出し、ケーブルを差し込んだ後でカバーを押し込むことでケーブルが固定されます。<br />
<br />
<h3>
Raspberry Pi Zeroに適した利用方法</h3>
接続方法の図を見てわかる通り、どのバージョンにもRaspberry Pi 3などでは必要なかった物品が必要となり、Raspberry Pi Zeroシリーズの低価格性、省スペース性があまりいかされていませんね。そういう意味では、本書のスタイルでRaspberry Piを用いるならば、利用が容易で高性能なRaspberry Pi 3をお勧めします。<br />
<br />
Raspberry Pi Zeroを用いるには、上級者向けではありますが「<a href="https://raspibb.blogspot.jp/2016/04/raspberry-pi.html" target="_blank">ディスプレイ・マウス・キーボードを接続せずにRaspberry Piを利用する</a>」で解説する方法が適しています。その場合、Wifiデバイスが基板上に実装されているZero Wが適しています。それにより、Raspberry Pi Zeroに接続するのは電源ケーブルのみとできるからです(セットアップ時にはディスプレイ等の接続が必要ですが)。<br />
<br />
適した応用例としては、キャタピラ式模型に搭載し模型をコントロールするような用途(10章)があります。それにより、小型化、省電力化が図れる、というわけです。これは、Raspberry Pi Zero シリーズに限らず、下図(右)のRaspberry Pi Model A+にも同じことが言えます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9YORKukxKrEOD_xVVAVMlqjq3nL8eVGmBnxoj4IzkXitVN4OOg67n3EgsDBz7H3ZRIHqf9Tytis3Gw2EHhqtB4h58Wo7bYy3IhyphenhyphenACYmKpLNs9OC7tJiZISshIgBnSJTqI819OpUb0vi80/s1600/2015-12-07+19.59.50.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9YORKukxKrEOD_xVVAVMlqjq3nL8eVGmBnxoj4IzkXitVN4OOg67n3EgsDBz7H3ZRIHqf9Tytis3Gw2EHhqtB4h58Wo7bYy3IhyphenhyphenACYmKpLNs9OC7tJiZISshIgBnSJTqI819OpUb0vi80/s640/2015-12-07+19.59.50.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
Raspberry Pi Zero v1.2(左)とRaspberry Pi Model A+ (右)</div>
<br />
<h3>
おわりに</h3>
Raspberry Pi Zero シリーズで本書の演習を実行するにはどうしたらよいか、解説しました。使いはじめるまでにはんだづけが必要であったり、新たな物品を購入しなければならないなど、ハードルはやや高いと言えるでしょう。<br />
<br />
しかし、Raspberry Pi Zeroのサイズの小ささは、アイディア次第で面白く使えそうです。腕に覚えのある方はチャレンジしても良いかもしれません。<br />
<br />Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com0tag:blogger.com,1999:blog-6558574304592725596.post-78724159079307806612015-11-05T22:58:00.000+09:002020-03-26T01:46:44.345+09:00Raspberry Pi公式タッチディスプレイで本書の演習を実行する<h3>
はじめに
</h3>
Raspberry Piは名刺サイズの小型コンピュータとして注目を集めましたが、大型のHDMIディスプレイに接続すると、そのメリットをあまり享受できません。机の上をコンパクトにまとめるため、小型のディスプレイが欲しいところでした。<br />
<br />
2015年9月、Raspberry Pi財団より公式の7インチタッチディスプレイが発表され注目を集めました。<br />
しばらく入手しにくい時期が続きましたが、私もようやく入手できましたので本書の演習が実行できるかどうか、試してみました。<br />
<br />
以下の写真は、このタッチディスプレイにキーボードとマウスを接続し、Lチカの演習を行っている様子です。タッチをマウスの代用にできるのですが、やはり使い慣れたマウスがあると便利なので接続しています。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibg7ea4zFvqsNT1QmRMS3eSkI4eckrRhYbK3pb8Em61VWLwE2vmBsoV7LC_lQmYEFLA-Ca7wGqM_I7q0i6WqeixbvTaB-vhn7DqS0Z8nnrl8j1boHr48qblLHohQ0meOKCgwhxPRFKdScB/s1600/2015-11-04+16.11.23.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibg7ea4zFvqsNT1QmRMS3eSkI4eckrRhYbK3pb8Em61VWLwE2vmBsoV7LC_lQmYEFLA-Ca7wGqM_I7q0i6WqeixbvTaB-vhn7DqS0Z8nnrl8j1boHr48qblLHohQ0meOKCgwhxPRFKdScB/s640/2015-11-04+16.11.23.jpg" width="640" /></a></div>
<br />
<h3>
入手方法</h3>
<div>
下記のように、様々なお店で入手可能です。</div>
<ul>
<li><a href="http://jp.rs-online.com/web/p/graphics-display-development-kits/8997466/" target="_blank">RSコンポーネンツ</a></li>
<li><a href="https://raspberry-pi.ksyic.com/main/index/pdp.id/101" target="_blank">株式会社 ケイエスワイ(RSコンポーネンツの個人向け代理店)</a></li>
<li><a href="https://www.switch-science.com/catalog/2459/" target="_blank">スイッチサイエンス(RSコンポーネンツ製)</a></li>
<li><a href="https://www.switch-science.com/catalog/2556/" target="_blank">スイッチサイエンス(Element14製)</a></li>
<li><a href="http://akizukidenshi.com/catalog/g/gM-09917/" target="_blank">秋月電子通商</a></li>
<li><a href="http://eleshop.jp/shop/g/gFBE314/" target="_blank">共立エレショップ</a></li>
</ul>
購入する際は注意すべきことがあります。<br />
<br />
Raspberry Pi用のタッチディスプレイはサードパーティ製も含め様々な種類のものが販売されていますが、ここで紹介するものはRaspberry Pi財団公式のものです。<br />
<br />
サードパーティ製のものは設定方法や性能などが全く異なります。購入する際はそれが公式のものであることをよくチェックしましょう(上のリンクは全て公式のものです)。<br />
<br />
<h3>
使用している様子</h3>
このタッチディスプレイの解像度は800x480です。ターミナルソフトウェアLXTerminalを起動したときの様子は下図ですが、画面の広さがどの程度かの目安になるのではないでしょうか。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJho2AzgTYxnuth593kQQzdjJCRhHlxoulDTnrU33vunz8YUcfZ0koyvRFwXQgYM2EV2HZqTPNb4puLl5h13xyueNPcVg5FRPIUChOeKTlNVX_y7c6vy4iky6pJjMiPEIPQTXHVFLNdj8S/s1600/2015-11-04-161703_800x480_scrot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJho2AzgTYxnuth593kQQzdjJCRhHlxoulDTnrU33vunz8YUcfZ0koyvRFwXQgYM2EV2HZqTPNb4puLl5h13xyueNPcVg5FRPIUChOeKTlNVX_y7c6vy4iky6pJjMiPEIPQTXHVFLNdj8S/s640/2015-11-04-161703_800x480_scrot.png" width="640" /></a></div>
<br />
LXTerminalの他、IDLEおよびそのエディタを起動した様子が下図です。各アプリケーションをそれぞれ最大化し、画面上部のタスクバーを用いて(あるいはキーボードショートカットのAlt+Tabで)アプリケーションを切り替えて使うのが現実的でしょう。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUMj96WssV_jlYcjL9odc6o6YTKQBHSHnCii7lB-lpEgghY8j0tp-3zeIsf6XO9kITEN4kY2twP4v59PXQkR_ZHu7ghzWpRgZAB6TaiqrHoA-GUfwdMr1mh_EYMXKTwhP3paehsXwBvDpQ/s1600/2015-11-04-161757_800x480_scrot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUMj96WssV_jlYcjL9odc6o6YTKQBHSHnCii7lB-lpEgghY8j0tp-3zeIsf6XO9kITEN4kY2twP4v59PXQkR_ZHu7ghzWpRgZAB6TaiqrHoA-GUfwdMr1mh_EYMXKTwhP3paehsXwBvDpQ/s640/2015-11-04-161757_800x480_scrot.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h3>
組み立て</h3>
私が購入した際は、以下の図のような状態で届きました。メス-メスのジャンパーワイヤが4本付属しましたが、実際には2本しか用いません。<br />
<br />
説明書などは付属しませんでした。以下のページは説明が英語ですが図が豊富ですので、これを参考にすると迷わずに組み立てられるのではないでしょうか。<br />
<ul>
<li><a href="http://www.element14.com/community/docs/DOC-78156?ICID=rpiaccsy-topban-learn#installI" target="_blank">Raspberry Pi 7” Touchscreen Display (element 14)</a></li>
</ul>
ポイントは下記の通りです。<br />
<ul>
<li>リボンケーブルの表裏を間違えないよう注意する</li>
<li>ディスプレイ基板の5VピンとGNDピンをRaspberry PiのGPIOの5VピンとGNDピンにメス-メスのジャンパーワイヤで接続する(<b>ピンを間違えないように!</b>)</li>
<li>microUSBの電源はタッチディスプレイの基板側に接続する。<b>また、電源は2Aの電流を流すことのできるものを用いる。</b>1.2Aしか流せない電源を用いると、スクリーンセーバーからの復帰時(つまり電力を多く消費するとき)にRaspberry Piが落ちるという経験をしました。</li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6Qqfq6k1n_3UL3FyBiPalRDwcyUsr1hetuUN9bNBG9DfSZnrbEwi7th5ghIAF4nPlm7CdnNspoh6PytrEq8m5Ah6MJtN60tP7_tIJvOXgYks-Le9mezogVrQQNayyqjMFdBO33sseVoWD/s1600/2015-11-04+12.24.10-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6Qqfq6k1n_3UL3FyBiPalRDwcyUsr1hetuUN9bNBG9DfSZnrbEwi7th5ghIAF4nPlm7CdnNspoh6PytrEq8m5Ah6MJtN60tP7_tIJvOXgYks-Le9mezogVrQQNayyqjMFdBO33sseVoWD/s640/2015-11-04+12.24.10-1.jpg" width="640" /></a></div>
<br />
タッチディスプレイの裏側にRaspberry Pi 2を固定した様子が下図になります。<br />
<br />
付属する物品のままではこのディスプレイを立てることができません。そこで、私は手元にあったタミヤの楽しい工作シリーズのパーツを下図のように取り付けました。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLZuxYefNH4ELht3ba6fLkyJBoyA6A70pcj_h41mbqi_gvaqnzOdSDLMUHVAbJb-X7suhghCsjQBgJYU0y_ntHqe94MoQNrkNzAxIa2kiKWCVTzn5w_Bqz2eVcoEwF2la24aIMPo_h7gdH/s1600/2015-11-04+16.01.02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLZuxYefNH4ELht3ba6fLkyJBoyA6A70pcj_h41mbqi_gvaqnzOdSDLMUHVAbJb-X7suhghCsjQBgJYU0y_ntHqe94MoQNrkNzAxIa2kiKWCVTzn5w_Bqz2eVcoEwF2la24aIMPo_h7gdH/s640/2015-11-04+16.01.02.jpg" width="640" /></a></div>
<br />
下記のキットのL字パーツが使えるのではないかと思います。<br />
<ul>
<li><a href="http://www.tamiya.com/japan/products/70183armset/index.htm" target="_blank">ユニバーサル<span id="goog_1821813088"></span><span id="goog_1821813089"></span>アームセット(オレンジ)</a></li>
<li><a href="http://www.tamiya.com/japan/products/70172plate/index.htm" target="_blank">ユニバーサルプレートL(210×160mm)</a></li>
</ul>
さらに、厚みを出すためにユニバーサルアームの切れ端を挟み、楽しい工作シリーズの3mm径のビスで固定しています。<br />
<br />
<a href="http://swag.raspberrypi.org/collections/frontpage/products/raspberry-pi-7-inch-touchscreen-display" target="_blank">海外のショップ</a>ではタッチディスプレイ用のフレームも合わせて購入できるところもあるようで、ちょっとうらやましいところです。日本では下記で同じものが入手できるようです(どちらもケースのみの価格です)
<br />
<ul>
<li><a href="https://www.switch-science.com/catalog/2564/" target="_blank">Raspberry Pi用 7インチ タッチスクリーン付き液晶ディスプレイ用ケース(黒)(SWITCHSCIENCE)</a></li>
<li><a href="http://www.amazon.co.jp/dp/B015LTADG0" target="_blank">Pimoroni フレーム スタンド for Raspberry Pi 7" タッチスクリーン ディスプレイ(amazon)</a></li>
</ul>
なお、本書のように電子工作を行う場合、Raspberry PiのGPIOポートが手元になければいけません。しかし、上図のようにタッチディスプレイの裏にRaspberry Piを固定するとGPIOを用いるのが難しくなります。<br />
<br />
そこで、下図のように、GPIOのピンを引き出し、ブレッドボード上で全てのピンを利用できるようにします。タッチディスプレイに必要な5VとGNDもこのブレッドボードからとるようにしています。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZoZtshIfp20oPIvEyXVBMnhW3kXaDRh1QCbvKpLEuebIcvwuOxQh3PO3noJLNVUqXOBx_UeF9wdMMMlVg6ASHw3IBeN0jSDs3sKRLRkZWbbd8bD532WJRA6VRrHWZBC-wAJDuB3Pb4QyP/s1600/2015-11-04+16.04.16.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZoZtshIfp20oPIvEyXVBMnhW3kXaDRh1QCbvKpLEuebIcvwuOxQh3PO3noJLNVUqXOBx_UeF9wdMMMlVg6ASHw3IBeN0jSDs3sKRLRkZWbbd8bD532WJRA6VRrHWZBC-wAJDuB3Pb4QyP/s640/2015-11-04+16.04.16.jpg" width="640" /></a></div>
<br />
GPIOをブレッドボードに引き出すためには、例えば下記の商品があります。上の写真ではSWITCHSCIENCEさんのものを購入して用いています。<br />
<br />
これらの商品は、はんだづけが必要なキットであることが多いと思います。<br />
<ul>
<li><a href="https://www.switch-science.com/catalog/2074/" target="_blank">Raspberry Pi B+用T型I/O延長基板(SWITCHSCIENCE)</a></li>
<li><a href="http://akizukidenshi.com/catalog/g/gK-08892/" target="_blank">ラズベリーパイB+/A+用ブレッドボード接続キット(秋月電子通商)</a></li>
<li><a href="http://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4KZB" target="_blank">Raspberry Pi B+用ブレッドボード接続T型基板キット(せんごくネット通販)</a></li>
<li><a href="http://eleshop.jp/shop/g/gEA2125/" target="_blank">Raspberry Pi モデルB+ GPIOブレイクアウトKIT(共立エレショップ)</a></li>
</ul>
<br />
なお、上図の黒いフラットケーブルの向きは、間違った向きにも取り付けられるようになっています。正しい向きに取り付けないとタッチディスプレイや演習で作成する回路を破損する恐れがありますのでご注意ください。この件も含め、<b>本ページの内容を実行する際は全て自己責任でお願いします。</b><br />
<br />
また、この40ピンフラットケーブル(リボンケーブル)ですが、上の写真のSWITCHSCIENCEさんのものはかろうじて使える長さであるものの、もう少し長いと配置に余裕ができて嬉しいところです。探してみたのですが、なかなか見つかりませんのでしたので、下記のものを購入して自作しました。
<br />
<ul>
<li><a href="http://jp.rs-online.com/web/p/flat-ribbon-cable/2899975/" target="_blank">FPC/FFCケーブル, 40芯, 全長:5m</a></li>
<li><a href="http://jp.rs-online.com/web/p/idc-connectors/4542429/?origin=PSF_435693|alt" target="_blank">リボンケーブルコネクタ, メス, 40極, 2列</a>(2個必要)</li>
</ul>
RSコンポーネンツですので、個人での利用は若干面倒かもしれないのがネックですね。作成の際は<a href="https://www.youtube.com/watch?v=sMiRoXY_oZg" target="_blank">こちらの動画</a>を参考にしました。万力(バイス)が必要ですが、amazonで1000円前後で購入できます。<br />
<br />
<h3>
Raspberry Piの設定</h3>
比較的新しいRaspbianでは、インストール時から問題なくディスプレイが映るはずです。
<br />
<br />
デスクトップが起動した後、デスクトップの描画領域がディスプレイの表示領域より狭い場合、
設定アプリケーションの「システム(System)」→「オーバースキャン(Overscan)」を「無効(Disable)」に設定してから再起動しましょう。以後は800x480の解像度で利用可能になります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6sjWZuPB6bh8FSIpNYRdoE_vSADRYctlyFTZ79qSRfJ63NhaWIDynR1WGpXmzoJimNq9UXt2DMFMlyOrqoAZN-aTdil16E2hzqDaxAOAvGNp5ubgf-J0Hw6k74IT-OuNdOSSGJuwZ78oE/s1600/2015-11-04-180350_800x480_scrot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6sjWZuPB6bh8FSIpNYRdoE_vSADRYctlyFTZ79qSRfJ63NhaWIDynR1WGpXmzoJimNq9UXt2DMFMlyOrqoAZN-aTdil16E2hzqDaxAOAvGNp5ubgf-J0Hw6k74IT-OuNdOSSGJuwZ78oE/s640/2015-11-04-180350_800x480_scrot.png" width="640" /></a></div>
<br />
また、このタッチスクリーンを公式のケース(例えば秋月電子通商さんの<a href="http://akizukidenshi.com/catalog/g/gP-10757/" target="_blank">こちら</a>)に収めて利用する場合、ディスプレイの上下が逆さな状態でがデフォルトとなってしまっています。このようにディスプレイの描画を上下逆さにしたい場合、下記の設定をすることで映像を180度回転して利用できるようになります。<br />
<br />
まず、ターミナルLXTerminalを起動し、下記のコマンドを実行します。
<br />
<pre class="prettyprint">sudo leafpad /boot/config.txt
</pre>
なお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
<br />
<pre class="prettyprint">sudo mousepad /boot/config.txt
</pre>
このコマンドにより、設定ファイル/boot/config.txtが管理者権限のテキストエディタleafpadで開きますので、末尾に下記の1行を追記します。
<br />
<pre class="prettyprint">lcd_rotate=2
</pre>
追記したら保存してRaspberry Piを再起動します。映像が180度回転された向きでケース入りのタッチディスプレイを利用できるはずです。
<br />
<br />
<h3>
おわりに</h3>
というわけで、Raspberry Pi公式タッチディスプレイの利用法を紹介しました。このタッチディスプレイの評価は、800x480という解像度をどうとらえるかで分かれるだろうと思います。<br />
<br />
10年くらい前のノートPCには、800x600という解像度のものが多くありました。そのようなノートPCを使った経験のある方なら、このタッチディスプレイをそれほど違和感なく使えるのではないでしょうか。<br />
<br />
逆に、広いデスクトップしか使ったことがないという方には厳しいかもしれません。<br />
<br />
個人的には、Rapsberry Pi一式がコンパクトにまとまり、机が広く使えるようになるためとても気に入っています。Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com0tag:blogger.com,1999:blog-6558574304592725596.post-75224398148104921222015-04-18T23:20:00.003+09:002023-03-31T14:18:22.394+09:00インストールしておくと便利なアプリケーションなど<h3>
はじめに</h3>
新しいバージョンのRaspberry Pi が発売されるたびに性能が向上し、Raspberry Piを通常のPCの代替とすることも現実的になってきました。そこで、Raspberry Piを通常のPCのように用いる際、インストールしておくと便利なアプリケーションや設定等をいくつか紹介します。全てのRaspberry Piで動作するはずですが、より快適に動作する環境という意味で、Raspberry Pi 2やPi 3を推奨します。<br />
<br />
なお、このページのコマンドを実行する前に、必ず下記のコマンドをターミナルソフトウェアLXTerminal上で実行し、インストール可能なパッケージのリストを更新しておいてください。<br />
<pre class="prettyprint">$ sudo apt update
</pre>
<br />
<h3>
日本語入力</h3>
日本語入力ソフトウェアのインストールについて、これまで本ページでは ibus-mozc のインストールをお勧めしてきましたが、OS の更新に伴い メニューバー上での挙動がおかしい、などの不具合が増えてきましたので、
別のソフトウェアである fcitx-mozc に切り替えた方が良いかもしれません。
<br /><br />
まず、インストール済の ibus-mozc を削除するには以下のコマンドを実行します。
<pre class="prettyprint">$ sudo apt remove ibus-mozc ibus
</pre>
その後 Raspberry Pi を再起動することで ibus-mozc の削除が完了します。
<br /><br />
そして、fcitx-mozc のインストールは下記のコマンドで行います。
<pre class="prettyprint">
$ sudo apt install fcitx-mozc
</pre>
再起動後、半角/全角キーや Ctrl+スペースキーにより、日本語入力をオンオフできます。
<br /><br />
なお、NOOBS 1.4.1までのRaspbian(Wheezy)の場合、ターミナルソフトウェアLXTerminal上で下記のコマンドを実行すると、uimとuim-anthyと呼ばれるアプリケーションがインストールされ、日本語入力が行えます。ただし、sudoで起動したアプリケーションには日本語入力できませんのでご注意ください。<br />
<pre class="prettyprint">$ sudo apt install uim uim-anthy
</pre>
インストール後は一度Xを再起動してください。「半角/全角」キーを押すか、「Shift+スペース」により日本語入力モードのオンオフを切り替えできます。<br />
<br />
<h3>
日本語フォント</h3>
NOOBS1.4.2~NOOBS 1.9.2のRaspbian(Jessie)には日本語が含まれておらず、日本語表示の設定をすると全て文字化けしてしまいました(NOOBS 1.9.3以降では解決されています)。<br />
また、
NOOBS1.4.1までのRaspbian(Wheezy)ではそのままでも日本語表示できますが、IDLE上で日本語入力するときに文字化けするなどの現象が時々起こります。<br />
<br />
以上のような問題を、日本語フォントを追加インストールすることで解決できます。
まず、Jessie系列のRaspbianにおける文字化けを回避する目的でしたら、下記のフォント一つのみのインスト―ルで構いません。このフォントのインストールにより、日本語表示がおおむね綺麗になります(もちろん好みによりますので個人差はあるでしょうが)。<br />
<pre class="prettyprint">$ sudo apt install fonts-vlgothic
</pre>
それ以外にも、下記のフォントがインストール可能です。<br />
<pre class="prettyprint">$ sudo apt install ttf-kochi-gothic ttf-kochi-mincho fonts-takao fonts-vlgothic fonts-ipafont xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname
</pre>
インストール後はXを再起動すると、メニューなどで用いられるフォントが変わっているはずです。<br />
<br />
<h3>
ブラウザ</h3>
RaspbianのデフォルトのブラウザはNOOBS 1.9.2まではepiphanyでしたが、ブックマーク機能がやや貧弱でした。ブックマーク機能の豊富なブラウザを用いるようにすればより便利にブラウジングできるでしょう。ただし、Raspbianのバージョンにより、利用可能なブラウザは異なります。<br />
<br />
まず、NOOBS 1.9.3以降のRaspbian(JessieまたはStretch)では、Google ChromeのベースとなったChromiumブラウザがデフォルトブラウザとなっています。最新のNOOBSを利用できる方は、これを用いるのが一番簡単でしょう。GoogleのアカウントでChomiumにログインすると、Google Chromeとブックマークや設定を同期することができます。<br />
<br />
ChromiumブラウザがデフォルトではないRaspbian(Jessie)でも、Firefoxの長期サポート版であるFirefox ESRが利用できます。ターミナルを起動して下記のコマンドを実行することでインストールできます。
<br />
<pre class="prettyprint">$ sudo apt install firefox-esr firefox-esr-l10n-ja
</pre>
インストール後は、メニューから「インターネット」→「Firefox ESR」で起動できます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsoO1h0a_nuMVL6pFmMrmKPvToyKbDdJ-hCKrI5CcORfLMT3fUo-VDImh_bG09GihstYFoZT0gCDMU6RBXkzzZywWal-kiYKxyCwC9n16-jVLJJtpfRGvpQm-CLgakgSraXK9i9uICPAiV/s1600/2016-06-20-130551_1366x768_scrot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="356" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsoO1h0a_nuMVL6pFmMrmKPvToyKbDdJ-hCKrI5CcORfLMT3fUo-VDImh_bG09GihstYFoZT0gCDMU6RBXkzzZywWal-kiYKxyCwC9n16-jVLJJtpfRGvpQm-CLgakgSraXK9i9uICPAiV/s640/2016-06-20-130551_1366x768_scrot.png" width="640" /></a></div>
<br />
NOOBS 1.4.1以前に含まれるRaspbian(wheezy)ではバージョンの古いChromiumブラウザをインストールできます。
ターミナルを起動して、下記のコマンドを実行してインストールします。<br />
<pre class="prettyprint">$ sudo apt install chromium-browser chromium-l10n
</pre>
ただし、このChromiumはかなり古いため、Googleアカウントでログインしてブックマークを同期する、というChromiumの大きな特長を利用することができません。ですので、新しいNOOBS (Raspbian)を利用することを検討するのが良いでしょう。<br />
<br />
<h3>
オフィススイートLibreOffice</h3>
Microsoft Office互換のオフィススイートとしてOpenOfficeがありますが、そこから派生したのがLibreOfficeです。
LibreOfficeはNOOBS 1.4.2に含まれるRaspbianからはデフォルトでインストールされていますが、それ以前のバージョンのNOOBSでは
下記のコマンドでインストールします。
<br />
<pre class="prettyprint">$ sudo apt install libreoffice
</pre>
インストール後は、メニューから「オフィス」を辿ると各種アプリを起動できます。Base(データベース)、Calc(表計算)、Draw(お絵描き)、Impress(プレゼンテーション)、Writer(ワープロ)があります。Microsoft Officeで作成されたファイルの読み書きもできますが、RaspbianにはWindowsやMac OS Xと同じフォントはインストールされていませんので、互換機能はオマケ程度に考えた方が良いでしょう。<br />
<br />
<h3>
画像編集ソフトgimp</h3>
Photoshopのように画像編集を行えるソフトウェアがgimpです。下記のコマンドでインストールします。
<br />
<pre class="prettyprint">$ sudo apt install gimp
</pre>
インストール後は、メニューから「グラフィックス」→「GIMP(GNU Image Manipulation Program)」を選択することで起動できます。
<br />
<br />
<h3>
お絵描きソフトinkscape</h3>
Illustratorのようにお絵描きを行えるソフトウェアがinkscapeです。下記のコマンドでインストールします。<br />
<pre class="prettyprint">$ sudo apt install inkscape
</pre>
インストール後は、メニューから「グラフィックス」→「Inkscape」を選択することで起動できます。<br />
<br />
<h3>
テキストエディタgedit</h3>
RaspbianにはLeafpadというテキストエディタがデフォルトでインストールされていますが、書籍で触れたようにこれはプログラミングには向きません。プログラムを書くのに適したテキストエディタとしては例えばgeditがあり、下記のコマンドでインストールします。
<br />
<pre class="prettyprint">$ sudo apt install gedit
</pre>
インストール後は、メニューから「アクセサリ」→「gedit」を選択することで起動できます。
<br />
<br />
<h3>
ターミナルソフトウェアgnome-terminal</h3>
RaspianにはLXTerminalがインストールされており、通常はこれを用います。これでは機能が足りないという場合、gnome-terminalと呼ばれるソフトウェアをインストール用いることができます。私自身は、ターミナルの文字コードをEUC-JPやShift JISに変更したいときにこれを用いています。下記のコマンドでインストールします。
<br />
<pre class="prettyprint">$ sudo apt install gnome-terminal
</pre>
インストール後、メニューには現れませんので、LXTerminalから下記のコマンドで起動します。
<br />
<pre class="prettyprint">$ gnome-terminal
</pre>
デスクトップのメニューから起動したい場合、管理者権限のテキストエディタleafpadで設定ファイルを編集する必要があります。下記のコマンドでそのファイルをleafpadで開きます。
<br />
<pre class="prettyprint">$ sudo leafpad /usr/share/applications/org.gnome.Terminal.desktop
</pre>
なお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
<br />
<pre class="prettyprint">$ sudo mousepad /usr/share/applications/org.gnome.Terminal.desktop
</pre>
ファイルの末尾に下記の行がありますので、先頭に「#」を追記し、保存してRaspberry Piを再起動してください。
<br />
<pre class="prettyprint">OnlyShowIn=GNOME;Unity;
</pre>
つまり、こうですね。
<br />
<pre class="prettyprint">#OnlyShowIn=GNOME;Unity;
</pre>
以上を実行すると、メニューの「システムツール」→「端末」でgnome-terminalを起動できるようになります。
<br />
<br />
さらに、本ページの最後で紹介する「アプリケーション・ランチャー」の追加の方法で「アクセサリ」→「端末」を追加すると、アプリケーション・ランチャーからも起動できるようになりますので興味のある方はお試しください。<br />
<br />
<h3>
画像閲覧のデフォルト</h3>
ファイルマネージャで画像ファイルをダブルクリックすると、Raspbianのバージョンにより、「NetSurf WebBrowser」か「イメージビューワ」のどちらかで開かれるか、あるいは開くアプリケーションを問われるだろうと思います。イメージビューワが、「起動が高速」、「画面解像度に応じて画像が縮小表示される」という点でおすすめできますので、こちらをデフォルトにすることを推奨します。<br />
<br />
方法は、「ファイルマネージャで画像ファイルを右クリック」→「アプリケーションで開く」→「選択したアプリケーションをこのファイルタイプのデフォルトアクションとする、にチェックした上で起動するアプリケーションを選択する」という流れになります。イメージビューワは「アクセサリ」→「イメージビューワ」と辿って選択できます。<br />
<br />
画像閲覧以外にもこの方法でデフォルトアプリケーションを選択できますので、覚えておくと良いでしょう。<br />
<br />
私の場合、他にはPDF閲覧のデフォルトアプリケーションをgimpからPDF Viewer(qpdfview、以前はxpdf)に変更しました。
<br />
<br />
<h3>
アプリケーション・ランチャーやデスクトップへのアイコン追加</h3>
最後に、アプリケーション・ランチャーやデスクトップにアプリケーション起動用のアイコンを追加する方法を紹介します。Raspberry Piのデスクトップの画面上部のバーは「パネル」と呼ばれ、デフォルトでは下図のように左から「メニュー」、「アプリケーション・ランチャー」、「タスクバー」などで構成されます。<br />
<br />
なお、パネルがどのような要素で構成されているかは、パネル上で右クリックし「パネルのアイテムの追加・削除」を選択すると、下図のような画面が現れますので、そちらで知ることができます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBtw88cUbA1Hr8u2RqDwIaPD4vOb6XKqh0AX3JUGr4fAbO2n9cWFMzyP7e52jXJbh4-Kfn28qJq58UW1dKOPbqFBO3t1OT-WijZl6ASOVsBHRdzjZataQdosTmAqbw5KB33z3A8xRnvh6k/s1600/ui01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBtw88cUbA1Hr8u2RqDwIaPD4vOb6XKqh0AX3JUGr4fAbO2n9cWFMzyP7e52jXJbh4-Kfn28qJq58UW1dKOPbqFBO3t1OT-WijZl6ASOVsBHRdzjZataQdosTmAqbw5KB33z3A8xRnvh6k/s640/ui01.png" width="640" /></a></div>
<div>
<br />
まずはアプリケーション・ランチャーにアイコンを追加する方法です。<br />
<br />
デフォルトでアプリケーション・ランチャーにいくつか存在するアイコンの上で右クリックし、「アプリケーション・ランチャーSettings」を選択します。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLCiQqQqJbc0reTv2y9sfuEndFOq5RP4usaq7hYcbwx8N09ZRdG2oUqj7hsxPs85CQcbSEQgToIevnMwmJBHT-Lp2eh7il9wFJXr6PrLXu1FfXMxaycVygSuVyg5RXPmnndAeM6bTWVl_l/s1600/ui02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLCiQqQqJbc0reTv2y9sfuEndFOq5RP4usaq7hYcbwx8N09ZRdG2oUqj7hsxPs85CQcbSEQgToIevnMwmJBHT-Lp2eh7il9wFJXr6PrLXu1FfXMxaycVygSuVyg5RXPmnndAeM6bTWVl_l/s640/ui02.png" width="640" /></a></div>
<div>
<br />
すると、下図のようにアプリケーション・ランチャーの設定画面が現れます。<br />
<br />
右側にインストールされているアプリケーションの一覧が現れますので、どれか一つを選択肢、「追加」ボタンを押すと左側にコピーされ、アプリケーション・ランチャー上に表示されます。さらに「上へ」ボタンで好みの位置に移動します。<br />
<br />
ランチャのアイコンのどれかを削除したい場合もこの設定画面を用います。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWj8dGK1YzWKv7LdE-C2nDsdGZLdCwyQRxax7HBM9k2XqpTXHSv_h1H_4Ij-n73VD3rV5errRM5qrJcjyMuFuyS7NQFl6VisYWDMaSoyYyzW3kdH94dn7ItClCysvAb7qWpdJlWxDYGAWK/s1600/ui03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="475" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWj8dGK1YzWKv7LdE-C2nDsdGZLdCwyQRxax7HBM9k2XqpTXHSv_h1H_4Ij-n73VD3rV5errRM5qrJcjyMuFuyS7NQFl6VisYWDMaSoyYyzW3kdH94dn7ItClCysvAb7qWpdJlWxDYGAWK/s640/ui03.png" width="640" /></a></div>
<div>
<br />
実際に、上でインストールしたChromiumブラウザのアイコンを追加した様子が下図です。<br />
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihKMZwNXh-7GgrO-stCqN3UUCHHTGbEeWfZ5_2TeXbz0t27_XZwaICbylHFV3qUYFO1pPtCgHF3BYpUZxXw-ZwR-Uq3psaNnhdLZH9-dTOm4s5Ssb4Nnson3XLE8cuu3mccYvXgDQH9o_M/s1600/ui04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihKMZwNXh-7GgrO-stCqN3UUCHHTGbEeWfZ5_2TeXbz0t27_XZwaICbylHFV3qUYFO1pPtCgHF3BYpUZxXw-ZwR-Uq3psaNnhdLZH9-dTOm4s5Ssb4Nnson3XLE8cuu3mccYvXgDQH9o_M/s1600/ui04.png" /></a></div>
<div>
<br />
次に、デスクトップ上にアイコンを追加する方法です。下図のように、追加したいアプリケーションをメニューからたどります。そして、アプリケーション名の上で右クリックし、「デスクトップに追加」を選択します。<br />
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1NrfJls-pCKjMQDivsJ_8qUmK6HdjOZKx4nXHapgHE4hLcORUvjGOn_hi_3Tr4P2ZYYTdz0vQEIBDC6kktm56OVAOMBZpF-nZr1UeMn59t2C_fbfERsSGFeTnC2H5Dzkstabf1jivI0Di/s1600/ui05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="387" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1NrfJls-pCKjMQDivsJ_8qUmK6HdjOZKx4nXHapgHE4hLcORUvjGOn_hi_3Tr4P2ZYYTdz0vQEIBDC6kktm56OVAOMBZpF-nZr1UeMn59t2C_fbfERsSGFeTnC2H5Dzkstabf1jivI0Di/s640/ui05.png" width="640" /></a></div>
<div>
<br />
以上で、デスクトップ上にアプリケーション起動用のアイコンが現れます。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS7dor87VKp8hdTc7px7xbod7_yL1vVsOpGwqL18np33Nofrx_04SbYb5YzCVu7TJCquflstGl_ZmCbhWn3XxNXIFXXKDRgksAm6ou1cBmUSaRCDPolfAmNICkrxJN5ED00fl8HUfE_0dV/s1600/ui06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS7dor87VKp8hdTc7px7xbod7_yL1vVsOpGwqL18np33Nofrx_04SbYb5YzCVu7TJCquflstGl_ZmCbhWn3XxNXIFXXKDRgksAm6ou1cBmUSaRCDPolfAmNICkrxJN5ED00fl8HUfE_0dV/s1600/ui06.png" /></a></div>
<br />Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com0tag:blogger.com,1999:blog-6558574304592725596.post-49126649080993083062015-04-16T15:45:00.000+09:002018-02-22T12:35:22.273+09:00ブラウザepiphanyの検索エンジンを変更するRaspberry Pi 2が発売されましたが、これまでのRaspberry Piに比べ、<br />
<ul>
<li>プロセッサの動作周波数が約1.3倍に(700MHz→900MHz)</li>
<li>CPUがシングルコア(1コア)からクアッドコア(4コア)に</li>
</ul>
<div>
などの変更が行われたため、動作が快適になっています。</div>
<div>
<br /></div>
<div>
特に、ブラウザepiphanyでのインターネット閲覧はデータ量の多くないページならば快適に閲覧することができます。</div>
<div>
<br /></div>
<div>
このepiphanyブラウザのアドレス欄に文字列を入力すると、DuckDuckGoというサイトでの検索が行われます。これをGoogle、Yahoo、Bingなどの検索エンジンに変更できると便利です。ここではその方法を紹介します(<a href="http://www.lifehacker.com.au/2015/02/how-to-change-the-raspberry-pis-epiphany-browser-to-use-google/" target="_blank">参考にしたサイト</a>)。<br />
<br />
まず、ターミナルソフトウェアLXTerminal上で下記のコマンドを実行し、設定ファイルをテキストエディタleafpadで開きます。</div>
<pre class="prettyprint">$ sudo leafpad /usr/share/glib-2.0/schemas/org.gnome.epiphany.gschema.xml
</pre>
この設定ファイルは長いファイルになっていますので、内容を破壊しないよう注意してください。そして、12行目に下記のように検索サイトを設定している箇所がありますので見つけます。<br />
<pre class="prettyprint"><key type="s" name="keyword-search-url">
<default>'<strong>https://duckduckgo.com/?q=%s&t=raspberrypi</strong>'</default>
<summary>URL Search</summary>
<description>Search string for keywords entered in the URL bar.</descri
ption>
</key>
</pre>
太字で示した、一重引用符(')で囲われた部分が検索エンジンを示しています。この部分を下記の3つのうちお好みの1つに差し替えてください。上から順にGoogle、Yahoo、Bingとなっています。一重引用符(')を消さないよう注意しましょう。<br />
<pre class="prettyprint">https://www.google.co.jp/search?q=%s
http://search.yahoo.co.jp/search?p=%s
http://www.bing.com/search?q=%s
</pre>
変更が終わったら保存してleafpadを閉じます。<br />
<br />
次に、その変更を反映する作業です。まず、必要なソフトウェアパッケージを下記のコマンドでインストールします。これは一度実行すれば以後必要ありませんし、既にインストールされている、という方もいるでしょう。<br />
<pre class="prettyprint">$ sudo apt-get update
$ sudo apt-get install libglib2.0-bin
</pre>
インストールが終わったら、ターミナルで下記のコマンドを実行します。<br />
<pre class="prettyprint">$ sudo glib-compile-schemas /usr/share/glib-2.0/schemas
</pre>
それが終わったらepiphanyを再起動し、アドレス欄に何か文字列を入力してみてください。検索サイトが変更されていると思います。
<br />
<br />
なお、ブラウザなどに日本語を入力する方法は「<a href="https://raspibb.blogspot.com/2015/04/blog-post.html" target="_blank">インストールしておくと便利なアプリケーションなど</a>」に記されています。Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com0tag:blogger.com,1999:blog-6558574304592725596.post-15238855616254958362015-04-06T20:27:00.000+09:002020-06-20T15:46:50.005+09:00プロキシ(Proxy)環境下での本書の演習の実行<h3>
はじめに</h3>
職場や学校などでは、ネットワークに接続するためにプロキシ(Proxy)サーバーと呼ばれるものを介する場合が多いと思います。そのような環境下では、本書でネットワーク接続を必要とする演習をそのままでは実行できません。<br />
<br />
下記の設定を行えば、全ての演習を実行できるようになりますが、上級者向けの内容ですので、職場や学校のネットワーク管理者など、ネットワークに詳しい方と一緒に作業することをお勧めします。<br />
<br />
<h3>
aptコマンド</h3>
ソフトウェアのインストールの際などに実行するaptコマンドを用いるための方法です。<br />
<br />
まず、ターミナルソフトウェアLXTerminalを起動し、以下のようにテキストエディタleafpadで設定ファイル/etc/apt/apt.confを作成します。
<br />
<pre class="prettyprint">$ sudo leafpad /etc/apt/apt.conf
</pre>
なお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
<pre class="prettyprint">$ sudo mousepad /etc/apt/apt.conf
</pre>
このファイルに下記の内容を記述します。「プロキシサーバー名」や「ポート番号」は環境によって異なりますので、ネットワーク管理者にお尋ねください。<br />
<pre class="prettyprint">Acquire::http::proxy "http://プロキシサーバー名:ポート番号/";
Acquire::https::proxy "https://プロキシサーバー名:ポート番号/";
Acquire::ftp::proxy "ftp://プロキシサーバー名:ポート番号/";
Acquire::socks::proxy "socks://プロキシサーバー名:ポート番号/";
</pre>
記述が終わったら、ファイルを保存してからleafpadを閉じてかまいません。
<br />
<br />
以上で、「sudo apt install (パッケージ名)」、「sudo apt update」などのコマンドが実行できるようになります。<br />
<br />
<h3>
wgetコマンドやブラウザなど (Raspbian Stretch編)</h3>
次に、ファイルのダウンロードなどで用いるwgetコマンドや、ブラウザを利用するための方法です。まずは、RaspbianのStretch用の方法を記します。
<br /><br />
ターミナルソフトウェアLXTerminalを起動し、以下のように管理者権限のテキストエディタleafpadで設定ファイル/etc/environmentを編集用に開きます。
<br />
<pre class="prettyprint">$ sudo leafpad /etc/environment
</pre>
なお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
<br />
<pre class="prettyprint">$ sudo mousepad /etc/environment
</pre>
Raspbianのバージョンにもよりますが多くの場合 /etc/environment は何も書かれていない空のファイルですので、そのまま以下の3行を記入してください。「プロキシサーバー名」や「ポート番号」は環境によって異なりますので、ネットワーク管理者にお尋ねください。もし何かが書かれていた場合も、その内容を壊さないように注意しながら、ファイルの末尾に以下の内容を記します。
<br />
<pre class="prettyprint">http_proxy=http://プロキシサーバー名:ポート番号/
https_proxy=http://プロキシサーバー名:ポート番号/
ftp_proxy=http://プロキシサーバー名:ポート番号/
</pre>
以上の設定を記述したらファイルを保存してleafpadを閉じます。この設定を読み込むためにRaspberry Piを再起動してください。再起動後、ブラウザでインターネット上のウェブサイトを閲覧できるようになっているはずです。
<br />
<br />
<h3>
wgetコマンドやブラウザなど (Raspbian Jessie および Wheezy編)</h3>
同じく wgetコマンドやブラウザを利用するための、
Raspbian Jessie や Wheezy 用の方法を記します。
<br /><br />
ターミナルソフトウェアLXTerminalを起動し、以下のようにテキストエディタleafpadで設定ファイル.bashrcを編集用に開きます。
<br />
<pre class="prettyprint">$ leafpad .bashrc
</pre>
なお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
<pre class="prettyprint">$ mousepad .bashrc
</pre>
.bashrcファイルは既存のファイルなので様々な内容が書かれています。この内容を壊さないように注意しながら、ファイルの末尾に下記の内容を追記します。「プロキシサーバー名」や「ポート番号」は環境によって異なりますので、ネットワーク管理者にお尋ねください。
<br />
<pre class="prettyprint">export http_proxy=http://プロキシサーバー名:ポート番号/
export https_proxy=http://プロキシサーバー名:ポート番号/
export ftp_proxy=http://プロキシサーバー名:ポート番号/
</pre>
以上の設定を記述した後、この設定を読み込む必要がありますが、そのためにはRaspberry Piを再起動してしまうのが簡単です。
<br />
<br />
再起動後、ブラウザでProxyを有効にするにはターミナルからコマンドでブラウザを起動しなければなりません。ご注意ください。
<br />
Chromiumブラウザの場合
<br />
<pre class="prettyprint">chromium-browser &
</pre>
epiphanyブラウザの場合
<br />
<pre class="prettyprint">epiphany &
</pre>
<br />
<h3>
gitプロトコルに対するgitコマンド</h3>
以上で本書の内容のほとんどを実行できるようになりましたが、wiringPiをインストールするために本書213ページで紹介したコマンド「git clone git://git.drogon.net/wiringPi」だけはまだ実行できません。それを可能にする方法を記します。なお、NOOBS 1.4.2以降に含まれるRaspbian(JessieまたはStretch)には、wiringPiはデフォルトでインストールされていますので、上記コマンドの実行の必要はありませんのでご注意ください。<br />
<br />
まず、ターミナルソフトウェアLXTerminalを起動し、以下のようにcorkscrewというコマンドをインストールします。
<br />
<pre class="prettyprint">$ sudo apt-get install corkscrew
</pre>
次に、以下のようにテキストエディタleafpadでホームディレクトリ上にgit-proxy.shという名前のファイルを作成します。
<br />
<pre class="prettyprint">$ leafpad git-proxy.sh
</pre>
なお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
<br />
<pre class="prettyprint">$ mousepad git-proxy.sh
</pre>
この中に、下記のような3行を記します。「プロキシサーバー名」や「ポート番号」は環境によって異なりますので、ネットワーク管理者にお尋ねください。
<br />
<pre class="prettyprint">#!/bin/bash
CORKSCREW=`which corkscrew`
$CORKSCREW プロキシサーバー名 ポート番号 $1 $2
</pre>
記述したら保存してからleafpadを閉じて構いません。次に、そのままLXTerminal上で下記のコマンドを実行し、git-proxy.shを実行可能ファイルにします。<br />
<pre class="prettyprint">$ chmod a+x git-proxy.sh
</pre>
最後に、leafpadで設定ファイル.bashrcを開きます。<br />
<pre class="prettyprint">$ leafpad .bashrc
</pre>
なお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
<pre class="prettyprint">$ mousepad .bashrc
</pre>
このファイルの末尾まで移動し、下記の1行を追記します。<br />
<pre class="prettyprint">export GIT_PROXY_COMMAND=/home/pi/git-proxy.sh
</pre>
記述したら保存してleafpadを終了します。その後、Raspberry Piを再起動して設定を再読み込みすれば、
wiringPiのダウンロード用のコマンド<br />
<pre class="prettyprint">$ git clone git://git.drogon.net/wiringPi
</pre>
が実行できるようになっているはずです。
<br />
<br />
<h3>
時刻合わせ</h3>
プロキシ環境下ではRaspberry Piの時刻合わせが機能しない場合が多いと思います。そのような場合、もし職場や学校内に時刻合わせサーバーが存在すれば、下記の方法で時刻を合わせることができます。<br />
<br />
まず、RaspbianのStretch (NOOBS 2.4.3)以降の場合です。 時刻合わせにsystemd-timesyncdが用いられていますので、その設定を行います。
leafpadで設定ファイル/etc/systemd/timesyncd.confを開きます。<br />
<pre class="prettyprint">$ sudo leafpad /etc/systemd/timesyncd.conf
</pre>
なお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
<pre class="prettyprint">$ sudo mousepad /etc/systemd/timesyncd.conf
</pre>
ファイル内で下記のような箇所を見つけます。
<br />
<pre class="prettyprint">(略)
[Time]
#NTP=
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3
.debian.pool.ntp.org
</pre>
このうち、NTPに関する行の先頭の「#」を削除し、「=」の右辺にお使いの時刻合わせサーバーを記述します。
時刻合わせサーバが存在するかどうかはネットワーク管理者にお尋ねください。<br />
記述後、Raspberry Piを再起動すれば時刻が合うようになります。
<br />
<br />
一方、RaspbianのWheezy/Jessie (NOOBS 2.4.2まで) の場合、時刻合わせにntpdが用いられていますので、その設定を行います。
<br />
leafpadで設定ファイル/etc/ntp.confを開きます。<br />
<pre class="prettyprint">$ sudo leafpad /etc/ntp.conf
</pre>
ファイル内で下記のような箇所を見つけ、編集します。時刻合わせサーバが存在するかどうかはネットワーク管理者にお尋ねください。<br />
<pre class="prettyprint">(略)
# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example
server その環境の時刻合わせサーバ ←時刻合わせサーバが存在すれば記す
# pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will
# pick a different set every time it starts up. Please consider joining the
# pool: <http://www.pool.ntp.org/join.html>
#server 0.debian.pool.ntp.org iburst ←ここは#でコメントアウト
#server 1.debian.pool.ntp.org iburst ←ここは#でコメントアウト
#server 2.debian.pool.ntp.org iburst ←ここは#でコメントアウト
#server 3.debian.pool.ntp.org iburst ←ここは#でコメントアウト
(略)
</pre>
記述後、Raspberry Piを再起動し、数分待てば時刻が合うようになります。
<br />
<br />
<h3>
カーネルやファームウェアのアップデートに用いるrpi-updateコマンド</h3>
Raspberry Piのカーネルやファームウェアのアップデートにはrpi-updateと呼ばれるコマンドを用いますが、やはりプロキシ環境下では実行できません。
本書内ではこのコマンドを使いませんが、参考のためにその方法を記しておきます。
<br />
<br />
ターミナルソフトウェアLXTerminalを起動し、ホームディレクトリで以下のコマンドを順に実行します。<br />
<pre class="prettyprint">$ sudo -E rpi-update
</pre>
補足すると、「-E」というオプションを付ける必要があるというわけです。
<br />
<br />
<h3>
プロキシ(Proxy)環境下での本書9章と10章の実行</h3>
さて、以上で本書の内容をプロキシ環境下で学べるようになりましたが、9章と10章を学ぶ際にはもう一点、注意すべきことがあります。<br />
<br />
これらの章では、PCやスマートフォンのブラウザを通して、同一ネットワーク内のRaspberry Piにアクセスし、回路を制御します。この際の模式図が下図です。このPCやスマートフォンでは、通常のインターネットへのアクセスの際にプロキシサーバを経由しなければなりませんが、同一ネットワーク内のRaspberry Piへアクセスする場合は、プロキシサーバーを経由せず直接アクセスせねばなりません。<br />
<br />
そのために、Raspberry PiのIPアドレス(ここでは192.168.1.3とします)を「プロキシの例外サイト」としてあらかじめ登録しておく必要があります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0hnDc0UPQ6D3ovOlGH6CvuiTJOkw9AxwAQJzieRWA2H_SVPJLfgaBHc6WnTjgP11euZJcr2hAmjW7nFxnylLvFphIua3asnX6E-l2GrBX66VdTRluCn0BzaFrbh0iqBK3k9Y2dcZIAZ4x/s1600/proxy1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0hnDc0UPQ6D3ovOlGH6CvuiTJOkw9AxwAQJzieRWA2H_SVPJLfgaBHc6WnTjgP11euZJcr2hAmjW7nFxnylLvFphIua3asnX6E-l2GrBX66VdTRluCn0BzaFrbh0iqBK3k9Y2dcZIAZ4x/s1600/proxy1.png" width="376" /></a></div>
<br />
Windowsの場合の例外サイトの設定法を示したのが下図です。「インターネットオプション」から「LANの設定」を辿るとプロキシサーバーを設定できます。さらに「詳細設定」ボタンをクリックすることで、例外サイトを設定できます。図では192.168.1.3が登録されていることがわかるでしょう。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHfkyUeL9AIKu4EFdHas4CUxHa1x4ZnA2Muv3-0l3_KTSKc-HOxkO_3p2LXE09iQZMsUfDV_DrLX6VUbbcMhYO8ukZGp2wufnjq0LbRPOnNgTgwAEku0NLSOm5n-gR0jkln2uC29wAYPyu/s1600/proxy2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHfkyUeL9AIKu4EFdHas4CUxHa1x4ZnA2Muv3-0l3_KTSKc-HOxkO_3p2LXE09iQZMsUfDV_DrLX6VUbbcMhYO8ukZGp2wufnjq0LbRPOnNgTgwAEku0NLSOm5n-gR0jkln2uC29wAYPyu/s1600/proxy2.png" width="640" /></a></div>
<br />
この「例外サイト」の設定はMac OSXにも存在します。「システム環境設定」→「ネットワーク」<br />
→「詳細」→「プロキシ」です。<br />
<br />
しかし、iOS(iPhoneやiPad)の場合、この例外サイトの設定は存在しないため、iOSでプロキシの設定自体を無効にする(すなわち、上の図でインターネットへのアクセスができない状態にする)しかありません(pacファイルと呼ばれるものをサーバーに設置してこの問題を回避する方法もありますが、ここでは割愛します)。<br />
<br />
androidの場合、Wifiの設定に例外サイトの設定があるのですが、この設定が機能しないことも多く、やはりプロキシの設定を無効にしてRaspberry Piにアクセスせざるを得ない場合があります。<br />
<br />Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com2tag:blogger.com,1999:blog-6558574304592725596.post-17396728860954087822015-01-07T18:38:00.000+09:002020-03-26T23:46:31.185+09:00サーボモーターをPCやスマートフォンから角度制御する<h3>
はじめに</h3>
<b>(注)WebIOPiをRaspberry Pi 2やRaspberry Pi 3で用いる場合、必ず「<a href="https://raspibb.blogspot.jp/2016/02/blog-post.html" target="_blank">本書発売後の追加情報</a>」の手法でインストールしてください。</b><br />
<br />
本書ではサーボモーターを
<br />
<div>
<ul>
<li>8.6 PWM信号によるサーボモーターの角度制御</li>
</ul>
</div>
という節で取り扱いました。<br />
<br />
<div>
その際「入力部」として</div>
<div>
<ul>
<li>半固定抵抗のつまみ→AD変換→Raspberry Pi</li>
</ul>
</div>
<div>
という構成を用い、つまみの角度を読み取りました。そしてその角度に応じて</div>
<div>
<ul>
<li>Raspberry Pi上のwiringPiライブラリ→サーボモーター(1個)</li>
</ul>
<div>
という流れの「出力部」により、サーボモーターを精度の良いPWM信号で制御しました。</div>
</div>
<div>
<br />
その様子は公式のYoutube動画「<a href="https://www.youtube.com/watch?v=8wbCkBThVy8" target="_blank">ブルーバックス『RaspberryPiで学ぶ電子工作』</a>」でも見ることができます。<br />
<br />
この「入力部」のかわりに、9章で学んだ「WebIOPiを用いたPCやスマートフォンとの連携」の手法を用いると、サーボモーターをPCやスマートフォンから操作することができます。<br />
<br />
ページの都合で本書内では紹介できなかった内容ですが、この補足ページではその方法を紹介します。<br />
<br />
さて、この方法を身につけると、例えば10章で体験した「カメラつきキャタピラ式模型」を改造することで、<br />
<ul>
<li>カメラの上下の向きのサーボモーターによる制御</li>
</ul>
がブラウザを通して可能になります。具体的には、以下の動画のような動作が可能になります。まずは御覧ください。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="allowfullscreen" frameborder="0" height="290" src="https://www.youtube.com/embed/Q4_x7Ikvv3c?rel=0" width="420"></iframe>
</div>
<br />
以下、実現方法を順に紹介します。<br />
<br />
なお、本ページの内容を学ぶ前に「8.6 PWM信号によるサーボモーターの角度制御」および「9章 WebIOPiを用いたPCやスマートフォンとの連携」をあらかじめ学び、必要なライブラリやソフトウェアをインストールしておく必要があります。<br />
<br />
さらに、「カメラつきキャタピラ式模型」の改造まで行う場合は「10.4 キャタピラ式模型にカメラを搭載しよう」まで学んでおく必要があります。<br />
<br />
<h3>
必要な物品</h3>
</div>
必要な物品は下記のようになります。
<br />
<ul>
<li>ブレッドボード</li>
<li>ジャンパーワイヤ(オス-メス、オス-オス)</li>
<li>電池ボックス(単3×4)</li>
<li>サーボモーター1個</li>
</ul>
<div>
さらに、「カメラつきキャタピラ式模型」の改造まで行う場合は「10.4 キャタピラ式模型にカメラを搭載しよう」で作成した模型が必要になります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpjPgYPESdLgJ2AHJLvf77T9nivDEHhE9jSF3Bf5beLxt4mcltRYRW7h5Y3cuQmCVdCUUQgRxiG0J6j19R_eLYPOEkUFox1GpM1EFXXGAnnN2ew-IYqVXsoOyUtqzTuezH_qu3OkBAIsA0/s1600/webiopi-servo-tablet.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpjPgYPESdLgJ2AHJLvf77T9nivDEHhE9jSF3Bf5beLxt4mcltRYRW7h5Y3cuQmCVdCUUQgRxiG0J6j19R_eLYPOEkUFox1GpM1EFXXGAnnN2ew-IYqVXsoOyUtqzTuezH_qu3OkBAIsA0/s640/webiopi-servo-tablet.jpg" width="640" /></a></div>
<br /></div>
<h3>
準備</h3>
ブラウザからサーボモーターを制御するためには、WebIOPiからwiringPiのPythonモジュールWiringPi2-Pythonを呼び出す必要があります。その際、WebIOPiはPython3で動いていますので、WiringPi2-PythonをPython3用にインストールする必要があります。<br />
<br />
「<a href="https://raspibb.blogspot.jp/2016/02/blog-post.html" target="_blank">本書発売後の追加情報</a>」の「p.214:WiringPi2-Pythonのインストール」に従うと、
Python2 および Python3 用の WiringPi2-Python がインストールできますので、それを実行してから以下に進んでください。
<br />
<br />
次に、サーボモーターをブラウザから操作するためのサンプルプログラムをダウンロードし、WebIOPi用のフォルダに移動します。<br />
<pre class="prettyprint">$ wget https://raw.githubusercontent.com/neuralassembly/raspi/master/webiopi-servo.zip
$ unzip webiopi-servo.zip
$ mv 07 08 /usr/share/webiopi/htdocs/bb/
</pre>
なお、このコマンドは9.2.5節で解説した本書のWebIOPi用サンプルのコピーを行っていないと失敗しますのでご注意ください。<br />
<br />
これが済んだ後、下記のコマンドにより、WebIOPi用のフォルダにあるフォルダを確認すると、下記のように01から08までのディレクトリ名が表示されるはずです。<br />
<pre class="prettyprint">$ ls /usr/share/webiopi/htdocs/bb/
01 02 03 04 05 06 07 08
</pre>
これは、 /usr/share/webiopi/htdocs/bb/ ディレクトリにあるファイルやディレクトリを表示する命令です。01~06が本書で用いたサンプルファイルを含むディレクトリ群であり、07がこれから用いるサーボモーター制御用プログラムを含むディレクトリ、08がキャタピラ式模型のカメラを操作するためのプログラムを含むディレクトリです。<br />
<br />
以上が確認できたら準備は終了です。<br />
<br />
<h3>
サーボモーターをPCやスマートフォンから角度制御する</h3>
まずはサーボモーターを制御する例です。必要な回路は下図のようになります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJsLXdc9-jja7QOYDY_vRKQntwqLO5-m_WQghhb02ZiDDEoT3oHZ4jhyphenhyphenpbAJyHr7R44UtllAtKA3AFJ2LNxfWAW3BV8L8vEpyG_ypVEZ7HuLc36Jfx9WQv_6cH3eC-efSCp_U7owyZWrl/s1600/fig09-14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1010" data-original-width="1262" height="512" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWJsLXdc9-jja7QOYDY_vRKQntwqLO5-m_WQghhb02ZiDDEoT3oHZ4jhyphenhyphenpbAJyHr7R44UtllAtKA3AFJ2LNxfWAW3BV8L8vEpyG_ypVEZ7HuLc36Jfx9WQv_6cH3eC-efSCp_U7owyZWrl/s640/fig09-14.png" width="640" /></a></div>
<br />
これは、本書の図8-13から「入力部」に相当するADコンバータと半固定抵抗を取り除いたものです。サーボモータを2個用いる回路図を示しましたが、サーボモーター1個でも問題なく動作します。<br />
<br />
以上が終わったらWebIOPiを起動する準備に移ります。<br />
<br />
まずは、Raspberry PiでWebIOPiが起動していないことをあらかじめ確認しておきます。その方法の詳細は本書に記述されていますが、Raspberry Piを再起動してしまうのが最も簡単です。<br />
<br />
もし、キャタピラ式模型用の設定のように、Raspberry Pi起動時にWebIOPiが自動起動する設定になっている場合、下記のコマンドで自動起動を無効にした後、Raspberry Piを再起動します。<br />
<pre class="prettyprint">$ sudo systemctl disable webiopi
</pre>
さて、WebIOPiが起動されていない状態になったら、管理者権限で設定ファイル /etc/webiopi/config を開き、編集します。leafpadを用いるならば下記のコマンドを実行するのでした。<br />
<pre class="prettyprint">$ sudo leafpad /etc/webiopi/config
</pre>
なお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
<br />
<pre class="prettyprint">$ sudo mousepad /etc/webiopi/config
</pre>
このファイルのなかで[SCRIPTS]セクションを見つけ、起動するマクロを下記のように記述し、保存します。その後テキストエディタは閉じて構いません。<br />
<pre class="prettyprint">myscript = /usr/share/webiopi/htdocs/bb/07/script.py
</pre>
それが済んだら、下記のコマンドでWebIOPiを起動します。<br />
<pre class="prettyprint">$ sudo service webiopi start
</pre>
そして、起動が済んだら、PCやスマートフォンのブラウザから下記のアドレスにアクセスします。<br />
<pre class="prettyprint">http://(Raspberry PiのIPアドレス):8000/bb/07/
</pre>
「http://」や末尾の「/」の記述を忘れないよう注意するのでした。
<br />
<br />
ここまでの流れが上手く行けば、ブラウザ上にスライダーが2つ現れます。典型的なブラウザでのスクリーンショットは下図のようになります。このスライダーをスライドすることで、冒頭で紹介した動画のようにサーボモーターの角度が変化するはずです。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgClijQGmgSMm9I-cuP16gphMGq-75i7RLTSgSyhNTUPVpBDrK5M8gTTSIET6ZjzM0psIgoIZAJTGIE-s99O_1gntefvuvA64fHKWgcO3WPAPL7oHhnQFjdgE-c4M_iS_LsWiK-QuiHlLBJ/s1600/fig09-15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="280" data-original-width="732" height="244" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgClijQGmgSMm9I-cuP16gphMGq-75i7RLTSgSyhNTUPVpBDrK5M8gTTSIET6ZjzM0psIgoIZAJTGIE-s99O_1gntefvuvA64fHKWgcO3WPAPL7oHhnQFjdgE-c4M_iS_LsWiK-QuiHlLBJ/s640/fig09-15.png" width="640" /></a></div>
<br />
なお、このプログラムはArduino Sidekick Basic Kit付属のサーボモーターを対象に記述しました。その他のサーボモーターを用いると、スライダの向きとサーボモーターの回転の向きが逆になる場合があります。<br />
<br />
そのような場合、/usr/share/webiopi/htdocs/bb/07/javascript.js にて、下記の2行を見つけます。そして、この2行目の行頭に「//」を追記して無効化してください。<br />
<pre class="prettyprint">// サーボの回転の向きを逆にしたい場合次の行を無効に
ratio = 1.0 - ratio;
</pre>
無効化後、ブラウザでページを再読み込みすると、サーボモーターの向きが逆転しているはずです。
<br />
<div>
<br /></div>
<h3>
エッセンスの解説</h3>
このプログラムのエッセンスを書籍と同様に解説します。他の例と同様、関連するのは、 /usr/share/webiopi/htdocs/bb/07/ ディレクトリにある下記の4ファイルです。<br />
<ul>
<li>index.html</li>
<li>javascript.js</li>
<li>styles.css</li>
<li>script.py</li>
</ul>
<div>
<br /></div>
<h4>
HTMLファイルindex.html</h4>
9.5節と同様、jQuery UIのスライダを配置しています。9.5節ではRGBフルカラーLEDの三色を変更するためにスライダが3つ必要でしたが、本ページの例では下記の1つだけです。<br />
<pre class="prettyprint"><div id="slider_servo"></div>
</pre>
<h4>
JavaScriptファイルjavascript.js</h4>
スライダの配置はやはり9.5節と同様です。スライダは下記にあるように、0から20の1刻みの値を持ちます。<br />
<pre class="prettyprint">var sliderMin = 0;
var sliderMax = 20;
var sliderStep = 1;
</pre>
スライダを動かした時、下記の関数が実行されます。<br />
<pre class="prettyprint"> var sliderHandler = function(e, ui){
var ratio = ui.value/sliderMax;
// サーボの回転の向きを逆にしたい場合次の行を無効に
ratio = 1.0 - ratio;
webiopi().callMacro("setHwPWM", [ratio, commandID++]);
};
</pre>
関数の最後のあるように、Pythonスクリプト内にあるsetHwPWMマクロが、0.0~1.0に変換されたスライダの位置ratioと、何番目の命令送信かを示すcommandIDという引数付きで送られます。commandIDが必要な理由は、本書269ページを御覧ください。<br />
<br />
<h4>
Pythonスクリプトscript.py</h4>
Pythonスクリプト内では、wiringPiの手法でPWMを生成する記述をしています。周波数やデューティ比の設定方法を知るには8.6節の解説が役に立つでしょう。JavaScriptから呼ばれるsetHwPWMマクロは下記のように定義されています。<br />
<pre class="prettyprint">@webiopi.macro
def setHwPWM(duty, commandID):
wiringpi.pwmWrite(18, getServoDutyForWebIOPi(float(duty)))
</pre>
getServoDutyForWebIOPi関数はこのファイル内部で下記のように定義されています。wiringPi用のデューティー比の計算は219~220ページを参考にしてください。<br />
<pre class="prettyprint">def getServoDutyForWebIOPi(val):
val_min = 0.0
val_max = 1.0
servo_min = 36 # 50Hzで, 0.7ms
servo_max = 102 # 50Hzで, 2.0ms
duty = int((servo_max-servo_min)*(val-val_min)/(val_max-val_min) + servo_min)
return duty
</pre>
<h3>
</h3>
<h3>
カメラ付きキャタピラ式模型のカメラをサーボモーターで動かす(機体編)</h3>
<div>
以上でサーボモーターをブラウザから角度制御できるようになりました。その応用として、本書10章の最後に作成した「カメラ付きキャタピラ式模型」のカメラを上下方向に動かせるようにしてみましょう。どのような動作が可能になるのかは本ページ冒頭の動画でご覧頂けます。</div>
<div>
<br /></div>
<div>
模型の概観は下図のようになります。</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNcevEQrmgF2adjPhBKTK2VL93Y457gfCtnxBIxKFYy7aAgNGrxvGJ4rLKxIM8sxp6zSRB7Lgq5Cpi38WVXoocM9tqyhy3Fty6C1K3b3J0Y5qWGPxXy-pPJoQzIfZjG082NfgamE80p2On/s1600/2015-01-06+12.55.36.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNcevEQrmgF2adjPhBKTK2VL93Y457gfCtnxBIxKFYy7aAgNGrxvGJ4rLKxIM8sxp6zSRB7Lgq5Cpi38WVXoocM9tqyhy3Fty6C1K3b3J0Y5qWGPxXy-pPJoQzIfZjG082NfgamE80p2On/s640/2015-01-06+12.55.36.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
書籍で紹介したように、この模型は</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<ul>
<li>機体に用いるパーツとして可能な限りTAMIYAの模型キットのものを用いる</li>
<li>搭載する回路は半田付けではなく、ブレッドボードで実現する</li>
<li>用いる工具はニッパとドライバ程度とする</li>
</ul>
<div>
という方針で作成していますので、サーボモーターの取り付けもその方針に従いました。</div>
<div>
<br /></div>
<div>
今回新たに取り付けたサーボモーター部のみを拡大したものが下図です。サーボモーターはArduino Sidekick Basic Kit付属のものを用いました。他のサーボモーターでももちろん可能ですが、サーボモーターの取り付け法は用いるモーターによって変更が必要になるかもしれません。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYcH_LvavJish4pSbeFrt3-ac5Cll4ntRqmmpVvq6bSF9RqLFs6QzFNt8oUcCKQnqe_bKeslx9-sQ_vCs8kGYXBkx9gkvWv5l1hRLBE_ZTlLk_YYLuBG-dqRDemQOHmImz5jliy5Jst_J/s1600/caterpiller_explanation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="233" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYcH_LvavJish4pSbeFrt3-ac5Cll4ntRqmmpVvq6bSF9RqLFs6QzFNt8oUcCKQnqe_bKeslx9-sQ_vCs8kGYXBkx9gkvWv5l1hRLBE_ZTlLk_YYLuBG-dqRDemQOHmImz5jliy5Jst_J/s1600/caterpiller_explanation.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
図中、赤字はTAMIYAの工作キットのパーツ、青字はサーボモーター付属のパーツを表しています。軸受け材からサーボモーターを吊り下げているサーボホーンは、長いものをニッパーで半分に切って用いました。</div>
<br />
サーボモーターのサーボホーンをL型アームに取り付ける箇所には2mm径(M2)ワッシャーを用いました。このパーツのみ、TAMIYAの模型キットにもサーボモーターにも付属しないパーツですが、amazonなどの通販サイトで購入することができます。<br />
<br />
このように、カメラとサーボモーターの取り付けは、耐久性やメンテナンス性を考えると全てねじ止めするのが理想です。しかし、試してみるとわかりますが、これは工夫が必要な作業です。どうしても難しい場合は両面テープなどによる仮止めでも良いと思います。<br />
<br />
なお、2016年4月、Raspberry Piのカメラモジュールのバージョン2が発売になりました。こちらでもここで紹介するプログラムは動作します。<br />
<br />
なお、二段構造の上部(Raspberry Piが乗った部分)のプレートですが、カメラと電池ボックスがぶつからないよう、少し前にずらして取り付けなおしています。<br />
<br />
<h3>
カメラ付きキャタピラ式模型のカメラをサーボモーターで動かす(回路編)</h3>
カメラを動かせるよう変更したキャタピラ式模型を動かすための回路は下図のようになります。本書の図10-6に、サーボモーターを追加した回路になっています。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw6iRGhMuGt1q8PAa1zK4xCA7_Al8G4-vfKP0eu8boa-tRbOXoEwFRs_HakEzQGV1y5YSnpBpcgpGPdXh0sMrm86lR4OYuSvj9IjtJ4ujvixiKHh3GFbrjRvJzWyCdMrz8k_3ocyOER-2f/s1600/fig-blogmodel.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1261" data-original-width="1444" height="558" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw6iRGhMuGt1q8PAa1zK4xCA7_Al8G4-vfKP0eu8boa-tRbOXoEwFRs_HakEzQGV1y5YSnpBpcgpGPdXh0sMrm86lR4OYuSvj9IjtJ4ujvixiKHh3GFbrjRvJzWyCdMrz8k_3ocyOER-2f/s640/fig-blogmodel.png" width="640" /></a></div>
<br />
準備ができたらWebIOPiを起動する準備を行います。この作業を行う方は、既に本書の10章まで終えているはずですので、簡単に解説します。<br />
<br />
まず、管理者権限で設定ファイル /etc/webiopi/config を開き、編集します。leafpadを用いるならば下記のコマンドを実行するのでした。<br />
<pre class="prettyprint">$ sudo leafpad /etc/webiopi/config
</pre>
なお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
<br />
<pre class="prettyprint">$ sudo mousepad /etc/webiopi/config
</pre>
このファイルのなかで[SCRIPTS]セクションを見つけ、起動するマクロを下記のように記述し、保存します。その後テキストエディタは閉じて構いません。<br />
<pre class="prettyprint">myscript = /usr/share/webiopi/htdocs/bb/08/script.py
</pre>
それが済んだら、WebIOPiを起動します。キャタピラ式模型の場合は、WebIOPiがRaspberry Piの起動とともに自動起動するように設定するのでしたね。<br />
<br />
WebIOPiの自動起動が有効になっていない場合、下記コマンドで有効になるのでした。<br />
<pre class="prettyprint">$ sudo systemctl enable webiopi
</pre>
その後Raspberry Piを再起動すれば、WebIOPiが自動起動されます。<br />
<br />
そして、スマートフォンのブラウザから下記のアドレスにアクセスします。<br />
<pre class="prettyprint">http://(Raspberry PiのIPアドレス):8000/bb/08/
</pre>
「http://」や末尾の「/」の記述を忘れないよう注意するのでした。<br />
<br />
ここまでの流れが上手く行けば、下図のようにカメラからの映像の右側に、カメラの上下を操作するスライダが現れます。このスライダーをスライドすることでカメラの上下方向の向きが変化します。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHujWDS1gJw3cYWcfyK0grusqFPnQCH3i7Lzf1Yi8tFf94i_dT3hH_B4hZ-IsVjxwtlvYhmAg7Dmj1m9toKUWpZ9ErmMFLmvrWECB5Dh-95Llrxx7yigHdSv_U_oNWgxuIerZoBmW2cbdv/s1600/IMG_0012.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHujWDS1gJw3cYWcfyK0grusqFPnQCH3i7Lzf1Yi8tFf94i_dT3hH_B4hZ-IsVjxwtlvYhmAg7Dmj1m9toKUWpZ9ErmMFLmvrWECB5Dh-95Llrxx7yigHdSv_U_oNWgxuIerZoBmW2cbdv/s640/IMG_0012.PNG" width="480" /></a></div>
<br />
キャタピラ式模型を動作させるとき、回路を取り付けたサーボモータが不安定に変動する場合があります。そんなとき、サーボモーターへの電源(サーボモーターの赤色ケーブルへの接続)を電池の+極からとるのではなく、
Raspberry Piの 5V 端子(3.3V 端子の隣)から取るのも手です。
<br />
<br />
モーター類をRaspberry Piに直接接続するのはあまりよくありませんが、サーボモーター1個動かす程度ならばRaspberry Piは不安定にならないだろう、という期待に基づいています。<br />
もしそうすることで Raspberry Pi の動作が不安定になるのならば、やはりサーボモーターへの電源は電池からとるように戻すべきです。
<br />
<br />
なお、このプログラムをディスプレイをつながない状態で自動起動しようとすると、NOOBS 1.9.1以降のRaspbianでは「キャタピラは動作するが、サーボモーターは動作しない」という状態になり得ます。この問題に直面した場合、以下のように「Raspbianがコンソールで起動する」状態にしてください。<br />
<br />
まず、Jessieで導入されたGUIの設定アプリケーションを起動し、「システム(System)」タブの「ブート(Boot)」項目にある「CLI(To CLI)」にチェックを入れ、再起動してください。画面が黒い「コンソール」状態でRaspbianが起動し、ここで紹介したプログラムが自動起動で正常動作するようになります。<br />
なお、Raspbianが黒いコンソールで起動する状態から元に戻したい場合、コンソールで「startx 」というコマンドを実行してデスクトップを起動してから、設定アプリケーションの「ブート(Boot)」項目で「デスクトップ(To Desktop)」を選択し、再起動してください。<br />
<br />
もし、この「CLI起動によるWebIOPiの自動起動」でもサーボモーターが正常動作しない場合、以下を試してください。
まず、以下のコマンドを実行し、WebIOPiの自動起動を無効にします。
<br />
<pre class="prettyprint">sudo systemctrl disable webiopi
</pre>
次に、以下のコマンドで、/etc/rc.localファイルを管理者権限で編集できる状態にします。
<br />
<pre class="prettyprint">sudo leafpad /etc/rc.local
</pre>
なお、NOOBS 3.2.1以降ではテキストエディタとしてleafpadではなくmousepadを用います。
<br />
<pre class="prettyprint">sudo mousepad /etc/rc.local
</pre>
そして、「exit 0」の上の行に、以下の2行を追記して保存し、再起動してください。
<br />
<pre class="prettyprint">sleep 10
sudo systemctl start webiopi
</pre>
以上で、/etc/rc.localからWebIOPiが起動され、サーボモーターが正常動作することを期待しています。
なお、「sleep 10」は「10秒待機する」の意味です。
安全のために「10秒」と大きな数値を選びましたが、
私の環境では「sleep 3」(3秒待機)程度でも正常動作しました。
さらに、この方法ではCLI起動ではなくGUI起動のままでもサーボモーターが正常動作しました。
<br />
<br />
さて、このプログラムもArduino Sidekick Basic Kit付属のサーボモーターを対象に記述しています。その他のサーボモーターを用いると、スライダの向きとサーボモーターの向きが上下逆になる場合があります。<br />
<br />
そのような場合、/usr/share/webiopi/htdocs/bb/08/javascript.js にて、下記の2行を見つけます。そして、この2行目の行頭に「//」を追記して無効化してください。<br />
<pre class="prettyprint">// サーボの回転の向きを逆にしたい場合次の行を無効に
ratio = 1.0 - ratio;
</pre>
無効化後、ブラウザでページを再読み込みすると、サーボモーターの向きが逆転しているはずです。<br />
<br />
さて、このプログラムは、10章のプログラムと、本ページで紹介したサーボモーター操作のプログラムを合体させたものです。<br />
<br />
ただし、サーボモーターの動く範囲はscript.py内で下記のように設定し、元の範囲(36~102)よりも狭めています(どちらも中心は69)。これは、サーボモーターの動く範囲を広げすぎると、カメラを支えているアームが機体とぶつかるためです。<br />
<pre class="prettyprint"> servo_min = 48
servo_max = 90
</pre>
また、スライダを縦に配置するには、下記の変更を行っています。<br />
<br />
1. index.html内でスライダをspan要素に変更<br />
<pre class="prettyprint"> <span id="slider_servo"></span>
</pre>
2. styles.css内で下記の設定<br />
<pre class="prettyprint">#slider_servo{
display: inline-block;
}
</pre>
3. javascript.js内でスライダをverticalに設定<br />
<pre class="prettyprint">$( "#slider_servo" ).slider({
orientation: "vertical",
(略)
</pre>
4. javascript.js内でスライダの高さを設定<br />
<pre class="prettyprint">$( "#slider_servo" ).height(mHeight);
</pre>
<br />
以上です。お疲れ様でした。
Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com8