tag:blogger.com,1999:blog-67855051285721290052024-03-05T14:32:37.729+09:00カラー図解 最新 Raspberry Piで学ぶ電子工作 補足情報Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-6785505128572129005.post-37337555604714631292024-02-16T22:01:00.001+09:002024-02-16T22:07:09.586+09:00カラー図解 最新 Raspberry Piで学ぶ電子工作 補足情報トップ<h3>
はじめに</h3>
本ページは、2016年7月に発売された金丸隆志著「カラー図解 最新 Raspberry Piで学ぶ電子工作」(講談社ブルーバックス)の補足情報をまとめるためのページです。<br />
<br />
2020年6月に発売された本書の改訂版のページは「<a href="https://raspibb1a.blogspot.com/" target="_blank">ラズパイ4対応 カラー図解 最新 Raspberry Piで学ぶ電子工作</a>」<br />
ですのでご注意ください。
<br /><br />
<h3>
補足情報一覧</h3>
以下では、Raspberry PiのOSの更新に伴う内容の変更や、正誤情報などを記していきます。
<br />
<ul>
<li><a href="https://raspibb1.blogspot.com/2024/02/pi-zero-pi-5.html" target="_blank">本書の内容を Pi Zero ~ Pi 5 で実行する方法</a></li>
</ul>
<br />
さらに、Raspberry Piをより便利に使うための情報が下記になります。
<ul>
<li><a href="https://raspibb1.blogspot.com/2023/03/picamera2-libcamera.html" target="_blank">本書の演習を picamera2 (libcamera) で実行する方法</a></li>
<li><a href="https://raspibb1.blogspot.com/2020/12/blog-post.html" target="_blank">本書の演習をウェブカメラで実行する方法</a></li>
<li><a href="https://raspibb1.blogspot.com/2019/01/raspberry-pi1vnc.html" target="_blank">ディスプレイ・マウス・キーボードを接続せずにRaspberry Piを利用する(1)~VNC編</a></li>
<li><a href="https://raspibb1.blogspot.com/2019/01/raspberry-pi2ssh.html" target="_blank">ディスプレイ・マウス・キーボードを接続せずにRaspberry Piを利用する(2)~SSH編</a></li>
<li><a href="https://raspibb1.blogspot.com/2019/01/raspberry-piip.html" target="_blank">Raspberry PiのIPアドレスを固定する</a></li>
</ul>
<br />
<h3>
旧版の記事へのリンク</h3>
本書の旧版「Raspberry Piで学ぶ電子工作」のサポートページには、新版の読者の方にも役立つ記事がいくつかあります。それらへのリンクを貼ります。
<br />
現在でも動作するようメンテナンスは継続しています。
<br />
<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/2015/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>
<ul>
<li><a href="https://raspibb.blogspot.com/2015/04/proxy.html" target="_blank">プロキシ(Proxy)環境下での本書の演習の実行</a></li>
</ul>
<br />
<h3>
感想など</h3>
<ul>
<li><a href="https://raspibb1.blogspot.com/2016/12/blog-post.html" target="_blank">読者の方々の声</a></li>
</ul>
<br />Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com10tag:blogger.com,1999:blog-6785505128572129005.post-19668550338517576122024-02-16T22:00:00.000+09:002024-02-16T22:04:07.953+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://raspibb1.blogspot.com/2016/07/blog-post_19.html" target="_blank">本書の補足情報(Pi Zero~Pi 4までの古い情報)</a></li>
</ul>
Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com0tag:blogger.com,1999:blog-6785505128572129005.post-33054843361102983412024-02-16T21:59:00.000+09:002024-02-16T22:04:52.585+09:00読者の方々の声本ページでは、読者の方々のレビューや利用例などをご紹介したいと思います。<br />
<br />
<h3>
レビュー</h3>
<ul>
<li><a href="https://www.amazon.co.jp/dp/4062579774/" target="_blank">Amazonで購入された皆さん</a></li>
</ul>
<ul>
<li><a href="http://books.rakuten.co.jp/rb/14285361/" target="_blank">楽天ブックスで購入された皆さん</a></li>
</ul>
<br />
<h3>
記事やブログなどでのご紹介</h3>
<ul>
<li>
<a href="https://qiita.com/funakin/items/c12df15db8909b9bfc62" target="_blank">@funakinさん「もしアラフォーの駆け出しプログラマーがラズパイでスマホ操作できるラジコンを作ったら」</a></li>
</ul>
<ul>
<li>
<a href="http://www.yu2ta7ka-emdded.com/entry/2018/12/28/122023" target="_blank">組み込み開発とその周辺さん「ムービングハンガーを実装しました」</a></li>
</ul>
<ul>
<li><a href="https://gendai.ismedia.jp/articles/-/56889" target="_blank">竹内 薫さん「今すぐ子どもにプログラミングを習わせるべきたった1つの理由」</a></li>
</ul>
<ul>
<li><a href="https://yuki-no-yabo.com/how-to-start-electric-craft/" target="_blank">ゆきの野望さん「ゼロから電子工作を始めたい人に贈る、電子工作の始めた方ガイド」</a></li>
</ul>
<ul>
<li><a href="https://raspida.com/rpi-magazine" target="_blank">ラズパイダさん「雑誌や書籍で学ぶRaspberry Pi」</a></li>
</ul>
<ul>
<li><a href="http://input-r.hatenablog.jp/entry/2017/05/17/001425" target="_blank">無限のサルの挑戦さん「Raspberry Pi 3の入手」</a></li>
</ul>
<ul>
<li><a href="http://input-r.hatenablog.jp/entry/2017/05/17/001425" target="_blank">input-Rさん「決まった時間にLEDの明るさを変える」</a></li>
</ul>
<ul>
<li><a href="http://gama.e-creators.info/20161123-raspberrypi-study-partset" target="_blank">GamaLogさん「書籍:RaspberryPiで学ぶ電子工作と、パーツセットを購入してみました。」</a></li>
</ul>
<ul>
<li><a href="http://qiita.com/tocchi04/items/bcf5be0be4a9b9f978fa" target="_blank">Qiita「Raspberry PI 3で遊ぶ環境を用意する(1:機材調達)」</a></li>
</ul>
<ul>
<li><a href="http://blog.drmn.jp/2016/12/raspberry-pi-ad-adc0832.html" target="_blank">dr's tech memoさん「Raspberry Pi から A/D コンバータ ADC0832 を使う」</a></li>
</ul>
<ul>
<li> <a href="http://karaage.hatenadiary.jp/entry/2017/07/10/073000">森博嗣先生のブログが始まりました</a></li>
</ul>
<ul>
<li><a href="https://hon.booklog.jp/interview/bluebacks-2000-interview-20170323" target="_blank">登山、ランニング、食事…ブルーバックス女性編集者がおすすめする趣味を科学的にアシストする15冊</a></li>
</ul>
<ul>
<li><a href="http://robots1.blog.jp/archives/51959128.html" target="_blank">下手の横好きのスクラップブック!!さん「RaspberryPiによる温度測定」</a></li>
</ul>
<ul>
<li><a href="http://gama.e-creators.info/20161123-raspberrypi-study-partset" target="_blank">がまログさん:RaspberryPiで学ぶ電子工作と、パーツセットを購入してみました。</a></li>
</ul>
<ul>
<li><a href="http://tasogarex.hateblo.jp/archive/category/Raspberry%20Pit" target="_blank">tasogarex's blogさんのRaspberry Piカテゴリー</a></li>
</ul>
<ul>
<li><a href="http://qiita.com/toyoda/items/bb6be6614750a8410fc9" target="_blank">Qiita: ラズパイで3つのサーボを動かしてみる</a></li>
</ul>
<ul>
<li><a href="https://rakuzanet.jp/raspberry-pi-challenge-1.html" target="_blank">Raspberry Piで文系でもロボットが作れるか実験してみる:準備と買ったものリストその1</a></li>
</ul>
<ul>
<li><a href="http://l-w-i.net/t/raspbian/led_001.txt" target="_blank">Raspberry Pi 3でLピカ、Lチカ、Lマリオ</a></li>
</ul>
<ul>
<li><a href="http://densikousaku.com/archives/349" target="_blank">Raspberry Pi電子工作でオススメの基本キットと教材</a></li>
</ul>
<ul>
<li><a href="http://a244.hateblo.jp/entry/2016/10/09/142755" target="_blank">トランジスタ技術 11月号にみる時代の変化?</a></li>
</ul>
<br />
<br />
以下、twitterでの反応をまとめます。
<br />
<br />
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">2020年53冊目目<br>「RashberryPiで学ぶ電子工作」金丸隆志<br><br>ラズパイ3Bを買ってみました!<br>しばらく遊んでみる予定です😊<br><br>【本の内容】<br>•Lチカの実装<br>•AD変換<br>•I2C通信<br>•PWM(パルス幅変調)<br>•WebIOpiによるスマホとの連携<br>•キャタピラ模型の工作<a href="https://twitter.com/hashtag/%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C?src=hash&ref_src=twsrc%5Etfw">#電子工作</a> <a href="https://t.co/T1TNq3oPeh">pic.twitter.com/T1TNq3oPeh</a></p>— えびかずき (@razukabie) <a href="https://twitter.com/razukabie/status/1236553343213830144?ref_src=twsrc%5Etfw">March 8, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<br />
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">うごいたよー!!電子工作童貞を捨てたぞジョジョーーーッ!(いや、二年ぶり2回目)<a href="https://twitter.com/hashtag/raspberrypi?src=hash&ref_src=twsrc%5Etfw">#raspberrypi</a><a href="https://twitter.com/hashtag/%E3%83%A9%E3%82%BA%E3%83%91%E3%82%A4?src=hash&ref_src=twsrc%5Etfw">#ラズパイ</a><a href="https://twitter.com/hashtag/%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C?src=hash&ref_src=twsrc%5Etfw">#電子工作</a><br>いや、全く理解はできてないんだけどね。 <a href="https://t.co/wPUNLZGGDF">pic.twitter.com/wPUNLZGGDF</a></p>— kazuhitogo🌗ビックリデータエンジニア🌗awscloud_jp (@kazuneet) <a href="https://twitter.com/kazuneet/status/1228877549364625410?ref_src=twsrc%5Etfw">February 16, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<br />
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">【初心者だけど、<a href="https://twitter.com/hashtag/%E5%AE%87%E5%AE%99%E9%96%8B%E7%99%BA?src=hash&ref_src=twsrc%5Etfw">#宇宙開発</a> してみたい】<br>ローバーチームに入ってはみたものの、🔰すぎて右も左もわからない💦わからなすぎてmtg中も意識が遠のいて…(´-`).。oO<br><br>知識ゼロの初心者がラズパイでローバーをつくるまで〜初心者奮闘記〜 <a href="https://t.co/u59qAhQxt9">https://t.co/u59qAhQxt9</a><a href="https://twitter.com/hashtag/%E3%83%AD%E3%83%BC%E3%83%90%E3%83%BC%E3%83%95%E3%83%A9%E3%83%83%E3%82%B0%E3%82%B9?src=hash&ref_src=twsrc%5Etfw">#ローバーフラッグス</a><a href="https://twitter.com/hashtag/%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C?src=hash&ref_src=twsrc%5Etfw">#電子工作</a></p>— リーマンサット・プロジェクト (@RymanSat) <a href="https://twitter.com/RymanSat/status/1205271548522688513?ref_src=twsrc%5Etfw">December 12, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">【3階】手のひらにサイエンス「講談社ブルーバックス」は既刊2000点を越えるサイエンス叢書のトップランナーです。様々なジャンルを網羅しており、ちょっとした贈り物にも最適です。3階では只今ベストセレクションフェアを開催中です。<a href="https://twitter.com/hashtag/%E3%82%AE%E3%83%95%E3%83%88BOOK%E3%83%95%E3%82%A7%E3%82%A2?src=hash&ref_src=twsrc%5Etfw">#ギフトBOOKフェア</a> <a href="https://t.co/jsqbXyoeSJ">pic.twitter.com/jsqbXyoeSJ</a></p>— 八重洲ブックセンター八重洲本店 (@yaesu_honten) <a href="https://twitter.com/yaesu_honten/status/1100559730034921473?ref_src=twsrc%5Etfw">2019年2月27日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja"><p lang="und" dir="ltr"><a href="https://t.co/JJkC1iM7pI">pic.twitter.com/JJkC1iM7pI</a></p>— Funaking@独身貴族2.0 (@hot_oteru) <a href="https://twitter.com/hot_oteru/status/1087976153456017408?ref_src=twsrc%5Etfw">2019年1月23日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">フォトレジスタをAD変換したものをSPI通信でラズパイに送り、明るいとLEDを消灯し、暗いと電灯する回路。<a href="https://twitter.com/hashtag/RaspberryPi%E3%81%A7%E5%AD%A6%E3%81%B6%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C?src=hash&ref_src=twsrc%5Etfw">#RaspberryPiで学ぶ電子工作</a> <a href="https://t.co/aPaYeaHrqN">pic.twitter.com/aPaYeaHrqN</a></p>— YU2TA7KA (@UGKGbrothers) <a href="https://twitter.com/UGKGbrothers/status/1076975162002571266?ref_src=twsrc%5Etfw">2018年12月23日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Raspberry Piで学ぶ電子工作、読み終わりました!<br>電子回路からプログラミングまでの流れを初めて知って面白かった~<a href="https://twitter.com/hashtag/%E8%AA%AD%E6%9B%B8?src=hash&ref_src=twsrc%5Etfw">#読書</a> <a href="https://t.co/Yu3f14SoQt">pic.twitter.com/Yu3f14SoQt</a></p>— ひらりん(ねむー) (@hirarin_tech) <a href="https://twitter.com/hirarin_tech/status/1070366428870598657?ref_src=twsrc%5Etfw">2018年12月5日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">ラズパイで電子工作したかったので、<<Raspberry Piで学ぶ電子工作>>を購入。温度センサー取り付けて部屋の温度測ってみました。<a href="https://twitter.com/hashtag/%E9%A7%86%E3%81%91%E5%87%BA%E3%81%97%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%A8%E7%B9%8B%E3%81%8C%E3%82%8A%E3%81%9F%E3%81%84?src=hash&ref_src=twsrc%5Etfw">#駆け出しエンジニアと繋がりたい</a> <a href="https://twitter.com/hashtag/RaspberryPi?src=hash&ref_src=twsrc%5Etfw">#RaspberryPi</a> <a href="https://t.co/0mqOLcI3wh">pic.twitter.com/0mqOLcI3wh</a></p>— KenKen (@kenken_2428) <a href="https://twitter.com/kenken_2428/status/1067025207146176512?ref_src=twsrc%5Etfw">2018年11月26日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">ラズパイ(とレトロパイ)の勉強し始めました。<br>最新IOT技術とレトロゲーの融合目指します。なんか変わったもの作れればいいな〜いかん脳汁出ちゃう🤤 <a href="https://t.co/fABNql4ev1">pic.twitter.com/fABNql4ev1</a></p>— 自宅ゲーセン 📍◉◉ (@myhomearcade) <a href="https://twitter.com/myhomearcade/status/1060116114473017344?ref_src=twsrc%5Etfw">2018年11月7日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">から、結局、というかコストアップになるのでカラーはやらない。<br> 落ちまで行かなかった。<br> ラズパイのあの書籍「Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる (ブルーバックス) 新書」が7/20にカラーで発行されているのですよ。私は昔図書館で読んだだけですが、とてもわかりやすい。</p>— picoGalois@電子クラブ (@DenshiClub) <a href="https://twitter.com/DenshiClub/status/1058259767246839810?ref_src=twsrc%5Etfw">2018年11月2日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">ついにラズパイをやる時が来たか!<br>秋月電子でキットも買ったぜ!<br>まずはLチカからだな。<br>おっと、その前に初期設定からか...<br>先は長いな。 <a href="https://t.co/jOysqviV8l">pic.twitter.com/jOysqviV8l</a></p>— FUMI (@_fumi1982) <a href="https://twitter.com/_fumi1982/status/1044951481474940928?ref_src=twsrc%5Etfw">2018年9月26日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">連休中にやってみようかなと購入した本と電子工作の材料たち。<br>ブルーバックスの本がこれでもかっていうぐらい丁寧な説明で感動してる…15年ぐらい前にこんな本に出会いたかった。その頃はラズパイはまだないけど。 <a href="https://t.co/LBMsr6rGNA">pic.twitter.com/LBMsr6rGNA</a></p>— すとぅ (@sutwosan) <a href="https://twitter.com/sutwosan/status/1042668881133821952?ref_src=twsrc%5Etfw">2018年9月20日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">中本目黒店の周年祭の行列に並んでいる最中にRaspberry Piの本を読んで学びを深める。<br>名刺サイズの小型コンピュータに未来を感じた。<a href="https://twitter.com/hashtag/%E6%84%8F%E8%AD%98%E9%AB%98%E3%81%84%E7%B3%BB%E3%81%AE%E3%82%82%E3%81%AE%E3%81%BE%E3%81%AD%E3%82%92%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F?src=hash&ref_src=twsrc%5Etfw">#意識高い系のものまねをしてみた</a> <a href="https://t.co/bnpuibLRtL">pic.twitter.com/bnpuibLRtL</a></p>— とある専門学校生(情報処理科2年目) (@nakamotodaisuki) <a href="https://twitter.com/nakamotodaisuki/status/1041166853593153537?ref_src=twsrc%5Etfw">2018年9月16日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja">
<div dir="ltr" lang="ja">
ラズパイの参考書にあったタミヤの工作シリーズでのキャタピラ車作ってみた。<br />カメラで見ながら操作できて楽しいv <a href="https://t.co/qmC9nxzZ31">pic.twitter.com/qmC9nxzZ31</a></div>
— CoderDojo白河 (@coderdojoshira1) <a href="https://twitter.com/coderdojoshira1/status/1032980008715792384?ref_src=twsrc%5Etfw">2018年8月24日</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja">
<div dir="ltr" lang="ja">
下手にプログラミングできるロボット買うよりも、 ブルースバックスとそれに載ってるパーツ買ったほうがまともな気がする<br /><br />確かこの本だったと思う<br /><br />最新 Raspberry Piで学ぶ電子工作 <a href="https://t.co/otHb6U7Ajk">https://t.co/otHb6U7Ajk</a></div>
— Kenji Otsuka (@escamilloIII) <a href="https://twitter.com/escamilloIII/status/1031891372075184129?ref_src=twsrc%5Etfw">2018年8月21日</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja">
<div dir="ltr" lang="ja">
「RaspberryPiで学ぶ電子工作」の1章をとりあえずよんで、あとはぱらぱらめくってみたけど、これはいいな!<br />ハンディサイズで持ち運びやすいし、フルカラーで見やすいし、結構いろんな例が網羅されてるみたい。 <a href="https://t.co/be8mw4BjDv">pic.twitter.com/be8mw4BjDv</a></div>
— ロケット小僧 (@J_rocket_boy) <a href="https://twitter.com/J_rocket_boy/status/1021404367142903809?ref_src=twsrc%5Etfw">2018年7月23日</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja">
<div dir="ltr" lang="ja">
【書籍部北部店からのお知らせ】<br />
<br />
講談社ブルーバックスフェアやってます🐬<br />
新刊からベストセラーまで人気タイトルを集めました!<br />
<br />
すべてバンドルセール対象品です‼️<br />
ご来店、お待ちしております。 <a href="https://t.co/MSkzpfBxOZ">pic.twitter.com/MSkzpfBxOZ</a></div>
— 北大生協 北部店 (@hokubucoop) <a href="https://twitter.com/hokubucoop/status/1016161274697142272?ref_src=twsrc%5Etfw">2018年7月9日</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja">
<div dir="ltr" lang="ja">
本書からの最大の学びは、普段何気なく使っている機能(スイッチを押したらLEDが点灯する、など)は様々な部品やプログラムが複雑に相互作用した結果成り立っているものである、ということが体感できるという点である。 <a href="https://t.co/ahF4rAOvAd">https://t.co/ahF4rAOvAd</a></div>
— まめち (@m0mch1) <a href="https://twitter.com/m0mch1/status/1013394340641570818?ref_src=twsrc%5Etfw">2018年7月1日</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja">
<div dir="ltr" lang="ja">
今日は『Raspberry Piで学ぶ電子工作 超小型コンピュータで電子回路を制御する』を読みながら電子工作を行った。ラズパイを用いた電子工作の手順につき懇切丁寧に解説されており、大変読みやすく分かりやすい良著である。 <a href="https://t.co/DfGz8BByrB">https://t.co/DfGz8BByrB</a></div>
— まめち (@m0mch1) <a href="https://twitter.com/m0mch1/status/1013393979872722945?ref_src=twsrc%5Etfw">2018年7月1日</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja">
<div dir="ltr" lang="ja">
カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる (ブルーバックス) 金丸 隆志 <a href="https://t.co/4ppLTMz3W5">https://t.co/4ppLTMz3W5</a><br />
これ1冊で以下のモーメントの2月22日から3月4日までの RasPi 動画のものが作れます。楽しかった。<a href="https://t.co/iNCLS7TYzJ">https://t.co/iNCLS7TYzJ</a></div>
— ティマ (@tima620) <a href="https://twitter.com/tima620/status/970209049106046976?ref_src=twsrc%5Etfw">2018年3月4日</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja">
<div dir="ltr" lang="ja">
モータドライバーの実験の続きです。<a href="https://twitter.com/hashtag/RaspberryPi?src=hash&ref_src=twsrc%5Etfw">#RaspberryPi</a> に <a href="https://twitter.com/hashtag/TB6612FNG?src=hash&ref_src=twsrc%5Etfw">#TB6612FNG</a> を乗せてWi-fiリモートコントロールクローラを作ってみました。「最新RaspberryPiで学ぶ電子工作」を参考にしました。モータードライバーとZeroを使っていることが少し違います。子供たちが喜んで遊んでいました。😀 <a href="https://twitter.com/hashtag/%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C?src=hash&ref_src=twsrc%5Etfw">#電子工作</a> <a href="https://t.co/E8Nao48Nbu">pic.twitter.com/E8Nao48Nbu</a></div>
— pass810 (@pass810) <a href="https://twitter.com/pass810/status/995591478536630272?ref_src=twsrc%5Etfw">2018年5月13日</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja">
<div dir="ltr" lang="ja">
Raspberry Piで学ぶ電子工作 超小型コンピュータで電子回路を制御する<a href="https://t.co/NDL6RihNMy">https://t.co/NDL6RihNMy</a><br />
やっててわかってきたけど、この本って電子工作のハウツー本としてスーパー良書だ。<br />
詳しくてとても分かり易い。</div>
— nano@beat saber (@nano06126728) <a href="https://twitter.com/nano06126728/status/961919781895991300?ref_src=twsrc%5Etfw">2018年2月9日</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<blockquote class="twitter-tweet" data-lang="ja">
<div dir="ltr" lang="ja">
Raspberry Piを積んだアームクローラーがほぼ完成した!今日、小学生に操縦してもらおう。 <a href="https://t.co/Hx9qn5McBe">pic.twitter.com/Hx9qn5McBe</a></div>
— Syun'iti Honda (@Syun_itiHonda) <a href="https://twitter.com/Syun_itiHonda/status/827362342153248768?ref_src=twsrc%5Etfw">2017年2月3日</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com3tag:blogger.com,1999:blog-6785505128572129005.post-36402289735424105212023-03-30T00:15:00.011+09:002024-02-16T22:08:38.270+09:00本書の補足情報(Pi Zero~Pi 4までの古い情報)
<h3>
より新しい情報</h3>
Raspberry Pi 5 が海外で発表され、それに対応した OS Bookworm がリリースされるに伴い、本ページの内容は古くなっています。下記の新しいページをご覧ください。
<ul>
<li><a href="https://raspibb1.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/9784062579773/appendix/attachments/raspi1-sample.zip" target="_blank">サンプルプログラム</a></li>
<li><a href="https://bluebacks.kodansha.co.jp/books/9784062579773/appendix/attachments/RaspberryPi1-Circuit.pdf" target="_blank">回路配線図</a></li>
<li><a href="https://bluebacks.kodansha.co.jp/books/9784062579773/appendix/attachments/RaspberryPi1-PDF_p01-48.pdf" target="_blank">応用PDF(電子版には書籍末尾についています)</a></li>
</ul>
回路配線図の PDF と応用PDF は Raspberry Pi 上のブラウザでも見られますが、ブラウザ上の「↓」(ダウンロード)ボタンでダウンロードし、ファイルマネージャーで PDF ファイルを右クリックし「アプリケーションで開く」→「アクセサリ」→「ドキュメントビューア」などで開いてもよいでしょう。<br />
「選択したアプリケーションをこのファイルタイプのデフォルトのアクションとする」にチェックを入れればそのアプリケーションで開くのがデフォルト動作となります。
<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/AVvXsEiKNI8S37sck3d2baFkXU-jJz0mvL3NbSx334YEyTZ_J-TJ4YMJUpaZXRj3tOe4Cdg0aS2jer18Oh9T7xtSHcIqxx6Rlli7JOa2k1bKqiYQYZ0I4OZu0Btdcg0cbxbfYmXrqz2mRn59OzVi/s1600/acrobat01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKNI8S37sck3d2baFkXU-jJz0mvL3NbSx334YEyTZ_J-TJ4YMJUpaZXRj3tOe4Cdg0aS2jer18Oh9T7xtSHcIqxx6Rlli7JOa2k1bKqiYQYZ0I4OZu0Btdcg0cbxbfYmXrqz2mRn59OzVi/s1600/acrobat01.png" /></a></div>
<br />
チェックを外す前後の配線図の状態を示したのが下図です。「細い線を拡張」のチェックを外した方が図がきれいに表示されているのがわかるでしょう。
<br />
<br />
なお、この設定はPDFの印刷の際には影響しないはずです。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdwlnsfr7TZ0qoYZgBO5-kWJQ0c_EEBaIW27NhvWMeTQMrmN0NsI1cg1WahcDkBzwbSfX69O20SIsgiYYFcOgjmEHAQlnZGKchIpLt4MgeLVXyiDz_lHV4Ec5jbo_teQmyiQz_5mQWAqg/s1600/acrobat03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdwlnsfr7TZ0qoYZgBO5-kWJQ0c_EEBaIW27NhvWMeTQMrmN0NsI1cg1WahcDkBzwbSfX69O20SIsgiYYFcOgjmEHAQlnZGKchIpLt4MgeLVXyiDz_lHV4Ec5jbo_teQmyiQz_5mQWAqg/s640/acrobat03.png" width="640" /></a></div>
<br />
<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.29: 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.41:NOOBSのバージョンについて</h4>
本書の出版以降、以下のように新しいバージョンのNOOBSがリリースされています。<br />
<br />
<table border="1">
<tbody>
<tr>
<td>2016/9/23</td><td>NOOBS 1.9.3</td><td rowspan="8">Jessie</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/3</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 />
OSのベースバージョンはJessie→Stretch→Buster→Bullseye→Bookwormと移り変わっています。
<br />
<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.48: セットアップウィザードの起動</h4>
現在のRaspbianでは、初回起動時に設定用のセットアップウィザードが起動するようになっております。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7dXHS2sVDD9tFqjoXH22UUzrvrsrZm11-d9GGrUCHtM50qwrbqh_yVibl8faSWmQklIybgFPKIOvjpW9QBWUhkhjuGcAPbpJI0h0K6xfKmgGH0ImsDqjWB4qMGTKcKf_9j4K60IzJrOw/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/AVvXsEi7dXHS2sVDD9tFqjoXH22UUzrvrsrZm11-d9GGrUCHtM50qwrbqh_yVibl8faSWmQklIybgFPKIOvjpW9QBWUhkhjuGcAPbpJI0h0K6xfKmgGH0ImsDqjWB4qMGTKcKf_9j4K60IzJrOw/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.48:パッケージやfirmwareを更新したRaspbianについて</h4>
「sudo apt upgrade」により、インストールされたアプリケーションのパッケージを更新したり、「sudo rpi-update」によりfirmwareを更新したRaspbianはサポートの対象外とします。その理由は下記の通りですのでご了承ください。
<br />
<ul>
<li>パッケージやfirmwareは日々変化しており、タイミングによってはバグを含んだパッケージがインストールされることもあること(実際、その問題によりトラブルの原因発見に時間がかかったことがあります)</li>
<li>同じ理由で、読者の方の環境と筆者の環境を一致させることが難しいこと</li>
</ul>
<br />
<h4>p.51, コマンドプロンプトの表記</h4>
p.51ではコマンドプロンプトの表記として以下を紹介しました。
<pre class="prettyprint">
pi@raspbberrypi:~ $
</pre>
ここに見える「pi」はユーザー名を表しており、ユーザー名「pi」は2022年4月以前の古いOSで用いられていたデフォルトのユーザー名です。最新のOSを用いている方ならば、「pi」の部分に自分で決めたユーザー名が表示されているでしょう。
<br /><br />
<h3>
4章</h3>
<h4>
p.85:開発環境IDLEの代替としてThonny Python IDEを用いる方法</h4>
2019年11月現在、本書で解説した開発環境IDLEはデフォルトでRaspbianに含まれていません。IDLE を別途インストールして利用する方法もあるのですが、より簡単にPythonプログラムを実行する方法として、デフォルトでインストール済の「Thonny Python IDE」を用いる方法をここで紹介します。
<br />
<br />
Thonny Python IDEはpython3用のプログラムを実行するための環境です。本書のプログラムはPython3での実行をサポートしていますので問題なく実行できます。
Python 3用ツールのインストール法は本ページで解説されておりますので注意して本ページをお読みください。
<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/AVvXsEiiaEtA2EWh_AT_G2fpPtMyBfPxCmKryIPaikYFGHO4C4L8-T3c22BP0F3KS2VLD95RDRJKnvNFk1vJtrYGow7kvwgrUuoAolPKi4QTtZB3NRzPLTi-grOF7TIEbhU770p3PckfnBV-OY0/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/AVvXsEiiaEtA2EWh_AT_G2fpPtMyBfPxCmKryIPaikYFGHO4C4L8-T3c22BP0F3KS2VLD95RDRJKnvNFk1vJtrYGow7kvwgrUuoAolPKi4QTtZB3NRzPLTi-grOF7TIEbhU770p3PckfnBV-OY0/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/AVvXsEgJU7m3X1HqF0_n_Z-DEYf5wC2gW2gRwOCL-_POYPGYrpy6ByF5fUZsesjWihN_BH5WgMIVewxEhJ0eXtE1wu1BjkVKaRD33mf3ISAbV-3f6vQLfAsyy4YgyBa1qPxpoV_wH8jl2HrQDLU/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/AVvXsEgJU7m3X1HqF0_n_Z-DEYf5wC2gW2gRwOCL-_POYPGYrpy6ByF5fUZsesjWihN_BH5WgMIVewxEhJ0eXtE1wu1BjkVKaRD33mf3ISAbV-3f6vQLfAsyy4YgyBa1qPxpoV_wH8jl2HrQDLU/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.85: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.85: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 />
<h3>
5章</h3>
<h4>p.123, 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.128, 音声の出力先を変更する方法</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/AVvXsEi-5tLbrPpnouG6tO1Ycm9WihqyW6IcsDnC-HsKrVI_ir62X6cL0bDXULjiuCJv2GUkwS5yktv4n1jZdTrEsHvqgK7upmKjIGMUIP2QlYtVlY-df6yfLxzHLzOXnI8KrRhPEltMcgrd0Ig/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/AVvXsEi-5tLbrPpnouG6tO1Ycm9WihqyW6IcsDnC-HsKrVI_ir62X6cL0bDXULjiuCJv2GUkwS5yktv4n1jZdTrEsHvqgK7upmKjIGMUIP2QlYtVlY-df6yfLxzHLzOXnI8KrRhPEltMcgrd0Ig/s0/pulseaudio01.png"/></a></div>
上の画面上で、キーボードの「Enter」キーを押すことで、以下の「1 Systems Option」の設定画面に入ります。
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLB_P6k7Ey40Fuv-3D8I_ZL4VIdjzT3Fmalkw86wTDfCQ0W-HOiJgizYNN1106flHdbR6FHmLRtgXHoU11tC7eaMu9PyIZtwk4iqWbByeUV4enL8uuWLuA4HWdceUy8oW4ijA8ZsFFSME/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/AVvXsEgLB_P6k7Ey40Fuv-3D8I_ZL4VIdjzT3Fmalkw86wTDfCQ0W-HOiJgizYNN1106flHdbR6FHmLRtgXHoU11tC7eaMu9PyIZtwk4iqWbByeUV4enL8uuWLuA4HWdceUy8oW4ijA8ZsFFSME/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/AVvXsEjn5MEDVMiSnAxOkmyNHJHmERgp-DgJXskYauXWeP_UgpPC914t7LOTtp0A6f49Z37t9OBBZkdLAj0jiZ55_enlNPXnVsUxgViaP9oWJ3AYT22KhpDvtRnaflseZrOWc7x0kzNSslit6v8/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/AVvXsEjn5MEDVMiSnAxOkmyNHJHmERgp-DgJXskYauXWeP_UgpPC914t7LOTtp0A6f49Z37t9OBBZkdLAj0jiZ55_enlNPXnVsUxgViaP9oWJ3AYT22KhpDvtRnaflseZrOWc7x0kzNSslit6v8/s0/pulseaudio03.png"/></a></div>
下図が「S2 Audio」の設定画面です。
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJrB963nuRplZxxWGOtSyyko6_q3hlfpCcshlJWkbJKVegJ7_LyaqDLsgGYmwDnugKepOInxCYv3fp3YH3tXcCqtk5UzNNZgv653EB1n8TGdRb3Bmv06TamYaAJLaZjMEO-JsWX6-YUbo/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/AVvXsEiJrB963nuRplZxxWGOtSyyko6_q3hlfpCcshlJWkbJKVegJ7_LyaqDLsgGYmwDnugKepOInxCYv3fp3YH3tXcCqtk5UzNNZgv653EB1n8TGdRb3Bmv06TamYaAJLaZjMEO-JsWX6-YUbo/s0/pulseaudio04.png"/></a></div>
上の画面上でキーボードの「↓」キーを一回押すことで、下図のように「1 Headphones」にフォーカスを合わせ、「Enter」キーを押すことでヘッドフォン(つまりイヤフォンジャック)を出力先にします。
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIOob3pez0EwpUirWycuoHEpRUPPqv_NhFWAvzZyl_GeA4w0IwsbPfjP_ly3aToE74eYSNx6Ze8CJL9ZDanfJENDn-f_JTRdkcGsLPTSL1yoPHQQWwH4vVgdNS3OcJed_gpHR0v4UakB4/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/AVvXsEhIOob3pez0EwpUirWycuoHEpRUPPqv_NhFWAvzZyl_GeA4w0IwsbPfjP_ly3aToE74eYSNx6Ze8CJL9ZDanfJENDn-f_JTRdkcGsLPTSL1yoPHQQWwH4vVgdNS3OcJed_gpHR0v4UakB4/s0/pulseaudio05.png"/></a></div>
すると下図のように「sudo raspi-config」実行直後の画面に戻ります。
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-5tLbrPpnouG6tO1Ycm9WihqyW6IcsDnC-HsKrVI_ir62X6cL0bDXULjiuCJv2GUkwS5yktv4n1jZdTrEsHvqgK7upmKjIGMUIP2QlYtVlY-df6yfLxzHLzOXnI8KrRhPEltMcgrd0Ig/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/AVvXsEi-5tLbrPpnouG6tO1Ycm9WihqyW6IcsDnC-HsKrVI_ir62X6cL0bDXULjiuCJv2GUkwS5yktv4n1jZdTrEsHvqgK7upmKjIGMUIP2QlYtVlY-df6yfLxzHLzOXnI8KrRhPEltMcgrd0Ig/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/AVvXsEi9ifys9aCcR1rOxaXrxXsdwZeL6TfMlGGevK3z1FTTCCdwHvVEDv4n7jVmA0pJa1PpphPYMYfDW0UUrdGB-W4_md5CTpZVKBd1TJAO5mBK6rA-d2pA2-1FrFvXEneAKME4N3fI3Lq_QPw/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/AVvXsEi9ifys9aCcR1rOxaXrxXsdwZeL6TfMlGGevK3z1FTTCCdwHvVEDv4n7jVmA0pJa1PpphPYMYfDW0UUrdGB-W4_md5CTpZVKBd1TJAO5mBK6rA-d2pA2-1FrFvXEneAKME4N3fI3Lq_QPw/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.128, 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.141:半固定抵抗の回転の向きについて</h4>
本書では、半固定抵抗として秋月電子通商の「<a href="https://akizukidenshi.com/catalog/g/g108012/" target="_blank">半固定ボリューム 10kΩ</a>」を用いて解説をしています。<br />
<br />
半固定抵抗は、製品の種類によって、AD変換により得られた値が大きくなる回転の向きが異なることがあります。<br />
<br />
そのような場合、下図のように、3.3VとGNDへの接続を逆にすると良いでしょう。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9_DMehuJxIlB_QrD4tJPivHfZzGR3r2Gub1zGmf4_HKaujd43S9A4Eqfc712wWyKNZP7C24-DNOkg2NSKjvFprvvpD5t4rPu66s4cNly5v7JlFIJK2Cm_WIiFTHoPgv4PibL0zQbhXHw/s1600/VolumeNotice.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="251" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9_DMehuJxIlB_QrD4tJPivHfZzGR3r2Gub1zGmf4_HKaujd43S9A4Eqfc712wWyKNZP7C24-DNOkg2NSKjvFprvvpD5t4rPu66s4cNly5v7JlFIJK2Cm_WIiFTHoPgv4PibL0zQbhXHw/s400/VolumeNotice.png" width="400" /></a></div>
<br />
<h3>
7章</h3>
<h4>
7章全般:本書のプログラムで利用できるLCDについて</h4>
2017年4月に、秋月電子通商さんよりRaspberry Piで利用可能なLCDのモジュールキットが販売開始され、さらに2017年6月にはその完成版が販売開始されましたのでここで紹介します。なお、キットの方は狭いピッチ(ピン間隔)の半田付けが必要になりますので、半田付けにある程度慣れている方向けとなります。通常は完成品を推奨します。
<br />
商品へのリンクは下記になります。
<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>
<br />
組み立てキットに含まれるパーツを図示したのが下図(左)となっています。ピンソケットが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/AVvXsEhUvajwlMWsrYnCCJs_waVJ5M_eFRklrl7hPW5VFssg3lkbGP3lxrZIKAsy6XIkOrbzB1yl3lWa8VOedOG9CCG7UrerxvrGyVrYeZW0zKtiIEuiW1aGVa3o-jL1Xl1bxzwOhKJkIlOZExTv/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/AVvXsEhUvajwlMWsrYnCCJs_waVJ5M_eFRklrl7hPW5VFssg3lkbGP3lxrZIKAsy6XIkOrbzB1yl3lWa8VOedOG9CCG7UrerxvrGyVrYeZW0zKtiIEuiW1aGVa3o-jL1Xl1bxzwOhKJkIlOZExTv/s640/newlcd1.png" width="640" /></a></div>
<br />
ピン配置は本書のものとは異なり、上図(右)のようになっています。<br />
<br />
利用例は下図のようになっています。下図(左)がピンソケットを用いた場合で、Raspberry PiのGPIO(3.3V/SDA/SCL/GPIO4/GNDと続くピン)に直接させるようになっています。完成品ではLCDを立てて使うようなピンソケットとなっています。ただし、これではGPIOのピンの一部が利用できなくなってしまいますので、ジャンパワイヤを介してGPIOに接続するのがお勧めです。
<br />
<br />
ピンヘッダを用いて作成したLCDならば本書のようにブレッドボートで利用可能です。その様子を示したのが下図(右)です。なお、基板の「LED」ピンを3.3Vに接続すると、図のようにLCDのバックライトが点灯した状態になります。お好みで利用してください。ピンソケットでGPIOに直接差したLCDならば、GPIO 4をHIGHにすることでバックライトが点灯します。なお、バックライトを利用するには、LCDを基板に半田付けする際に2か所の四角いピンも半田付けする必要がありますのでご注意ください。なお、LCDの完成品を購入した場合はこのバックライト機能はありません。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigz47uq55eNwN22pAWjTohJtJJjTnKowlIS0PIRm16-5OCZftvrqmNLSA3yuTcuIwmI9_fB22gHC7z3TFuEAHQFfLLhTUlN2bRME33pAGidxHFei9DbeFVfsjGoKkL9-Twu9ZhG3WKTUoF/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/AVvXsEigz47uq55eNwN22pAWjTohJtJJjTnKowlIS0PIRm16-5OCZftvrqmNLSA3yuTcuIwmI9_fB22gHC7z3TFuEAHQFfLLhTUlN2bRME33pAGidxHFei9DbeFVfsjGoKkL9-Twu9ZhG3WKTUoF/s640/newlcd2.png" width="640" /></a></div>
<br />
また、本書で紹介したLCDとは異なり、文字の表示サイズが8文字×2行となっていることも見て取れるでしょう。
本書のプログラムを8x2の液晶で用いるためには、少しだけ変更が必要です。LCDを用いるプログラムには下記のようにLCDのコントラストや文字数を設定している行があります。これらは16x2の液晶であることを示しています。
<br />
<pre class="prettyprint">contrast = 36 # 0から63のコントラスト。30から40程度を推奨
chars_per_line = 16 # LCDの横方向の文字数
display_lines = 2 # LCDの行数
</pre>
これを下記のように横方向の文字数を8に変更して保存すれば完了です。お好みで、コントラストの大きさを変更するのも良いでしょう。
<br />
<pre class="prettyprint">contrast = 36 # 0から63のコントラスト。30から40程度を推奨
chars_per_line = 8 # LCDの横方向の文字数
display_lines = 2 # LCDの行数
</pre>
<br />
<h3>
8章</h3>
<h4>
p.199:モータードライバ 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/AVvXsEi_gvRRqJuHWG2s_WiBVMsf8kWF6YQpMZNFP7Y0ijIfKArHjQ5JTQIVQk6tSnJdEjN_LXY5VMv6wQPhDn1aARvjwqILy3GhRVgrh6V3tGHYQ3AdATB4HDCFs2wTzbW5vqrpydH3tKdWzNc/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/AVvXsEi_gvRRqJuHWG2s_WiBVMsf8kWF6YQpMZNFP7Y0ijIfKArHjQ5JTQIVQk6tSnJdEjN_LXY5VMv6wQPhDn1aARvjwqILy3GhRVgrh6V3tGHYQ3AdATB4HDCFs2wTzbW5vqrpydH3tKdWzNc/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/AVvXsEj1pAyjgHN0xwxcB7utkbWO8bVpGRi-zQzIMuDyIH2I3Cp82erop8BwvyejmIIKEG7UuxcDlw2TvuSX3MNPzGMXp0Bu7YAjBCJeEofz9752Q7pgmrT05pJe7MIbNx-mc5jp2pW9xX_SttQ/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/AVvXsEj1pAyjgHN0xwxcB7utkbWO8bVpGRi-zQzIMuDyIH2I3Cp82erop8BwvyejmIIKEG7UuxcDlw2TvuSX3MNPzGMXp0Bu7YAjBCJeEofz9752Q7pgmrT05pJe7MIbNx-mc5jp2pW9xX_SttQ/s640/bitfig08-11-NewMD.png" width="640" /></a></div>
<br />
<br />
<h4>
p.209:WiringPi-Pythonのインストールコマンド</h4>
書籍に記したように、WiringPi-Pythonをインストールするためのコマンドをコピーできる形で掲載します。
<br />
<br />
なお、一度WiringPi-Pythonのインストールなどに失敗している方は、以前のインストール用ファイルを削除してからの方が安全です。そのためには、ターミナルを起動して下記のコマンドを実行します。
<br />
<pre class="prettyprint">sudo rm -rf WiringPi-Python</pre>
そして、WiringPi-Pythonのインストール用コマンドを順に実行していきます。
下記のコマンドをブラウザで1行ずつコピーし、ターミナルソフトウェアLXTerminalへ貼り付けて1つ1つ実行するとトラブルが少ないでしょう。コピーはブラウザ上でキーボードで「Ctrl+c」、貼り付けはLXTerminalのメニューから「編集」→「貼り付け」(またはCtrl+Shift+v)です。なお、行頭の「(1)」などの数字はコピーする必要はありませんのでご注意ください。
<br />
<br />
また、長いコマンドのため横方向にスクロールさせないとコマンド全体をコピーできないものがあることにも注意してください。<br />
(2020.10.23: python3用のみをインストールするようコマンドを変更しました)
<br />
<pre class="prettyprint">(1) sudo apt update
(2) sudo apt install python3-dev python3-setuptools swig
(3) git clone --recursive https://github.com/neuralpi/WiringPi-Python.git
(4) cd WiringPi-Python/WiringPi
(5) sudo ./build
(6) cd ..
(7) swig -python wiringpi.i
(8) sudo python3 setup.py install
</pre>
<h4>
p.212:WiringPi-Pythonを用いたプログラムの実行について</h4>
現在のRaspbianでは、多くの電子工作プログラムの実行には管理者権限が不要になりました。
<br />
しかし、WiringPi-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.223:WebIOPiのダウンロードとインストール</h4>
書籍では、WebIOPiのダウンロードをブラウザから行いましたが、以下で紹介する方法では、ダウンロード・展開・インストールを全てコマンドから行います。
<br />
<br />
ターミナルを起動し、以下のコマンドを一つずつ順に実行してください。WebIOPiのダウンロード・展開・インストールが行われます。ブラウザからコマンドを一つずつコピーし、ターミナルへ貼り付けて実行するのが確実でしょう。
<br />
<br />
コピーはブラウザ上でキーボードで「Ctrl+c」、貼り付けはLXTerminalのメニューから「編集」→「貼り付け」(またはCtrl+Shift+v)です。なお、行頭の「(1)」などの数字はコピーする必要はありませんのでご注意ください。
<br />
<pre class="prettyprint">(0) wget http://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz
(1) tar zxf WebIOPi-0.7.1.tar.gz
(2) cd WebIOPi-0.7.1/
(3) wget https://raw.githubusercontent.com/neuralassembly/raspi2/master/webiopi-pi2bplus.patch
(4) patch -p1 -i webiopi-pi2bplus.patch
(5) sudo ./setup.sh
</pre>
(5)の処理が終わると最後に「Do you want to access WebIOPi over Internet ? [y/n]」という質問が出た場合は、キーボードの n をタイプして Enter するのでした(現在はこの質問は出ません)。
<br />
<br />
その後、下記のコマンド(p.226のコマンド)を実行し、起動用ファイルを適切な位置に配置します。これでWebIOPiのインストールは完了です。
<br />
<pre class="prettyprint">(1) wget https://raw.githubusercontent.com/neuralassembly/raspi2/master/webiopi.service
(2) sudo mv webiopi.service /etc/systemd/system/
</pre>
なお、上記の手順でWebIOPiをインストールしてもp.234の図9-5において「IN/OUT等が現れるはずのボタンに文字が現れず灰色のまま」という場合、
まずはWebIOPiの再インストールを試してみましょう。そのためには、ターミナルを起動して下記の2つのコマンドを一つずつ実行し、過去のインストールファイルを一旦削除します。
<br />
<pre class="prettyprint">$ sudo rm -f WebIOPi-0.7.1.tar.gz
$ sudo rm -rf WebIOPi-0.7.1
</pre>
その後、もう一度上記のコマンドでWebIOPiをインストールします。
それでも症状が改善されない場合、原因はわかりませんが、OSであるRaspbianが壊れているという可能性もないとは言えません。余力があればOSを再インストールしてみることも検討してみると良いでしょう(私自身、OSの再インストールが必要だったことはないのですが、読者の方にはそれで改善したという方が複数名いらっしゃるようです)。
<br />
<br />
<h4>
p.226: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.236:WebIOPi用サンプルファイルの/usr/share/webiopi/htdocsディレクトリへのコピー</h4>
236ページでは、本書のサンプルファイルを/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.236:WebIOPi用サンプルファイルの/usr/share/webiopi/htdocsディレクトリへのコピー」を参照してください。
<br /><br />
<h4>
p.259:モータードライバ TA7291Pについて</h4>
上の「p.199:モータードライバ 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>
このモータードライバを用いて図9-12と同等の回路を組むには下図のようにします(クリックすると拡大されます)。上で述べたように、電池ボックスは電池三本用のものをお使いください。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK7BKbshiBN8iav-jRV3NXuzkj94mxl5H9-O024b_bn0JISDQS5CILjk-eKVyt6GZfJpVinvhf7TTMaTWI562iNm1IP4gbdfghbMLpegLyWS6ZDuYg-fDtaMDy64l-Udunx8Cks6daWn4/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/AVvXsEiK7BKbshiBN8iav-jRV3NXuzkj94mxl5H9-O024b_bn0JISDQS5CILjk-eKVyt6GZfJpVinvhf7TTMaTWI562iNm1IP4gbdfghbMLpegLyWS6ZDuYg-fDtaMDy64l-Udunx8Cks6daWn4/s640/bitfig09-12-NewMD.png" width="640" /></a></div>
<br />
<br />
<h3>
10章</h3>
<h4>
p.278:モータードライバ TA7291Pについて</h4>
上の「p.199:モータードライバ 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/AVvXsEh2P2CPRch815mRodvf0shyphenhyphenUhCaiFjppawwTYZ3SSoceAv2ghc5TEs0sN-4uYdt2FR_E-z895F8_oT44BgImkVFEe6hqkBHGhmiij1ifMcCTaFHlM-OIb_IF9AUkLQVvcwy4E0LVifrJXM/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/AVvXsEh2P2CPRch815mRodvf0shyphenhyphenUhCaiFjppawwTYZ3SSoceAv2ghc5TEs0sN-4uYdt2FR_E-z895F8_oT44BgImkVFEe6hqkBHGhmiij1ifMcCTaFHlM-OIb_IF9AUkLQVvcwy4E0LVifrJXM/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/AVvXsEhGi-4ulArjANdyhpC-8av9zozaKtVc0vQ6fkFJAcEw11OA8DRHgAJlN9amTbJfP0JiQTHoJZcasUlqXxDk-QVEDdw6oGClwhT1KjI8zMtNO4QBGGSOnCW4dJaibArDTU5GO5FsE8fOZVc/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/AVvXsEhGi-4ulArjANdyhpC-8av9zozaKtVc0vQ6fkFJAcEw11OA8DRHgAJlN9amTbJfP0JiQTHoJZcasUlqXxDk-QVEDdw6oGClwhT1KjI8zMtNO4QBGGSOnCW4dJaibArDTU5GO5FsE8fOZVc/s640/bitfig10-06-NewMD.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br />
<h4>
p.285:/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:/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.288:キャタピラ式模型のメンテナンス</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.288:キャタピラ式模型に搭載したままRaspberry Piを用いる</h4>
キャタピラ式模型の演習中、トラブルなどでファイルを変更したくなることはあるものです。
そのような場合、Raspberry Piにもう一度ディスプレイ、キーボード、マウスを接続して変更することになりますが、やや面倒な操作になりますよね。
<br />
<br />
また、キャタピラ式模型の演習が終わった後、キャタピラ式模型に搭載したままRaspberry Piを使いたいという方もいるでしょう。
<br />
<br />
そこで、キャタピラ式模型に搭載したままRaspberry Piを使用する方法を2種類紹介したページを作成しましたので、リンクを貼ります。
<br />
<ul>
<li><a href="https://raspibb1.blogspot.com/2019/01/raspberry-pi1vnc.html" target="_blank">ディスプレイ・マウス・キーボードを接続せずにRaspberry Piを利用する(1)~VNC編</a></li>
<li><a href="https://raspibb1.blogspot.com/2019/01/raspberry-pi2ssh.html" target="_blank">ディスプレイ・マウス・キーボードを接続せずにRaspberry Piを利用する(2)~SSH編</a></li>
</ul>
ややハードルが高いかもしれませんが、どちらも身につける価値はある方法です。
<br />
<br />
<h4>
p.290:mjpg-streamerのインストールコマンド</h4>
mjpg-streamerをインストールするためのコマンドやや長く、写し間違えると正しくインストールが行なわれません。
下記にコピーできる形で再掲しますので、ブラウザで表示して1行ずつコピーし、ターミナルソフトウェアLXTerminalへ貼り付けて1つ1つ実行していけばトラブルが減るでしょう。
<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 を用いない場合、すなわち、Bullseye で Legacy Camera モードでカメラを利用する場合です。コピーはブラウザ上でキーボードで「Ctrl+c」、貼り付けはLXTerminalのメニューから「編集」→「貼り付け」(またはCtrl+Shift+v)です。なお、行頭の「(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.123, Bookworm (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>
また、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.292: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.290: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 />
<h3>
付録B</h3>
<h4>
p.305 圧縮されたサンプルファイルの展開に関する注意</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/AVvXsEj-VVyCLFCadJ-9ZaC9AQij8BWkkMUI7dTbIufQZ9VWYv8Wl-Qs9DYfyQi38GsaJPWP2GQMprEeIxOQnYzIPzV7-0wj8t01G_Bj3N1AeNCZZ7tVmRvbX6xSAkMaBNfGR2y79XjfYlt32l0/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/AVvXsEj-VVyCLFCadJ-9ZaC9AQij8BWkkMUI7dTbIufQZ9VWYv8Wl-Qs9DYfyQi38GsaJPWP2GQMprEeIxOQnYzIPzV7-0wj8t01G_Bj3N1AeNCZZ7tVmRvbX6xSAkMaBNfGR2y79XjfYlt32l0/s640/archiver_all.png" width="640" /></a></div>
<br />
<br />
<h4>
p.308:コマンドでのプログラムの実行について</h4>
p.308にて、本書のプログラムをターミナルでコマンドで実行する方法が記されています。
本ページは、すべてのプログラムを python3 で実行するよう方針を変更しましたので、プログラムの実行例は
<pre class="prettyprint">
python3 04-01-led.py
</pre>
となります。管理者権限を表す sudo も不要になっていますのでご注意ください。
<br /><br />
<h3>
付録E</h3>
<h4>
p.312:Windows + Bonjourによるraspberrypi.localへの接続について
</h4>
付録に記したように、WindowsにiTunesをインストールすると、Bonjourというソフトウェアがインストールされ、その働きにより、「raspberrypi.local」という名称でのRaspberry Piへのアクセスが可能になるのでした。しかし、Windows 10 に対して2018年4月にリリースされたApril 2018 Updateを適用すると、この方法でのアクセスが一時的にできなくなるようです。
<br />
<br />
WindowsからiTunesとBonjourを一旦削除してからiTunesをインストールしなおすとまた使えるようになるようですのでこの問題に直面した方はお試しください。
<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>
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にアップロードしたサンプルファイル (raspi1-sample.zip) にはこの問題に対応したバージョンが含まれていますので、エラーが出るという方は公式サイトよりraspi1-sample.zipをダウンロードしなおしてください。
<br />
<br />
<h4>
PDF17:LDCの文字コード表</h4>
本書で紹介した2つのLCDでは、PDF17図7-8の文字コード表の一番左の列(0x06~0x0f)の文字は表示されないようです。ご了承ください。
<br />
<br />
<h4>
PDF20:Python3用WiringPi-Pythonのインストールコマンド</h4>
Python3用WiringPi-Pythonのインストールコマンドは、Python2用と共通としてこのページ上部にある「p.209:WiringPi-Pythonのインストールコマンド」に記載されていますのでご参照ください。
<br />
<br />
<h4>
PDF31: カメラつきキャタピラ式模型の回路について</h4>
キャタピラ式模型を動作させるとき、回路を取り付けたサーボモータが不安定に変動する場合、サーボモーターへの電源(サーボモーターの赤色ケーブルへの接続)を電池の+極からとるのではなく、
Raspberry Piの 5V 端子(3.3V 端子の隣)から取るのも手です。
<br />
<br />
モーター類をRaspberry Piに直接接続するのはあまりよくありませんが、サーボモーター1個動かす程度ならばRaspberry Piは不安定にならないだろう、という期待に基づいています。<br />
もしそうすることで Raspberry Pi の動作が不安定になるのならば、やはりサーボモーターへの電源は電池からとるように戻すべきです。
<br />
<br />
<h4>
PDF32: WebIOPiからWiringPi-Pythonを呼び出すプログラムの自動起動について</h4>
「bb/07」や「bb/08」のように、WebIOPiからWiringPi-Pythonを呼び出すプログラムを自動起動する場合、
PDF32に記したように、Raspbianの起動方法をGUIからCLIにしないと正常動作しない(サーボモーターが動かない)ことがあります。
<br />
<br />
もし、この「CLI起動によるWebIOPiの自動起動」でもサーボモーターが正常動作しない場合、以下を試してください。
まず、以下のコマンドを実行し、WebIOPiの自動起動を無効にします。
<br />
<pre class="prettyprint">sudo systemctl disable webiopi
</pre>
次に、以下のコマンドで、/etc/rc.localファイルを管理者権限で編集できる状態にします。
<br />
<pre class="prettyprint">sudo leafpad /etc/rc.local
</pre>
なお、NOOBS 3.2.1 (Raspbian 2019-09-26) 以降ではテキストエディタとしてleafpadではなくmousepadを用います。
<br />
<pre class="prettyprint">sudo mousepad /etc/rc.local
</pre>
そして、「exit 0」の上の行に、以下の2行を追記して保存し、再起動してください。
<br />
<pre class="prettyprint">sleep 10
sudo service webiopi start
</pre>
以上で、/etc/rc.localからWebIOPiが起動され、サーボモーターが正常動作することを期待しています。
なお、「sleep 10」は「10秒待機する」の意味です。
安全のために「10秒」と大きな数値を選びましたが、
私の環境では「sleep 3」(3秒待機)程度でも正常動作しました。
さらに、この方法ではCLI起動ではなくGUI起動のままでもサーボモーターが正常動作しました。
Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com21tag:blogger.com,1999:blog-6785505128572129005.post-74878261969714604362023-03-30T00:11:00.004+09:002024-01-06T22:59:08.136+09:00本書の演習を picamera2 (libcamera) で実行する方法<h3>1. はじめに</h3>
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 />
そこで、本ページでは、Legacy Camera に頼らずに最新の OS で本書の演習を実行する方法を解説します。具体的には、libcamera ライブラリを利用する Python モジュールである picamera2 を使ってプログラムを実行します。
<br /><br />
本書のサンプルプログラムは picamera の旧バージョンを使って書かれていました。しかし、picamera2 は picamera とは互換性がありませんので、picamera2 用に書き換えられたプログラムをダウンロードして利用することになります。
<br /><br />
<h3>2. 準備</h3>
サポート環境は Bookworm および Bullseye 以の 32-bit または 64-bit 版の Raspberry Pi OS です。Bullseye の場合は、なるべく新しいバージョンを用いましょう。そうしないと、本ページで利用する picamera2 (python3-picamera2) がインストールされていないことがあるからです。
<br /><br />
また、Bullseye の場合、Legacy Camera モードは無効にしておく必要があります。OS インストール直後の状態ではあらかじめ無効になっています。一度有効にしてしまった方は、
ターミナルを開いて以下の手順に従うことで、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>「Legacy camera support is disabled」と表示されるので、「了解」が選択された状態で「Enter」キーを押す</li>
<li>raspi-configを起動した状態の画面に戻るので、「TAB」キーを二回クリックし、「Finish」を選択した状態で「Enter」キーを押す</li>
<li>再起動を促されるので、「はい」が選択された状態で「Enter」キーを押す</li>
</ol>
以上で、Legacy Camera モードが無効になります。
<br /><br />
次に、お使いのカメラモジュールのバージョンを把握してください。2023年3月現在、Raspberry Pi のカメラモジュールにはバージョン1から3があり、下図のような外観をしています。
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfitihiOnPWB61L22aRcgRCek1C2w7_uWlkTXBG56jR5pWC5f-p1uyCe4yg9yKWyQKQnxEO3X--h1JOWA8bbs0gx4SsnZKvV_pdiORrblbVwLIXrhz9OCrrGCFocExie8pAGHrrMov7BYyD9slKJc8ljDSHGfZQVeTeNl1L2cerzgnTt1n-W9rUlBZ/s1280/cm123.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="600" data-original-height="513" data-original-width="1280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfitihiOnPWB61L22aRcgRCek1C2w7_uWlkTXBG56jR5pWC5f-p1uyCe4yg9yKWyQKQnxEO3X--h1JOWA8bbs0gx4SsnZKvV_pdiORrblbVwLIXrhz9OCrrGCFocExie8pAGHrrMov7BYyD9slKJc8ljDSHGfZQVeTeNl1L2cerzgnTt1n-W9rUlBZ/s600/cm123.jpg"/></a></div>
左から、バージョン1(基板が四角)、バージョン2(基板の角が丸く、レンズ周辺が黒)、バージョン3(基板の角が丸く、レンズ周辺が銀)です。基板上にもバージョンの記載がありますね。
<br /><br />
後でダウンロードして頂くプログラムでは、このカメラモジュールのバージョンにより設定が変わる箇所があります。
<br /><br />
<h3>3. ダウンロードと準備</h3>
それでは、picamera2 を利用するプログラムをダウンロードしましょう。
<br /><br />
ターミナルを開き、本書のサンプルファイル(数字で始まるファイル)が存在するディレクトリに移動してください。
サンプルファイルをホームディレクトリに展開した方は移動の必要はありません。bluebacksディレクトリに展開した方は下記のコマンドを実行するのでした。
<br />
<pre class="prettyprint">cd bluebacks
</pre>
次に、下記の3つのコマンドを順に実行して、必要なファイルのダウンロードと展開を行ってください。コマンドはコピー&貼り付けで実行することを推奨します。展開後はダウンロードした圧縮ファイルは不要となるので削除しています。
<br />
<pre class="prettyprint">wget https://github.com/neuralassembly/raspi/raw/master/raspi1-picamera2.zip
unzip raspi1-picamera2.zip
rm raspi1-picamera2.zip
</pre>
なお、展開されるファイルの名前は既存のサンプルファイルとは異なりますので、サンプルファイルが上書きされることはありません。展開により現れるファイルは下記の通りです。Pythonpプログラムにはファイル名末尾に「-picamera2.py」がついていることに注意してください。
<pre class="prettyprint">05-04-sw-camera-picamera2.py
10-02-stream-libcamera.sh
</pre>
以下では、これらのファイルの使い方を解説していきます。
<br /><br />
<h3>4. 実行方法</h3>
さて、ダウンロードして展開したファイルの使い方を解説していきます。
<h4>p.123 タクトスイッチをカメラのシャッターに (5.6)</h4>
5.6章ではタクトスイッチをカメラのシャッターにするため、プログラムでカメラの映像を表示する必要がありました。
<br /><br />
そのプログラムの picamera2 版が 05-04-sw-camera-picamera2.py です。このプログラムを実行するには、画像処理用のライブラリである OpenCV をインストールする必要があります。
ターミナルを起動して下記のコマンドを実行すると、OpenCV をインストールできます。
<pre class="prettyprint">sudo apt update
sudo apt install python3-opencv
</pre>
プログラムは、下記のコマンドで(または Thonny で)実行します。
<pre class="prettyprint">python3 05-04-sw-camera-picamera2.py</pre>
なお、libcamera.so.0.X.X のバージョンに関するエラーが出た場合、下記のコマンドで libcamera-dev と python3-picamera2 を更新すると良いかもしれません。
<pre class="prettyprint">sudo apt update
sudo apt install libcamera-dev python3-picamera2
</pre>
<br /><br />
<h4>p.289 mjpg-streamer の代替</h4>
映像配信用に、mjpg-streamer をインストールして用いますが、これも libcamera に対応したバージョンをインストールする必要があります。
<br /><br />
libcamera 対応の mjpg-streamer は <a href="https://github.com/ArduCAM/mjpg-streamer" target="_blank">ArduCAM さんが公開</a>していますが、これをこのまま用いると、
本書のように低解像度 (640x480) の映像を指定したときに以下の問題が現れます。
<ul>
<li>映像の画質が非常に悪い (カメラモジュール v.1) </li>
<li>映像の範囲が非常に狭い (カメラモジュール v.2 と 3) </li>
</ul>
この問題を<a href="https://github.com/neuralpi/mjpg-streamer" target="_blank">筆者が独自に修整した版</a>をここでは利用することにします。
<br /><br />
まず、これまでダウンロードまたはインストールした mjpg-streamer を削除するため、ターミナルを起動して以下のコマンドを実行しましょう。
<pre class="prettyprint">sudo rm -rf mjpg-streamer /opt/mjpg-streamer
</pre>
そして、以下の手順で修整済の libcamera 対応 mjpg-streamer をインストールしましょう。
<pre class="prettyprint">(1) sudo apt update
(2) sudo apt install libjpeg-dev cmake libcamera-dev
(3) git clone https://github.com/neuralpi/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 として Bullseye やリリース直後の Bookworm をお使いの方は、上記の (5) で LibCamera.cpp のビルド中にエラーが起こると思います。その場合、エラーが出た状態から以下の 8 コマンドを一つずつ順に実行してください。この 8 コマンドが上記 (5)~(7) の代替、というイメージです。
<pre class="prettyprint">rm -rf _build
mkdir _build
cd _build
cmake -DLIBCAMERA_USES_TRANSFORM=ON ..
cd ..
make
cd
sudo mv mjpg-streamer/mjpg-streamer-experimental /opt/mjpg-streamer
</pre>
インストール後は、上で展開して得られたシェルスクリプト 10-02-stream-libcamera.sh を実行することで mjpg-streamer を起動しますが、
実行前に一つ注意があります。
10-02-stream-libcamera.sh をテキストディタで開くと以下のような箇所があります。
<pre class="prettyprint"> LD_LIBRARY_PATH=/opt/mjpg-streamer/ /opt/mjpg-streamer/mjpg_streamer -i "input_libcamera.so -camver 1 -fps 15 -r 640x480 -s 640x480" -o "output_http.so -p 9000 -w /opt/mjpg-streamer/www" > /dev/null 2>&1&
</pre>
このうち
<pre class="prettyprint">-camver 1
</pre>
の部分が、筆者が修整した部分に関連しており、カメラモジュールのバージョンの数字を指定しています。お使いのカメラモジュールがバージョン 2 か 3 なら、この数字を 2 または 3 に変更し、それからファイルを保存してください。
なお、この数値を 0 にするかあるいは -camver の設定自体を削除すると ArduCAM さんの mjpg-streamer と同じ挙動になります。
<br /><br />
保存が済んだら、コマンド
<pre class="prettyprint">sh 10-02-stream-libcamera.sh
</pre>
を実行することで mjpg-streamer が起動されます。
<br /><br />
以上、お疲れさまでした。
Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com0tag:blogger.com,1999:blog-6785505128572129005.post-82769045159172921652020-12-27T14:53:00.002+09:002022-05-10T15:37:01.885+09:00本書の演習をウェブカメラで実行する方法<h4>
1. はじめに</h4>
本書では、Raspberry Piの公式カメラモジュールを用いた電子工作の例を2つだけ紹介しました。
タクトスイッチをカメラのシャッターにする例(第5章)およびキャタピラ式模型へカメラを搭載する例(第10章)です。
<br />
<br />
本ページでは、カメラモジュールではなく市販のウェブカメラで演習を行う方法を紹介します。こちらで動作検証したカメラは<a href="https://www.logicool.co.jp/ja-jp/video/webcams" target="_blank">ロジクール社のC270およびC920</a>です。<br />
<br />
本ページでは「××社の○○と言うカメラで動くか」という質問や「××社の○○と言うカメラで動くようにして欲しい」という要望には応えることができません。<br />
<br />
カメラが異なることによるそのようなトラブルを避けるために、本書ではRaspberry Pi専用のカメラモジュールを使用する方針としたのだったからです。
本ページは上級者向けのサービスという位置づけとしますのでご理解ください。<br />
<br />
ところで、2022年2月、Raspberry Pi OS Bullseye の 64-bit 版が正式にリリースされました。この 64-bit 版 OS では、本書でこれまで用いていたカメラモジュールを用いるプログラムをそのまま利用することができません。カメラモジュールの利用法が大きく変わったためです(32-bit 版 OS ではこれまでどおり利用可能)。
本ページの「本書の演習をウェブカメラで実行する方法」を用いると、「64-bit 版 OS でカメラモジュールを用いた演習」が可能になる、という副作用があります。ただし、この方法は準備がやや面倒ですので、カメラモジュールを用いた演習を行いたい方はこれまで通り 32-bit 版 OS の利用をお勧めします。
<br />
<br />
<h4>
2. 手順</h4>
それではターミナルアプリケーションLXTerminalを開き、本書のサンプルファイル(「04-」などの数字で始まるファイル)が存在するディレクトリに移動してください。
サンプルファイルをユーザーpiのホームディレクトリに展開した方は移動の必要はありません。bluebacksディレクトリに展開した方は下記のコマンドを実行するのでした。
<br />
<pre class="prettyprint">cd bluebacks
</pre>
次に、下記の3つのコマンドを順に実行して、必要なファイルのダウンロードと展開を行ってください。コマンドはコピー&貼り付けで実行することを推奨します。展開後はダウンロードした圧縮ファイルは不要となるので削除しています。
<br />
<pre class="prettyprint">wget https://github.com/neuralassembly/raspi/raw/master/raspi1-webcam.zip
unzip raspi1-webcam.zip
rm raspi1-webcam.zip
</pre>
なお、展開されるファイルの名前は既存のサンプルファイルとは異なりますので、サンプルファイルが上書きされることはありません。展開により現れるファイルは下記の通りです。ファイル名の末尾付近に全て「-webcam」がついていることに注意してください。
<br />
<pre class="prettyprint">05-04-sw-camera-webcam.py
10-02-stream-webcam.sh
</pre>
あとは、以下に従って実行します。
<br />
<br />
<h4>
3. 実行</h4>
実行に関する注意を、いくつか例を挙げながら解説します。
<br />
<br />
例えば、本書 p.125 にファイル 05-04-sw-camera.py を実行するよう指示があります。<br />
このファイル「05-04-sw-camera.py」に対しては、ウェブカメラ対応の代替ファイル「05-04-sw-camera-webcam.py」が存在します。
そのような場合、代替ファイルを実行して欲しい、ということです。
<br /><br />
ただし、05-04-sw-camera-webcam.py の実行には、下記の2つのコマンドを順に実行することで OpenCV という画像処理ライブラリをインストールする必要があります。
<pre class="prettyprint">sudo apt update
sudo apt install python3-opencv
</pre>
05-04-sw-camera-webcam.py を正しく実行できると、まずは 640x480 サイズの画像プレビューが現れます。そして、GPIO 24 に接続されたタクトスイッチを押すことで画像が保存されます。
プログラムを終了するためには、プレビュー画面が選択された状態でキーボードの「q」キーを押してください。
<br /><br />
なお、同じく p.125 には「raspistill -o test.jpg -t 1」という静止画保存用のコマンドが記されていますが、このコマンドはウェブカメラ用には使えませんので実行しないでください。
<br /><br />
同様に、p.291 には下記のコマンドを /etc/rc.local に記述するよう指示があります。
<pre class="prettyprint">sudo sh /home/pi/10-02-stream.sh
</pre>
このファイル「10-02-stream.sh」に対しては、ウェブカメラ対応の代替ファイル「10-02-stream-webcam.sh」が存在します。
そのような場合、上記コマンドの代わりに下記のコマンドを記述して欲しい、ということです。
<pre class="prettyprint">sudo sh /home/pi/10-02-stream-webcam.sh
</pre>
なお、2022年4月にリリースされた OS よりデフォルトユーザー pi は廃止されています。そのため、上のコマンドの pi の部分は、皆さんが作成したユーザー名で置き換変える必要があります。すなわち、「kanamaru」というユーザーを作成したのなら、「sh /home/kanamaru/10-02-stream-webcam.sh」となります。
Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com0tag:blogger.com,1999:blog-6785505128572129005.post-91914941959325738962019-01-26T20:20:00.006+09:002023-03-30T14:12:33.621+09:00ディスプレイ・マウス・キーボードを接続せずにRaspberry Piを利用する(1)~VNC編<h3>
1. はじめに</h3>
Raspberry Piは名刺サイズの超小型コンピュータですが、ディスプレイを接続して利用するとRaspberry Piの省スペース性が犠牲になるという問題があります。<br />
<br />
そこで、本ページではタイトルにあります通り、「Raspberry Piにディスプレイ・マウス・キーボードを接続せずに利用する」ことを目指します。<br />
<br />
本サイトではその方法として「VNCを用いる方法」と「<a href="https://raspibb1.blogspot.com/2019/01/raspberry-pi2ssh.html" target="_blank">SSHを用いる方法</a>」の2つを紹介しますが、本ページは「VNCを用いる方法」を解説します。Linuxのコマンド操作にはまだ慣れていない、という方にはわかりやすい方法です。<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/AVvXsEge-Nq9-EYV56IQC4BsJQnub84aLKhnMawV01fV421hKz6UyZt6_m9wJxbk_gXqMA6Eul66bBmYsyUGNb1k-q37ioJG7m6iKlbXXDPInQWWmzEL73Z49m4kjCQj5WlOAoCfTx8WAMR2vFWd/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/AVvXsEge-Nq9-EYV56IQC4BsJQnub84aLKhnMawV01fV421hKz6UyZt6_m9wJxbk_gXqMA6Eul66bBmYsyUGNb1k-q37ioJG7m6iKlbXXDPInQWWmzEL73Z49m4kjCQj5WlOAoCfTx8WAMR2vFWd/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のデスクトップの外観は下図のようになります。Windowsのデスクトップの上にウインドウがあり、その中にRaspberry Piのデスクトップが表示されていますね。<br />
<br />
以下、この動作を実現する方法を解説していきます。Windowsを用いて解説しますが、macOSでも同じことが可能であると思います。<br />
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj61Z54Le7Uuc6WFz-jVhrV0Ss9Kuqh8G9ETGtIMVv1jJF-1w7byemNYphapQhCwmXmd7NTEZJVet8z3rzNTBCV7T-qWNwnM-0aK1TmuzLDuubpOSKF0keTi0JbDv6_-87Ihh9_oWHhq_M/s1600/vnc11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="590" data-original-width="980" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj61Z54Le7Uuc6WFz-jVhrV0Ss9Kuqh8G9ETGtIMVv1jJF-1w7byemNYphapQhCwmXmd7NTEZJVet8z3rzNTBCV7T-qWNwnM-0aK1TmuzLDuubpOSKF0keTi0JbDv6_-87Ihh9_oWHhq_M/s640/vnc11.png" width="640" /></a></div>
<br />
<h3>
2. Raspberry Piでの準備</h3>
まず、当面はRaspberry Piにディスプレイ、マウス、キーボードを接続して設定を行っていきます。<br />
<br />
メニューの「設定」→「Raspberry Piの設定」→「『インターフェイス』タブ」のVNCと言う項目の「有効」をチェックし、「OK」ボタンを押して「Raspberry Piの設定」を終了してください。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRtj52fZwFO1Eeio_7fWeP2OiWl2Rqnkpc2QObY4CwC_zCfkOMEkwbsDg_Cfkgn_Hs6ls77VUWwSLde9jNHFnyXO1J3t-m_ML5PzT5kKhLNx_i8CjiBj9tpEUBdf6Km9Ot7D9SdUNgT5E/s1600/vnc01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="431" data-original-width="826" height="331" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRtj52fZwFO1Eeio_7fWeP2OiWl2Rqnkpc2QObY4CwC_zCfkOMEkwbsDg_Cfkgn_Hs6ls77VUWwSLde9jNHFnyXO1J3t-m_ML5PzT5kKhLNx_i8CjiBj9tpEUBdf6Km9Ot7D9SdUNgT5E/s640/vnc01.png" width="640" /></a></div>
<br />
そうすると、下図のようにRaspberry Piのデスクトップの右上に、VNCが起動していることを示すアイコンが現れます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqJ9FLRONVPiarfprtlDAt1vxAqYiL_5LQGTZpkrI7muuvS1yr31lwZ178slFm1D3Vb45yOnqfr5tJ7tuZUOP0VRfYnu_Zd_EEn_Uq8hC2AgQG9KXfO8wCBxfViIjnuig3uVWFAoXCUuU/s1600/vnc02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="48" data-original-width="359" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqJ9FLRONVPiarfprtlDAt1vxAqYiL_5LQGTZpkrI7muuvS1yr31lwZ178slFm1D3Vb45yOnqfr5tJ7tuZUOP0VRfYnu_Zd_EEn_Uq8hC2AgQG9KXfO8wCBxfViIjnuig3uVWFAoXCUuU/s1600/vnc02.png" /></a></div>
<br />
この状態にすることで、外部のPCからVNC接続が可能になります。<br />
<br />
<h3>
3. WindowsなどのPCでの設定</h3>
次に、WindowsやmacOSのようなPCのブラウザで<a href="https://www.realvnc.com/en/connect/download/viewer/" target="_blank">VNC Viewerのダウンロードサイト</a>に移動します。<br />
<br />
そして、WindowsまたはmacOS用のVNC Viewerをダウンロードしてください。執筆時に、Windowsの場合「VNC-Viewer-6.19.107-Windows.exe」というファイルがダウンロードされました。<br />
<br />
ダウンロードが完了したらダブルクリックしてインストールを行います。ほぼデフォルトの設定通りにインストールして良いのですが、念のため注釈を加えていきます。<br />
<br />
言語は、下記のようにEnglishのままで構いません。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSHKH6YPLaU3B9OI7jzL_1GzDO0szLqjJ8OnnRhliTGp-PjQnIfdOYiYdUyPBtu2wjMzVbhLZxf5lcP5NuKTwc9chGnoRDDnNU7SdyAohHort0ob5I0dAmiSxmD1uuYJoXnliBM0LFFz4/s1600/vnc03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="132" data-original-width="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSHKH6YPLaU3B9OI7jzL_1GzDO0szLqjJ8OnnRhliTGp-PjQnIfdOYiYdUyPBtu2wjMzVbhLZxf5lcP5NuKTwc9chGnoRDDnNU7SdyAohHort0ob5I0dAmiSxmD1uuYJoXnliBM0LFFz4/s1600/vnc03.png" /></a></div>
<br />
License Agreementの画面が出たら、ライセンスを確認した上で「I accept the terms in the License Agreement」にチェックを入れてから「Next」をクリックします。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5qbYxyMEDPqGRls_r8eWZwAbZJNb8mPoB68-pwzQDRjfpT_NbZ4Gv9VHNzqU1JTFwbzfetwwTG4UCQZANYXIUR_pfx3YAC1lmdd7UR8AObdx9e9oz2VjIO7etQXddlbnXMAZluce4ya4/s1600/vnc04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="387" data-original-width="495" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5qbYxyMEDPqGRls_r8eWZwAbZJNb8mPoB68-pwzQDRjfpT_NbZ4Gv9VHNzqU1JTFwbzfetwwTG4UCQZANYXIUR_pfx3YAC1lmdd7UR8AObdx9e9oz2VjIO7etQXddlbnXMAZluce4ya4/s1600/vnc04.png" /></a></div>
<br />
インストールの設定ですが、「Desktop Shortcut」の部分をクリックして、「Will be installed on local hard drive」を選択しましょう。デスクトップにVNCのアイコンが現れるようになります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMkwojCDmGShSsaWfEI-npFldXYbNraCDUi9NRKEEVL3lYkQ-aYs8eoscSvJHx_im3a1jBF4zWmDjEydwDKWBjp5OefVwFQlkWNfLag8AFDRXTKpcZz6gu6k-rONAww4tP5RTgsxSYJy4/s1600/vnc05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="387" data-original-width="495" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMkwojCDmGShSsaWfEI-npFldXYbNraCDUi9NRKEEVL3lYkQ-aYs8eoscSvJHx_im3a1jBF4zWmDjEydwDKWBjp5OefVwFQlkWNfLag8AFDRXTKpcZz6gu6k-rONAww4tP5RTgsxSYJy4/s1600/vnc05.png" /></a></div>
<br />
あとは設定の変更なくボタンをクリックしていくとインストールが始まり、下図のようなアイコンが保存されます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPk6z657PKHhU81yESrsGFQyrdv2YNG0EmOEGFaqXKYsG4sKycqcPmpqRnM7BVJB89eQXgyQ3rt0aow4cq5e73jVOJ2pp1tlD0AO4LZwbUdp2xnMifZjqL3Wihqq3XmYh_H3jR4DR8M-M/s1600/vnc06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="102" data-original-width="101" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPk6z657PKHhU81yESrsGFQyrdv2YNG0EmOEGFaqXKYsG4sKycqcPmpqRnM7BVJB89eQXgyQ3rt0aow4cq5e73jVOJ2pp1tlD0AO4LZwbUdp2xnMifZjqL3Wihqq3XmYh_H3jR4DR8M-M/s1600/vnc06.png" /></a></div>
<br />
このアイコンをダブルクリックしてVNCを起動すると、まず下図のような確認画面が現れますので、「GOT IT」ボタンをクリックします。「Send anonymous usage data to help imporve VNC Viewer(VNC Viewerの改善のために匿名の利用データを送る)」のチェックはお好みで外しても構いません。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQGzH3QL7fD8vBPV7DFJIxVLqDnnAjSbno2cqmGVmIyRcfpJ_Q6_mtKibI4vyMpY9H5utjP6lxRUdfQQy4TzL-qxau_5TmRsY7c3G4r0duw5zSQQkObAr5QUKLxAImfslTyMKUTEvN4u0/s1600/vnc07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="563" data-original-width="732" height="492" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQGzH3QL7fD8vBPV7DFJIxVLqDnnAjSbno2cqmGVmIyRcfpJ_Q6_mtKibI4vyMpY9H5utjP6lxRUdfQQy4TzL-qxau_5TmRsY7c3G4r0duw5zSQQkObAr5QUKLxAImfslTyMKUTEvN4u0/s640/vnc07.png" width="640" /></a></div>
<br />
そうすると、接続先を指定する画面が現れます。下図の下線部に、Raspberry PiのIPアドレスを記入して接続するわけです。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4H_6vLylgKPi8yle8U9WeCv34pE8wC4SlGZXd7yxwrBKU_kt-7omLowa3m5TlNDx2bnvemZ8PPrBEhcWlvPanDERusyJi0ppxaQw354mgLZ4AHzc6LUqvPRzvKC_sKFzH4lC24FsnSZA/s1600/vnc08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="633" data-original-width="886" height="456" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4H_6vLylgKPi8yle8U9WeCv34pE8wC4SlGZXd7yxwrBKU_kt-7omLowa3m5TlNDx2bnvemZ8PPrBEhcWlvPanDERusyJi0ppxaQw354mgLZ4AHzc6LUqvPRzvKC_sKFzH4lC24FsnSZA/s640/vnc08.png" width="640" /></a></div>
<br />
IPアドレスとは、ネットワーク接続時に割り振られるアドレスで、x.x.x.x の形式をしているのでした(xはそれぞれ0から255の数字)。Raspberry PiのIPアドレスを知る方法は、本書の9章で解説しました。<br />
<br />
しかし、本ページの目的は「ディスプレイ・マウス・キーボードを接続せずにRaspberry Piを利用する」ことですから、その方法は使えません。<br />
<br />
この「どのアドレスに接続すればよいかわからない」問題を解決するには、以下の2つの方法があります。<br />
<ul>
<li>赤線部にIPアドレスではなく「raspberrypi.local」と記入する:RaspbianのバージョンがJessie以降であり、WindowsにiTunesがインストールされている必要がある(iTunesに含まれるBonjourというソフトウェアが必要なため)。これは本書の付録Eで解説されています。接続できない場合、WindowsからiTunesとBonjourを一旦アンインストールし、再びiTunesをインストールし直すと改善する場合があります。</li>
<li>Raspberry PiのIPアドレスを固定し、赤線部に毎回そのIPアドレスを記入する:「<a href="https://raspibb1.blogspot.com/2019/01/raspberry-piip.html" target="_blank">Raspberry PiのIPアドレスを固定する</a>」にその方法がまとめられています</li>
</ul>
iTunesをインストール済の方はこのうちの1つめ、すなわち上図赤線図に「raspberrypi.local」と記入するのが簡単です。<br />
<br />
ただし、私が試したところ(環境のためかソフトウェアのためか)、「raspberrypi.local」と記述してもなかなか接続に成功しないことがありました。何回に一回かは成功するという状態です。同じ問題に遭遇した方は、上の選択肢の2つめ、すなわち「IPアドレスを固定する」方法を用いた方が安定して接続できると思います。<br />
<br />
さて、上図赤線部に「raspberrypi.local」または「Raspberry PiのIPアドレス」を記入してEnterキーを押します。Raspberry Piで動作しているVNC Serverへの接続に成功すると、下図のようなWindowsが開きますので、「Continue」ボタンをクリックします。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyCLppSjcv5brZbQk_PtXeHrI7N7aT7ugsetslcquzFgXZUZDNgkVWDGuAxmDG98LSEwqAY4jSSRYvXHHBR-KM_m5zB1O4jYirjfaN1axZIMVMmWIBkiK4x3U4dgrka9bDA9Llw5_iveM/s1600/vnc09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="273" data-original-width="416" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyCLppSjcv5brZbQk_PtXeHrI7N7aT7ugsetslcquzFgXZUZDNgkVWDGuAxmDG98LSEwqAY4jSSRYvXHHBR-KM_m5zB1O4jYirjfaN1axZIMVMmWIBkiK4x3U4dgrka9bDA9Llw5_iveM/s1600/vnc09.png" /></a></div>
<br />
すると、下図のような画面が現れますので、ユーザー名とパスワードを記し、「OK」ボタンをクリックします。
なお、ユーザー名とパスワードは、古い OS ではデフォルトで「pi」と「raspberry」でしたが、現在ではこれらは OS の初回起動時に自分で決定するようになっていますので、そこで設定した値を入力します。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-menBYcB712Ias1sWCYuI6on3RYPLhzeWviQYWnoDSAoS3CG84N00gldKYhc7kH3JMxd9uG5IA-i9ZvxGIRTtP4HzfWP2vsjThB0LZAcWO_Q0tScAgMRosn-RxgqOuQIVb2WeOuE7FaY/s1600/vnc10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="274" data-original-width="453" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-menBYcB712Ias1sWCYuI6on3RYPLhzeWviQYWnoDSAoS3CG84N00gldKYhc7kH3JMxd9uG5IA-i9ZvxGIRTtP4HzfWP2vsjThB0LZAcWO_Q0tScAgMRosn-RxgqOuQIVb2WeOuE7FaY/s1600/vnc10.png" /></a></div>
<br />
接続に成功すると、下図のようにWindows上にRaspberry Piの画面が現れます。<br />
<br />
この時点ではまだRaspberry Piにディスプレイを接続した状態だと思いますが、そのディスプレイを複製したウインドウになっているはずです。<br />
<br />
このとき、下図の赤い矢印部に黒い横線があることに着目してください。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbK6EAaoty8l-9qZ9mN6p_DAIYLFul9decOjZFbYCVq4LxVNYi-yO82r217T-4jM41MJF8BmOHJlC25J403_nEqKNWnZm8hC9cNzpMaBKMtWzhnbqDtnrGco5Mi9OK8fnwebiLURy3SWQ/s1600/vnc11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="590" data-original-width="980" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbK6EAaoty8l-9qZ9mN6p_DAIYLFul9decOjZFbYCVq4LxVNYi-yO82r217T-4jM41MJF8BmOHJlC25J403_nEqKNWnZm8hC9cNzpMaBKMtWzhnbqDtnrGco5Mi9OK8fnwebiLURy3SWQ/s640/vnc11.png" 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/AVvXsEilqRXuttuYdfPCyEtaFcaX3VzqGbqmFDLozfGAldF1JtunRyRBYUSv_V0bShG07iJ4zxR8OVLV4FFY9Phu82HN70ZNd4GL5wNndPzotHPyUuwlvxPqcXJMHAK6pGx5ZhqDlWzP9tWSBmM/s1600/vnc12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="110" data-original-width="570" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilqRXuttuYdfPCyEtaFcaX3VzqGbqmFDLozfGAldF1JtunRyRBYUSv_V0bShG07iJ4zxR8OVLV4FFY9Phu82HN70ZNd4GL5wNndPzotHPyUuwlvxPqcXJMHAK6pGx5ZhqDlWzP9tWSBmM/s1600/vnc12.png" /></a></div>
<br />
さて、これでVNC接続できることがわかりましたので、次の目標は以下を実現することになります。<br />
<br />
<ul>
<li>Raspberry Piの電源を切り、ディスプレイ、マウス、キーボードを取り外した状態で起動する</li>
<li>その状態でWindowsなどのPCからVNC接続する</li>
</ul>
<br />
しかし、そのまま実行すると、Windows上でVNC接続したRaspberry Piの画面が非常に狭い(解像度が低い)状態になってしまいます。<br />
<br />
それを避けるためには、Raspberry Piの電源を切る前に、あらかじめ解像度を大きく設定しておく必要があります。下図のように「Raspberry Piの設定」アプリケーションで「システム」→「解像度を設定」で解像度をDMTの1280x720くらいにしておくと良いと思います。なお、最近の Raspberry Pi OS では、設定アプリケーションの「ディスプレイ」タブ→「ヘッドレス解像度 (Headless Resolution)」の設定が該当すると思います。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv3k0dhXgLJcWl-draM6e9A9MQ64vDcLgsl0tAFzfV-6RX3IAEr2bNhW4JWJdkUHkeyaZkpfi10DGFUdYzSNwN3F61Oy-vJ8p1QrDFuLaLa7o8tQ4_Mda1tz3wTl8_RE1lgqsu9EY5f_c/s1600/vnc13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="431" data-original-width="826" height="332" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjv3k0dhXgLJcWl-draM6e9A9MQ64vDcLgsl0tAFzfV-6RX3IAEr2bNhW4JWJdkUHkeyaZkpfi10DGFUdYzSNwN3F61Oy-vJ8p1QrDFuLaLa7o8tQ4_Mda1tz3wTl8_RE1lgqsu9EY5f_c/s640/vnc13.png" width="640" /></a></div>
<br />
<br /><br />
上記のどの設定も存在しない場合、以下のようにターミナル上で raspi-config コマンドを実行して設定することになります。
<ol>
<li>ターミナル上でコマンド「 sudo raspi-config 」を実行し、設定画面を開く</li>
<li>「↓」キーを一回押して「2. Display Options」にフォーカスを合わせ、「Enter」</li>
<li>「↓」キーにより、「D1 Resolution」または「D5 VNC Resolution」にフォーカスがあわせ「Enter」</li>
<li>「↑」および「↓」キーを押し、設定したい解像度のフォーカスを合わせる</li>
<li>「TAB」キーを一回押し、「了解」または「Select」にフォーカスを合わせ、「Enter」</li>
<li>最初の画面に戻ったら、「TAB」キーを二回押し、「Finish」にフォーカスを合わせ、「Enter」</li>
</ol>
以上の解像度の設定をした後、上の目標を試してみましょう。
<br />
<br />
なお、うまく接続できるようになった後、Raspberry Piの電源を切りたい場合は、VNC内のRaspberry Piでメニューからシャットダウン(あるはコマンドで「sudo poweroff」)を実行してください。VNCの接続を切断しただけではRaspberry Piの電源は切れませんのでご注意ください。
<br />
<br />
もし起動したRaspberry PiにVNC Viewerで接続できないという場合、上で解説した「『raspberrypi.local』と記述してもなかなか接続に成功しない」という問題に当たっているかもしれません。<br />
<br />
その場合、IPアドレスでの接続に切り替えてみると良いかもしれません。そのためには、再びRaspberry Piにディスプレイ・マウス・キーボードをつなぎ直すことになりますね。<br />
<br />
安定して接続できる環境が整うまで苦労するかもしれませんが、安定すると便利に使える方法です。Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com4tag:blogger.com,1999:blog-6785505128572129005.post-36279671731913775122019-01-26T20:20:00.005+09:002023-03-30T14:00:46.788+09:00ディスプレイ・マウス・キーボードを接続せずにRaspberry Piを利用する(2)~SSH編<h3>
はじめに</h3>
Raspberry Piは名刺サイズの超小型コンピュータですが、ディスプレイを接続して利用するとRaspberry Piの省スペース性が犠牲になるという問題があります。<br />
<br />
そこで、本ページではタイトルにあります通り、「Raspberry Piにディスプレイ・マウス・キーボードを接続せずに利用する」ことを目指します。<br />
<br />
本サイトではその方法として「<a href="https://raspibb1.blogspot.com/2019/01/raspberry-pi1vnc.html" target="_blank">VNCを用いる方法</a>」と「SSHを用いる方法」の2つを紹介しますが、本ページは「SSHを用いる方法」を解説します。Linuxの上級者に好まれる方法です<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/AVvXsEge-Nq9-EYV56IQC4BsJQnub84aLKhnMawV01fV421hKz6UyZt6_m9wJxbk_gXqMA6Eul66bBmYsyUGNb1k-q37ioJG7m6iKlbXXDPInQWWmzEL73Z49m4kjCQj5WlOAoCfTx8WAMR2vFWd/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/AVvXsEge-Nq9-EYV56IQC4BsJQnub84aLKhnMawV01fV421hKz6UyZt6_m9wJxbk_gXqMA6Eul66bBmYsyUGNb1k-q37ioJG7m6iKlbXXDPInQWWmzEL73Z49m4kjCQj5WlOAoCfTx8WAMR2vFWd/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/AVvXsEg6HnzbsD5XWOd2NfZHjuqXZd3zfrrIvB0kaD8-Bl5WGZLU7FBY9o3bFZBUYabivRykWKC7bg4uDiEj-Ao_tWifeFSyRD0hpjo3jh1qmmesL_m34XARaZM7qRx_4S9bXkB3i0G5aZwfDzku/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/AVvXsEg6HnzbsD5XWOd2NfZHjuqXZd3zfrrIvB0kaD8-Bl5WGZLU7FBY9o3bFZBUYabivRykWKC7bg4uDiEj-Ao_tWifeFSyRD0hpjo3jh1qmmesL_m34XARaZM7qRx_4S9bXkB3i0G5aZwfDzku/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://ja.osdn.net/projects/ttssh2/releases/" target="_blank">Tera Termのサイト</a>よりインストールファイルをダウンロードします。最新版をダウンロードして下さい。ファイル名は例えばteraterm-4.101.exeなどです。<br />
<br />
ダウンロード後はファイルをダブルクリックしてインストールします。デフォルトの設定のままインストールを終えて構いません。<br />
<br />
インストール後、Tera Termを起動すると、下記のようなウインドウが現れます。これは、Raspberry Piに接続するためのウインドウなのですが、ウインドウをPCに飛ばすための設定が接続前に必要ですので、ここでは図のように「キャンセル」ボタンを押します。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4PhZ6CuD4ew1KCvxvhTp9acTQnX-lRUu06vbcSBaII8qM2ZEzmdwvkXSQiL-0PZG5n4s4rtFItwJM5mRc5IoGEBpWjk-fxn5j39jKwDZCMLLJs_5Z6OLFNPfnNfdL3nly5HjPHM6A1hZs/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/AVvXsEg4PhZ6CuD4ew1KCvxvhTp9acTQnX-lRUu06vbcSBaII8qM2ZEzmdwvkXSQiL-0PZG5n4s4rtFItwJM5mRc5IoGEBpWjk-fxn5j39jKwDZCMLLJs_5Z6OLFNPfnNfdL3nly5HjPHM6A1hZs/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/AVvXsEg_F4zWJ_AP05RcAiUCAk8WW2pBB4s3PUqXFdQisTRX4Kl5kvLMTcV66mJN-YjvtdvARVpB1uJBUyjHt-QgkhiE9nxlizqm3PWS0Ch4cAKcZ6ecYwrE2X6Y7I0VxLbBISyRghWukYg2_cBt/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/AVvXsEg_F4zWJ_AP05RcAiUCAk8WW2pBB4s3PUqXFdQisTRX4Kl5kvLMTcV66mJN-YjvtdvARVpB1uJBUyjHt-QgkhiE9nxlizqm3PWS0Ch4cAKcZ6ecYwrE2X6Y7I0VxLbBISyRghWukYg2_cBt/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/AVvXsEhYH14eh9EtwAIf3dOt0KtZzeSylf2pE6WpNtFBDdBJt7CmyF4NOaDI_NBOlaXTwvrUdzk0yoBwPl10knbl0jDh1XXEgrOXiXPMe75nQ6-Kt3BcnZdolGCkb2hpMzwctp4jzz9pUYMFvBLd/s1600/vcxsrv02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYH14eh9EtwAIf3dOt0KtZzeSylf2pE6WpNtFBDdBJt7CmyF4NOaDI_NBOlaXTwvrUdzk0yoBwPl10knbl0jDh1XXEgrOXiXPMe75nQ6-Kt3BcnZdolGCkb2hpMzwctp4jzz9pUYMFvBLd/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/AVvXsEgCI7KRRFS2m2Ot7s25C5DwLbUhTBy_04AboMwR4kMABVTfcjvcw6JsoId9bJbD9s5ANoGHUnbCFR6_bUlTSsgdoYkL8jgoOLCzHAPW034jYjVdePYEdToCbCf_sCBfu3_eCBec4lxIVV3M/s1600/vcxsrv03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="468" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCI7KRRFS2m2Ot7s25C5DwLbUhTBy_04AboMwR4kMABVTfcjvcw6JsoId9bJbD9s5ANoGHUnbCFR6_bUlTSsgdoYkL8jgoOLCzHAPW034jYjVdePYEdToCbCf_sCBfu3_eCBec4lxIVV3M/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/AVvXsEjZvBCH06NOmT3X5SEuWYVbYl5on4AzRlwRE0DXmbY1tBvptW28Oa0Ut72iX_kQi6EtCm9exv0dPU2DsSftgcUq9Bo47NRE_EVd-r5uojCcxvn4GyNjp7o83yIt6Y141GdtpQpjdSmifBWO/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/AVvXsEjZvBCH06NOmT3X5SEuWYVbYl5on4AzRlwRE0DXmbY1tBvptW28Oa0Ut72iX_kQi6EtCm9exv0dPU2DsSftgcUq9Bo47NRE_EVd-r5uojCcxvn4GyNjp7o83yIt6Y141GdtpQpjdSmifBWO/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.4の下記のようなファイルでした。<br />
<ul>
<li>Windows 7以降(64bit)をご利用の場合:vcxsrv-64.1.20.1.4.installer.exe</li>
<li>Windows 7以降(32bit)をご利用の場合:vcxsrv.1.20.1.4.installer.exe</li>
</ul>
<div>
ファイル名に「debug」が入っているファイルは選ばないでください。<br />
<br />
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 />
インストールが終了すると、デスクトップにXLaunchと書かれたアイコンが現れます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNmnRtynrokDOyGMXqoxom0Oqt-_G79_NL0hirnRrQ6lvnI-5Rlj7qdEvlUyc5OTZr00IvEwiB0d7zYWOT0YKaYmtEGrFL0_gUijshfS5_NWLS2DMIWVlLILxr8RqkvxVqquq_ttpMFCk/s1600/vcxsrv05-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="104" data-original-width="143" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNmnRtynrokDOyGMXqoxom0Oqt-_G79_NL0hirnRrQ6lvnI-5Rlj7qdEvlUyc5OTZr00IvEwiB0d7zYWOT0YKaYmtEGrFL0_gUijshfS5_NWLS2DMIWVlLILxr8RqkvxVqquq_ttpMFCk/s1600/vcxsrv05-2.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
このアイコンをダブルクリックして起動してみましょう。幾つかウインドウで設定を求められますが、デフォルトのままで構いません。すなわち、
<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>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCS4cX2ZioOYJ_CLJbajMkW7iRkyVTIoJzUy5vcFlH_SULmFSwWVmKaXFnlIxuUQiz_xypx2pY5AKWR-Q9xZ4KOqrOOkFy5sKPzPvF-o-grkPttLL-PVtfqRCYYirlf7HFuYULIWQ19Lw/s1600/vcxsrv05-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="101" data-original-width="108" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCS4cX2ZioOYJ_CLJbajMkW7iRkyVTIoJzUy5vcFlH_SULmFSwWVmKaXFnlIxuUQiz_xypx2pY5AKWR-Q9xZ4KOqrOOkFy5sKPzPvF-o-grkPttLL-PVtfqRCYYirlf7HFuYULIWQ19Lw/s1600/vcxsrv05-3.png" /></a></div>
<br />
なお、保存された「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/AVvXsEiAs3wdavmFaYsP2YW2Q4DyC1rD_5LwJaa6lbDP6WYSFdv-ftmkktcubG54_SjZxzIjySkfo3P_0XSbRhzC4808A2FBkuSouJ7YwQSWMjUQDN0Buzt8PhMJiCmOabmQrN0baV5woWH2HHrz/s1600/vcxsrv12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAs3wdavmFaYsP2YW2Q4DyC1rD_5LwJaa6lbDP6WYSFdv-ftmkktcubG54_SjZxzIjySkfo3P_0XSbRhzC4808A2FBkuSouJ7YwQSWMjUQDN0Buzt8PhMJiCmOabmQrN0baV5woWH2HHrz/s1600/vcxsrv12.png" /></a></div>
<br />
<br />
さて、VcXsrvが起動した状態では下図のようにタスクトレイに「X」というアイコンが現れます。以下で行うRaspberry Piへの接続時は、必ずこの「X」というアイコンが表示された状態で行ってください。<br />
<br />
デフォルトではVcXsrvの起動は自動では行われませんので、Windowsを再起動するたびに手動でVcXsrvを起動する必要があります。
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTXeEC73FAOsbRLGwSwb_ajReg2r_aj9CNFoipzVpKx9vKrU8v5Vo1KUfc33UryNCx4YTipEnNBIhbbxxubdWgzG-a7AFhbzGDos6V0l7Mec-R-8kP95mhgTRHFK7m9D6HukIFQbLrTqg/s1600/vcxsrv06-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="189" data-original-width="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTXeEC73FAOsbRLGwSwb_ajReg2r_aj9CNFoipzVpKx9vKrU8v5Vo1KUfc33UryNCx4YTipEnNBIhbbxxubdWgzG-a7AFhbzGDos6V0l7Mec-R-8kP95mhgTRHFK7m9D6HukIFQbLrTqg/s1600/vcxsrv06-2.png" /></a></div>
<br />
<h3>
Raspberry Piでの準備</h3>
現在のRaspibainでは、デフォルトでsshというソフトウェアが無効になっていますので、これをあらかじめ有効にしておく必要があります。<br />
<br />
Raspberry Piのデスクトップ左上にあるメニューから「設定」→「RaspberryPiの設定」と進み、下図のように「インターフェイス」タブの「SSH」を「有効」にしてください。これでsshが有効になります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1LtnkKroYvy1Mm4U2g0HEtKVSBK1kxMQreMOCdOeflNE4JzvjpCcw514-yL7ubW1qpBJv8vILUCCuG368ek4oNsA9zXrEvmN4vfETxgQ5x6HWDOCfCJM9w2YqxNbEgi9xRtHRNvnTbunL/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/AVvXsEg1LtnkKroYvy1Mm4U2g0HEtKVSBK1kxMQreMOCdOeflNE4JzvjpCcw514-yL7ubW1qpBJv8vILUCCuG368ek4oNsA9zXrEvmN4vfETxgQ5x6HWDOCfCJM9w2YqxNbEgi9xRtHRNvnTbunL/s640/ssh_enable1.png" width="640" /></a></div>
<br />
これでsshが有効になり、以下の手順に進むことができるのですが、古い Raspberry Pi OS では、このままではRaspberry Piの起動時に下記のようにパスワードを変更するよう警告がデスクトップに出ることがあります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKomnKYVofg_0KTHYSkix5KbMP3XIQ53K8PKUxi9XGO4WEZQ0ZQNK7eYL0CM17dBWL8NaDTwhcp1Rz8IoFRwojPtTkQEOictjMBerpihX8mdYGKfQs4Hn0aaYE1RjFSZC-d3Ivjo_ucn9u/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/AVvXsEiKomnKYVofg_0KTHYSkix5KbMP3XIQ53K8PKUxi9XGO4WEZQ0ZQNK7eYL0CM17dBWL8NaDTwhcp1Rz8IoFRwojPtTkQEOictjMBerpihX8mdYGKfQs4Hn0aaYE1RjFSZC-d3Ivjo_ucn9u/s640/ssh_enable2.png" width="640" /></a></div>
<br />
これは、ユーザーpiのパスワードをデフォルトである「raspberry」のままにしておくと、外部から誰でもログインできてしまいセキュリティ上危険があるので、自分にしかわからないパスワードに変更するよう促されているのです。<br />
<br />
先ほどと同様に「RaspberryPiの設定」アプリケーションでパスワードを変更するとこの警告は消えます。なお、現在は OS を初めて起動する際にユーザー名とパスワードの変更を促されるようになっていますので上記の警告は出ないはずです。<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>「ホスト」欄に、IPアドレスではなく「raspberrypi.local」と記入する:RaspbianのバージョンがJessie以降であり、WindowsにiTunesがインストールされている必要がある(iTunesに含まれるBonjourというソフトウェアが必要なため)。これは本書の付録Eで解説されています。接続できない場合、WindowsからiTunesとBonjourを一旦アンインストールし、再びiTunesをインストールし直すと改善する場合があります。</li>
<li>Raspberry PiのIPアドレスを固定し、毎回そのIPアドレスを記入する:「<a href="https://raspibb1.blogspot.com/2019/01/raspberry-piip.html" target="_blank">Raspberry PiのIPアドレスを固定する</a>」にその方法がまとめられています</li>
</ul>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGeIfVeJOrTMjiOvQkwBK-nmBxvmS69avnRXSETMPuOj20iFG3NPThoJ6g68PajyDZ1sEDDrkxODM5hAAT-wSYGR8zOOTTezn8PlrSHEemutcMSgZdu-r8nBFdTzt_Q_NWQIWwcizCoMH_/s1600/vcxsrv07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="468" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGeIfVeJOrTMjiOvQkwBK-nmBxvmS69avnRXSETMPuOj20iFG3NPThoJ6g68PajyDZ1sEDDrkxODM5hAAT-wSYGR8zOOTTezn8PlrSHEemutcMSgZdu-r8nBFdTzt_Q_NWQIWwcizCoMH_/s640/vcxsrv07.png" width="640" /></a></div>
<br />
<div>
さて、「IPアドレス」または「raspberrypi.local」を「ホスト」欄に記述して「OK」を押すと、下記のようにユーザー名とパスワードが求められます。古い Raspberry Pi OS ではこれらのデフォルト値は下記のようでした。<br />
<ul>
<li>ユーザー名:pi</li>
<li>パスワード:raspberry</li>
</ul>
現在では、ユーザー名とパスワードはOS を初めて起動する際に自分で決定するようになっていますので、そこで設定した値を入力します。
入力したら「OK」を押します。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuZmPouryibA3KZTeAv0zcqz61-xPAgA4GPXWEqzKd84nk_v58s3kxlTzS8IlFfmGDymhTGEx1ispXsstN4ZQMr6umyFlFotUktwaLjxduAFHkFudYHL3Cq96arFkcodS9-dobJ7pthil9/s1600/vcxsrv08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuZmPouryibA3KZTeAv0zcqz61-xPAgA4GPXWEqzKd84nk_v58s3kxlTzS8IlFfmGDymhTGEx1ispXsstN4ZQMr6umyFlFotUktwaLjxduAFHkFudYHL3Cq96arFkcodS9-dobJ7pthil9/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/AVvXsEjCSwed0-rpP4siyGGPHTH6_RhglJFgmV51TDo-LLNB-TBwZa6kTHRNnEGbdHJj0B-pg9HHkJf_0YrK-A-xpKYyL6oRzbREf5y-Nb4jj4xuWA9OBLpCrfXDcYV6E31FXL_l1w3IQAo_IcXY/s1600/vcxsrv13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCSwed0-rpP4siyGGPHTH6_RhglJFgmV51TDo-LLNB-TBwZa6kTHRNnEGbdHJj0B-pg9HHkJf_0YrK-A-xpKYyL6oRzbREf5y-Nb4jj4xuWA9OBLpCrfXDcYV6E31FXL_l1w3IQAo_IcXY/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/AVvXsEhkJJtIq7eWtXOGXXK2qDsC33uf9iQSAeIrrw6cQqXHzp19wGyiFA1rae2hxXqI6uimej4olhWKI4h0K1zpMuB0keNNxN1Rwaj__x80frLYeBld5G3lXO15Uc9KGeOJJXOnfOAK8dRxVYfq/s1600/vcxsrv09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="468" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkJJtIq7eWtXOGXXK2qDsC33uf9iQSAeIrrw6cQqXHzp19wGyiFA1rae2hxXqI6uimej4olhWKI4h0K1zpMuB0keNNxN1Rwaj__x80frLYeBld5G3lXO15Uc9KGeOJJXOnfOAK8dRxVYfq/s640/vcxsrv09.png" width="640" /></a></div>
<br />
<div>
このTera Term上でRaspberry Piのコマンドを実行してみます。例えば、LXTerminalを起動するためのコマンド「lxterminal」(すべて小文字であることに注意)を実行した様子が下図になります。末尾に「&」をつけて「lxterminal &」とすると、そのコマンドの実行後、同じTera Termでさらに別のコマンドを実行できるようになります。<br />
<br />
別ウインドウでLXTerminalが起動していることがわかります。これは、VcXservをあらかじめ動作させたことの効果です。</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5hI5I0-J8b65DQ90kUZCVQC3kTyr9sTnALpKmji9zp-eTVFA1tbPimMID0VEo_wQZvJnFBWIqEdGvMSoJzJ8DYjh8l-6k-yjku46UtQHhxdbh4hcvuvUv6dhxPIO88oxGRTNGbDhSc61B/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/AVvXsEi5hI5I0-J8b65DQ90kUZCVQC3kTyr9sTnALpKmji9zp-eTVFA1tbPimMID0VEo_wQZvJnFBWIqEdGvMSoJzJ8DYjh8l-6k-yjku46UtQHhxdbh4hcvuvUv6dhxPIO88oxGRTNGbDhSc61B/s640/vcxsrv10.png" width="640" /></a></div>
<br />
<div>
さらに、このLXTerminal上で「idle」コマンドでPythonの開発環境IDLEを起動したのが下図です。もちろん「idle &」でも構いません。さらに、TeraTerm から直接 idle を起動しても構いません。なお、現在の OS では、idle はインストールされておらず、thonny が起動できますね。このように、ターミナルからアプリを起動して利用できる、というのがポイントです。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiG9THjvyreLE1aW1rxNzFrbSoTJtRXl-yEh6DfYzmp91AQPUaAyZX8UvEkGib3jzHh_130rwGFoe8Fb_sOeY-HFyO-UAHVmVY3wah4ChbZS610AJLSKjOyUaB1J2UpwHdI9zWvq3DINhH/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/AVvXsEgiG9THjvyreLE1aW1rxNzFrbSoTJtRXl-yEh6DfYzmp91AQPUaAyZX8UvEkGib3jzHh_130rwGFoe8Fb_sOeY-HFyO-UAHVmVY3wah4ChbZS610AJLSKjOyUaB1J2UpwHdI9zWvq3DINhH/s640/vcxsrv11.png" width="640" /></a></div>
<br />
そのため、よく使うアプリケーションのコマンド名を知っておくと便利です。本書に関連するのは下記のアプリやコマンドです。<br />
<ul>
<li>ファイルマネージャ:pcmanfm</li>
<li>テキストエディタ:mousepad (古い OS では leafpad)</li>
<li>設定アプリケーション(Jessie以降):rc_gui</li>
<li>シャットダウン:sudo poweroff</li>
<li>再起動:sudo reboot</li>
<li>ブラウザ(chromium):chromium-browser (ただし、「さらなる発展」で後述するように Raspberry Pi 上でブラウザを使う理由はほとんどありません)</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 mousepad」(古い OS では「sudo leafpad」)などです(本書ではこれをしばしば用いました)。</div>
<div>
<br /></div>
<div>
本ページの方法でGUIアプリケーションを管理者権限で実行するには、例えばmousepadの場合、下記のコマンドで実行しなければなりません。</div>
<div>
<pre class="prettyprint">XAUTHORITY=/home/$USER/.Xauthority sudo mousepad
</pre>
</div>
<div>
これを毎回実行するのは非常に面倒ですね。</div>
<div>
<br /></div>
<div>
下記の手順に従うと、この長い実行コマンドを簡略化できますので、試してみると良いでしょう。</div>
<div>
<br /></div>
<div>
まず、.bashrcという設定ファイルをテキストエディタmousepadで開きます。ターミナルで下記を実行するのでした。</div>
<pre class="prettyprint">mousepad .bashrc
</pre>
なお、古い OS ではテキストエディタとしてmousepadではなくleafpadを用います。
<br />
<pre class="prettyprint">leafpad .bashrc
</pre>
このファイルの末尾に、下記の1行を追加します。これは「XAUTHORITY=/home/$USER/.Xauthority sudo」という長い命令を「xsudo」で置き換える、という設定です。<br />
<pre class="prettyprint">alias xsudo="XAUTHORITY=/home/$USER/.Xauthority sudo"
</pre>
追加したらファイルを保存してテキストエディタを閉じます。<br />
<br />
この設定を有効にするには、Raspberry Piを再起動してしまうのが簡単です。<br />
<br />
その後、ターミナル(Tera TermでもLXTerminalでも可)にて、
<br />
<pre class="prettyprint">xsudo mousepad
</pre>
を実行すると、管理者権限のテキストエディタがWindows上に開く、というわけです。なお、古い OS では
<br />
<pre class="prettyprint">xsudo leafpad
</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>
一つ目の「ファイルの編集」について、本書では mousepad (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>
<br />
三つ目の「プログラムの実行」については本書付録Cに少し解説があります。<br />
なお、本書では「ブラウザで補足ページを開いてコマンドなどをコピーしてターミナルで貼り付け」という方法を覚えると演習が楽になります。
今回の場合のように TeraTerm で Raspberry Pi にログインしている場合、このブラウザとして Raspberry Pi 上のブラウザを用いる理由はほとんどありません。<br />
Windows 上のブラウザで本書の補足ページを開き、コマンドを (Ctrl-c などで)コピーして TeraTerm へ貼り付ければ良いのです。
TeraTerm へのコマンドの貼り付けは Alt+v またはマウスの右ボタンをクリック、です。この手法を用いると、TeraTerm でのコマンドの実行がかなり楽になるでしょう。
<br /><br />
<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.11.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/AVvXsEjXMMqCZu4jSkGdTuyu-sOQbiFZ3IijQ7vJbyEOTA30m3U53KelqLUf4GaOS08JqBLOt8xlsiHwvSYSgbsyJJVUiVuIr0SDKQN6M_Ic_Yur_6AVHKjmEdWZT31Jne36KnFMRg2CsiJvMS78/s1600/osx01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="508" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXMMqCZu4jSkGdTuyu-sOQbiFZ3IijQ7vJbyEOTA30m3U53KelqLUf4GaOS08JqBLOt8xlsiHwvSYSgbsyJJVUiVuIr0SDKQN6M_Ic_Yur_6AVHKjmEdWZT31Jne36KnFMRg2CsiJvMS78/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/AVvXsEhN13egNGbnCS84O4W_jBh_kPNOb_IhLVFBT0wOXbTgkhEquiR5jI4Hq1cxPViO2pnAzy8Z5gsFEuTUGZ68D12a0Pa8LoytNRC1kNqXflFEcAC7Zfn0sHXSP1n7Pyc2V3YkijG7HA1LKyxs/s1600/osx02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN13egNGbnCS84O4W_jBh_kPNOb_IhLVFBT0wOXbTgkhEquiR5jI4Hq1cxPViO2pnAzy8Z5gsFEuTUGZ68D12a0Pa8LoytNRC1kNqXflFEcAC7Zfn0sHXSP1n7Pyc2V3YkijG7HA1LKyxs/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/AVvXsEhUxdufbVLTTvOJwzflOkJueAatFCale5S3KpVKSmibrmPAvDceKCDzfA5c-DluihyphenhypheneZKVmwKk0rFgqCqohjA03WdSy9LOCwhpzgjJsBychfwG2DAOGSmeWXLVwTdbyokJlxyNCETRNaQMs/s1600/osx03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUxdufbVLTTvOJwzflOkJueAatFCale5S3KpVKSmibrmPAvDceKCDzfA5c-DluihyphenhypheneZKVmwKk0rFgqCqohjA03WdSy9LOCwhpzgjJsBychfwG2DAOGSmeWXLVwTdbyokJlxyNCETRNaQMs/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/AVvXsEgeaM05tgJ_k7M4zQCEHBWUbFU3ND6aWQDe6JD63128TVmnQI65kInjisWYeo5U2eeVm4uX1P3eMKnijGV2UZsv8Hi-Xu5AaMTDWWRoU3jHWMWaMCpC7-tbuGu7sU_9Z2D2ribtY9NRHS8d/s1600/osx04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeaM05tgJ_k7M4zQCEHBWUbFU3ND6aWQDe6JD63128TVmnQI65kInjisWYeo5U2eeVm4uX1P3eMKnijGV2UZsv8Hi-Xu5AaMTDWWRoU3jHWMWaMCpC7-tbuGu7sU_9Z2D2ribtY9NRHS8d/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/AVvXsEhy8MF6fKIxqmg9prALfxeqShjCfi4vOBrDOPKzXTzkzDd5zbw0t973vMiQ3cdDk7-G-22u3VWJzrwaffWFL-ZrrddNKc683st5DrgEA1PtxjltlrFyUkGqzDDllYP1Lf_hbOIFGfoiY_Oj/s1600/osx05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy8MF6fKIxqmg9prALfxeqShjCfi4vOBrDOPKzXTzkzDd5zbw0t973vMiQ3cdDk7-G-22u3VWJzrwaffWFL-ZrrddNKc683st5DrgEA1PtxjltlrFyUkGqzDDllYP1Lf_hbOIFGfoiY_Oj/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編で注意したように、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/AVvXsEhbc_fdyIqiMisd9Bgu51LynCGk3XM7b87g847qpLQeyiCDe5uBpKTyOQ4wqH4nC3hqvvRbK1deCDq4xqckS4zGPoavoxYbALZT4h91D7BreIcr0FiVXEfqdHHd3MJh8UXYyNrUofAtrlHg/s1600/osx06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbc_fdyIqiMisd9Bgu51LynCGk3XM7b87g847qpLQeyiCDe5uBpKTyOQ4wqH4nC3hqvvRbK1deCDq4xqckS4zGPoavoxYbALZT4h91D7BreIcr0FiVXEfqdHHd3MJh8UXYyNrUofAtrlHg/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/AVvXsEj7v5XseZhIhlWmo6xq_xM76_iWjx0SBALVHFSfd2VRimzVhFyLQK3NVhIOI3AlkCdaCt89vnhOoDg8_dIkgiR6-iLVLJg1dkwkvWXBEyxdxBrY6s1lgLYjBbObLWQLb0qalG1zJhtZzvLX/s1600/osx07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7v5XseZhIhlWmo6xq_xM76_iWjx0SBALVHFSfd2VRimzVhFyLQK3NVhIOI3AlkCdaCt89vnhOoDg8_dIkgiR6-iLVLJg1dkwkvWXBEyxdxBrY6s1lgLYjBbObLWQLb0qalG1zJhtZzvLX/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/AVvXsEhQ5U3bvZCyU1yUsQSyEneONpkb3E9O7iGzQi0NAUqvq4_ks8fMufkvMlTKQoOX6xN_Eg-sPy9W-WddxI765xj-nSfeeht6DUkVTa3Zix1WAkQgZ2Vyt_tP_ZJNLP26V5CrlC-tHAuHlkE_/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/AVvXsEhQ5U3bvZCyU1yUsQSyEneONpkb3E9O7iGzQi0NAUqvq4_ks8fMufkvMlTKQoOX6xN_Eg-sPy9W-WddxI765xj-nSfeeht6DUkVTa3Zix1WAkQgZ2Vyt_tP_ZJNLP26V5CrlC-tHAuHlkE_/s640/osx08.png" width="640" /></a></div>
<br /></div>
Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com0tag:blogger.com,1999:blog-6785505128572129005.post-48164094390709166442019-01-26T19:32:00.000+09:002020-03-26T01:33:40.243+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/AVvXsEjj1z7njPueWOIB_pfPnai0HTg8YyQ50lHvwJkN6PB0ED1diBkkmDwfnl5ycULWf4QXxxvZHbNtAIOXCouqIpvYXN_xcOFLhdaBp4QoDMKePJ8mKvyg4EN3g25c-0_E9fyad-3MvGseAijr/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/AVvXsEjj1z7njPueWOIB_pfPnai0HTg8YyQ50lHvwJkN6PB0ED1diBkkmDwfnl5ycULWf4QXxxvZHbNtAIOXCouqIpvYXN_xcOFLhdaBp4QoDMKePJ8mKvyg4EN3g25c-0_E9fyad-3MvGseAijr/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/AVvXsEgnb2adMn9-28_Ne7zzvQ_Gn5CZdFUb8ARNZ42Y-JHu2MzmsSQZXxMQHZL1C7n9-HyHA23bZX9TlNwyggdeBm_Emvxe4JNIVekA_Keav63psEwT6yCGTXa3NVl1Zv34XRVBxjik0log3I6W/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/AVvXsEgnb2adMn9-28_Ne7zzvQ_Gn5CZdFUb8ARNZ42Y-JHu2MzmsSQZXxMQHZL1C7n9-HyHA23bZX9TlNwyggdeBm_Emvxe4JNIVekA_Keav63psEwT6yCGTXa3NVl1Zv34XRVBxjik0log3I6W/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/AVvXsEjIS2hkLw0DXDE98ZcuumxwdinyUngSkRqFNjLQtG0iS-vP0mOcynuuye3XW6a11mxydPdhx7Z1aBg6qBzaxZSii8cCPTReT0HWaQzlc5gh7NFPRaSdwTAFDbnvrfamG4zJ1MGUA2xy5oKT/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/AVvXsEjIS2hkLw0DXDE98ZcuumxwdinyUngSkRqFNjLQtG0iS-vP0mOcynuuye3XW6a11mxydPdhx7Z1aBg6qBzaxZSii8cCPTReT0HWaQzlc5gh7NFPRaSdwTAFDbnvrfamG4zJ1MGUA2xy5oKT/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/AVvXsEjXrtqzG7Xshipi-z3OHnKBYYsz_9lAwMS3Orgfk1Jqp3EZyxtOEeZ-lCrd5aDe9UMdjwleIs4pu0L0KmRUSghIAqAYb_DXVyud-lI8OyDyj6zZQu-1nym6Ztn6E6ykgTFAMvEI0G0H1mtW/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/AVvXsEjXrtqzG7Xshipi-z3OHnKBYYsz_9lAwMS3Orgfk1Jqp3EZyxtOEeZ-lCrd5aDe9UMdjwleIs4pu0L0KmRUSghIAqAYb_DXVyud-lI8OyDyj6zZQu-1nym6Ztn6E6ykgTFAMvEI0G0H1mtW/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/AVvXsEhAFVaXG2pE5uiLBU6VomRVPG7QsvVw65rDeu26KBzEThNwyhBzMsp0hMENLB18UiQx_eZ_URIvpeBpttH4meoBEqa5Q0AFARSi_ltQDv7bMEgt7V7qfh5sGibkDykaSCB-AkYgYNJ14L5D/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/AVvXsEhAFVaXG2pE5uiLBU6VomRVPG7QsvVw65rDeu26KBzEThNwyhBzMsp0hMENLB18UiQx_eZ_URIvpeBpttH4meoBEqa5Q0AFARSi_ltQDv7bMEgt7V7qfh5sGibkDykaSCB-AkYgYNJ14L5D/s400/fixip05.png" width="400" /></a></div>
<br />
<h3>
IPアドレスを固定する</h3>
さて、以上で固定するIPアドレスを決めることができました。ここから、実際に設定を行っていきましょう。NECのルーターの例で示したように、192.168.10.34に固定する場合を例に解説します。
<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-6785505128572129005.post-57827158243194352852016-07-19T11:50:00.001+09:002024-01-26T17:01:56.666+09:00旧版をご利用の方へ<h3>
はじめに</h3>
「カラー図解 最新 Raspberry Piで学ぶ電子工作」は旧版である「<a href="https://raspibb.blogspot.jp/" target="_blank">Raspberry Piで学ぶ電子工作</a>」の改訂版です。<br />
<br />
旧版とどのような違いがあるのか、本ページでまとめたいと思います。<br />
<br />
なお、回路図やサンプルファイルも若干変更されていますので、旧版の解説をもとに改訂版の回路図やサンプルファイルを利用すると、解説と異なる動作をすることがあります。その点についても本ページで解説したいと思います。<br />
<br />
そのため、旧版をお読みの方は旧版の回路図とサンプルファイルをそのまま用いるのがトラブルが少ないと言えます。<br />
<br />
<h3>
全体について</h3>
書籍全体を通して、旧版から大きく変化しているのは以下の点です。<br />
<ul>
<li><b>Raspberry Pi Model B+、Raspberry Pi 2 Model B、Raspberry Pi 3 Model Bへの完全対応</b><br />
旧版では、Pi 2やPi 3については補足ページによる対応でした。なお、ピンが26本の旧Raspberry Pi Model Bについては、今回は回路図を提供していませんので、旧版の回路図をご利用ください</li>
</ul>
<ul>
<li><b>jessie系列のRaspbianへの完全対応</b><br />
旧版では、これについても補足ページによる対応でした</li>
</ul>
<ul>
<li><b>全ページカラー化</b><br />
これが最も目立つ変化かもしれません。なお、PDFで配布する回路図は、カラー版とモノクロ版の両方をダウンロードできます。
</li>
</ul>
<ul>
<li><b>推奨するパーツセットの変更</b><br />
前回、<a href="http://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4NSB" target="_blank">Arduino Sidekick Basic Kit</a>というパーツセットを推奨しましたが、今回は秋月電子通商様に公式のパーツセットをご用意頂き、これを推奨しています。
これにより、「半固定抵抗の回転の向きの変化」、「RGBフルカラーLEDがアノードコモンからカソードコモンへ」という2点の変更があり、書籍内の記述、回路図、サンプルファイルが影響を受けています。これらについては、各章の変更点で解説します。</li>
</ul>
<br />
<h3>
追加された内容について</h3>
改訂版で新たに追加された演習は、全て公式サイトで無料配布されている応用PDF内に含まれています。kindleなどの電子書籍版ではこの応用PDFは書籍末尾に含まれています。<br />
<br />
応用PDFに追加された内容は下記の通りです。おおむね、旧版の補足ページで紹介した内容となっています。
<br />
<ul>
<li><b>7章への追加:小型LCDにカタカナを表示する</b><br />
これは、<a href="https://raspibb.blogspot.jp/2016/02/blog-post.html" target="_blank">旧版の補足情報</a>の7章の解説で紹介した内容です</li>
</ul>
<ul>
<li><b>8章への追加:サーボモーターを2個同時に用いる</b><br />
これは、前回の補足ページにはありませんが、「<a href="https://raspibb2.blogspot.jp/" target="_blank">実例で学ぶRaspberry Pi電子工作</a>」でも取り上げた内容です。26ピンの旧Raspberry Pi Model Bでは実行できない内容です。
</li>
</ul>
<ul>
<li><b>9章への追加:サーボモーターをブラウザから制御</b><br />
これは、前回の補足ページにある「<a href="https://raspibb.blogspot.jp/2015/01/pc.html" target="_blank">(追加コンテンツ)サーボモーターをPCやスマートフォンから角度制御する</a>」の前半部の内容です。サーボモーターを2個制御できるよう、内容をアップデートしています。</li>
</ul>
<ul>
<li><b>10章への追加:キャタピラ式模型に搭載したカメラを上下に動かす</b><br />
これは、前回の補足ページにある「<a href="https://raspibb.blogspot.jp/2015/01/pc.html" target="_blank">(追加コンテンツ)サーボモーターをPCやスマートフォンから角度制御する</a>」の後半部の内容です。</li>
</ul>
<br />
<h3>
各章での細かな変更点について</h3>
以下では、各章の細かな変更点について記していきます。
<br />
<br />
<b>6章:解説に用いる半固定抵抗の変更</b><br />
旧版ではArduino Sidekick Basic Kitに含まれる半固定抵抗(スイッチサイエンスさんの「<a href="https://www.switch-science.com/catalog/1039/" target="_blank">つまみの大きい半固定抵抗</a>」と同じもの)を用いて解説をしましたが、改訂版では秋月電子通商さんの「<a href="https://akizukidenshi.com/catalog/g/g108012/" target="_blank">半固定ボリューム 10kΩ</a>」を用いて解説をしています(パーツセットに含まれるものです)。<br />
<br />
この2つは一見そっくりですが、同じ回路を組んだ時にAD変換の読みが大きくなる回転の向きが異なります。<br />
<br />
その回転の向きを合わせるため、旧版の回路図と改訂版の回路図では、3.3VとGNDへの配線を逆にしています。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEy93n67NRraVaM2kOEfqn3Lv8Gn4Szy1xGS3ePw68IEvoUudZqZZ1Zpn5jtnvHv75CcNYg4Mh6cAjhzhEK-MGbaIfrGS7iv1cITnIb6GwUDtSwsBnpdek4livKFXr7StkrBdb3mQdCnw/s1600/VolumeChanged.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEy93n67NRraVaM2kOEfqn3Lv8Gn4Szy1xGS3ePw68IEvoUudZqZZ1Zpn5jtnvHv75CcNYg4Mh6cAjhzhEK-MGbaIfrGS7iv1cITnIb6GwUDtSwsBnpdek4livKFXr7StkrBdb3mQdCnw/s400/VolumeChanged.png" width="400" /></a></div>
<br />
皆さんも、お使いの半固定抵抗の種類に応じて、3.3VとGNDへの接続をどちらにするか選択してください。<br />
<br />
これは気づかないと違和感を覚えるであろう部分ですので、ご注意ください。<br />
<br />
<b>7章:用いる小型液晶(LCD)の変更</b><br />
旧版では「I2C接続小型LCDモジュール(8x2行)ピッチ変換モジュール(完成品)」を推奨していました。しかし、ロットの問題により、Raspberry Piでの動作にトラブルが起こるようになったため、改訂版では「<a href="https://strawberry-linux.com/catalog/items?code=27001" target="_blank">I2C低電圧キャラクタ液晶モジュール(16x2行)</a>」に変更しました。<br />
<br />
これら2つのLCDに対し、ほぼ同じプログラムが動作します。ただし、改訂版のプログラム中には下記の3行が存在し、コントラスト(文字の濃さ)、横×縦の文字数を変更可能になっています。お使いのLCDに応じて適切に編集して用いてください。8x2の液晶で用いる場合は、2行目の数字を8に変更する必要があります。
<br />
<pre class="prettyprint">contrast = 36 # 0から63のコントラスト。30から40程度を推奨
chars_per_line = 16 # LCDの横方向の文字数
display_lines = 2 # LCDの行数
</pre>
<br />
<b>8.4節:RGBフルカラーLEDの変更</b><br />
旧版では、Arduino Sidekick Basic Kitに含まれる、アノードコモンのRGBフルカラーLEDをベースに解説を行いました。カソードコモンのものを用いる場合、プログラム中のコメント文の指示に従い、プログラムを編集する必要がありました。<br />
<br />
改訂版では、パーツセットに含まれるカソードコモンのRGBフルカラーLEDをターゲットに、解説、回路図、プログラムを変更しています。そのため、デフォルトではカソードコモンのものが動作し、アノードコモンのものを用いる場合はプログラムの編集が必要となっておりますのでご注意ください。<br />
(対象プログラム:08-02-rgbled.py)<br />
<b><br /></b>
<b>8.6節:WiringPi-Pythonのバージョンの変更</b><br />
旧版では、精度の高いPWM信号(ハードウェアPWM信号)を用いるために、WiringPiというライブラリおよび<a href="https://github.com/Gadgetoid/WiringPi2-Python" target="_blank">WiringPi2-Python</a>というPythonモジュールを用いました。<br />
<br />
しかし、WiringPi2-Pythonの開発が終了したため、改訂版では<a href="https://github.com/WiringPi/WiringPi-Python" target="_blank">WiringPi-Python</a>というPythonモジュールを用いるよう変更しています。<br />
(対象プログラム:08-04-servo.py)<br />
<br />
WiringPi2-PythonとWiringPi-Pythonではほぼ同じプログラムが動作しますが、プログラム冒頭のimport文のみ、下記のように変更されています。ご注意ください。<br />
WiringPi2-Pythonを用いる場合のimport文(旧版)
<br />
<pre class="prettyprint">import wiringpi2 as wiringpi
</pre>
WiringPi-Pythonを用いる場合のimport文(改訂版)
<br />
<pre class="prettyprint">import wiringpi
</pre>
<br />
<b>9.5節:RGBフルカラーLEDの変更
</b><br />
8.4節同様、RGBフルカラーLEDはカソードコモンのものを対象に、解説、回路、プログラムを変更しておりますのでご注意ください。アノードコモンのRGBフルカラーLEDを用いる場合、書籍の内容に基づき下記のファイルを編集する必要があります。<br />
(対象プログラム:/usr/share/webiopi/htdocs/bb/03/javascript.jsおよび/usr/share/webiopi/htdocs/bb/03/script.py)<br />
<br />
<b>10章:キャタピラ式模型の操作用アプリの改善</b><br />
10章で用いるキャタピラ式模型の操作用アプリは
<br />
<ul>
<li>タブレット/スマホの縦/横両方の画面の向きに対応(旧版では縦向きのみ)</li>
<li>Windowsタブレットでもタッチ動作が可能に</li>
</ul>
の2点が改善されております。<br />
<br />Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.com0