あっきぃ日誌

ラズピッピブログのようなオタクブログのようななにか

WIZnetのEthernet HATをSPI1接続に変えつつ180度回す基板

を、作りました。基本的には俺得用なので、売ってみよう的なプランはないです。オープンハードとしてぶん投げるかは検討します。

SPI0はかぶりがちなのでSPI1であってほしい

Pico2の記事でもそうだったように、WIZnetのEthernet HATはSPI0を使う前提になっているため、何かしらを組み合わせようとすると使用ピンが重複して組み合わせられなくなりがちです。前回はケーブルを使って無理やりSPI1にしましたが、毎回同じことをやりたくないので基板にしたかったというのがあります。

akkiesoft.hatenablog.jp

SPIの変更は以下の通りです。

役割 EthernetHAT(SPI0) 変換基板(SPI1)
MISO GP16 GP12
CSn GP17 GP9
SCLK GP18 GP10
MOSI GP19 GP11
RSTn GP20 GP15
INTn GP21 GP14

ついでに180度回しておくか

WIZnetのボードと言えば、MicroUSBポートとLANポートのケーブルが両方から出る仕様のため、ケーブルの取り回しがやりにくく、本番投入しにくいという難点がありました。

なので、今回は自作基板上で180度回転させて、USBケーブルと同じ方向からLANケーブルが出るようにしてみました。こちらはついでで、あくまでメインはSPIの番号変更です。

作った

コミケが終わってすぐに作ってJLCPCBに放り投げて、今日到着しました。OCSの輸送タイミングが噛み合うと発注から1週間で届いてしまうな……恐ろしい。今回は雑発注なので緑だし、製造番号もおまかせ挿入です。でもこちらの文字と逆さまにすることはなくない?w

ピン付け。どちらの面にピンを付けるか、ソケットをつけるかは印字で指示しています。また、ボタンを右端に用意していますが、これはPicoのリセットボタンです。あると便利ですからね。

裏面にソケット。ロープロファイルのもので高さを抑えています。全部のピンを使うわけではないので、四隅+必要なところだけ付けています。


動作確認

ボードを載せるとこんな感じになります。おおー、スッキリ。回路設計もミスなく一発で成功して、そのまま動作確認までできました。

これはボタン取り付け前の様子ですが、ケーブルがない方にボタンが来るので、何かあったらここをポチッとすればいつでもリセットできますね。

ピンヘッダー・ソケットの配置的に1列ずらす必要があるため、短辺側から見ると若干見栄えが良くないですが、そう言うものなのでまあ。

冒頭に貼った記事ではケーブルが必要だったやつも、この通り不要にできました。が、変換的な基板だらけで違法建築みがあるな?


まとめ

いいかんじにSPIの配置を変える板がサクッと作れました。数時間で雑に仕上げたわりにうまく行ったので満足です。

Pico2でネットワークを手軽に遊べるようになるまでには時間がかかると思われるので、当面はEthernet HATとか、Pico2版のWIZnet EVBシリーズが活用できるのではないかと思っています。

強いて言えば、Ethernet HATを自分で設計し直すくらいのことができると楽しそうですが、そこまでやる気力はさすがにないカモ……。

追記

MagPiMondayに投稿しがてら公開しました。READMEとかはそのうち忘れなければ。zipファイルをjlcpcbに投げつけると5枚2ドル送料2ドルで作れます。

github.com

こんな感じ。なお、Raspberry Pi公式系のXアカウントが約1年ぶりに復活して、XでもMagPiMondayできるようになったので、なんか作ったら投稿してみるとMagPiの紙/PDF雑誌に載れて良いと思います。

social.mikutter.hachune.net

復活したaitendo物理店舗でミク色ピンヘッダーと再会する回

OSCとかコミケの執筆とかでタイミングが合わず、なかなか行くタイミングが掴めていなかったのですが、コロナ後に復活したaitendoの物理店舗にようやく行ってこれました。

再開場所は入谷。もうアキバどころか上野も過ぎて入谷です。神奈川から行くマンとしては遠い……。けど、意外にも1時間10分くらいで行けて、乗り換えは水天宮前駅-人形町の1回です。水天宮前といえば初音。なんかすごい列ができていました。ちなみにショーケースにいたねんどろいどのミクはだいぶ前にいなくなっています。

そして入谷駅からちょっと歩いてaitendo着。こんな突拍子もないところにアキバ臭プンプンの店ができると思うか!?


ミク色ピンヘッダーを求めて

話がそれますが、コロナ以前の店舗ではミク色、一般的な言い方をすればターコイズ色という変わったピンヘッダーがaitendoにはあり、ミクオタクとして愛用していました。コロナ以降、一度aitendoの通販で緑のピンヘッダーを注文したときは、普通の緑色のピンヘッダーが届いていました。

social.mikutter.hachune.net

また、AliExpressにはまれにそれっぽい色の画像の商品が転がっていますが、やはり緑色のやつが届きます。

social.mikutter.hachune.net

social.mikutter.hachune.net

少なくなっていく在庫を大事に使ってきていたものの、だいぶ減って残りわずかになっていたので、今回の物理店舗訪問は、ミク色ピンヘッダーも重要な目的のひとつでした。

店の雰囲気はアキバの頃と変わらず。そして

店に入ると、店の空気もAKB48のBGMも店員さんも、昔とほとんど変わらない雰囲気のaitendoワールドがそこには広がっていました。違うのは間取りと配置だけ。懐かしすぎる。懐かしさに浸りつつ一周回っていると、棚から溢れたピンヘッダーの中にミク色ピンヘッダーを発見!……が、これはL字タイプ。これの在庫はまだあるので今回はパスします。

ウウッ、ミク色ストレートピンヘッダーはないのか……と諦めかけたその時、ちょっと離れた棚の引き出しからついに発見!!!(実際には写真とは別の引き出しから発見したので、良くも悪くも変わらないaitendo感)。

とりあえず10本……いや、もうちょっともらおう……かな?というわけで20本をかごに投入ッ。白色も軽めに補充してミッションコンプリート!

アキバに移動したら買おうと思っていた積層セラミックコンデンサーも39円でなんかいっぱい入っていてお得だったので買ったり、あれやこれやと細々買ったら2000円を超えていました。

aitendoの戦利品

今回の戦利品はこちら。ブレッドボードとジャーキーケーブルはまあ使うこともあるよねってことで置いといて、残りの細々は自作基板の実装用の部材が多めでした。電池ケースは後述のリポ電池用に。

積層セラミックコンデンサーとICソケットは自作モータードライバーボードの追加分の実装に使用。3つICソケット版として実装して、2つは組み立てキットふうにして置いときました。まあ今のところ使う用事はないですが、プラレールとかで遊ぶ時に使うので。


アキバ

アキバに移動して、今度は秋月へGo。こちらはこちらで、やはりなぜかここでしか買えないロープロファイルピンソケットをまたしても20本大人買い。これもAliExpressでは見つけられなくて、秋月頼りになっています。

これはドトールで休憩しながら写真を撮った様子。オタクしぐさである。

ロープロファイルピンソケットは早速Tiny2350に実装しました。やっぱこれやね。

千石では14500リポ電池も購入。プラレールで使ってていい感じだったのだけど、玄関の鍵チェッカーに取ってしまったので、補充でもう1本、と言いつつプラレールに使うとは言っていない状態。


ミク色ピンヘッダーがあって本当によかった

というわけで、今日の買い物はほぼ電子工作モノになりました。ミク色ピンヘッダーと再会できるとは思っていなかったので、また買うことができてだいぶ嬉しかったです。引き出しの雰囲気を見るに次はなさそうな感じもしたので、心して20本分のピンヘッダーを使っていこうと思います。

去年買えなさすぎてTwitterで嘆いてた自分、夢がかなってよかったな……!!

でも数日前に8ピン分ふつうに使ってたよな!笑


うそをついた

レーシングミクのポップアップストアがいつものところでやっていて、クリアファイルとメガネ拭きも買いました。メガネ男子になったのでオタクメガネ拭きを買えるようになって良い(???)

Zabbixに公式のPythonライブラリができていたので移行してみる

自宅のZabbixサーバーのVMをUbuntu24.04に移行する一環で、Zabbixも5系から7系にジャンプしました。

それ自体はわりとすんなり片付きましたが、Pythonで値を取得するスクリプトが動かなくなってしまいました。どうやらログイン時のパラメータの仕様が変わったらしいのですが、残念なことにライブラリの更新が止まっていて、各々がパッチを作って雑対処している様子がプルリクとかフォークのコミットから見えました。

github.com

昔は公式がライブラリの紹介なのしてた気がするなあと思ってググってみたところ、公式が開発を始めていたので、こちらに移行することにしました。

github.com

ずいぶん差分が少ないな……?

ざっくりとした差分はこんな感じ。トークンを使うように変えてみたのでログイン周りが差分多めに見えますが、インポートするライブラリ名が変わった以外、クラスとかitem.getは変わっていません。なにこれ、フォークしたとかなのかな……?って思ったけどそうではないっぽいです。ともあれ簡単に移行できてありがたい限り。

- from zabbix.api import ZabbixAPI
+ from zabbix_utils import ZabbixAPI

- zbx = {
-  'url': '',
-  'user': '',
-  'pass': ''
- }
+ZABBIX_AUTH = {
+    "url": "192.168.29.102",
+    "token": "6d02cce218ffc1789f9b43aa779513f92a654394997bf57163155ac9faa7db19"
+}

- z = ZabbixAPI(url=zbx['url'], user=zbx['user'], password=zbx['pass'])
+ z = ZabbixAPI(**ZABBIX_AUTH)

print(z.item.get(itemids=[31323])[0])

ZabbixSender系

ZabbixSender系のスクリプトはまだ問題なく動いていましたが、こちらもzabbix_utilsに移行しました。こちらも名前が多少変わった以外の変更がないのがわかります。これなら雑置換でも対応できるレベルです。

$ diff -Naur backup/raspi1/Thu/bots/send_temp_zabbix.py bots/send_temp_zabbix.py 
--- backup/raspi1/Thu/bots/send_temp_zabbix.py	2021-08-28 15:35:22.236318457 +0900
+++ bots/send_temp_zabbix.py	2024-08-16 23:04:29.076383258 +0900
@@ -2,7 +2,7 @@
 import sys
 import urllib.request
 import json
-from pyzabbix import ZabbixMetric, ZabbixSender
+from zabbix_utils import ItemValue, Sender
 
 api = "http://127.0.0.1/api/temp"
 
@@ -16,8 +16,8 @@
 data = json.loads(body)
 
 params = [
-  ZabbixMetric("raspi1.local.marokun.net", "room_temp", data['temperature']),
-  ZabbixMetric("raspi1.local.marokun.net", "room_humidity", data['humidity']),
-  ZabbixMetric("raspi1.local.marokun.net", "room_pressure", data['pressure'])
+  ItemValue("raspi1.local.marokun.net", "room_temp", data['temperature']),
+  ItemValue("raspi1.local.marokun.net", "room_humidity", data['humidity']),
+  ItemValue("raspi1.local.marokun.net", "room_pressure", data['pressure'])
 ]
-result = ZabbixSender(use_config=True).send(params)
+result = Sender(use_config=True).send(params)

移行するか

今回は頭上のメインラズピッピ環境でだけ作業しました。が、たぶん他のラズピッピとかあちこちで動いていたり、Githubにも公開しているものがいたはずなので、そのへんの手直しもやらにゃいかんなあとなりました。

夏休みなんか頑張った気分になるために頑張るかー。いや、自宅サーバーの移行をそろそろやれよという話はある……。

Anker Power Bank (20000mAh, 87W, Built-In USB-C ケーブル)買った

コミケの時にモバイルバッテリーをありったけ持っていくと5000mAh x2と10000mAh x2みたいな感じの構成になるんですが、今回5000mAhのAnkerの子が開始1時間で力尽きて、流石に弱るの早すぎだろ……となりこの子の劣化を考慮した買い替え目的と、そもそもたくさん持ち歩きたくないなというのと、あとは最近の地震とかで災害対策を意識して、クソでかバッテリーを買ってみました。

タイミングよく社のSlackにペッと貼られていて、おもわず便乗してポチりました。当時パープルだけ20%オフになっていて、7,990円のところ6,390円で買えました。ラッキー。

着弾。で、デカすぎんだろ……。これがパワーか。良すぎる。色もいいですね。ゆかりパープルですね。

ポートはUSB-AとUSB-Cが1つずつ。USB-Cは87Wの出力に対応。デカすぎんだろ……。Macもいけちゃうやん。

さらに、本体にはチャージスポットのバッテリーみたいに、USB-Cケーブルがくっついているので、ケーブルを忘れがちな私には大変ありがたい装備です。よって、都合3ポート分の出力が可能です。強い。

残量がデジタル表記なのもわかりやすくて良いし、Ankerのバッテリーによくついている、ボタンを2回押しで低出力デバイス対応モードも搭載なので、ラズピッピ系のデモも問題なくできます。

デカさがデカさなので、普段づかいにはならないと思いますが、イベントとか災害時に活躍してくれたらいいなと思っています。災害とか極力来てほしくないですけど……。

Tiny2350がきたぞ

PimoroniからRP2350搭載のTiny2350が着弾しました。やった〜〜〜!

Pico2のほうはPre-orderで予約済みですが、動きはない模様。やはりちょっと遅れている様子。

akkiesoft.hatenablog.jp

さて、Tiny2040のときは表面にロープロファイルピンソケットをつけてキーボード用にしていましたが、ロープロファイルピンソケットの在庫が切れていて、補充しようにも秋月が夏休み中なので、1つはそれ用にキープすることにして、もう1つは普通にピンヘッダーを生やしましょう。ポン!いつも通り?の役割ごとに色が違うやつで作りました。が、Tiny2350の場合はGPIOが片側に寄っているので、カラフルなのは片方だけです。

何を作るかはとくに決めていなかったので、Pico2のサンプル版に移植していた、電車のやつをさらに移植しました。

akkiesoft.hatenablog.jp

SPIx2な構成なので、ピンをほぼ使い切りました。しかもA3(GP29)==SPI1 CSnピンはPico2にはないので、Tiny2350向けのCircuitPython/MicroPythonファームウェアがない現状ではここが使えず、QW/STポートからGP13==SPI1 CSnを出して対応しました。ちょっと力技。なんとか動かせはしましたが、こいつを持って展示とかには持っていきたくないな……?というか、HTTPS通信できないからそもそも持ち出せなかった。

まずは移植で遊びました。あとは、オンボードのLEDもチカチカして遊びましたが、前のモデルと比べるとLEDチップが小さくなってスッキリしたようです。いいですね。