あっきぃ日誌

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

除夜のEject 2020

今年(昨年?)もやりました。

f:id:Akkiesoft:20210101004404j:plain

YouTubeの配信がだいぶグダグダになってしまい、事前準備すべきはこいつだったーと後悔。機材はミクノートPCとiPhoneSEとiVCamでした。

f:id:Akkiesoft:20210101004426j:plain

ウェブカメラで配信をスタートしたら、音声が入らないとコメントがあって、配信を止める覚悟でリロードをしたところ、そのままエンコード配信に移行してしまい、同仕様もなくなってOBSをインストールして再開しました。そのおかげで音声も自由に設定できました(と言いつつよくわからないまま結局ノートPCのマイクを使用した)し、うすいほんの宣伝QRコードを差し込んだりテキストでエンディングやったりできたので、結果的には良かったっぽいです。終了ボタンがなくてブチギレましたが。

f:id:Akkiesoft:20210101004700p:plain

なんとなく、二重投稿っぽくなってる人をよく見かけた気がするので、なんかがおかしくなってそうな気がしていますが、気が向いたらなおしかもしれません。

というわけで、新年あけましておめでとうございます。コロナ時代2年目、これまでの経験やワクチンや諸々で少しはいい方向に向かってくれればいいなあと思っています。オフラインでイベントしたいし、薄い本も売りたい!

新幹線で行く秋葉原散歩

ここ最近スーツ交通チャンネルで東急コラボとか長津田周りのネタがちょいちょいあって、まあそうでなくてもたまによく見てるんですけど、この回を見て、新幹線で東京に出る、なるほどねえ〜と関心を持ったので、やってみました。

www.youtube.com

長津田から東京まで。秋葉原までにしようと思ったけど券売機で指定できず。できなかったっけ?窓口ならできそう。まあ誤差なので今日はこれで。

f:id:Akkiesoft:20201231000939j:plain

新幹線は1月末にOSCで大阪にいったきりの超ご無沙汰。これまでなんだかんだ年に5往復くらいは乗ってたと思うので、こう言うノリ方でもしない限り今年は1回で終わるところでした。

f:id:Akkiesoft:20201231001024j:plain

さすがに登は東京まで帰る人もそれなりにいるので動画ほどガラ空きではなかったのですが、それでもこんな写真を取る程度には余裕の空き具合でした。たしかに電車よりは三密は回避できてる気になれそう。

f:id:Akkiesoft:20201231001214j:plain

東京駅に着ってところで、ホーム端に鉄がカメラを持って集まってたので、すかさず私もiPhoneを構えたら、N700Sがいました。しかもこれトップナンバーですかね?

f:id:Akkiesoft:20201231001340j:plain

向かいのホームに行くまで気合も出ず、降りたホームから引きで雑に一枚。

f:id:Akkiesoft:20201231001436j:plain

アキバにはメロブにちょっと用事があったのと、iPod Touch 5thを買取りに出して処分するのとで、ちょっとした用事で行ったのですが、iPodは5thで尿液晶化していつつも2300円の値が着いたのでヨシとして、メロブは入場規制になっていて、1階から4階まで階段に列が伸びていて断念しました。写真は駿河屋の店先ワゴンにいたミク。寒かろうと思った瞬間お買い上げしてましたね……。

f:id:Akkiesoft:20201231001513j:plain

そのあと新宿のメロブに挑戦したらあっさり入れるわ買いたい物はサクッと買えるわで、アキバとは……?となった次第。そのあととしぁ氏とあってルノアールでだいぶだべってきました。

帰りにダイソーによるというのでついてってみたら、ブギーボード的なボードが500円で並んでいて即買い。アキバでも前からあきばお~あたりにあったりしたけど、ダイソーでこれが500円で買えるのはすごいですな。初代とか会社にあったのは3000円くらいだったような気が。

f:id:Akkiesoft:20201231002008j:plain

f:id:Akkiesoft:20201231002019j:plain

というわけで、今日は久々に充実した一日でした。ちなみに帰りは普通に渋谷を経由して電車で帰りました。

エアコミケ2

今日からなので、頒布物紹介をしていきます。

今年は本当に頒布機会がなくなりまして、どの本も全くもって手元から減りませんでした。こうなると次の執筆意欲があるない関係なく、在庫がこれ以上部屋に積めなくなるので、次をつくっ盛り上げていこうとかそういう話にすらなくなります。そして印刷屋が潰れて、こうやって経済が止まっていくんだなあというのを実感した年でした。どっか一部でから騒ぎしても一部が止まってたらどうしようもないというね。

……なんて暗い話はヤメにして、とにかく売っていくわよ!!委託先のメロブとらのあなで買い物をしたついでにカートに入れていただければ幸いです!

f:id:Akkiesoft:20201230102434j:plain

Eject2020(2020/5発行)

前回のエアコミケ合わせ発行の新作です。150部中10部も頒布できていないので、みなさまにとっては新刊です。買ったかどうか迷う必要はありません。

Ejectではんこ廃止に抗う「Ejectスタンパー2020」、実質Raspberry Piの工作疑惑がある「Pokemon GoモンスターボールPlusをEjectで自動化!」の2本立て。かつおちゃんの表紙やあの4コマのパロディも掲載している際どい1冊です。

電子版・冊子版どちらもあります。購入はこちら。

ec.toranoana.shop

www.melonbooks.co.jp

eject.booth.pm

あっきぃのラズピッピいじり5(2019/12発行)

去年のコミケあわせの既刊です。が、こちらも紙版の在庫がたっぷりあり、Eject2020とどちらかが完売しないと在庫おきばがないので次の本が刷れなくなりました。マジピンチ、よろしくお願いいたします。

ラズピッピで「はよねろ時報時計」(午前に設定すれば在宅ワーク中の時報にも使えるよ)を作ったり、ラズピッピでラズピッピのイメージライターを作ったりする工作などを紹介しています。工作の作例なので内容が陳腐化しない!やったね!

こちらのみ冊子版だけとなります。在庫撲滅にご協力お願いいたします……!購入はこちら。

www.melonbooks.co.jp

ecs.toranoana.jp

あっきぃのラズピッピいじり4(2018/12発行)

さらに前の既刊ですがこちらも在庫が……!マジピンチ。

ラズピッピサイネージが一押しです。こないだのAdvent Calendarにも書いたトイレサイネージはこのあたりです。そして工作の作例なので内容が陳腐化しない!やったね!

電子版・冊子版どちらもあります。購入はこちら。

shop.comiczin.jp

www.melonbooks.co.jp

eject.booth.pm

EJECTO 2012-2017

Ejectコマンド工作のまとめ本です。これとEject2020を買えばEject本はコンプです。やったね。

COMIC ZIN
メロンブックス

PM2.5センサーのPMS5003をラズピッピにつないで遊ぶ

Raspberry Pi Advent Calendar 2020の25日目、最終日です。

adventar.org

最終日はGPSの続きだと地味なのでなにか……と思っていたら、昨晩皿洗い中に特に強打したわけでもないのに突然左親指が内出血して痛めてしまった*1ので、最後の最後でアレですが、積みセンサー消化的な省エネなネタで、PM2.5センサーで遊びます。2.5を倍にしたら25だし今日にぴったりだなガハハwww(🤔?)

PM2.5

まずPM2.5についてざっくりお勉強しました。

微小粒子状物質PM2.5)とは
大気中に浮遊している2.5μm(1μmは1mmの千分の1)以下の小さな粒子のこと

http://www.env.go.jp/air/osen/pm/info.html#ABOUT

特定の何かというわけではなく、2.5μm以下の粒子は基本的にPM2.5というものとのこと。で、環境基準も以下の通り定まっているそうです。

1年平均値 15μg/m3以下 かつ 1日平均値 35μg/m3以下

http://www.env.go.jp/air/osen/pm/info.html#STANDARD

PM2.5センサー

だいぶ前にお仕事つながりの方からセンサー類をごそっと頂いた中にPMS5003というPM2.5センサーが入っていました。これはシリアル通信で値が取れるもののようですが、センサーから出ているピンのピッチが細かくて、Raspberry Piはもちろん他のボード類でも接続するにはちょっとしんどいなあと思って放置していました。

しばらくすると、我らがPimoroniでも同じセンサーの取扱が始まって、Pythonライブラリの公開やブレイクアウトボードの発売など、扱いやすい環境が整備されました。Pimoroni本当に心強い。ブレイクアウトボードをポチポチまではしたのですが、なぜかまた放置していました。

f:id:Akkiesoft:20201225120324j:plain

セットアップ

というわけでこの辺から本題。重い腰をあげてセットアップし、値を見てキャッキャしていきます。用意するのはPMS5003センサー、それのブレイクアウトボード、メス-メスのケーブル6本です。PMS5003センサーは放置するにはだいぶお高いですね。。

PMS5003 Particulate Matter Sensor with Cable – Pimoroni

Particulate Matter Sensor Breakout (for PMS5003) – Pimoroni

配線はこんなかんじ。5V、GND、TX、RXは連続して配線できるので配線はラクです。RESETとENは1つ開けて反対の列に2つ連続で配線(BCM27とBCM22)と言った具合です。

f:id:Akkiesoft:20201225120300j:plain

続けてPythonライブラリの用意。今日はVirtualEnvを用意してそこにセットアップします。VirtualEnvは環境を汚さない利点がありますし、activate中は環境内のbinディレクトリにパスが通るので、スクリプトを中に置けば実行が簡単になります。

# VirtualEnvが入っていないようならインストール
pi@usbpi32:~ $ sudo apt update;sudo apt install -ypython3-virtualenv

# /home/pi/py-pms5003にVirtualEnv環境を作る
pi@usbpi32:~ $ virtualenv py-pms5003

# Python環境を作成したVirtualEnv環境に切り替える
pi@usbpi32:~ $ source py-pms5003/bin/activate
# activate中はプロンプトにVirtualEnvの名前が入る
(pms5003) pi@usbpi32:~ $ 
# deactivateコマンドでもとのPython環境に戻る
(pms5003) pi@usbpi32:~ $ deactivate
pi@usbpi32:~ $ 

# ~/py-pms5003/binに https://github.com/pimoroni/pms5003-python のサンプルスクリプトをダウンロードして実行できるようにする
pi@usbpi32:~ $ cd py-pms5003/bin
pi@usbpi32:~/py-pms5003/bin $ wget https://raw.githubusercontent.com/pimoroni/pms5003-python/master/examples/all.py
pi@usbpi32:~/py-pms5003/bin $ wget https://raw.githubusercontent.com/pimoroni/pms5003-python/master/examples/specific.py
pi@usbpi32:~/py-pms5003/bin $ chmod +x all.py specific.py

センサーはシリアル通信なので、シリアル通信を以下の通り投入します。

pi@usbpi32:~ $ sudo vi /boot/config.txt

[all]
enable_uart=1
dtoverlay=pi3-miniuart-bt
>||

反映には再起動が必要になるので、ここで一旦再起動します。

>||
pi@usbpi32:~ $ sudo reboot

動かしてみる

セットアップは以上です。では動かしてみましよう。

f:id:Akkiesoft:20201225120348j:plain

まずはVirtualEnv環境に切り替えます。

pi@usbpi32:~ $ source py-pms5003/bin/activate
(pms5003) pi@usbpi32:~ $

先述のとおり、サンプルスクリプトを配置した先はパスが通っているのでall.pyを以下のように実行します。うまく接続していると、数秒ごとに以下のようなデータが出力されます。all.pyでは、PM1.0、PM2.5、PM10と、微粒子のサイズごとの値が出てきました。

測定は机の上でやっており、窓を開けたり締めたりしてみましたがそれほど大きな値は出ず、基準値以下?な感じでした。

(pms5003) pi@usbpi32:~ $ all.py

PM1.0 ug/m3 (ultrafine particles):                             2
PM2.5 ug/m3 (combustion particles, organic compounds, metals): 3
PM10 ug/m3  (dust, pollen, mould spores):                      3
PM1.0 ug/m3 (atmos env):                                       2
PM2.5 ug/m3 (atmos env):                                       3
PM10 ug/m3 (atmos env):                                        3
>0.3um in 0.1L air:                                            432
>0.5um in 0.1L air:                                            137
>1.0um in 0.1L air:                                            19
>2.5um in 0.1L air:                                            1
>5.0um in 0.1L air:                                            0
>10um in 0.1L air:                                             0

つづけてspecific.pyの方を実行してみます。こちらはPM2.5の値だけを出力するサンプルのようです。

(pms5003) pi@usbpi32:~ $ specific.py
PM2.5 ug/m3 (combustion particles, organic compounds, metals): 3
PM2.5 ug/m3 (combustion particles, organic compounds, metals): 2
PM2.5 ug/m3 (combustion particles, organic compounds, metals): 2

今度はベランダに出して計測します。室内よりはちょっと値が大きくなりましたが、基準値以下っぽいですね。

(pms5003) pi@usbpi32:~ $ all.py

PM1.0 ug/m3 (ultrafine particles):                             7
PM2.5 ug/m3 (combustion particles, organic compounds, metals): 9
PM10 ug/m3  (dust, pollen, mould spores):                      9
PM1.0 ug/m3 (atmos env):                                       7
PM2.5 ug/m3 (atmos env):                                       9
PM10 ug/m3 (atmos env):                                        9
>0.3um in 0.1L air:                                            1083
>0.5um in 0.1L air:                                            338
>1.0um in 0.1L air:                                            50
>2.5um in 0.1L air:                                            3
>5.0um in 0.1L air:                                            0
>10um in 0.1L air:                                             0

tenkijpでは今日のPM2.5分布予測というものがあるらしく、東京各地の測定値はいまのところ10ug/m3前後っぽいので、なんとなくあっていそう?な雰囲気です。

tenki.jp

ちなみに、以下は昨晩指を痛めて撃沈する前に窓開け換気しながら机の上で動かしていたときのデータです。こちらは基準値オーバーのようですが、もしかするとしばらく放置していた間にセンサーの中にゴミが溜まってしまってこのような結果になったのかもしれませんね。

PM2.5 ug/m3 (combustion particles, organic compounds, metals): 37
PM2.5 ug/m3 (combustion particles, organic compounds, metals): 38
PM2.5 ug/m3 (combustion particles, organic compounds, metals): 38
PM2.5 ug/m3 (combustion particles, organic compounds, metals): 38
PM2.5 ug/m3 (combustion particles, organic compounds, metals): 39

まとめ

PimoroniのブレイクアウトPythonライブラリのおかげで積みセンサーを動かせたというお話でした。長期間動かしてデータを取り続けてみるのも面白そうですし、PM2.5予測で多い日を狙って取得して変化が見られるとそれも良さそうです。

PMS5003センサーは小さいファンで空気を取り込んでデータを採るので、静かな場所に置くとファンの音が気になるかもしれません。まあ、軽く動かしてみた感じよほど耳を近づけないとわからないレベルではありました。

そして今日でRaspberry Pi Advent Calendar 2020は終了です。無事完走することができました。めでてえ。途中ご参加頂いた皆様、本当にありがとうございました。全部一人だったら流石にネタ切れで終わるところでしたw

それでは、メリークリスマス!!

f:id:Akkiesoft:20201225122710j:plain

(今朝玄関を開けたらアマゾンサンタからミクぬいぐるみが届いていたのですが、どなたでしょうかね?w)

*1:ググったところアッシェンバッハ症候群と言うそうな。整形外科で見てもらっても骨とか関節に異常はなく経過観察になりました。とはいえ年の瀬の病院が閉まる時期にこう言うよくわからんのを発症するのは精神衛生的に嬉しくはないですね。

GPSロガーをいよいよまじめに作ろうとする

Raspberry Pi Advent Calendar 2020の24日目です。クリスマスですね。特に関係ない話題で行きます。

adventar.org

秋に買ったGPSモジュールでたまに遊んでいましたが、このカレンダーではまだ扱っていなかったので(ああでも1日目にちょっと書いてたか)、今日明日はこの話題でフィニッシュになるかしらん。

初期

前回はとりあえずLCDに座標を出して、それを人力で読み取ってGoogle Mapsで読んでキャッキャしていました。

akkiesoft.hatenablog.jp

ちょっと作り込む

人力で読み取るのは面倒なので、11月末くらいにはPythonスクリプトにWebサーバーを仕込んでHTMLにGoogle MapsのリンクやLCDに出していた情報も出すようにしていました。

f:id:Akkiesoft:20201223230047p:plain

チャリ散歩で使おうとするとこんな感じになり、わりと不審者!

f:id:Akkiesoft:20201223230059j:plain

OSMを埋め込む

ファイル保存周りを書くのが面倒で脱線が続き、OSMで現在位置を表示したり、画面表示中に取得した値を10秒ごとに点で打つなどの昨日をつけて遊んでました。ただし、記録していないのでリロードすると点は消えます。これも11月末くらいの話。

f:id:Akkiesoft:20201223230252p:plain

ファイル保存を作る

ここからが今日の話。やはりファイル保存できないと色々進まないので、作っていきます。

ファイル保存の開始と終了をWebサーバーのAPIとして実装して、GETで特定のURLが叩かれたら開始・終了できるようにしました。WebUIには開始と終了のボタンを用意して、APIをたたけるようにします。

f:id:Akkiesoft:20201223230649j:plain

WebUIでは毎秒GPSの座標を取得するようにしていますが、ここに現在記録中のファイル名を含めることにして、ファイル名があれば記録中、0が入ってたら記録していない、という判定ができるようにしました。Pythonスクリプト側でも記録中かどうかは同じような判定ができます。便利

Python側のファイル保存は、APIが呼ばれた時点でCSVファイル名前ぎめ(日付と時刻)とヘッダーを書き込みをして、それ以降は記録用スレッドが10秒ごとにファイルに追記していくようにしました。

で、説明だけじゃわからんと思うので今日までのスクリプトを一旦ぶんなげました。

github.com

実際に記録してみる

今日はクリスマスだというのに渋谷に出社する用事があったので、渋谷でテスト。と思ったらテザリングの調子が非常に悪く、Web操作が何もできなくなるアクシデントが発生。2.4GHz帯が混雑しているところでの操作は要改善です。LCDがあるのでボタンで操作とかですかね……。

とりあえずつながっている間のスクショ。

f:id:Akkiesoft:20201224133738p:plain

ログファイルはスタートしてしまえばテザリングが切れてしまっても続くので、ちゃんとデータが取れています。

f:id:Akkiesoft:20201224134535j:plain

ただ、座標だけ見せられても正直わからんので、CSVを読み取ってOSMに点を打つ機能がほしいところです。

あと、途中の鷺沼でLCDを写した様子。電車内はGPS拾えませんでした。シビア。

f:id:Akkiesoft:20201224135244j:plain

まとめ

GPSロガーの11月くらいにちょっといじっていた部分の紹介と、昨晩から作ったロガー部分を今日試したというお話でした。

次はCSVをなんかいい感じにする機能で、ちょっとラズピッピから話題がそれちゃいそうなので、もしかしたらあしたはなんか違う話題(シメ的なやつ)にしちゃうかもです。