ラズパイ関連本の比較(2018/09)
Raspberry Pi(以下、ラズパイ)の関連書籍の紹介です。 数が多いので2017年以降のものを中心にレビューします。
おすすめは『みんなのRaspberry Pi入門 第4版』。電子工作をがっつりやりたいならブルーバックスの本。
前置き
ラズパイ関連書において重要なのは、Raspberry Pi固有のノウハウ、Linuxの基本操作、電子工作、プログラミング(ほぼPython)の3つのどれに重点をおくか、その配分。またはラズパイを何に使うか(用途)。
ページ数という制約があるのでどこかでトレードオフが発生します。そのため想定読者からマッチしているかが本を選ぶ上での最重要ポイント。
本を書いている人の経歴によって得意分野が違うので本によっては説明に問題があるケースがあります。
ハードよりの人はどうもLinuxのお作法*1やセオリーを知らずに書いているケースがあります。非常に残念です*2。
ブルーバックス
内容はいいが新書サイズなので開いたまま固定しにくいのが難点。新書サイズでブックスタンドに固定しにくいのでKindle版か洗濯ばさみで固定するとか。
『カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる 』
カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる (ブルーバックス)
- 作者: 金丸隆志
- 出版社/メーカー: 講談社
- 発売日: 2016/07/20
- メディア: 新書
- この商品を含むブログ (1件) を見る
- 出版社による補足情報:カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる - ブルーバックスシリーズの特設ページ
- 著者によるサポート情報:「カラー図解 最新 Raspberry Piで学ぶ電子工作」補足情報
評判の良かったRaspberry Piで学ぶ電子工作 超小型コンピュータで電子回路を制御する (ブルーバックス)(モノクロ版)の改訂版+カラー化したもの。
面白いのはタミヤの工作キット+WebIOPiを使ったキャタピラ式のラジコン製作記事など。
回路図、配線図がしっかりしていて丁寧。
あえてモノクロの方を買う必要はまったくないです(内容が古いので)。
かなり丁寧で初心者向け。発売時期の関係で新しいモデルについて記載がありません。
『実例で学ぶRaspberry Pi電子工作 作りながら応用力を身につける』
実例で学ぶRaspberry Pi電子工作 作りながら応用力を身につける (ブルーバックス)
- 作者: 金丸隆志
- 出版社/メーカー: 講談社
- 発売日: 2015/12/18
- メディア: 新書
- この商品を含むブログを見る
- 出版社による補足情報:実例で学ぶRaspberry Pi電子工作 作りながら応用力を身につける - ブルーバックスシリーズの特設ページ
- 著者によるサポート情報:「実例で学ぶRaspberry Pi電子工作」補足情報
上記の応用編的な位置づけ。他のシリーズ本と違ってカラーではない点に注意。
『カラー図解 Raspberry Piではじめる機械学習』
カラー図解 Raspberry Piではじめる機械学習 基礎からディープラーニングまで (ブルーバックス)
- 作者: 金丸隆志
- 出版社/メーカー: 講談社
- 発売日: 2018/03/15
- メディア: 新書
- この商品を含むブログ (1件) を見る
Tensorflowについては記載されてない(Kerasは紹介している)。 前半はちょっと退屈かも。
『みんなのRaspberry Pi入門』
- 作者: 石井モルナ,江崎徳秀
- 出版社/メーカー: リックテレコム
- 発売日: 2017/11/11
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
出版社サイト:リックテレコム、「みんなのRaspberry Pi入門 第4版」発刊——Python 3に対応 | fabcross
書店の店頭に古い版が置いてあることがあるので購入時は注意。
Pythonの解説とRaspbianのセットアップに重点を置いている。 LED、モーター、カメラモジュール、センサなど基本は押さえている。
良書。一番バランスがいい本。
『Raspberry Piで遊ぼう! 改訂第2版 』
- 作者: 林和孝
- 出版社/メーカー: ラトルズ
- 発売日: 2014/01/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
2017年発行の版が最新です。改訂第4版というのが存在しますが、内容が古いです。購入時は発行年を確認して下さい。
どういう経緯なのかさっぱりですが、改定第2版をリニューアルして2017年に発行しており、こちらが最新です*3。
他とはちょっとタイプが違う本。ラズパイをデスクトップPCのように使ったり小型サーバーとして使うノウハウなど何でもあり。
装丁が非常にいい。
- 実用性はともかく、帯の折返しにgpioのピン配置図がある(表紙側と裏表紙側)。
- 章ごとに見出しの色とサンプルコードの背景色が違うようになっている
- Raspberry Pi 3 model B+についての補足のチラシがはさまっている
- PythonだけでなくJavascriptを使用したサンプルあり(逆に言うとPythonの解説はほとんど無い)
- WebIOPi *4
- radikoや動画再生、Webカメラなど
- ラジコン戦車
サポートページのURLが不明です。
『これ1冊でできる! ラズベリー・パイ 超入門 改訂第4版』
これ1冊でできる! ラズベリー・パイ 超入門 改訂第4版 Raspberry Pi 1+/2/3/Zero/Zero W対応
- 作者: 福田和宏
- 出版社/メーカー: ソーテック社
- 発売日: 2017/06/03
- メディア: 単行本
- この商品を含むブログを見る
サポートページ:これ1冊でできる!ラズベリー・パイ 超入門 改訂第4版 サポートページ
総論賛成各論反対という感じ。ちょっとどうかと思う。正直微妙。
なぜかslogin
コマンドを使用している。とっても不思議。ssh
なにか恨みでもあるのか?
素直にssh
コマンドを使うべき。
本文のコマンド紹介でkill
コマンドをー9
オプション付きで載せている。むやみに使うコマンドではないのですけど。
また巻末のコマンド解説は順序がちょっと変。いきなりリダイレクトの説明とか。
ちょっと偏った知識で書いているようにと思います。
同じ著者の他の本はともかくこの本はおすすめしない。
『電子部品ごとの制御を学べる! Raspberry Pi 電子工作実践講座』
電子部品ごとの制御を学べる! Raspberry Pi 電子工作実践講座
- 作者: 福田和宏
- 出版社/メーカー: ソーテック社
- 発売日: 2017/12/21
- メディア: 単行本
- この商品を含むブログ (1件) を見る
- 部品の仕組みや構造の解説は有意義
- Python3
- 個別の部品をつかうサンプル付き
- RaspbianのインストールはNOOBS
- Raspbianの解説はイマイチ
- Wringpi
- 索引が貧弱
- 巻末付録の部品リストはなかなか良い(特に通販の商品コード)
見開き2ページの右ページ右下にPythonのコードが掲載されている。しかし掲載エリアの比率としてはページの6分の1〜2分の1ぐらい。
Pythonのコードがいわゆるラムネ付きの食玩のラムネみたい。
センサやモーターの解説書と電子工作の本とラズパイについての解説を足して2.5ぐらいで割ったような本。
子供の好奇心を満たすという上ではいい本だけど、人によっては中途半端。コンセプトは悪くないが索引がしょぼくて本としてのつくりに疑問。
『ここまで作れる! Raspberry Pi 実践サンプル集』
- 作者: 太田一穂,岡嶋和弘,西村良太,樋山淳
- 出版社/メーカー: マイナビ出版
- 発売日: 2017/07/14
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
確かにAmazonのレビューどおり、あまり読みやすい文章という感じではない。
なぜか日本語フォントとしてkochi-gothic
パッケージをインストール……。他に利用できる日本語フォントがあるのに東風ゴシックは選ぶ必要性がわからない*5。
2017年7月発行の本でIPAフォントのパッケージがあるのにわざわざ古いフォントをインストールする理由はない。ラズパイの日本語フォントが問題になることはまずない。その点では細かいことを気にする必要はどこにもない。書くならちゃんと調べてほしいという話。
また冒頭部で唐突にswapを無効化する手順を説明しているけどswapの仕組みの説明はなく、ちょっと不親切。
作例サンプル集としては有意義だと思う。ただし目次をよく見て自分がつくりたいものと類似しているサンプルがあるか要チェック。
なお、日本語フォントとしてはfonts-ipafont-gothic
やfonts-noto-cjk
というパッケージがあり、コマンド一発でインストールできます。
まとめ
本を買わなくてもネット情報で十分なことも多いですが、電子工作にガッツリ取り組みたいならラズパイ関連の本を1冊、ラズパイ関連ではない電子工作系の本を1冊でやっぱり2冊は買う必要があると思います。
ラズパイの初期設定に関してはどの本もちょっと中途半端な印象です。ラズパイで何をするか、はっきり目的を決めないと、どの本も中途半端だと思います。
KDPで電子書籍を出版しました
電子書籍をリリースしました。PythonからGoogle Cloud Vision APIを使って文字認識(OCR)する方法の解説書です。
Google Cloud Vision APIとPythonで文字認識
- 作者: machine powers
- 発売日: 2018/09/14
- メディア: Kindle版
- この商品を含むブログを見る
また黒歴史が一ページ。何はともあれ実績解除。
7月中に書き始めて、途中で方針転換して内容を一部カット、紆余曲折の結果どうにか書籍としての体裁を整えたという感じ。
バージョン1.1.1が最新です。いきなりヘマをやらかしているので奥付に記載のバージョンが1.0の場合はコンテンツを更新してください。
続きを読むPythonで複数の画像をPDFにする(1画像1ページ/圧縮なし)
スキャン済みの画像データをゲットしたのはいいけれど……。
PNG形式のバラ画像200枚というのは不便ですねって話。
ImageMagickで一気にPDF化することはできないので……。
1画像ずつPDFにして結合すればいいんだけど、それはそれでめんどいのでPythonでやってみます。
続きを読むPandocで生成したEPUBをRubyで修正してみる
Pandocネタの続き。おそらく正しい対処法はPandocのfilter機能を使う方法。解説というよりは備忘録です。あしからず。
その場しのぎのやっつけとして適当なスクリプト言語で書き換える。
背景
PandocでEPUBを作る際に、--number-sections
オプションを使うと章番号、セクション番号を自動的に割り振ってくれる。
しかし、「第n章」や「Chapter n」のようにはしてくれない。CSS疑似要素である程度は設定できるが、いずれにしろ標準機能では対応していない。
Pandocのバージョンは2.2.3.2。フォーマットはEPUB3。
EPUBと目次
EPUBの正体はCSSとHTML(正確に言うとXMLベース)の寄せ集めをZipで圧縮したものなので展開して編集して再度圧縮すれば問題ない。
EPUBには目次用のファイルとしてEPUB2用のtoc.ncx
とEPUB3系のnav.xhtml
、さらに目次ページが存在している。
問題はnav.xhtml
。EPUBビューワーで目次ページとして表示する場合はCSSが使える。そのためCSS疑似要素で章番号のフォーマットをいじることができる。
残念ながらこのnav.xhtml
はナビゲーションパネルにも使用され、その場合はCSSは機能しない。故にCSSの疑似要素で章番号のスタイルを変えるという方式は
中途半端になってしまう*1。
実際の対応
hav.xhtml
とtoc.ncx
はスクリプトで書き換えて、本文側はCSSで擬似要素として実現する方式。
追加の要件として「付録」という見出しの章はセクションを含めて特別扱いする。
ただ、疑似要素による章見出しはKindle化した際に見栄えが良くないかも。
nav.xhtmlの修正
nav.xhtml
は<nav>
要素で<ol><li><a>...
というリストをラップしているだけ。もちろん<ol>
要素が入れ子担っている点を考慮する必要がある。
NokogiriのXPath指定で<a>
タグを取り出して条件に合うところだけ書き換える。XMLなのでnamespace
を考慮する。
chapter_node = node.xpath('./xmlns:a')
章番号、セクション番号ともに<a>
タグの内側に<span>
タグで囲まれているので正規表現でマッチしたところを書き換える。
toc.ncxの修正
章の見出しだけ書き換える。<navLabel>
というタグの要素を取り出す。
ncx_xml.xpath('//xmlns:navLabel/xmlns:text')
<navLabel>
というタグの下に<navLabel>
というタグがあるので親のタグだけ書き換える。
本文側の修正
./EPUB/text/ch00X.xhtml
の各ファイルを修正する。以下のような形式なので対して難しくない。
<h1><span class="header-section-number">5</span>
付録扱いしたいChapterだけ<span>
タグのクラスを置き換えて対処。それ以外はCSSで対応。
h1 > span.header-section-number::before { content: "第" ; } h1 > span.header-section-number::after { content: "章" ; }
スクリプトによる修正
EPUBを_temp
というフォルダに展開しているという前提。
EPUBビューワーの目次ページではCSSが効くが、目次パネル(?)ではCSSが効かないのでこういう微妙な対処方法に。
書き換えの対象
Nokogiriのインストール
$ gem install nokogiri
コード
Pandocで生成したepubファイルの目次情報と章番号を修正するRubyスクリプト
ザ・やっつけ仕事ですが似たようなことをやる人の参考になりますようにということで。
展開と再圧縮
これも備忘録。実際はRakeで一気にやっています。
展開
$ unzip -q temp.epub -d _temp
temp.epub
というEPUB3形式のファイルを_temp
に展開。
再圧縮
必要な箇所を修正したら再度圧縮する。mimetype
というファイルだけ圧縮率0にする。
展開先のディレクトリ(この例では_temp
)に移動してから再圧縮。
$ cd _temp
まずmimetype
というファイルだけ入ったファイルを作り、その後で残りのファイルを圧縮してくっつけるイメージ。
$ zip -0Xq output.epub mimetype $ zip -Xr9Dq outoput.epub *
これでOK。
参考
EPUB生成のpandocのコマンドは下記のとおり。
$ pandoc -f markdown -t epub3 --epub-metadata=metadata.xml -o temp.epub title.txt *.md --epub-cover-image=image.png --css=github.css --toc --toc-depth=2 --epub-chapter-leve=1 --number-sections --no-highlight
title.txtはタイトルと著者、元データはMarkdown。
参考にしたサイトは次のとおり。
まとめ
EPUBがWeb技術ベースなのでこれまでの知識がかなり活用できている。EPUBの仕様策定に関わった方々の好判断の賜物。
ちゃんとPandocのfilter機能を勉強するのが一番だけど。
- 作者: 林拓也
- 出版社/メーカー: 技術評論社
- 発売日: 2012/08/25
- メディア: 大型本
- この商品を含むブログ (2件) を見る
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
- 作者: 伊藤淳一
- 出版社/メーカー: 技術評論社
- 発売日: 2017/11/25
- メディア: 大型本
- この商品を含むブログを見る
*1:もちろんナビゲーションパネルと目次ページ、本文で章番号の形式が変わってもいいなら問題ない
Kindle Unlimitedのおすすめコンテンツ(2018/09)
7月の2ヶ月99円キャンペーンで読んだ or 過去に読んだやつからおすすめをピックアップ。
続きを読む