↓メインコンテンツへスキップ

PowerSAGMonitor 第2部 制作編 ── 設計から分電盤への設置まで

この記事について

この記事の内容および実装は Claude Code を使用して開発・記述し、人間が検証・修正しています。文中で 「私」 は人間であり、 「Claude」 は AI が主語であることを表しています。

本 blog には コメント機能があります。GitHub アカウントで投稿できます。

はじめに #

第1部 (概要編) では、家の分電盤で停電・瞬停 (ごく短い停電)・電圧の低下 (サグ) を記録する計測器 PowerSAGMonitor で何がわかるかを紹介した。この記事は3部作の第2部で、設計から分電盤への設置までの制作の過程と、途中で起きたハードウェアのトラブルを紹介する。

役割分担は第1部で書いたとおりで、方針の決定・部品の購入・はんだ付け・加工・分電盤の工事・測定は私が担当し、詳細な設計・図面・手順書は Claude が担当した。

進め方 #

サーバの再起動を Claude に相談している ProxmoxVE のプロジェクト内で本装置を作ることになったが、作業量が多くなりそうだったので、PowerSAGMonitor のプロジェクトとしてフォルダを分離し、Git で履歴を管理できる状態にした。設計書も図面の生成スクリプトも、この分離したリポジトリに入っている。

ボックスの構造 #

最初に、今回製作したボックスの構造を示す。

ボックスの構造の分解図。壁側に樹脂のケース、その手前にアクリル板、さらに手前に上下 2 枚のユニバーサル基板 (上が信号ボード、下が一次側ボード) がスペーサーで留まる。CT 2 個はケースの外にあり、線は上のパネルから入る。100V の電線は下のパネルから入るCT ×2 (外付け)主幹の電線に挟む。線は上パネルからケース樹脂。壁側の深い方 (蓋は外してある)アクリル板ケースと基板の間をつなぐ板信号ボードマイコンを載せる一次側ボード100V が来るのはこの基板だけ電線 (100V)分岐ブレーカーから。下パネルから

ケースは樹脂製 (タカチ PF13-6-19D) で、縦にして分電盤の横の壁に取り付ける。深い方を壁側にして、平らな方を前面の蓋にした。図は蓋を外し、中身を手前に引き出して描いている。

ケースの中には、ユニバーサル基板 (穴あき基板) 2 枚を上下に並べる。上が信号ボード、下が 100V が来る一次側ボードである。ケースの基板を留める台 (ボス) の間隔と、ユニバーサル基板の取り付け穴の間隔は合わないので、厚さ 2mm のアクリル板をはさんだ。アクリル板はケースのボスにネジで留め、基板 2 枚はスペーサーでアクリル板に留める。ケースに穴を増やさずに済む。

外とつなぐ線は 2 つある。分岐ブレーカーからの 100V の電線は下のパネルから、電流センサー (CT) の線は上のパネルから、ゴムのブッシング (線を通す穴の縁を守る部品) を通して入れる。CT 本体はケースの外にあり、分電盤の中の主幹の電線に挟む。

設計の考え方 #

3 つのブロック #

ボックス (装置の樹脂ケース全体) の中は、3 つのブロックでできている。

点線の枠がボックス。枠の中に 3 つのブロック: センサー部 (電圧センサー・電流センサー・信号を整える回路)、コントローラ部 (nanoESP32-C6)、電源部 (AC-DC モジュール・EDLC)。電圧・電流・100V が枠の外の分電盤から入り、センサー部の信号と電源部の 5V がコントローラ部に渡るボックス分電盤電圧電流100Vセンサー部電圧センサー ×2電流センサー ×2CT・主幹に挟む信号を整える負担抵抗フィルター中点コントローラ部nanoESP32-C6ADC で読む計算・判定・記録Zigbee で送る0〜3.3V電源部AC-DC モジュール100V → 5VEDLC停電時 約 1 分電圧保持5V
ブロック中身役割
センサー部電圧センサー ZMPT101B ×2、電流センサー (CT。電線を挟んで電流を測る部品) SR-3704-150N ×2、信号を整える回路 (負担抵抗・フィルターなど。後で説明する)100V の電圧と主幹の電流を、絶縁された 0〜3.3V の信号に変える
コントローラ部nanoESP32-C6 (ESP32-C6 マイコンのボード) と、内蔵の 12bit ADC (アナログの電圧を数値に変える回路)信号を読み、計算・判定・記録・送信をする
電源部ヒューズ、AC-DC モジュール ATS005A2-F050P、EDLC (電気二重層コンデンサ) 5F5V を作り、停電のときは EDLC の電気で動かす

100V を 1 枚の基板に閉じ込める #

基板は、ユニバーサル基板の手配線で 2 枚に分けた。

基板載っているもの
一次側ボード端子台・ヒューズ・電圧センサーとその電流制限抵抗・AC-DC モジュール・EDLC。AC100V が来るのはこの基板だけ
信号ボード電流センサーの受け・フィルター・保護ダイオード・中点の電圧を作る回路・マイコン
2 枚の基板: 上の信号ボードに CT の端子・信号を整える回路・マイコン。下の一次側ボードは AC100V がかかる範囲と低い電圧の側に分かれ、電圧センサーと AC-DC モジュールが絶縁の境界をまたぐ。一次側ボードから信号ボードへは電圧の信号と 5V だけが渡る信号ボードCT の端子信号を整える回路マイコンCT ×2主幹に挟む一次側ボードAC100V がかかる範囲低い電圧の側絶縁の境界端子台・ヒューズ電圧センサーAC-DCEDLC分電盤AC100V電圧の信号5V

2 枚に分けたのは、100V の部分を 1 枚に閉じ込めて、マイコンの側には絶縁された信号だけを渡すためである。EDLC は一次側ボードに載っているが、AC-DC モジュールの出力 (5V) の側なので 100V はかからない。

交流を ADC が読める信号にする #

マイコンの ADC は 0〜3.3V しか読めない。そこで、交流の信号を 1.65V (中点) を中心に上下に振れる電圧にして渡す。中点は、3.3V を同じ値の抵抗 2 本で半分にし、コンデンサで安定させて作る。中点そのものも ADC で読んでおき、計算のときに差し引く。

電圧は、100V を抵抗 (27kΩ × 2) で 2mA 程度の小さな電流にして電圧センサーに流し、反対側に出てくる電流を負担抵抗 (270Ω) で電圧に戻す。電圧センサーは小さな変成器で、ここで 100V 側と絶縁される。

分電盤の ±141V の交流が、電圧センサーと負担抵抗で絶縁・縮小され、ADC が読める 0〜3.3V の範囲の中で 1.65V (中点) を中心に振れる信号になる。測れる範囲は約 205V まで分電盤の電圧+141V0V−141VAC100V電圧センサー+ 負担抵抗絶縁して小さくし中点に乗せるADC に入る電圧3.3V1.65V0V中点ADC が読める範囲 (0〜3.3V)測れる範囲: 約 205V まで

電流も組み立ては同じ。CT は主幹の電流を 3000 分の 1 にして出すので、それを負担抵抗 (10Ω) で電圧にする。主幹に 40A 流れていても、ADC に入る電圧の振れ幅は ±0.19V ほどで、電圧に比べてずっと小さい。負担抵抗を 10Ω に抑えているのは、CT を精度が保証される条件 (負担抵抗 10Ω 以下) で使うためである。

主幹の電流 (例: 40A、±57A) が、CT で 3000 分の 1 にされ負担抵抗で電圧になり、ADC が読める 0〜3.3V の範囲の中で 1.65V (中点) を中心に小さく振れる信号になる。測れる範囲は 80A まで主幹の電流 (例: 40A)+57A0A−57A電流センサー (CT)+ 負担抵抗3000 分の 1 の電流にし負担抵抗で電圧に変えて中点に乗せるADC に入る電圧3.3V1.65V0V中点ADC が読める範囲 (0〜3.3V)測れる範囲: 80A まで

部品選定 #

部品は、私と Claude が Web からメーカーや販売店の仕様書 (データシート) の PDF を集めて読み、仕様を詰めていった。集めた PDF は最終的に 42 本になった。外形の寸法やピンの間隔はもちろん、ケースの断面図にだけ載っていたボスの太さのような細かい値も、仕様書から拾っている。

途中で、別の部品に替えたものも多い。

  • 電圧センサー: 最初の案は、小型の電源トランスを電圧センサーの代わりに使うものであった。トランスはかさばるので、私が見つけた電圧センサー ZMPT101B に変更を提案した。元のトランスでは 100V が巻線に直接かかるので壊れたときに大きな電流が流れること、中性線が切れて 200V がかかると焼けてしまうことがわかり、電流を 2mA に絞って使う ZMPT101B が有利なため採用された
  • マイコン: 最初は小型のボード (XIAO ESP32C6) で、ADC に使えるピンが 3 本しかないため、外付けの ADC を足す設計にしていた。外付けの ADC は足の間隔が 0.65mm の表面実装部品で、はんだ付けがいちばんの難所になるはずであった。ADC のピンをすべて引き出しているボード (ESP32-C6-DevKitC-1) が別の店で手に入る見込みが立ったので切り替え、外付けの ADC をやめた。ところが、通販で実際に届いたのは 別のボード (nanoESP32-C6) であった。載っているマイコンのモジュールが同じで、使うピンも変わらなかったので、図面をこのボードに合わせて直し、そのまま使った
  • 電源: Claude の初期案は、分電盤の横にボックス専用コンセントを増設し、USB 充電器から 5V を取るものであった。これだと分電盤から引く線が、測定用と電源用の 2 系統になる上、コンセントの増設工事が必要である。設置コストを下げるため、私が「基板に載せられる電源モジュールにできないか」と Claude に相談し、秋月電子で入手可能な電源モジュールに替えた。熱・電源を入れた瞬間の大きな電流・100V との距離などを仕様書で確認の上採用となり、ボックスに入る電線は 1 系統で済むようになった

主要な部品は次のとおり。

部品型番主な仕様
マイコンボードnanoESP32-C6RISC-V 160MHz・フラッシュ 8MB・Zigbee / Wi-Fi 6 / Bluetooth LE・12bit ADC
電圧センサーZMPT101B ×2電流型の小型変成器。定格 2mA : 2mA・絶縁 4kV
電流センサー (CT)SR-3704-150N ×2クランプ式 (開いて挟む)・巻数比 3000:1・80A まで
AC-DC 電源モジュールATS005A2-F050PAC100〜240V → DC5V 1A・一次–二次 AC3000V 1 分
電気二重層コンデンサVEC5R45055F・5.4V
ヒューズホルダーMF-563 ×3基板用・5.2 × 20mm のガラス管ヒューズ用
分岐ブレーカーPanasonic BSHN2202単相3線式の分岐用で、L1・L2・N を 1 本のケーブルで取り出せる。L1・L2 を必ず同時に遮断するので、片方の 100V だけが基板に残ることがない。ボックス用の電源配線の取り出し口として増設
ケースタカチ PF13-6-19D難燃 ABS・125 × 190 × 60mm

小型電子部品も設計書から抜粋しておく。

部品値役割
ヒューズ0.2A ×2 (電圧センサー用)、0.5A ×1 (電源モジュール用)100V 側の事故のときに切れて、配線と部品を守る
電流制限抵抗27kΩ × 2 本直列 ×2 系統電圧センサーに流す電流を 2mA に決める。2 本に分けて、1 本が壊れても電流が増えすぎないようにしている
負担抵抗270Ω (電圧)、10Ω (電流)センサーから出る電流を、ADC が読む電圧に変える
フィルター1kΩ + 100nFADC が読み取れない高い周波数の成分を落とす
保護ダイオードショットキーダイオード BAT43 ×4ADC の入力を 0〜3.3V の範囲に抑える
中点の回路10kΩ × 2 + 100µF1.65V の中点を作る
充電の制限抵抗33Ω (3W)電源を入れた瞬間に EDLC へ大きな電流が流れて、電源モジュールが止まらないようにする
ダイオード1N5819 ×2EDLC の電気の逆流を防ぐ。停電の瞬間に電圧が落ちないようにする
ツェナーダイオード5.6V (1W)万一、電源モジュールの出力が上がったときに 5V の回路を守る

部品の購入 #

部品は通販と店頭を組み合わせて買った。9 月 5 日には秋葉原へ買い出しにも行った。

秋葉原の秋月電子通商の店頭。人物などはぼかしてある

久々の秋葉原、買い出しで秋月電子通商へ (人物などはぼかしてある)

設計書の部品表 (Markdown) が「何を買うか」の正本で、そこから Claude が購入管理の Excel を作った。部品ごとに想定と実際の数量・費用・状態を管理し、状態を選ぶと行の色が変わる。

購入管理の Excel の一部。部品ごとに、図面上の部品番号・仕様・メーカーと型番・想定の数量・実際に買った数量・単価と小計・購入先・購入先の管理コードが並ぶ

購入管理の Excel (一部)

部品を選ぶとき、Claude は商品ページで在庫・型番・寸法を確かめてから勧める決まりにした。「在庫限り」の表記や、型番だけでは決まらない仕様で一度つまずいたためである。また、この Excel には私が実費などを記入するので、Claude が書き換える前に必ず Git に commit することにした。

袋に小分けした部品と、実装を始めた信号ボード

部品は袋に小分けした。右は信号ボードの実装の始まり

図面や資料を Python で生成する #

回路図・配置図・配線図は、Claude が Python のスクリプトで KiCad (オープンソースの回路・基板設計ソフト) のファイルを生成した。GUI で描いていないので、設計を変えたらスクリプトを回し直すだけで図がそろう。

図面を作る流れ。Python のスクリプト (部品の置き場所の表・回路図・配線の経路・検査の規則) が KiCad のファイルを生成し、kicad-cli で検査 (ERC・DRC) と PDF の書き出しをする。私は PDF を印刷して作業する。検査で違反があれば Claude がスクリプトを直して生成からやり直し、私は現物を測った値を戻すPython のスクリプト部品の置き場所の表座標と向き回路図を描く部品と結線配線の経路を引く裸線・被覆線検査の規則100V は 3mm 離す などKiCad のファイル回路図・配置図実体配線図・規則(中身はテキスト)検査 (ERC・DRC)kicad-cli をコマンドでPDF に書き出しkicad-cli をコマンドで印刷して作業はんだ付け・穴あけ生成違反があれば Claude がスクリプトを直して、生成からやり直す私が現物を測った値 (ピンの太さ・間隔など) を戻す

KiCad のファイルは、中身がテキスト (括弧で入れ子にした書式) なので、プログラムから直接書き出せる。Claude の Python スクリプトは、部品の置き場所の表 (座標と向き) と回路のつながりをもとに、回路図・配置図・実体配線図のファイルを書き出す。配線の経路は、ユニバーサル基板の穴の格子の上で、迷路を解くようにして探す。

できたファイルは、KiCad をコマンドで動かす kicad-cli に渡して、検査と PDF の書き出しをする。検査は、回路図のつながりの誤りを調べる ERC (エレクトリカルルールチェック) と、配置や配線が決めた規則に違反していないかを調べる DRC (デザインルールチェック) の 2 つ。GUI を開かずにコマンドだけで回せるので、Claude は「生成 → 検査 → 違反の報告を読んでスクリプトを直す → 生成」を自分でくり返せる。私は PDF を印刷して作業し、現物で測った値を Claude に戻す。

DRC の規則は、ユニバーサル基板の手配線に合わせて書き換えた (裸線はほかの回路のランドから離す、100V の線はほかから 3mm 離す、など)。規則を切りすぎて「何も検査していないから 0 件」になっていないかを確かめるため、わざと違反を入れた図面で警告が出ることを確かめる検査も用意した。

ユニバーサル基板の実体配線図 #

プリント基板を作るわけではないが、KiCad のレイヤー (基板の層) を次のように読み替えて、手配線の実体配線図を作った。

  • 裏面の銅箔 → スズメッキ線 (裸線)
  • 表面の銅箔 → 被覆線

配線の経路も自動で引き、配線の長さ (総延長 約 2.2m) や、100V の沿面距離 (絶縁物の表面に沿った距離) を検査した。沿面距離は、前に書いた DRC の独自の規則で見張っている。ただし、ネット名に括弧が入るとルールファイル全体が黙って無効になる、といった落とし穴も踏んだ。

KiCad で生成した 2 枚の基板の実体配線図。青がスズメッキ線、赤が被覆線、紫が基板間の渡り線

生成した実体配線図。青がスズメッキ線、赤が被覆線、紫が基板をまたぐ線

実体配線図と工程表を元に私が配線した裏面の例。信号ボード側の被覆線は、今回「ポリウレタン銅線」を使ってみた。

信号ボードの裏面。スズメッキ線と被覆線で配線してある

信号ボードの裏面の手配線

ポリウレタン銅線の存在は知らなかった。被覆を剥く必要がなく、付けたいところではんだごてに盛ったはんだをくぐらせると被覆が溶けるので、配線が楽……と聞いてはいたが、実際には細すぎて狙ったところに固定するのが難しく、あまり楽だとは感じなかった。コツがあるのかもしれない。

加工図 #

加工図も同じ仕組み (Python → KiCad → PDF) で出してもらった。基板の追加の穴あけ図、ケースの穴あけ図、干渉の確認図、結束バンドの位置図などである。アクリル板の穴あけ図は A4 に原寸で印刷でき、倍率が狂っていないことを確かめる 100mm の検証バーが付いている。

アクリル板の穴あけ原寸図。100mm の検証バーと試し加工の指示が入っている

アクリル板の穴あけ原寸図

私がノギスで測った部品のピン径やピッチを Claude に戻すと、追加の穴が 14 か所から 10 か所に減ったこともある。このように、現物の値で図を直していった。なお、実物ができてからは生成スクリプトを回さない決まりにした。回し直すと、図が実物と食い違うからである。

組み立て #

作りながら増えていく工程表 #

組み立ては、Claude が作った Excel の実装工程表で進めた。1 行が 1 作業で、部品・座標・向き・注意点・合格基準などの列がある。私が記入するのは薄い黄色のセル (実測値・チェック・メモ) だけである。判定は下限と上限から自動で出る。Claude は記入済みの Excel を読み、NG や保留の行から原因を考えて、次の手順を行として書き足す。

この工程表は、最初から完成していたわけではない。最初は 123 手だったものが、最終的に 376 手になった。全体の 3 分の 2 にあたる 253 手は、あとから足した手順である。

手数時期足したもの
1239 月 23 日最初の版。準備と 2 枚の基板のはんだ付け・検査
15110 月 4 日電圧 2 チャンネルの試験など
20710 月 7〜8 日AC100V の試験治具の製作、電源モジュールの単体試験と差し替え
23510 月 9〜10 日ピンの付け直し、はんだの単体テスト、短絡の修理
29510 月 10〜11 日2 枚の結合と 5V の確認、電流の校正、ノイズと有効電力の試験
35310 月 12〜13 日ケースへの組み込み、電波の確認、分電盤の工事
37610 月 18〜20 日取り付け後の OTA (無線でのファームウェア更新)、3 分の断の試験

はんだ付けの手順書として始まった表が、トラブルの切り分けと修理、試験と取り付け、取り付け後の確認へと育っていった。次の画像は、あとから足した行の例である。

実装工程表の No.227 から 235。短絡の修理の手順と、実測値・チェック・メモの記入

短絡の修理のためにあとから足した行 (読みやすいように一部の列を隠してある)。黄色のセルが私の記入

AC100V を使う試験は、1 手ずつ工程表に書いてもらい、私が立ち会って行う決まりにした。

Claude とのファイル共有の課題
Excel を私が開いているとファイルがロックされてしまい、Claude 側が開くことができない。記入した結果を工程表で報告するたびにファイルを閉じる必要があり、手間取った。次に共同製作をするなら、同時編集できるツールをまず選定したい。
アクリル板に取り付けた 2 枚の基板の表面

アクリル板に固定した 2 枚の基板。上が信号ボード、下が一次側ボード

部品の加工 #

アクリル板、ケース、ユニバーサル基板の穴あけ加工は、次の流れで行った。

  • Claude に出力してもらった加工図を型紙として印刷
  • 3M のスプレーのりでそれぞれ貼り付け
  • ホームセンターのレンタル作業スペースを借りて加工
    • ボール盤の穴あけ、アクリル板の外形カット、ヤスリ仕上げ等

ケースへの組み込み #

2 枚の基板はアクリル板に並べて固定し、タカチの樹脂ケースに収めた。

ケースに基板を固定した状態と、蓋の裏に置いた電流センサー

ボックスの中身。手前は蓋と電流センサー (CT)

組んだ状態では、ESP32 マイコンに挿そうとしたストレートの USB-C ケーブルが、隣のボードの EDLC に干渉して挿さらなかった。平面図では気づきにくい落とし穴である。手持ちに L 字コネクタ型の USB-C ケーブルがたまたまあったので、これで事なきを得た。

分電盤への設置 #

⚠️ 分電盤の作業には資格が必要
分岐ブレーカーの増設や電線の接続には、第二種電気工事士の資格が必要である。私は資格を持っており、自分で工事した。

電圧の測定と電源のために、分岐ブレーカー (BSHN2202) を 1 つ増設した。ボックスへ入る電線はこの 1 系統だけである。電流は、主幹ブレーカーの線に CT を挟んで測る。CT は開いて挟むタイプなので、既存の配線を外さずに取り付けられる。

危険防止のため、主幹ブレーカーを落とし、検電器やテスターで電圧が来ていないことを確認してから作業した。既設の 100V 分岐ブレーカーを別の位置に付け直し、BSHN2202 を空いた所に取り付けた。

余談だが、主電源を完全に落とすと内蔵時計が初期化されてしまう機器が複数見つかった。給湯器のパネル、床暖房のパネル等々。時計あわせが面倒なので完全停電は何度もやりたくない。

蓋を外したボックスと、カバーを外した分電盤の配線

ボックスを分電盤の左横に固定した状態 (蓋とカバーを外して撮影)

最終的に、PowerSAGMonitor のボックスは 10 月 17 日に分電盤の左横へ固定し、運用を始めた。

制作中のトラブルや苦労した点 #

スプレーのりの跡が残る #

追加加工をするために、印刷した型紙をスプレーのりで貼り、加工するまでは順調だったが、剥がすと基板やケースにべっとりとのりが残ってしまい、剥がすのに難儀した。消しゴムでこすると落ちることが分かり、頑張って剥がした。

スプレーのりは剥がれにくいが、のり自体を剥がす専用のスプレーが別売りらしい。今回は買わなかった。

ドリルの刃がたくさん必要問題 #

Claude の当初の工程では、穴の種類ごとに 0.1mm 単位で異なる径を開ける指定だったので、「ほとんど使わない、しかも入手しづらい径のドリルの刃を購入しきれない」と訴えて、ある程度統一してもらった。

Φ1.x mm 台の細かい径のドリル刃はホームセンターには売っていない。

アクリル板の加工 #

アクリル板は割れやすく、リカバリが利かないので切欠き部分の加工は特に慎重に進めた。大きい穴は「ステップドリル」が有効だった。

ネジの逃げのための切欠きは大変困難で、一番時間がかかった。レーザーカッターみたいなものが利用できたらよさそうであるが、伝手がない。

5V が出たり消えたりする「動く短絡」 #

AC100V の通電テストで、電源モジュール出力側から 5V が出たり出なかったりした。同じ測定を繰り返しても値が変わる。

測ったこと値
USB の治具に 33Ω を直列にして、5V のライン (1 回目)2.60V (正常)
同じ測定 (2 回目)41〜290mV
短絡の抵抗0.3〜2Ω

毎回値が変わる、いわゆる「動く短絡」である。どこかで微妙にショートしているのではないかと、何度も目視確認した。その後、写真のように、GND の被覆線の被覆が熱でへこみ、交差する +5V のスズメッキ線に接触が疑われる部分が見つかった。

基板の裏面。赤丸の中で、赤い被覆線とスズメッキ線が交差している

赤丸の中が問題の交差部。GND の被覆線の被覆がへこんでいる

目視では心線が本当に接触していたかはよく見えなかった。

とりあえず被覆線を付け直し、交差する部分には念のため熱収縮チューブをかぶせた。これが効いたようで、再配線後は、USB 電源の治具テストで 5.08V、AC 接続の電源モジュール出力では 4.60V (10 分後に 4.73V) が出るようになった。

被覆線を付け直し、交差部に透明な熱収縮チューブをかぶせた基板の裏面

付け直したあと。交差部には熱収縮チューブをかぶせた

電源モジュールを「故障」と誤診 #

上記の 5V が出ない問題で、配線問題に気づく前に、Claude は出力側の抵抗値だけを見て電源モジュールを「故障」と判断したため、私は電源モジュールを追加購入した。

実は電源モジュールにも、ピンにはんだが乗っていなかったらしい。「故障」判定で外した部品を IC クリップで試すと 5V が出ていた。ピンの表面をヤスリで磨き、フラックスを塗るとはんだが乗るようになった。

電源モジュールのピンに、スズメッキ線と被覆線をはんだ付けしたテスト

外したモジュールのピンを磨いて、はんだの乗りを試した

長期在庫だったのか、ピンが酸化していたのかもしれない。

電流の読みが 4 割しかない #

ドライヤーで電流の読みを確かめたところ、クランプメーターの値の 4 割ほどしか出なかった。原因は、クランプ式の電流センサーの合わせ目が完全に閉じきっていなかったこと。新品の CT モジュールは合わせ目が異様に固いため気づきにくい。

クランプメーターボックスの読み電圧の下がり
直す前11.7A4.93A (42%)101.36 → 96.99V
直したあと11.4A11.30A (−1%)102.22 → 97.62V

電圧の下がりは 2 回ともほぼ同じなので、ドライヤーは同じだけ電流を流しているのに、読みだけが少なかったことがわかる。

外形図の左右反転 #

ユニバーサル基板の穴は 2.54mm 間隔で並んでいるが、ヒューズのソケットや電源モジュールのように、足の間隔がそれに合わない部品もある。そうした部品の穴は、Claude が出力した加工図をもとに、私が追加で開けた。作業は、ホームセンターのレンタル作業スペースで行った。

帰宅して部品を取り付ける段階になって、電源モジュールの足が 1 本も穴に入らなかった。見比べると、追加で開けた穴の並びが、表と裏で逆になっている。Claude に相談すると、原因は、電源モジュールの外形図が「裏から見た図」だったのに、左右を反転せずに使っていたことであった。同じ図面の電圧センサーでは反転していたのに、あとから電源モジュールを足したときに、同じ手順を踏んでいなかった。

Claude は、開け済みの穴とぶつからない置き方を探し、電源モジュールを 180° 回して置き直した。電源モジュール用に開けた 4 つの穴のうち 3 つはそのまま使え、追加の穴は 2 か所で済んだ。私はその 2 か所をピンバイス (手で回す小さなドリル) で開けて、基板を作り直さずに済ませた。教訓は「外形図がどちらから見た図かを確かめる・穴を開ける前に現物を型紙に当てる」である。

配線図の自動検査の穴 #

実体配線図の配線経路は、Claude のスクリプトが自動で引いている。経路には 2 つの決まりがある。

  • 裸線は、同じ回路か空いているランド (はんだ付けする銅の丸い部分) の上だけを通る。別の回路のランドがあれば遠回りし、通れなければ被覆線にする
  • 被覆線は、ほかのランドや線の上を横切ってよい

引いた結果は KiCad の DRC でも確かめていたが、ここに穴があった。被覆線の横切りを許すために DRC の「短絡」の規則を切っていたので、裸線が別の回路のランドに乗っても DRC では見つからない状態であった。

裸線が別の回路のランドの近くを通る場合は間隔の規則で警告が出るが、ランドにぴったり重なる場合は短絡の規則の担当で、その規則を切っていたため警告が出ない近いが重なっていない「間隔」の規則で調べる→ 警告が出るランドにぴったり重なる「短絡」の規則の担当 (被覆線の交差のために切っていた)→ 警告が出ない裸線だと別の回路とショートしてしまう裸線別の回路のランド同じ回路か空いているランド

スクリプトの誤りでそのような経路が引かれ、気づかずに配線図を出していたら、図のとおりに配線した時点で裸線が別の部品の足とはんだでつながり、短絡するところであった。この穴は、私が配線を見直して一部を被覆線に替えたとき、それまで別の理由で出ていた警告が消えたことから見つかった。Claude は、裸線が別の回路のランドに乗っていないかを数える検査を足し、配線する前の図の段階で確かめられるようにした。足した検査で確かめると、実際にはそのような経路は無かった。

GND の分け方が図の上だけだった #

ユニバーサル基板には、プリント基板のような GND の面 (ベタ GND) が無く、電流の帰り道はスズメッキ線 1 本 1 本になる。マイコンは Zigbee で送信するたびに大きな電流 (最大 300mA ほど) を流すので、その帰り道をアナログの信号の基準と同じ線で分け合うと、測った値に小さな誤差が乗る。そこで Claude は、GND を 3 つの枝 (電源・3.3V・アナログ) に分け、マイコンの 3 本の GND ピンに別々に集める方針を立てた (星形の配線)。3 本の GND ピンは、マイコンのモジュールの中でつながっている。

ところが、生成した配線図を私が見ると、枝が混ざっているように見えた。Claude が調べると、そのとおりであった。3 つの枝はどれも同じ GND の回路なので、裸線は別の枝のランドの上も通れてしまう。アナログの枝の裸線が 3.3V の枝のランドを踏んで、板の上では 1 本につながっていた。

GND の星形配線の直す前と直したあと。直す前は、アナログの枝の裸線が 3.3V の枝のランドの上を通って合流している。直したあとは、アナログの枝が遠回りして、3 つの枝はマイコンの中でだけつながる直す前図の上では分けたが、板の上で合流マイコンGND ピン 3 本 (中でつながっている)別の枝のランドを踏んで合流直したあと3 つの枝はマイコンの中でだけつながるマイコンGND ピン 3 本 (中でつながっている)電源の枝 (大きな電流)3.3V の枝アナログの枝

Claude は、経路を引くときに「同じ GND でも、別の枝のランドには乗らない」という決まりを足し、引き終わった裸線が 3 つに分かれているかを毎回確かめるようにした。教訓は「分けたつもりでも、経路まで確かめないと分かれていない」である。

もっとも、設計の見積もりでは、この誤差は ADC 自身の誤差より 1 桁小さい。星形にしたのは、守らないと動かないからではなく、手間をかけずに取れる改善だからである。

次回予告 #

第3部 (運用開始編) では、Home Assistant との連携とファームウェアのチューニングを紹介する。無線でのファームウェア更新を 47 分から 3 分に縮めた話や、Wi-Fi が使えなかった原因がマイコンの水晶のずれだった話を取り上げる予定である。