Androidのメモとか

ポキオの日記です。今日も遅延してない。

EPS8266向け京急遅延情報取得ライブラリを更新しました

MANABIYAでも展示してます!

pokiiio ESP8266Keikyu

更新しました!

github.com

今回の変更により、EPS8266上のコーディングは変更不要ですが、初回の情報取得時だけ時間がかかります。(理由は後述)

ロジック変更しました

京急の運行情報HPがだんだん重くなってきたので、HTTP-GETするときRange指定をして、必要な部分だけ取得してたんですが、その場所の指定をハードコードしてました(クソコード)。なので、運行情報のHPのレイアウトが変わる度に、スクリプトの更新が必要でした。

pokiiio ESP8266Keikyu

最近、ちょいちょいHPの構成が変わるので、ハードコードしてる部分をいちいち書き換えるのが面倒でした。そこで、Rangeで取得する部分を動的に検索する方式に変更しました。

なので、初回情報取得時は、検索するシーケンスが走るため、運行情報取得完了まで少し時間がかかりますが、ご容赦下さい。

京急遅延ガジェット「ダァ シエリイェスなIoT」に電子ペーパーを組み合わせてみた

ついに3代目。

ポキオ 京急 ダァ3号

今までのダァ

いままで、いろんなガジェットを作ってきました。

基本コンセプトは「京急線の遅延を検知してユーザーに知らせる」という部分で、ここはブレていないのですが、いままでは光って知らせる系のものでした。

今回は3代目ということで、光ではなく電子ペーパーをつかったガジェットを作ってみました。

必要なもの

レゴ対応のラズパイケースとの出会いから、全てが始まった。上に載せているレゴは、レゴストアでやってる「詰め放題」で、欲しいブロックだけを大量購入して作りました。

構成はこんな感じ

いままではESP8266をベースに作っていましたが、今回はRaspberry Pi。リッチなことがたくさんできるので、Node-REDを使っています。

ポキオ 京急 ダァ3号

こんな感じです。

Node-REDのフローはこんな感じ。

[{"id":"7f5e5361.227884","type":"inject","z":"3ad520c3.545e78","name":"Node-RED起動時","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":true,"onceDelay":"5","x":170,"y":60,"wires":[["fdbd6864.59a03"]]},{"id":"fdbd6864.59a03","type":"exec","z":"3ad520c3.545e78","command":"python ~/GitHub/KeikyuInfoOnEPaper/show_keikyu_unko.py","addpay":false,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"電子ペーパーを更新","x":500,"y":100,"wires":[[],[],[]]},{"id":"3eb4297b.7362fe","type":"twitter in","z":"3ad520c3.545e78","twitter":"","tags":"@keikyu_official","user":"user","name":"京急公式Twitterに新しい投稿","topic":"tweets","inputs":0,"x":200,"y":140,"wires":[["fdbd6864.59a03"]]}]

電子ペーパーの表示を更新する部分はPythonにすべて寄せてしまったため、Node-RED上ではpython ~/GitHub/KeikyuInfoOnEPaper/show_keikyu_unko.pyとコールしているだけです。

MANABIYAで展示中!

通称ダァ3号は、2号とともにMANABIYAで展示中です。 もしよかったら見に来て下さい!

Raspberry Pi 3 Model B V1.2 (日本製) 国内正規代理店品

Raspberry Pi 3 Model B V1.2 (日本製) 国内正規代理店品

  • 発売日: 2016/02/29
  • メディア: Tools & Hardware

近況報告と備忘録

3月一杯で2000形が全編成引退…。

京急 2000形 2011編成

ブログの更新が滞ってますが、生きてます

はい。備忘録を兼ねて、近況報告をします。

MANABIYAに出展します

manabiya.tech

■技術加工室(IoT展示コーナー)

最新のIoT技術を用いた作品や製品の展示コーナーです。出展者とも気軽に交流頂けるので是非お立ち寄りください。

技術加工室でお待ちしております。

京急っぽいRaspberry Pi

A post shared by pokio (@pokiiiiio) on

このあたりを持っていく予定です。

IoT縛りの勉強会! IoTLT vol.37 @ Innovation Space DEJIMAで登壇します

iotlt.connpass.com

DEJIMAに行ってきます。Node-REDと電子ペーパーの組み合わせによるよさみを話をしてこようかと思っています。京急ネタはやめようかと思いましたが、今回も京急ネタになってしまいました。

技術書典4に本を出します

技術書典:技術書オンリーイベント

dotstud.io

Nefry BT関連の本のメンバーの一人として、鋭意執筆中です!みんな本買ってくれ!

その他もろもろ

  • MacBook Airが瀕死の状態なので買い替えたい
  • Sierraにしたせいで、KEXT関連の問題を踏んだ
  • 18650デビューした

おいおい記事にしたい。

京急の運行情報を電子ペーパーに表示するアレ

はい。

Keikyu Waveshare e-Paper

やっぱり京急

relativelayout.hatenablog.com

relativelayout.hatenablog.com

三色電子ペーパーを買って色々遊んでるわけですが、やっぱり京急ネタを実装しないと気がすまないので、やってみました。

運行情報をさり気なく見える化したい

今回は、運行情報ページから情報をパースして、それをPythonのPILを使って画像化して、電子ペーパーに表示するスクリプトを作りました。

github.com

せっかくの三色電子ペーパーということで、ヘッダー部分を赤くしてみました。京急のロゴとかモリモリ使おうかと思いましたが、大人事情を踏まえてやめておきました。

KeikyuInfoOnEPaper

まぁ、こんな感じですが、デスクの横に置いたりするガジェットに組み込んで、さり気なく見える化していきたい感じ。ゆくゆくは、キオスク端末みたいなものを作っていきたい所存。

技術書典に向けてMacにインストールしたmd2reviewとreviewを試しに使ってみようと思った話

とりあえず試運転。

mac sierra md2review review install

前回は環境構築をしました

relativelayout.hatenablog.com

インストールしたものの、本当に動くのか心配だったので試運転。

まずはデータの準備

前回の記事(markdown)をつかってみようと思います。前回の記事の頭の部分はこんな感じでした。

インストールできたのかな・・・?


![mac sierra md2review review install](https://lh3.googleusercontent.com/yjq_7zReid-_ouWRU8n2bIxfAWiGvRsOXAzIH8nN-gxXLvueeDVA-F7ENVRbnd6niDVdjDwMdQuYIYxZn_3x5xvJEQBny-XF-9T51-naTUurQ7u6w6Uz5GOZruP6EWnYihsRqOB_XSs=s600 "mac sierra md2review review install")


## セットアップで泣きそうになった


何かのご縁で技術書典(いつも書展って変換されてイライラする)に出す同人誌の一部を書くことになり、とりあえずセットアップしようと思ったんです。


ちなみに、私の環境は以下の通り。


> MacBook Air (13-inch, Mid 2013)
>
> macOS Sierra 10.12.6


## まずはgemとかの更新をした(必要だった?)


とりあえず、Markdown→Re:VIEW形式の変換を行ってくれるmd2reviewと、Re:VIEWからTEXとかもろもろに変換してくれるreviewを入れてみようと思ったわけです。どっちもRuby系のツールだけど、うちのMacってgem入ってたかなーと思い、`gem -v`してみたら・・・


```sh
$ gem -v
2.0.14.1
```


ほう、入ってる。なんだ、ヤルジャン。

これをtext.mdというファイル名で保存して変換してみます。

MarkdownRe:VIEW

md2reviewコマンドで簡単に変換できました。

$ md2review test.md > test.re

test.reを開くと、こんな感じ。


インストールできたのかな・・・?



//image[yjq_7zReid-_ouWRU8n2bIxfAWiGvRsOXAzIH8nN-gxXLvueeDVA-F7ENVRbnd6niDVdjDwMdQuYIYxZn_3x5xvJEQBny-XF-9T51-naTUurQ7u6w6Uz5GOZruP6EWnYihsRqOB_XSs=s600][mac sierra md2review review install]{
//}



== セットアップで泣きそうになった


何かのご縁で技術書典(いつも書展って変換されてイライラする)に出す同人誌の一部を書くことになり、とりあえずセットアップしようと思ったんです。



ちなみに、私の環境は以下の通り。


//quote{
MacBook Air (13-inch, Mid 2013)



macOS Sierra 10.12.6

//}

== まずはgemとかの更新をした(必要だった?)


とりあえず、Markdown→Re:VIEW形式の変換を行ってくれるmd2reviewと、Re:VIEWからTEXとかもろもろに変換してくれるreviewを入れてみようと思ったわけです。どっちもRuby系のツールだけど、うちのMacってgem入ってたかなーと思い、@<tt>{gem -v}してみたら・・・


//emlist[][sh]{
$ gem -v
2.0.14.1
//}


ほう、入ってる。なんだ、ヤルジャン。

とりあえずできたっぽい。

Re:VIEW→HTML

PDF化にはMaxTeXが必要で、ファイルサイズが3GB近くあったので、今回はパス。とりあえず、HTML化をやってみました。

$ review-compile --target=html test.re > test.html
W, [2018-02-24T08:15:51.490630 #1780]  WARN -- : configuration file has no review_version property.
!!! CHAPS is obsoleted. please use catalog.yml.
W, [2018-02-24T08:15:51.492547 #1780]  WARN -- : test.re:8: image not bound: yjq_7zReid-_ouWRU8n2bIxfAWiGvRsOXAzIH8nN-gxXLvueeDVA-F7ENVRbnd6niDVdjDwMdQuYIYxZn_3x5xvJEQBny-XF-9T51-naTUurQ7u6w6Uz5GOZruP6EWnYihsRqOB_XSs=s600
!!! PREDEF is obsoleted. please use catalog.yml.
!!! POSTDEF is obsoleted. please use catalog.yml.

また怒られた。

でもtest.htmlはできていて、開いてみると。

mac sierra md2review review install

たしかにimage not boundだ。MarkdownRe:VIEWのタイミングで、URLが変な感じに変換されてしまっていたので、ファイルをreファイルと同じディレクトリに保存して、test.reの画像の指定を以下のように変更。

//image[DSC00320.jpg][mac sierra md2review review install]{
//}

これでイケるかなって思ったんですが。

$ review-compile --target=html test.re > test.html
W, [2018-02-24T09:47:18.488163 #1958]  WARN -- : configuration file has no review_version property.
!!! CHAPS is obsoleted. please use catalog.yml.
W, [2018-02-24T09:47:18.491329 #1958]  WARN -- : test.re:8: image not bound: DSC00320.jpg
!!! PREDEF is obsoleted. please use catalog.yml.
!!! POSTDEF is obsoleted. please use catalog.yml.

また怒られた。

github.com

どうやら、指定したフォルダを見に行くようで、しかも拡張子は要らなさそう。ということで、DSC00320.jpgimagesディレクトリをほってそこに移動。

また、test.reはこんな感じに変更。

//image[DSC00320][mac sierra md2review review install]{
//}

これで、もう一回変換してみると・・・。

$ review-compile --target=html test.re > test.html
W, [2018-02-24T10:00:28.461051 #698]  WARN -- : configuration file has no review_version property.
!!! CHAPS is obsoleted. please use catalog.yml.
!!! PREDEF is obsoleted. please use catalog.yml.
!!! POSTDEF is obsoleted. please use catalog.yml.

相変わらず怒られてますが、test.htmlを再度開いてみると。

mac sierra md2review review install

なんかそれっぽくなってる!

WARN -- : configuration file has no review_version property.
!!! CHAPS is obsoleted. please use catalog.yml.
!!! PREDEF is obsoleted. please use catalog.yml.
!!! POSTDEF is obsoleted. please use catalog.yml.

この辺は、おいおい対応します…(震え声)

技術書典に向けてMacにmd2reviewとreviewをインストールしようと思った話

インストールできたのかな・・・?

mac sierra md2review review install

セットアップで泣きそうになった

何かのご縁で技術書典(いつも書展って変換されてイライラする)に出す同人誌の一部を書くことになり、とりあえずセットアップしようと思ったんです。

ちなみに、私の環境は以下の通り。

MacBook Air (13-inch, Mid 2013)

macOS Sierra 10.12.6

まずはgemとかの更新をした(必要だった?)

とりあえず、MarkdownRe:VIEW形式の変換を行ってくれるmd2reviewと、Re:VIEWからTEXとかもろもろに変換してくれるreviewを入れてみようと思ったわけです。どっちもRuby系のツールだけど、うちのMacってgem入ってたかなーと思い、gem -vしてみたら・・・

$ gem -v
2.0.14.1

ほう、入ってる。なんだ、ヤルジャン。

ここで、変なクセを発揮してしまい、何を思ったかgemの更新をしてみたんだ。

$ sudo gem update --system
Updating rubygems-update
Fetching: rubygems-update-2.7.6.gem (100%)
Successfully installed rubygems-update-2.7.6
Parsing documentation for rubygems-update-2.7.6
Installing ri documentation for rubygems-update-2.7.6
Installing darkfish documentation for rubygems-update-2.7.6
Installing RubyGems 2.7.6
YAML safe loading is not available. Please upgrade psych to a version that supports safe loading (>= 2.0).
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/gem

え・・・

なんだかYAMLとかなんとかで怒られてる・・・

$ gem -v
YAML safe loading is not available. Please upgrade psych to a version that supports safe loading (>= 2.0).
2.7.6

でもgem -vすると、2.7.6が入ってる。

でも、なんだか相変わらず怒られてる・・・。どうやら、psychをアップデートすれば直るのかな、と思いおもむろにアップデートしてみたんだ。

$ sudo gem update psych
YAML safe loading is not available. Please upgrade psych to a version that supports safe loading (>= 2.0).
Updating installed gems
Updating psych
Fetching: psych-3.0.2.gem (100%)
ERROR:  Error installing psych:
    There are no versions of psych (= 3.0.2) compatible with your Ruby & RubyGems
    psych requires Ruby version >= 2.2.2. The current ruby version is 2.0.0.
Gems updated: psych

また怒られた。軽いDVだ。

rubyが古い。そうか。めんどくさいやつか。

$ sudo gem install psych
YAML safe loading is not available. Please upgrade psych to a version that supports safe loading (>= 2.0).
ERROR:  Error installing psych:
    The last version of psych (>= 0) to support your Ruby & RubyGems was 2.2.4. Try installing it with `gem install psych -v 2.2.4`
    psych requires Ruby version >= 2.2.2. The current ruby version is 2.0.0.

ちなみに、何を血迷ったのかsudo gem install psychしたら、

Try installing it with gem install psych -v 2.2.4

と言われたので、そのとおりにやってみました。

$ sudo gem install psych -v 2.2.4
YAML safe loading is not available. Please upgrade psych to a version that supports safe loading (>= 2.0).
Fetching: psych-2.2.4.gem (100%)
Building native extensions. This could take a while...
Successfully installed psych-2.2.4
Parsing documentation for psych-2.2.4
unable to convert "\xCA" from ASCII-8BIT to UTF-8 for /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-16/2.0.0/psych-2.2.4/psych.bundle, skipping
unable to convert "\xCA" from ASCII-8BIT to UTF-8 for lib/psych.bundle, skipping
Installing ri documentation for psych-2.2.4
1 gem installed

ほうほう。なんだかいい感じ。

$ gem -v
2.7.6

くじけずにgem -vしたら、ヴァージョンは変わってないものの、怒られなくなった。急に優しくなる感じも、まさにDV常習犯だ。

$ ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]

ちなみに、ruby -vはこの通り。2.0.0でございます。ダメだったらrbenvとかでうまいことヴァージョンを切り替えますが、めんどくさいので2.0.0で進めます。

ようやくreviewとmd2reviewのインストール、だったんだけど

もう怒られたくない、その一心。

とりあえず機嫌のいいうちにreviewをインストールしようと思ったんだ。

$ sudo gem install review
Password:
Fetching: image_size-1.5.0.gem (100%)
Successfully installed image_size-1.5.0
Fetching: rouge-3.1.1.gem (100%)
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /usr/bin/rougify

また怒られた。DVだよこれは。しかもさっきもこの怒られ方をしたようなきがする。

qiita.com

ぐぐってみると、El Capitanから入ったSystem Integrity Protection(rootless)が原因のようで・・・。インストール先を変えることで回避できるらしい。

$ sudo gem install -n /usr/local/bin review
Successfully installed rouge-3.1.1
Fetching: rubyzip-1.2.1.gem (100%)
Successfully installed rubyzip-1.2.1
Fetching: review-2.4.0.gem (100%)
Successfully installed review-2.4.0
Parsing documentation for rouge-3.1.1
Installing ri documentation for rouge-3.1.1
Parsing documentation for rubyzip-1.2.1
Installing ri documentation for rubyzip-1.2.1
Parsing documentation for review-2.4.0
Installing ri documentation for review-2.4.0
3 gems installed

うちの子にも使ってみたら、たしかにインストールできたっぽい。

$ sudo gem install -n /usr/local/bin md2review
Fetching: redcarpet-3.4.0.gem (100%)
Building native extensions. This could take a while...
Successfully installed redcarpet-3.4.0
Fetching: md2review-1.12.0.gem (100%)
Successfully installed md2review-1.12.0
Parsing documentation for redcarpet-3.4.0
unable to convert "\xCA" from ASCII-8BIT to UTF-8 for /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-16/2.0.0/redcarpet-3.4.0/redcarpet.bundle, skipping
unable to convert "\xCA" from ASCII-8BIT to UTF-8 for lib/redcarpet.bundle, skipping
Installing ri documentation for redcarpet-3.4.0
Parsing documentation for md2review-1.12.0
Installing ri documentation for md2review-1.12.0
2 gems installed

ついでにmd2reviewもこの作戦で行くと怒られることはなかった。

$ gem list review

*** LOCAL GEMS ***

md2review (1.12.0)
review (2.4.0)

うんうん、なんかインストールできてるっぽい。できてるっぽいぞ・・・!

・・・やっぱりYOSEMITEのままにしておけば良かったな(ボソッ

Waveshare 2.13inch e-Paper HAT (B)を買って3色電子ペーパーを楽しむ(値札を作ってみた編)

これが本来の使い方・・・?

Price Tag For Waveshare e-Paper

毎度毎度のWaveshare電子ペーパーです

前回まで。

relativelayout.hatenablog.com

relativelayout.hatenablog.com

WaveshareのRaspberry Pi向けの電子ペーパーハットです。3色表示可能で、この大きさ。もともとは、スーパーとかで使われるプライスタグ向けの電子ペーパーと思われます。沢山製造されたからこそ、安価な値段で買えるようになってるんですかね。

で、あれば、Python + PILで値札を作るスクリプトをつくって、本来の使い方をしてみよう!というお話です。

スクリプトはこちら

PythonのPILをは本当に神ですね。なんでもできます。

github.com

今回の気づきは以下の通り。

  • フォントはM+ FONTSを使わせていただきました。再配布可能な美しいフォントで、これをPILで呼び出して文字を描画しました。もちろん日本語に対応してます。
  • ちょっとだけ文字を太くしたかったので、描画を横方向に1pxずらして2回描画してます。無理矢理です。
  • 赤をより赤く表示するために、赤く表示するエリアを黒で塗りつぶしています。赤く塗りつぶすと、ドットが所々に表示されてしまうため。

表示させるよー

まずはオシャンな英語から。

Price Tag For Waveshare e-Paper

一応、こんな感じで4つのエリアの文字を変えられます。

Price Tag For Waveshare e-Paper

もちろん日本語も表示できます。

Price Tag For Waveshare e-Paper

いろいろ売りたくなりますよね。

Price Tag For Waveshare e-Paper

もう、値段じゃなくてもいいわけです。

Price Tag For Waveshare e-Paper

や、山崎まさよし

Price Tag For Waveshare e-Paper

するのねー。

「Androidのメモとか」は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。

このブログは個人的なメモ書きであったり、考えを書く場所であります。執筆者の所属する団体や企業のコメントや意向とは無関係であります。また、このブログは必ずしも正しいことが書かれているとは限らず、誤字脱字や意図せず誤った情報を載せる場合がありえます。それが原因で読者が不利益を被ったとしても、執筆者はいかなる責任も負いません。ありがとうございます。