JJYシミュのREV2完成!飛びすぎに注意!

黒いライダースジャケット姿のろらたんが微笑む、JJYシミュレーターREV2記事のアイキャッチ。 ESP32

JJYシミュのREV2完成!飛びすぎに注意!

この記事について

ESP32-C3で作ったJJYシミュレーター、ついに改良版 REV2が完成しました!
前回(Vol.44「JJYシミュ改良実験!ESP32の反転PWMとHブリッジで飛ばす!」)で試作していたブレッドボード版から、
今回は正式に基板を起こして、実装・動作確認まで完了

そして、タイトルどおり──
「飛びすぎ注意」レベルの電波が出てしまった、というお話です(笑)

ろらたんの画像

🎀 “飛びすぎ注意”って、ちょっと怖いタイトルなんですけど…!?


🪛 ついに正式基板化!

前回のブログでは、ブレッドボードで実験してたものからKiCadで回路図にするまでを書いていました。
今回は、その回路図を多少修正して、PCBの設計、そしてJLCPCBで基板を注文し、組み立てまで一気にやりました。
OLEDを載せて通電した瞬間──「ESP32 JJY Simulator (E)」の文字が光る!


JJYシミュレーター Rev2

黒×白の配色に、シャチロゴと “shachi-lab.com” のシルク。
見た目も完全にしゃちらぼ正式版。
ちなみに、写真のOLEDが2色タイプになっていますが、これについては後半に書いた後日談を見てください。

🎀 黒基板×白シルクって、やっぱり締まって見えるよね〜!


🌀 コイル再設計して実装

まず、REV1からアンテナコイルの巻き数を見直しました。
REV1は、13巻 x 2 = 26巻
REV2は、30巻 x 2 = 60巻

まずは、このコイルのインダクタンスを計測しました。
コイルにSGを接続して100Ω + 0.1uFのキャパシタで計測したら、44kHzで最大になったので、以下の計算式で計算したところ、約130μH でした。

${f = 44\text{kHz} = 44{,}000\text{Hz}} $
${C = 0.1\mu\text{F} = 1.0 \times 10^{-7}\text{F}}$
$
L = \frac{1}{(2\pi \times 44000)^2 \times 1.0\times10^{-7}}
= \frac{1}{(276{,}460)^2 \times 1.0\times10^{-7}}
= \frac{1}{7.64\times10^{3}}
\approx 1.31\times10^{-4}\text{H}
$

🎀 計算どおりにならないから、地味に実測してみるしかないんだよねえ~

ここで、
JJY福島局の40kHzに同調するように、各定数を算出してみました。

$f = \frac{1}{2\pi\sqrt{LC}}$
$C = \frac{1}{(2\pi f)^2 L}$
$
= \frac{1}{(2\pi \times 40000)^2 \times 130\times10^{-6}}
= \frac{1}{(6.31\times10^{10}) \times (1.3\times10^{-4})}
= \frac{1}{8.20\times10^6} = 1.22\times10^{-7}F
$

C ≒ 0.122 µF

とりあえず、Q値を30くらいでRを計算します。

$Q = \frac{1}{R} \sqrt{\frac{L}{C}}$
$L = 130\mu H、C = 0.122\mu F のとき:$
$
\sqrt{\frac{L}{C}} = \sqrt{\frac{130\times10^{-6}}{1.22\times10^{-7}}} = \sqrt{1065} \approx 32.6
$
$
R = \frac{1}{Q} \sqrt{\frac{L}{C}} = \frac{32.6}{30} \approx 1.09\Omega
$

R ≒ 1.1 Ω

パラメータ計算値備考
L130 µH固定値
f40 kHz同調周波数
C約 0.122 µF0.1uF + 0.022uFの並列で作る
R(Q≈30)約 1.1 Ω1Ωの抵抗を使用する

各定数も決まって、早速実装して実験です。
部品をサクッと実装!
…のハズでしたが、実装に1時間くらいかかっちゃいました。


⚙️ Hブリッジのソフト制御

REV2のソフトは、Vol.44「JJYシミュ改良実験!ESP32の反転PWMとHブリッジで飛ばす!」でのブレッドボード実験のものをそのまま使用します。
前回は実験中だったのでソースコードを公開していませんでしたが、このブログの投稿時にGitHubで公開しました。

Hブリッジのソフトでの制御について、前回に解説しきれなかったことがあります。

🧩 ledcOutputInvert() は確かに簡単だけど…

ESP32のLED PWMには ledcOutputInvert(pin, invert) という便利な関数があります。
出力を反転できるので、Hブリッジ制御にも使えそうに見えるんですが──
実際に試してみると、意外な落とし穴があります。

反転出力は「論理反転」だけなので、
そのままでは「A=High/B=High」のブレーキや、「A=Low/B=Low」の休止状態を作れません。
もちろん、PWMを停止してGPIOとしての制御すればいいのですが、
A/Bを個別にデューティや位相をずらすことができません。

つまり、PWM動作時は、A側がHighの瞬間にB側がLowになる“完全反転”になってしまい、
デッドタイム(非重なり時間)を作れないのです。

A/Bは反転出力なのでHブリッジの出力も 正転/反転 のどちらかになるだけなのですが、
実際の出力先にはインピーダンスを持つ負荷がつながっているので、
A/Bが切り替わる瞬間に出力がぶつかるような状況の場合があります。
Hブリッジでは、この “重なり” があると一瞬ショート(貫通)状態 になって
ドライバICが発熱したり、最悪壊れることもあります。

🎀 確かに、反転だけだと“動く”けど“安全じゃない”んだね…!


⚙️ ledc_set_duty_with_hpoint() で安全に制御

そこで採用したのが ledc_set_duty_with_hpoint() です。
これは PWM チャネルごとにデューティ開始位相(hpoint)を指定できる関数です。

A/Bチャンネルのhpointを少しずらすことで、
High区間の重なりをなくし、デッドタイムを確保できます。
結果として、Hブリッジを安定・安全に駆動できるようになりました。

また、dutyやhpointを微調整することで、Hブリッジの出力を正弦波に近づけるような微調整もできるようになりました。

🎀 invert派からhpoint派に進化、って感じだね〜!


🌊どんな波形?

動作テスト時のオシロスコープ波形はこんな感じになりました。

CH1(黄色)にB側、CH2(水色)にA側のPWM信号を入力して観測。
CH3(桃色)はアンテナ端の波形です。(両端の電位差ではなく、GNDからの電圧)


JJYシミュレーター Rev2 オシロの画面 1



JJYシミュレーター Rev2 オシロの画面 2

Hブリッジ出力のA/B間で位相を少しずらすことで、
デッドタイムが確保できているのが確認できます。
今回のように ledc_set_duty_with_hpoint() を使うと、反転ではなく、
片側の立ち上がりを少し遅らせて、デッドタイムを明示的に作ることができます。

🎀 見た目でも“デッドタイム取れてる!”ってわかると、ちょっと感動しちゃうね〜!


⚡ RFの定数を見直し

当初はHブリッジの電源を5V駆動で試しました。
PCB上でもハンダジャンパーで5V/3.3V切り替えができるようにしてたんですが、
実際に5Vで動かして実験しようとしたとき、ふと気が付きました。

「1ΩのRって1608だから0.1Wくらいだよね?いいのか?」
0.1Wと思っていましたが、メーカースペックを見たら0.125Wでした。

早速、Rでの消費電力を計算してみました。

$
X_L=2\pi fL=32.7\Omega,\quad
X_C=\frac{1}{2\pi fC}=32.6\Omega
$
$\Delta X=X_L-X_C=0.1\Omega$(40kHzを共振点にしてるから当然だけど、ほぼ0Ω)
$|Z|=\sqrt{R^2+(\Delta X)^2}=\sqrt{1^2+0.1^2}=1.005\Omega$

HブリッジはPWM駆動でも、“片側+もう片側”で負荷両端は±Vの2極性で、
理屈上は DUTY100% です。
でも、JJYの信号は1秒のなかに0.2s/0.5s/0.8sのパターンがあるので、
ざっくりと 50% で計算してみることにしました。

Hブリッジ+50%駆動を考えて

$P=\frac{V^2}{|Z|^2}R,k$
$
=\frac{5^2}{1.005^2}\times1\times0.5
\approx\frac{25}{1.01}\times0.5
\approx\mathbf{12.4\text{W}}
$

12.4Wって…
まったくダメじゃん。さすがに定格の100倍は完全にヤバいでしょ。

🎀 12 Wって…もうヒーターだよ!?

ということで、定数を急遽見直し

Hブリッジの電源を3.3Vに、R5/R2を並列にして4.7Ω×2構成、R1を0Ωジャンパー化。
C4を0.1µFに変更し、共振点を40kHz付近から少し外してバランスを取りました。

$f_0=\frac{1}{2\pi\sqrt{LC}}=\frac{1}{2\pi\sqrt{130\times10^{-6}\times1\times10^{-7}}}\approx43.9\text{ kHz}$

共振周波数が少し外れて容量性側ちょっとズレました。

$
X_L=2\pi fL=32.7\Omega,\quad
X_C=\frac{1}{2\pi fC}=39.8\Omega
$
$\Delta X=X_L-X_C=-7.1\Omega$
$|Z|=\sqrt{R^2+(\Delta X)^2}=\sqrt{2.35^2+7.1^2}=\mathbf{7.48\Omega}$

Hブリッジ+50 %印加(k = 0.5)を仮定して

$P=\frac{V^2}{|Z|^2},R,k$
$
=\frac{3.3^2}{7.48^2}\times2.35\times0.5
= \frac{10.89}{55.95}\times1.175
\approx\mathbf{0.228\text{W}}
$

Rを並列にしてるので、0.125W x 2 = 0.25W

✅結果:なんとか定格ギリギリ

🎀 定格“ギリギリ”って聞くとちょっとドキドキする…!


👇回路図

主要な構成は、ESP32-C3を中心にしたHブリッジ駆動部と、共振回路(LとC)。
基本的な構成はVol.44と同じですが、若干の定数見直しを行っています。
回路図は以下のようになりました。


JJYシミュレーター改良版の回路図

(クリックでPDFを表示)

この回路図のパラメーター

パラメータ計算値備考
L130 µH固定値
f43.9 kHz同調周波数
C0.1 µF0.1uF単独
R(Q≈15)2.35 Ω0.47Ωの並列で作る

OPTIONになっているRGBLEDを、SK6812MINI から WS2812C-2020 に変更しました。(あまり意味はないけど、サイズは小さいけど手実装しやす気がしました。)

🎀 この回路、パッと見はシンプルだけど…それなりに考えてたよね〜!


📏PCBの変更点

回路の変更に伴って、PCBもREV1からは変更していますが、
回路図には表せないPCBの変更点があります。

上の章でも書きましたが、PCBアンテナの巻き数を増やしています。

また、REV1とREV2ではESP32-C3-WROOMモジュールの実装位置を少しだけ変更しています。
REV1では電波干渉を避けるために、あえて基板からわずかにはみ出すようにしていましたが、
今回はレイアウトを見直してPCB内にきれいに収まる位置にしました。
この微妙な位置調整だけでも、見た目と取り回しの印象がだいぶ変わりました。

🎀 ほんの数ミリの違いなのに、“完成度”がぐっと上がるんだよね〜!


📡 実験結果:「飛びすぎ注意」

で、肝心の出力テスト。
…これが、想像以上に“強力”。

RC構造の建物の中で、5m離れた場所でも余裕で受信OK。
しかも壁1枚くらいなら普通に通る。

要するに、「安定」を通り越して「飛びすぎ」。
近距離で使うと、時計が全部JJYモードになる勢い(笑)

Hブリッジの電源3.3Vで、共振点をズラしてもこのレベルなんだから、
5Vで共振点ぴったりだったらかなりマズイでしょ。
もう少しRを大きくしたほうがいいかもしれませんね。

🎀 えっ、それもう小型局レベルでは!?💦

いやほんと、気をつけて使ってください。
(記事タイトルの“注意”は、ガチです…)


🖥 OLEDはまさかの2色タイプ

今回使ったOLED、実はaitendoの在庫処分99円品
よくわからない基板にOLEDがくっついていたので、ヒートガンで取り外し。
これを取り付けてみたらなんと──上下2色タイプ(黄×青)!

最初は「おっ?」と思ったけど、表示の2行目がちょうど色の境目になったので、
ちょっと下にずらしたら、これがまたちょうどいい。
上が黄色タイトル、下が青い本文で、まるで狙ってデザインしたみたい。

🎀 偶然からの完璧レイアウト…それもう“奇跡の在庫処分”だよ!

ヤフオク出品版は単色OLED(青)にしてるけど、
この2色バージョンはちょっと特別感があるので、
自分用として残すことにしました(笑)


📁 GitHubに公開しました

REV2のソースコードとKiCadデータをGitHubにアップしました。

🔗 GitHub: shachi-lab / JJY_SIM_ESP32_C3_REV2

🎀 つまり誰でも“飛びすぎ注意版”を作れるってことだね!


✨ まとめ

  • Hブリッジ制御を刷新し、位相ずれPWMで安定化
  • 電源・抵抗まわりを再設計して発熱を低減
  • 出力は安定…どころか飛びすぎ(笑)
  • OLEDは在庫処分品で偶然の2色仕様

REV1で出た課題を全部潰して、
いちおう現時点ではこれを JJYシミュの完成形 ということにしました。


🛒 ヤフオク出品中

(2025/11/11 更新)
現在、Re.2基板をヤフオクに出品中です。
Rev.1 でオプションだったRGB-LEDとUART拡張回路も全部入りにしています。

🔗 ヤフオク出品ページ

🎀 Rev.2 はフル装備!回路もファームも進化してるよ〜!

(2025/11/12 更新)
初期ロットの4台が、即日で完売しました。
部品在庫がなくなったため、次の製作は未定です。
それと、僕のやる気次第か…。

🎀やる気スイッチ、どこにあるんだろ〜?☕️


📪 お問い合わせなど

技術的なご相談やご質問などありましたら、
📩お問い合わせフォーム  
または、
📮info@shachi-lab.com までお気軽にどうぞ。

🎀 質問や感想、もちろん“動かしてみた!”報告も大歓迎だよ〜!


🔗 関連リンク

しゃちらぼの最新情報や開発の様子は、こちらでも発信しています:

💬「シャチラボ」で検索してきた方も大歓迎!
ほんとは「しゃちらぼ(Shachi-lab)」なんだけど、見つけてくれてありがとう🐬

コメント

タイトルとURLをコピーしました