Vブレーキ車用Sesameサイクル2アダプタ Ver.5

拙作のSesameサイクル2を取り付けるアダプタをPanasonicハリヤ以外のVブレーキ搭載自転車に使いたいというお声をいただきまして、またまた調整してみました。

前回までのあらすじ

今回Ver.4を機に、あらためてVブレーキ汎用モデルとして準備していきたいと思います。

2025.5.11追記:

以下の改良を加えてVer.5になりました。

  • U字のフレーム内部にリブ構造(支柱と空洞)をつけて構造的に強化を図った
  • 6角ナットの穴サイズを最適化
  • 底面の僅かな傾斜を削除

■あらためて仕組みを解説

過去記事であんまり設計意図を解説してなかったと思うので改めて。

まず外観はこんな形をしています。

下側が車体にVブレーキと一緒に共締め固定するための穴です。多少の幅の違いは調整ができるよう横長になっています。

中段の出っ張ったブロックがSesameサイクル2が載っかるところで、Sesameサイクル2と共締めするためにボルト穴があります。

裏返すと、こんな感じで六角ナットを挿入できるようになっています。

下側のVブレーキとともに固定するところは裏側にほんの僅かに傾斜がついています。ほとんど意味がなさそうで、造形面が荒れるだけなのでVer.5からこの傾斜は無くしました。

これによってVブレーキと完全に並行ではなく少し上側が浮いた感じでつく形になります。

イラストで説明するとこんな感じ。

なんとなくSesameサイクル2も車軸に向かって真っ直ぐにしたいなと思ってアダプタで角度をつけるようにしています(タイヤに干渉さえしなければ必須ではないと思いますが、見た目的なこだわりで)。

■汎用化に向けての課題

正直世の中のVブレーキ取付位置がどういう基準で設計されていて、車種によってどういうバラ付きがあるのかは把握できていません。ただ様々な車種に対応させるにあたって大きく2つの調整要素があるかなと思っています。

1. Sesameサイクル2受けブロックの位置、角度

まずはSesameサイクル2がつく高さです。いままで自分のPanasonicハリヤ2016年モデルにあわせて作った位置を基準に、ハリヤ2017年モデルの方は2cm、GIANT ESCAPE MINIの方は1cm下げてほしいという要望がありました。GIANT ESCAPE MINIでは結局オリジナル位置で良かったそうです。

どうも車種によってここの位置はまちまちになりそうです。こちらの記事によると、Vブレーキのアームは107mm前後のものと90mm程度のコンパクトVブレーキというのがあるそうで、2cm弱の差があるのも納得という感じです(もう少しデータが集まればこの2パターンに集約できる?)。

そのため現状では一旦写真のような目盛り付きバラモデルをお送りして、マッチングをとってもらうというステップを基本にしています。

(CGなので見づらいです。プリントした目盛りはもう少し荒い…)

これまでのところこの位置調整で無事取り付けできているようですが、もしかすると今後、背面やブロック上面の角度を更に調整する必要が出てくる可能性はあるかもと思っています。

2.造形素材

屋外で使うものなので、夏の日差しで劣化したり変形したりといったリスクが高いです。3Dプリントで最も一般的でコストも安いPLAという材料は60℃くらいで反ったりする可能性があります(特に板状のもの、荷重がかかっている状態)。本モデルは割と当てはまると思います。また色が黒だと太陽熱を吸収しやすいので更に温度が上がりやすいです。

次にメジャーなのがPETGです。PLAよりは衝撃に強いです(単純に固いのはPLAですが、PETGの方が衝撃を吸収できる靱性が高い)。こちらは70℃くらいまで大丈夫な可能性があります。白系の色ならもしかすると耐えられるかも知れません(未検証)。社外品で色々安いのもありますが、ウチでは今のところ有償頒布するものにはBambuのPETG-HFを使うことにしていて、だいたい白黒グレー他大抵は在庫があります。

それより耐熱性が高い素材だとABSやASAというのがあります。ABSは有名で材料単価も割と安いんですが、造形に刺激臭が出るので、当方では今のところ避けています。ASAはちょっとお高いですが100℃くらいまで平気だと言われています。ウチに現時点では黒のみ在庫がありますが、今後継続的に確保するかは微妙です。ウチでは造形面が荒れやすく、見た目としてはPETGの方が綺麗に出来るので使いどころが悩ましいんですよね…

さらに少し前に炭素繊維を練り込んで強化したASA-CFというのも登場していて、こちらの方が造形面が綺麗になるということもあり、次に買うならこれかなぁとも思っています。→買いました

コスト比較でいうと、Bambu Storeで1kgスプールが

  • PETG-HF: ¥3,400(補充なら¥2,800)
  • ASA: ¥5,080
  • ASA-CF: ¥7,180

といった感じ。PLAやPETG-HFだとスプール(巻き芯)が含まれない補充用パッケージもあって安いんですが、ASA系はそれもないので実質倍くらいのコストになります。1つのアダプタを作るのに1kgもいらないんですが、フィラメントは湿気を吸って劣化が進むので、あまり使わない材料やカラーを在庫するのはリスクだったりもします。あとASA系はあまりセール対象になってるのを見ない…

ASA-CFで納品した先で破損があったので、内部に支柱(リブ)を入れて構造的な強化を図ってみました。3Dプリントは通常内部は材料と時間の節約のために完全なベタ埋めではなくインフィルという編み目状の充填物で埋めることが多いです。設定で100%にすることもできるのですが、構造的には空洞の方が強い(円柱より丸パイプが強いのと同じ)ので、支柱と空洞の組み合わせにしてみた次第です。黒い部分も完全な空洞ではなくインフィルが20%くらいの密度で入ってはいますが。また応力が集中しづらいようにフィレット(角丸)を極力追加しています。

結果としてちょっと本気で折ろうとしても折れないくらいにはなったと思います。特にSesameサイクルを取り付けるブロックの近辺は素手では無理な気がしています(両端をもってヒネるようにすればU字の真ん中は折れるかも知れません)。

そんなこんなで、こちらのSesameサイクル2アダプタについては他の頒布品より少しお高い価格を設定させていただいています。白系でよければPETG-HFで製作して3,500円+送料+消費税。黒をご希望ならその時の在庫も加味してPETG/ASA系かでご相談とさせてください。ボルト、ナットなどの付属品も含んだ価格です。また紫外線ダメージを避けるためにUVカットスプレーを吹きかけたり、必要に応じてサンドペーパーで磨いたりもするので、フィラメント原価だけで済んではいないことをご承知おきいただければと思います。

こちらでも何パターンか造形して夏を超えられるか検証してみようと思っていますが、全てを実際に自転車に取り付けてSesameサイクル2の重さをかけた状態で横並び検証はできないので、やはり実際のところは保証が難しいです。実地データも欲しいので、「1年以外に変形や破損があったら無償でもう1点、または差額で材料アップグレード」みたいな形でどうかなとも思ったり。

3.Touchホルダーの後付け化

従来、指紋センサーのSesameタッチをとりつけるホルダー部分は造型時に有無を選択いただいていました。今回それを別パーツにして後付けできるようにしてみました。

これは、後日Sesameタッチをつけたい!と思った場合にまるごと作り直さなくても、後からホルダー部分だけ追加できるという点以外にもメリットがあります。

3Dプリンターはご存じの通り、樹脂の層を重ねて縄文式土器のように作ります。この層の境目のところが剥がれやすく、本アダプタを水平に寝かせて造形した場合、Sesameタッチを上に引っ張る方向の力に対してとても弱くなってしまう課題がありました。別パーツにすることでホルダー部分だけ垂直に立てて造型し強度を増すことができるようになります。またSesameタッチのサイクルホルダーをスライド挿入した時にロックする爪についても別体で作る必要なくしっかりとした強度を出せるようになります。

アダプター本体とタッチホルダーは強力な両面テープや瞬間接着剤で充分付くかなと思っていますが、タッチが落ちて紛失ということになるとマズいのでもしかすると将来的にボルト締めなど別の方法も採り入れるかも知れません。

ちなみに、通常はSesameタッチはハンドルバーにつけることが多かろうと思います。公式にも自転車用タッチホルダーなるものがあります。ただ私が乗っているハリヤ2016年モデルはハンドルバーにテーパー(傾斜角度)がついて円錐状になっていて、このホルダーのベルトで固定できなかったという経緯があって、このアダプタ上にSesameタッチもつけちゃえ、となっています。ケガの功名、これはこれで解錠と施錠が同じ後輪ブレーキ周辺でできるので、直観的ではあるかなと自負しています。「たしかにこっちにある方が使いやすそう!」と共感いただける方、そもそもハンドルバーに取り付けできなかった方はご相談いただければと思います。なおアダプター上にとりつける場合でも純正の自転車用タッチホルダーは必要になりますのでご了承ください。

4. ボルト&ナットについて

基本的に最適なものを添付していますが、以下個人的メモです。

M5のボルトで長さは3.5mmのこちらを使用。本体を黒で造形することが多いので黒のものを使用。サビに強いと書かれていますが、割とすぐ茶色くなる印象。可能なら施工後にさび止めスプレーをしておくと良いかも。

次にナットですが、自転車なので振動が加わって締め付けが緩まないかという懸念があります。当初、こちらのナイロン部品による緩み止めのついたナットを購入してみたのですが、あまりにキツくて手締めでは最後まで締められませんでした。仮に工具でガチガチに締められたとしても、メンテなどで取り外すことができなくなるのはやはり問題です。

ということで通常の金属オンリーのM5ナットに緩み止め剤を塗布することを検討しました。こちらのロックタイトの低強度タイプが

  • M6以下の太さのネジ用
  • 工具を使えば外せる程度の固着度合い

で条件に合うと思って購入。

ただし説明書だと塗ってすぐ締めるような書き方がされており、よく塗布済みの青いアレみたいな使い方(塗って送る)で大丈夫なのか確証がもてず使用は保留しています。購入者の方にご自身で手配いただいて塗るのは推奨しています。

実際に緩んで滑落したという経験はないですが、ウチはあまり自転車に乗る頻度が高くないので、毎日のように乗られる方には気にしていただいた方がいいかなと思っています。

■まとめ

まだまだ発注をいただくたびに色々調整、改良を加えている本品ですが、なんとかVブレーキ車にもSesameサイクル2をつけたい!という方、多少の試行錯誤につきあっても良いという方はご相談いただければと思います。

Sesame 5 Proをつけてみて5無印との比較など

木製ドアにとりつけるためのプレートなどを開発する関係で、採寸用に購入したSesame 5 Pro。せっかくなのでしばらく自宅玄関ドアにつけて使っています。

(Sesame製品はAmazonより公式サイト直販の方が安いことが多いのでご注意ください)

横向き設置
縦向き設置

こちらのマグネット対応プレートもPro対応版ができました。

本記事では5と5 Proを両方使っての比較レビューなど。

といってもそんなに書くことはないかな…

そもそも2機種の違いというか、Proの特徴は、

  • ブラシレスモーターで耐久性、静音性アップ(100万回耐久。無印は5万回)
  • 形状が細く長く成り設置性がアップ
  • カラーは白黒2色のみ(5無印はシルバーもある)

といったくらい。一般家庭では5万回でも10年くらいは保つ計算になるんじゃないでしょうか。Proはオフィスなど毎日何十回と人が出入りするような場所向けという感じですね。5無印では形状的に無理、というご家庭でない限りProに+3,000円払う価値がるかは微妙です。

その他、ソフト(OS)も共通だし、アプリからの使い勝手も同じ。反応速度も顕著な違いはない気がします。

■静音性

これははっきりと違いがわかるくらい動作音量に差があります。ただ5無印が耳障りなくらいうるさいというわけでもなく、むしろリビングから遠隔操作した時に音が聞こえて確実にロックできたとわかって安心まであります。Proは耳を澄まさないと聞こえないという感じ。さりとて無音というほど静かでもない。音質的には多少高級感があるかなという感じ。

■サイズ差による使い勝手

Proはサムターンのツマミも小さいです。普通に手でもって回すのにはむしろ5無印の方が大きくて回りやすいとも思います。ただ、SesameタッチやSesameリモートからの操作がほとんどでツマミを直接回ることはほぼない、という環境であれば、小さいことはメリットだと思います。

自分は手が荷物で埋まっている時など、脚や背中でドアを押して開いておき、閉まる前に身体を滑り込ませる、みたいな出入りをしますが、その際にSesameの出っぱりが背中を直撃して悶絶したり最悪Sesameが外れて落下したりということが意外と頻繁にあります(笑)。そんな横着をする人には出っぱりが小さくなることはリスク回避にもなるでしょう。個人的にProに感じるもっとも大きなメリットはそこかなと。

■まとめ

すみません、記事にするほど違いもなかったかも。商品コンセプト通り、ビジネスユースなら5 Proが耐久性の面で有利。

個人宅で使うメリットは、

  • 動作音(モーター音)がやや小さい
  • フットプリントが小さくぶつかりづらい

くらい。

逆にツマミを手で回す人は5無印の方が大きくて回しやすいですが、個人的には帰宅時はSesameタッチ、出かける時はSesameリモートを使うのが快適でオススメです。

CANDY HOUSE キャンディハウス Remote ホワイト

CANDY HOUSE キャンディハウス Remote ホワイト

1,982円(06/30 16:29時点)
Amazonの情報を掲載しています

■宣伝

ASSAアブロイという海外メーカーの、サムターンが360°以上クルクル回ってしまいSesameと相性が悪いドアをお使いの方向けに、回転範囲を制限するアダプタを製作しています。また同社ドアは木製が多いと思いますが、両面粘着テープで貼り付けたくない、という方向けのサムターン共締め式のバックプレートもあります。最近5Pro対応版も開発していますので、ご興味おありでしたら下記の記事をご覧ください。

5無印用

Proの方も先にこちらをご覧になることをオススメします。

5Pro用

Pro用の差分情報はこちら。

ちなみにASSAのクルクルスカスカ回るサムターンは以前使っていたQrio2だと360°ですら非対応で上手く開閉できませんでした。Sesameシリーズだと開閉自体は可能だが、手や鍵で360°以上回してしまうと認識ズレが起きて誤動作するという感じなので、そこに物理的に一回転以上しなくするストッパーをつけることで不具合を防止しています。SwitchBotなどは試してないのでわかりません。

eufy SoloCam S340 + HomeBase S380半月後レビュー

eufy (Anker)のセキュリティカメラ SoloCam S340とHomeBase S380を導入して半月が経ったので追加レビューを書いてみたいと思います。

前記事はこちらの2件。

現在、S340が2台とHomeBaseの構成で稼働しています。

■画質(昼夜)

Nest CamやATOM CamのフルHDから3Kになった違いは明らかで、解像度以外の面でも画質の向上を感じます。ビットレートが高いのかな?色も濃いめで映える画質です。

撮影場所が元々それなりに照明があるのもありますが、夜間の画質も上々です。

■動作精度

1台は自宅の門付近から門を開けて入ったところにある集荷ボックス辺りを映していますが、きちんと家族や宅配業者が来た時に反応してると思います。見落としがないとは言い切れませんが、感覚的には充分検知している気がします。またイベントとして検出したものはきちんと人が映っているので誤検知はしておらず、検知エリアの設定で自宅前の路上を歩いて行った人、みたいなのが検知されてることも無さそう。近いアングルのGoogle Nest Camよりも検出イベントが多いです。厳密に同じ画角ではないので公正な比較ではないかも知れませんが。

もう一台は共同の駐車場を映していて、人間と車両をAI検出対象にしていますが、これもきちんと人や車の出入りを検知していると思います。ただこちらはたまに何も映ってないイベントがあります。雨とかがチラついているだけの動画が残っていたり。

どちらもパンチルトで追尾しており未来的だしより広範囲に動きが追えて良いです。その後でホームポジションに戻るタイミングは不明ですが、一応リアルタイムで覗くといつのまにか戻ってる印象です。

HomeBase S380を組み合わせると可能になる人物識別ですが、設置位置が高くて頭上しか映っていない状態なので、顔自体の検出イベントがほぼなくてあまり役に立っていない状況です。家族は手動登録してますが、その他の未検出の人物が挙がってこないので登録も増えないという感じ。できれば宅配業者さんを見分けてヤマト/佐川/日本郵便とか識別できるとなんの荷物が来たか推測できて有り難いですが、まぁAmazonとかUberは毎回違う人がくるので微妙ですね。制服識別してほしい。

1台目はイベント検出時にライトを点ける設定にしており、作業灯としても普通に便利。いままでもソーラーLEDライトを点けてましたが、冬場に充電不足で点かないことも多く、サブライトとしても重宝しています。他人も通る可能性がある2台目のような状況ではライトをオフにすることも可能です。

総じてNest Camよりも進化、ないしパンチルトの効果を感じます。Nest Camはクラウド利用料がかかるので、セールなどを狙って順次リプレイスしランニングコストを0にしていきたいです。

集荷ポストのソーラーLEDライトをS120にリプレイスすればより手元を明るく照らせて、人物識別も捗るかな?

■バッテリー、ソーラー発電状況

もうひとつの大きな懸念は「ソーラー発電で長期稼働できるか?」でした。初日に有線充電でほぼフル充電にしたものが1日で20%くらいに落ちて「ダメじゃん!」ってなりかけましたが、その後HomeBaseを設置したせいか、全然減らなくなりました(3月後半から4月前半の日照条件)。当初カメラがイベント検出(人が来た)をして、HomeBase側で人物識別(それは誰か?)処理をすると思ってたんですが、どうもヘルプを見る限りHomeBaseがあれば全ての処理をHomeBase側で行うのでカメラの電池消費が抑えられるということのようです。ということは逆にカメラの映像ストリームは常時垂れ流しになるような気もしますが、そっちの電力や通信量の増加はどうなん?という感じ。そのために自宅Wi-Fiとは別接続にしてるんですかね。近いチャンネルだと結局干渉してスループットに影響しそうな気もしますが、まぁ2.4GHzはあまり使ってないからいっか、とも。特に実害は感じないです。

で、電力状況は以下のような画面で確認できます。バッテリーは100%で劣化が進むので、97%を切らないとソーラー充電は行わないようです(画面下部参照)。で、上のグラフのようにほぼ98%付近を維持していて、ソーラー充電はたまにしか行われていない模様(下のグラフ)。これなら「日光が当たらなくても3ヶ月保つ」も嘘ではないかもと感じます。

逆に初日一日で80%くらい減ったのはなんだったのか、という感じですが、HomeBaseの登録解除すると設定もほぼ初期化されてしまうので試していません。導入初期は学習とか色々あって電力消費も多いとか?あの減り方がS340単体の時の標準的な電池消費だとしたらちょっと実用にはならなそうな気もします。導入してみたけどすぐ電池なくなるじゃん!って方はHomeBaseの導入も検討してみてもいいかも知れません。

バッテリー面でも現時点ではとても安心感があり満足しています。真冬が楽しみ。

■その他、気になる点

ほぼほぼ不満はないですが、惜しいのはやはりアプリのカメラ映像一覧画面でリアルタイム映像を同時に見られない点ですかね。バッテリー消費を抑える意味合いもあるのかも知れませんが、前述のようにHomeBaseに常時ストリーミングしているのであれば関係ない気も?

あとはGoogle Home/Alexa/Apple HomeKitにもストリーミング映像を連携できないっぽいことかな?ちゃんと調べられてないですが、公式のここの機種一覧にS340やS380は出て来ないし、商品ページにもGoogleやAlexaのロゴがないし。以前の機種(または海外発売モデル)では対応してたけど外されたってことなんでしょうか、、スマホからはeufyアプリで見ればいいんですが、できればGoogle NestHubとかEcho Showでもさっと見られるといいなとか。

■まとめ

総じて満足しています。画質や認識性能、バッテリー保ちも進歩を感じるし、なによりクラウド不要でランニングコストがゼロなのも良い。

紹介した以外にも屋外、屋内含めて様々なモデルがあるので、ペット監視など用途があえば導入してみてもいいんじゃないでしょうか。プライベートな自宅内を映すカメラとして、無名の中華メーカー製品を使うのも不安だし、さりとて国産メジャーは高い(Panasonicとか)。そんな中でAnkerならまぁまぁ妥協できるブランドかなと思います。

増車に備えてGPSロガー参号機を作る

我が家のクルマにはRaspberry Pi Zero Wを使った自作GPSロガーを密かに搭載し、自前のWebサーバーにリアルタイムに位置情報を送信しています。防犯/追跡的な意味と、家族と合流する時などに詳細な現在位置を把握するためです。トヨタ車のアプリによる位置は駐車時しか更新されないので、「今こっちに向かってて、到着まであと何分くらいかかりそう」といった予測には全く使えないんですよね。

詳細はこちらの記事など。

さて、クラウンより前に契約していた某長納期車がぼちぼち1,2ヶ月以内に生産日が確定しそうという気配がしてきたので、GPSロガーももう一台作ろうと思います。盗難ランキング首位独走の車種なので、もちろんなんらかのきちんとした盗難防止セキュリティも導入するとは思いますが、それでも盗られた時に、誰も知らない秘密のGPSロガーがバックアップとしてあると無効化されにくいだろうというのと、前述の日常使いにもいいかなと。まぁ同居人が買いながら99.99%運転するのは自分になるので、そこまでリアルタイム位置情報が必要にはならなそうですが、、

先代製作から時が経ちすぎていて…

2019年にカロスポ用に壱号機を製作(後日クラウンに移設)した後、2021年に30プリウスを増車した時はまったく同じ構成のハードを揃えて、microSDの中身もクローンして設定だけ変更して流用しました。

しかしそこから4年経った現在では、

という変化が起きていました。

Raspberry Pi Zero 2 WH - はんだ付け済みヘッダー付き

Raspberry Pi Zero 2 WH – はんだ付け済みヘッダー付き

4,088円(07/01 03:38時点)
Amazonの情報を掲載しています

ZeroからZero2になるとCPUがArmV6からV8になり64bit化され、シングルコアからマルチコアになっています。当時のOSイメージでは最適化されていないどころかまともにブートしない可能性が大です。当時のOSはまだRaspberry OSという名前にすらなっていないRaspbianの頃のものなのでapt updateするにも限界があるでしょう。ということで、OSは完全新規インストールすることに。GUI関係のパッケージを省いてRaspberry Pi OS Lite (64bit)を選択。当時パッケージは何を追加したとかまったく記憶もメモも残っていないので前途多難です。

そしてもうひとつ重要なGPSモジュール+アンテナが販売終了になっていた件。直接の後継製品も同社から販売されておらず、まったく異なるチップのGPSモジュールを再セットアップする形になります。車載用なので感度を得やすいGPSアンテナは別体型から物色して、Pi Zeroと同一基板サイズのHAT型モジュールのこれを選びました。

ちなみに背面の40ピン端子がメスヘッダーなので、ラズパイZero2の方はオスヘッダー付きのWHモデルをチョイス。ブッ刺すだけで結合完了。おそらく今回は半田付けも不要でケース内はかなりスッキリ作れそうな気がしています。

バックアップ電池としてML1220という規格の充電式コイン電池をセットできます。入れておくと衛星の位置情報をキャッシュしておけるので、電源投入からGPSを掴むまでの時間を短縮できるんだと思われます。壱号機、弐号機の秋月のGPSモジュールは普通のコイン電池だったので定期的に交換が必要でしたが、充電池ということで寿命も期待できます。残念ながらAmazonでは信頼できそうなブランドのものは見付からず、Yahoo!フリマでゲットしました。一応Amazonならコレとかでしょうけど送料も高いのでご注意ください。

ちなみにこちらのセルラーモデルもあって、車内Wi-Fiに依存せずに位置情報を発信しつづけられるならいいかもと思ったんですが、技適マークの有無について記載がなかったのと、アリエクだったかで「GPSとセルラー通信は同時に使用不可」みたいな記述があり、ちょっとリスクが高いなということで見送りました。

microSDカードも大きいサイズは不要(Lite版OSのインストールサイズは2GB程度)なので、あえて小さい容量で、むしろ速度面や耐久性を優先したものを選定。最近のmicroSDはA1とかA2とかいうアプリケーションパフォーマンスクラスというランダムアクセス基準の規格があり、PiシリーズもA1まで対応してる(Zero2がどうかはよくわからず)ようなので、A1を要件としてみました(A2は対応してても活かせない)。まぁ別に直接触るものではないので、普通のU1とかU3とかでも全然問題ないんですが、値段もかわらなかったのでこちらに。購入時、Amazonが販売するもので697円でした。

容量は8GBとかで全然足りるんですが、そんな小さいのでA1は見付かりませんでした。

今回はGPS HATを取り付けるので壱/弐号機と同じケースは使えないだろうということで3Dプリンターで自作。Raspberry Pi Zero2の3Dモデルを海外サイトのGrabCADから取得(要登録)。HATも同一基板サイズなのでコピーして間隔をあわせ、それらが収まるケースをデザインしました。

■ハードウェア組立

ケースの材料は耐熱100℃のASA。GPS HATの上に高さのあるジャンパー(黄色)があるので、トータルの高さは壱、弐号機に比べてだいぶ出ちゃいました。幅70 x 奥行き35 x 高さ31mmという感じ。

右側面から生えているのがGPSアンテナです。

SDカード&端子面がこちら。miniHDMIとmicroUSB端子を挿せるようにするのに、基板と壁の隙間を極限まで狭めて、肉厚も1.8mmとしました。結果としてかなりギチギチでネジ止めの必要がなさそうなレベル。むしろ取り出しに苦労します。底に押しだし用の穴を空けておけば良かった。GPSアンテナのコネクターもホットボンドで固めようと思ったんですが、将来的に基板を取り出す時に困りそうなので保留。外側にケーブルガイド的なものをつければ良かったかも。

結果としてケーブルもそのまま挿せるし、microSDも素手で抜ける形にまとまりました。

あとは排熱性が不安ではあります。もう少し穴をたくさんあけて通気性を確保しようとも思ったんですが、車内でホコリやゴミが入るのを嫌ったのと、3Dプリント的に側面に穴があくと造形が難しくなるという理由でまずは穴開けは端子部のみとしました。どうにも動作が不安定になりそうならヒートシンクをつけたり最悪ファンをつけようと思いますが、ChatGPTさん曰く、ロード100%でぶん回すとかしない限りヒートシンクも不要、とのことだったのでまずは様子見。

■ソフトウェア整備

OSは前述の64bit版LiteをPi Imagerでサクっとセットアップ。一旦自宅のWi-Fiに接続し、基本sshでセッテイング作業を進めます。スクリプトはPythonで作られているので、それ回りをインストール。

GPS HATの公式ガイドはこちら。赤字の

If you use bookworm system, only the lgpio library is available, bcm2835 and wiringPi libarary cannot be installed or used. Please note that the python library does not need to install, you can directly run the demo.

という部分に注目。bookwormシステムの場合はlgpioライブラリだけでOKということです。bookwormとはDebian 12系のことで今回使用したRaspberry OSも当てはまります。minicomというツールをいれてサンプル通りにテストしたらあっさりデータが落ちてきました。いうてシリアルポート通信するだけなのでドライバーとかライブラリといっても特殊なことはなかったです。

先代はgpsdというシリアルポートからGPS情報を取り出してネットワーク経由で配信するデーモンを介していたんですが、対外的な通信をするわけではないので、今回はPythonから直接シリアルポートを叩くアプローチに変更。先代よりパワーアップしているのでそこまでリソースをケチる必要もないですが、無駄を残す必要もないかと。というかここでもChatGPTさん大活躍。必要なライブラリを挙げてもらい先代スクリプトを渡して書き直してくれと指示したらほぼ一発で修正してくれました。これがなければ自分で書き直そうとは思わず、そのままgpsd経由を踏襲していたと思います。

pipでgps3というライブラリを入れようとしたらセキュリティポリシーでエラー。今時はシステムワイドにライブラリを入れずにユーザーレベルの仮想環境というのを作ってやる作法らしい。全部ChatGPTさん情報!マジありがたい。

継続的にシリアルから送られてくる行のステータスがA(正常)の時は緯度経度などの値をコンソールに出力。それ以外のステータスではエラーメッセージを吐いてくれるので状況が一目瞭然です。新規導入ハードであるGPS HATがすんなり動いてくれてホッとしました。

また本番スクリプトでは徐々にサーバー送信が遅延していく現象が起き、ChatGPTさんの見立てでは、print文によるコンソール出力のバッファーあふれではないかということで、「, flush=True」を追加しています。これでバッファーに貯めずに即時出力されるらしい。もう少し検証予定。

あと、別記事のリソース最適化をする中でBluetoothを無効化したところ、使用するシリアルポートが/dev/ttyS0から/dev/ttyAMA0になりました。

Raspberry Pi Zero 2 WによるGPSビーコンの消費リソース最小化

前記事でRaspberry Pi Zero 2 Wを使ったGPSビーコン(現在位置を定期的にサーバーに送信する追跡デバイス)を自作した際、ChatGPTさんのアドバイスを元にメモリや消費電力周りを最適化したので覚え書き。OSレベルというか、自作スクリプトと関係ない情報なので別記事にしておきます。

■ROM化

microSDカードのようなフラッシュメモリは書き込み回数により劣化が進むので、通常運用時は書き込みをしないようにします。現在のRaspberry OS 12系はBookwormという世代のDebianベースで、Overlay File Sytemというのを有効化するだけで、メモリ上に仮想ストレージを生成してログなどは全てそちらに書き込み、電源オフですべて消える、という形になります。電源投入毎に真っ新な状態から始まるので、ログが溢れるとかもないし、SDカードの劣化も抑えられるので長期放置運用にはもってこいです。

設定は標準設定コマンドraspi-configで簡単に行えます。

「Performance Options」→「Overlay File Systemなんちゃら」でYesで有効化、Noで無効化。続けてbootパーティションも無効化にするか聞かれ、raspi-config終了時に再起動を促されます。

色々設定を変更する時は無効化し、終わったら有効化するのを忘れずに!(有効化したまま設定変更しても再起動で戻ってしまいます)。

現在の状態確認は、

として、「overlay on / type overlay (rw,relatime,lowerdir=…,upperdir=…,workdir=…)」みたいなのが出れば有効、なにも出なければ無効です。

■リソースチェック法

諸々最適化を図る前に数値を取って効果検証します。

メモリ使用量

で現在のメモリ総量、残量、スワップ使用状況などが確認できます。

今回の場合、スタート状態はこんな感じでした。Pi Zero2はメインメモリ512MBですが、GPUメモリに初期状態で64MB割り当てられて目減りしていました。実質の残量が267Mi、スワップがわずか(2.8Mi)に使用されています。最終的にスワップ無効化までもっていきたい。

CPU温度

とするとSoC(CPU)温度が出力されます。初期状態で60℃ほどでした。公式の推奨動作温度範囲は0~ 85℃で80℃程度からサーマルスロットリング発動するぽい。まだまだ安全圏ですが、これは室内での数値なので、車内に隠蔽設置した際は夏の気温や暖房の影響で更に上がる可能性もあります。できるだけ下げておきたいところ。

■やったこと

[予習] config.txtの編集方法

以下の設定のいくつかは/boot/firmware/config.txtを編集することで行います。通常は/bootパーティションはro(read only)でマウントされているので、シェルから直接編集はできません。mountコマンドでrwで再マウントするなども可能ではあるんですが、今回はmicroSDをPCにマウントしてルートディレクトリにあるconfig.txtをエディタで編集しました。

GPUメモリ割当を減らす(64GB → 16GB)

現在の割り当ての確認は、

です。64GBでしたが、GPSロガーではXのようなGUIは使わないので余剰に割り当てされていると言えます。最低の16GBに変更しました。なお実際の使用量をリアルタイムで確認するのはGUIツールが必要っぽいので本末転倒なので断念。どのみち使わなければ発熱にはさほど影響しませんが、メモリをがっつり取り返せるので効果は大きいと思います。

config.txtの[all]セクション辺りに、

と書きます。

動作クロックを制限する(1.2GHz → 1.0GHz)

発熱を抑える施策です。config.txtの「arm_boost=1」の箇所を「arm_boost=0」に書き換えます。

不要なデバイスを無効化する

該当箇所を探してコメントアウト(行頭に#をつける)していきます。

Bluetoothの無効化

いっさい使わないので無効化します。これはコメントアウトではなく、行を追加します。

LEDを無効化

ボード上のLEDを無効化します。どうせ見えないところに隠すし、光ってない方が見付かりにくいでしょう。ただし今回装着したGPSモジュールHAT上のLEDは消えないので気休め程度です。消費電力が1~2mA(全体の1~2%程度)減らせるようです。

これもconfig.txtの[all]ブロックに追加します。

Wi-Fiのパワーセーブを無効化

これは逆に消費電力を増やす措置ですが、通信を安定かさせるためにやってみました。GPSロガーでは一定時間毎にサーバーに現在位置情報を送信しますが、システムが一定時間通信がないとWi-Fiを節電モードにしてしまい、復帰に数秒かかってしまうことがあるということで、それを無効化(=省電力しない)。

現状確認

で、「Power save: off」とか「Power save: on」とか出ます。

オフにするのは、

ですが、システム起動時に自動実行するためには少し操作が必要です。色々方法はありそうですが、とりあえずChatGPTさんに聞いたやり方。

/etc/rc.localに記述。今回は存在していなかったので新規作成しました。

最初と最後の行も必須です。ファイルを作ったら実行可能フラグつけます。

次に、/etc/systemd/system/rc-local.serviceを以下の内容で作成します。

そしてサービスとして登録。

これで起動の度に無効化されるはずなので、念のため「iw dev wlan0 get power_save」してみましょう。

■ログインメッセージを省略

システムリソースへの影響はほぼないですが、デフォルトのログインメッセージ の「The programs included with the Debian GNU/Linux system are free software;~」みたいな10行くらいの英文がうっとうしいので削除しました。/etc/motdの内容が差し込まれるので、これを空にします(削除ではなく中身を消す)。

■スワップを無効化

あれこれいじったおかげで、メモリ総量が50Miほど増えて、スワップ使用量が0にできました。

残量も300Mi以上あるのでスワップを無効化してよさそうです。

sudo nano /etc/dphys-swapfileをエディタで編集し、「CONF_SWAPSIZE=0」とします(最初は512とかだった)。その後、

とします。free -hを実行して、Swapの行がすべて0になっていれば完了です。

■成果確認

諸々の設定を施して、

  • メモリ総量: 416Mi→ 464Miに増加
  • メモリ残量: 267Mi → 308Miに増加
  • スワップ使用量: 2.8Mi → 0Miでスワップを無効化
  • 温度: 60℃超え → 48℃程度に低下

という最適化ができました。消費電力としては測れてないですが、温度が10℃以上下がったのは達成感あります。