あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

Raspberry Piと電子ペーパーモジュールの話(あと、Maker Faire Tokyo 2017に出ますよ)

実はだいぶ前に電子ペーパーモジュールを買って遊ぼうとしていたのですが、なんか手をつける余裕がなくてだらだらになっていました。今週末はMaker Faire Tokyo 2017にJapanese Raspberry Pi Users Groupとして出展することになったのと、来週のコミケで使いたいなあというのがあったので、いよいよ手を付けました。

まず5月末に買っていたのがdx.comで見つけたWaveShare製の2.13インチ250x122ピクセルの白黒電子ペーパーモジュールです。2.13インチというよりかはpHATボードサイズと言ったほうがわかりやすいでしょうか。2,000円ちょっとで購入できたので安いなあと思っていたのですが、サンプルスクリプトがなかなかハードな感じで放置プレイになっていました。

[f:id:Akkiesoft:20170803154503j:plain:450]

www.dx.com

どのくらいハードかというと、ライブラリにデバッグメッセージっぽいのが満載で、サンプルスクリプトはひとつ。画像表示は2値ビットマップ画像をライセンス形態不明の中華製Windowsツールで大量の16進数の塊に変換してスクリプトに埋め込むみたいな感じです。フォントも同じノリで16進数でスクリプトに埋まってるんですが、明朝なのでコレジャナイ感じ。

とりあえず画像が表示できればなんとかなるべということで、昨晩書いたのがこれ。中華ツールの処理内容から察して、Pythonでインデックスカラー形式のPNG画像を表示できるようにしました。パレットはコードにあるとおりです。欠点は1ピクセルずつ律儀に取得しているのでくっそ遅い点でしょうか。多分、うまく画像を回転させたりしたらgetdataしたやつをザッザッと読み進めて高速化できるかもしれないです。

gist.github.com

まあ高速で書き換えるものでもないので、とりあえずはこれで良しとしましょうか。

f:id:Akkiesoft:20170803155807j:plain:w450

f:id:Akkiesoft:20170803160313j:plain:w450

もうひとつはPimoroniのInky pHAT。こちらは中華製に比べて少し小さめの212x104ピクセルですが、白黒の他に赤色も表示できる3色電子ペーパーです。中華性を買って放置していたところにリリースされて、買うか迷ったのですが買ってしまいました。これは7月くらいの話。

こちらはサンプルとライブラリがしっかり用意されているので、安心して触り始められるPimoroniブランドと言った感じです。しかもサンプルがどれもカワイイ。

f:id:Akkiesoft:20170803160513j:plain:w450

Inky pHAT a Tri-Colour EPD Display for Raspberry Pi - Pimoroni


ほんで、Maker Faire Tokyoコミケ向けに画像を用意しました。上で既に出ていますが、今回のコミケ向けに描いてもらった麦子をドット絵に落とし込みました。こちらもインデックスカラーPNGです。Inly pHAT向けのパレット情報は
ここを参照です>

f:id:Akkiesoft:20170803160759p:plain f:id:Akkiesoft:20170803160802p:plain

そして表示。赤がちゃんと出ていますね。背景もうっすらピンクになるのはご愛嬌。サンプルみたいに背景を黒にいれば誤魔化せそうです。

f:id:Akkiesoft:20170803161552j:plain:w450

どちらの電子ペーパーモジュールも、電源を切ったあとも表示内容が維持されます。なので、必ずしも動態デモにしなくて良いのがワタシ的にはメリットですね。最近はRaspberry Piが増えすぎてやりくりがわからなくなってきました。

というわけで、週末はこの辺も展示していますので、ぜひMaker Faireに遊びに来てください。

f:id:Akkiesoft:20170803161952j:plain

Ejectまとめ本を作った時のノウハウのメモ

今回は今までのタイトルのPDFを単純に結合しました。そこに書き下ろし分のPDFを結合して仕上げる形にしましたが、いくつか問題があって印刷所にお手間をとらせてしまったのでメモです。

PDF結合はMacのプレビュー.appで作業しました。サムネール表示にしてガシガシつなげていって、書き出したらおしまい。

書き下ろし分はWindows版Word2016なら昨年のVLゴシック使えない問題を回避できることがわかったので、Windowsで作成して、PDF化したものをMacで結合しました。と言うかMac版Word2016のフォント選べないバグまだ直ってないんかと。

薄い本の組版がちょっとキツい - あっきぃ日誌

まとめ本ではページ番号が元の本のままになっていて、別途ノンブル(ページ番号)が必要との指摘をうけたため、本の綴じに近いところに隠しノンブルを挿入しました。この作業は会社支給Macに入っていたAcrobatが非常に便利でした。

文書内にページ番号を追加する方法 (Acrobat XI)

そして再入稿してみると、埋め込まれていないフォントがあるとの連絡。本文は問題ないので無視していい旨を伝えると、なんと隠しノンブルの文字のフォントが埋め込まれていませんでした。さすがに焦る。

ここで活躍するのが再びMacのプレビュー.app。PDFを読み込んで、書き出しておわり。これだけで、フォントが埋め込まれました。プレビュー.app便利かよ……。

pdfにフォントを埋め込む(Mac) - Qiita

表紙の方は、今回は久々に自分で作成。Gimpで描いているのですが、主にパスを使って描いています。キャラクターはトレースしたり、雰囲気でドライブだのタンブラスイッチだのを描いていきました。Raspberry Piが地味に描くの大変でした。

と言う感じで、今回は地味にいろいろなツールを駆使しました。なんとか納品まで漕ぎ着けることができて良かった。頑張って売りさばこう。。

C92 夏コミ新刊のご案内

そういえばコミケに受かってました。1日目(8/11)東7ホール・た-23b「こくだランド」でお待ちしています。

新刊は、初のまとめ本になりました。表紙はあの家具屋さんのマニュアルのパロディで、タイトルは「EJECTO(イジェクトー)2012-2017」です。

f:id:Akkiesoft:20170731225619p:plain:h600

1作目「できる!Ejectコマンド工作」から昨年の「Ejectコマンド工作クックブック」までの4冊をまとめてあります。それともうしわけ程度の書き下ろしも掲載して、ボリューム満点132ページになりました。お値段はなんと800円です。お手頃ですね。

ボリューム満点なこの本を、もうEject本の続きは出まいとたかをくくり、長く売ることを想定して200部も刷ってしまったので、売れ残ると3〜4箱くらい積むことになりそうです。明日自宅に届く100部+余部がすでに2箱だそうなので、どうかみなさん……よろしくお願い申し上げます……!!

なお、千円札1枚でお釣りなくスムーズに買えることを想定した缶バッジセットも200円で頒布します。こちらはかつおちゃんに描いてもらいました。まとめ本の中にもいます。

f:id:Akkiesoft:20170731225725j:plain:h600

本当にどうぞよろしくお願いします。

BME280センサーで室外の温湿度と気圧を測ってみる

Twitterでシャポコさんという方がいて、シャポコさんが描く絵が好きでフォローしているんですが、ベランダでRaspberry Piとセンサーとを置いて気象観測していたのを見て、面白そうだなあと思い、私もやってみることにしました。

センサーは秋月電子でBME280と言うセンサーを購入。1000円もするセンサーは初めてですね……!

f:id:Akkiesoft:20170731223020j:plain

I2C接続するようにジャンパ設定してあと接続してテスト。値が安定して取得できないなあと思っていたら、I2Cのアドレスを設定するためにSDOをGND(0x76)かVDD(0x77)どちらかに繋げないといけませんでした。これをやらないと0x76と0x77がランダムみたいな感じになって失敗するようになりました。マニュアル読め、と言うか読んでも理解していなかったというか。

設置については、私の場合は室内にRaspberry Piを配置して、aitendoのLANポートブレイクアウトモジュールでGPIOケーブルをLANケーブルに変換した後エアコンダクトから外に出して、センサーを接続する方法にしました。

こういう感じにして

f:id:Akkiesoft:20170731222754j:plain:h450

適当に埋め込み。

f:id:Akkiesoft:20170731222758j:plain:h450

もう一個LANポートブレイクアウトモジュールを繋いで、LANケーブルから再びピンヘッダケーブルに変換したあと、センサーに繋いでいます。

f:id:Akkiesoft:20170731223259j:plain

センサーで取得した値はZabbixになげるようにスクリプトを作成しました。

#!/usr/bin/env python

# sudo apt install -y python-pip python-smbus
# sudo pip install rpi.bme280 py-zabbix

import smbus2
import bme280
from pyzabbix import ZabbixMetric, ZabbixSender

address = 0x76
bus = smbus2.SMBus(1)
bme280.load_calibration_params(bus, address)
data = bme280.sample(bus, address)

params = [
  ZabbixMetric("bme280", "verandah_temperature", data.temperature),
  ZabbixMetric("bme280", "verandah_humidity", data.humidity),
  ZabbixMetric("bme280", "verandah_pressure", data.pressure)
]
result = ZabbixSender(use_config=True).send(params)

あとはZabbixでホストを作って、それぞれのアイテム(verandah_*)をZabbixトラッパーで作っておけばデータがたまり始めます。グラフで見てみると、基本的に1000hPa前後の値になる気圧をZabbixが自動でキロ変換して1.01KhPaとかにしてしまって見づらいので、以下の情報をもとに単位がキロに変換されないようにしました。

アイテムの単位計算 | 日本Zabbixユーザー会

UbuntuでZabbix公式リポジトリからパッケージをインストールした場合(うちはUbuntu 14.04でZabbixバージョンは3.0.3でした)、/usr/share/zabbix/include/func.inc.phpを開いて以下の部分を書き換えます。

        // any other unit
        // black list of units that should have no multiplier prefix (K, M, G etc) applied
#        $blackList = ['%', 'ms', 'rpm', 'RPM'];
        $blackList = ['%', 'ms', 'rpm', 'RPM', 'hPa'];  # hPaを追加

これでグラフもバッチリ。

f:id:Akkiesoft:20170731224314p:plain

そして、室温と湿度の方はと言うと……エアコンの室外機の熱風を拾ってしまうらしく、エアコンをつけると値がグワッと変わってしまいます。ううん、おしい。

f:id:Akkiesoft:20170731224346p:plain

Twitterでは、百葉箱的なもっと立派なソリューションを教えてもらいましたが、さすがにそこまで頑張る気もしないので、ここは妥協といったところでしょうか。その内気が向いたら改良してみたいです。とりあえずLANケーブルは3mでは足りなさそうなので5mに交換したいです。3mのケーブルもこのためにアキバの100円ジャンクの箱から拾ってきたけど足らんかったかー。

コミック

溜め込んだ(いつもどおり)

NEW GAME! (6)

新キャラのおっぱい感。

魔法陣グルグル2 (8)

ゴチンコおったんかワレェ!!って言いながら3分くらい笑ってました。

そういえばグルグルのアニメ1話しか見れてないけどハイペースで進みそうですね。

まじとら! (1)

同人のやつからずっと見てたTSモノが単行本化されました。TSモノ……いいですね。

小林さんちのメイドラゴン (6)

表紙のトールのなんか企んでる感じの表情がいい……。トールの昔話も良かったです。

出会い系サイトで妹と出会う話

pixivとTwitterから話題になった百合コミックスの単行本化です。ツイの百合オタクから流れてくるのを見てましたがなんかこう……いい(沼に沈められた感)。表題のタイトル以外に違うお話が色々載ったオムニバス形式です。

出会い系サイトで妹と出会う話 (電撃コミックスNEXT)

出会い系サイトで妹と出会う話 (電撃コミックスNEXT)

かんなぎ (12・完)

えええかんなぎ終わるのおおお!!って思ったけど、たしかにクライマックス的な流れだったな。コミック読んで気づいたけど、特装版買ったほうが良かったかもしれない……後悔先に立たず。もうね、いろいろ終わったあとの話がニヤニヤ止まらんのですわ。いい。ろりこんになってしまう……

というわけで特装版をおすすめします。持ってないけど。買い直すか迷う。

かんなぎ (12) 特装版 (REXコミックス)

かんなぎ (12) 特装版 (REXコミックス)

かんなぎ (12) (REXコミックス)

かんなぎ (12) (REXコミックス)

変女 (7)

かんなぎと同時に買った変女の新刊は特装版(ドラマCD付き)で買っちゃったんだよなあ。おかしくね。両方特装にしような?

ブートキャンプ回がよかったです。のーぱん。

変女~変な女子高生 甘栗千子~ 7 (ヤングアニマルコミックス)

変女~変な女子高生 甘栗千子~ 7 (ヤングアニマルコミックス)