Browse Source

modified: README.md

Satoshi Yoneda 2 weeks ago
parent
commit
fb2048aad2

+ 26 - 0
PseudoJJY/README.md

@@ -0,0 +1,26 @@
+# 疑似JJY送信機
+
+JJYの電波は、PCやディスプレイなどが発するノイズにより受信できなことがあります。しかし、PCがないと、JJYを使うアプリケーションの開発ができませんよね。疑似JJY送信機は、そのような場合に利用する開発支援ツールです。本物のJJYに代わって、JJY信号を送信します。
+
+なお、送信と言っても電波はほとんど出ておらず、もっぱらコイルとJJY受信ユニットのバーアンテナとの磁気結合に期待する送信機です。疑似JJYの受信可能範囲はせいぜい半径30センチ以内でしょう。開発ターゲットの至近に置いて利用してください。ただし、至近すぎると信号が飽和するので、JJY信号のパルス幅を見ながら適切な距離に調整する必要があります。
+
+## Schematic
+
+![回路図](image/README/1772672566950.png)
+
+疑似JJY送信機は、NTPで時刻合わせを行って正確な時刻のJJY信号を送信します。したがって、Pico WかPico 2 Wを利用してください。Pico/Pico 2には対応しません。
+
+コイルは被覆銅単線をサインペンなどに20~30ターンほど巻いたものを使います。
+
+![組み立て例](image/README/1772672847456.png)
+
+## WIFI_CONFIG.py
+
+pseudo_jjy.pyと同時に下のような`WIFI_CONFIG.py`を作成し、Pico W/Pico 2 Wにアップロードして利用してください。
+
+```python
+WIFI_CONFIG = {
+    "ssid": "your_access_point",    # アクセスポイントのSSID
+    "pass": "your_passphrase"       # 接続パス
+}
+```

BIN
PseudoJJY/image/README/1772672566950.png


BIN
PseudoJJY/image/README/1772672847456.png


+ 5 - 3
README.md

@@ -1,6 +1,8 @@
-# PicoシリーズMicroPythonによる日本標準電波放送(JJY)サンプル群
+# Picoシリーズ/MicroPythonによる日本標準電波放送(JJY)サンプル群
 
-## 構成
+日経BP社刊「★★★★★★★★★★★★★★★★★★★★★★★★★★★★(仮)」に掲載した電波時計と、電波時計の制作に利用した疑似JJY送信機のソースコード一式です。ソースコードや使い方の詳細は、★★★★★★★★★★★★★★★★★★★★★★★★★★★★(仮)を参照してください。
 
+## ディレクトリ構成
+
+* **PseudoJJY/**: 疑似JJY送信機(JJY開発支援ツール)
 * **WaveClock/**: 電波時計
-* **PseudoJJY/**: 疑似JJY送信機(開発支援)

+ 64 - 0
WaveClock/README.md

@@ -0,0 +1,64 @@
+# 電波時計サンプル
+
+Picoシリーズ(Wi-FiがないPico/Pico 2)とMicroPythonを使った電波時計のサンプル。JJY受信ユニットは、[aitendoで販売されているD606C](https://www.aitendo.com/product/9148)で動作確認を行っていますが、出力極性、電源制御(P、PONなど)、バンド切り替え(F、SELなど)のカスタマイズが可能なので、市販されている、ほとんどのJJY受信ユニットに適合するはずです。
+
+## Schematic
+
+![参考回路図](image/README/1772675960692.png)
+
+表示にはTM1637を使用した4桁の7セグメントLEDモジュールを使用しています。TM1637を使ったモジュールなら、たいてい利用できると思います。
+
+GP18のLEDは、JJYと時刻同期に成功していれば点灯するインジケータ。GP16のタクトスイッチは、表示モード切替、GP17のタクトスイッチは強制同期スイッチです。
+
+|GPIO番号|接続するデバイスの端子|
+|--------|----------------------|
+|GP2|TM1637モジュールDIO(SDA)|
+|GP3|TM1637モジュールCLK|
+|GP13|JJY受信ユニットP、PON|
+|GP14|JJY受信ユニットバンド切り替えF/SEL|
+|GP15|JJY受信ユニット出力TP/OUTP/OUT|
+|GP16|タクトスイッチ1|
+|GP17|タクトスイッチ2|
+|GP18|LEDのアノード|
+
+![組み立て例](image/README/1772676585352.png)
+
+## ソースコード構成
+
+* boot.py:起動時にSMPSをPWMに切り替えるbootファイル
+* Debug.py:デバッグメッセージクラス
+* JJYDecoder.py:JJYデコーダー
+* JJYReceiver.py:JJY受信ユニット制御クラス
+* JJY_CONFIG.py:設定ファイル
+* RTCClockApp.py:時計アプリケーションクラス
+* TimeSource.py:基底クラスTimeSource
+* TimeSyncer.py:基底クラスTimeSyncer
+* tm1637.py:TM1637ディスプレイライブラリ
+* WaveClock.py:メインプログラム
+
+## 設定ファイル
+
+設定ファイル**JJY_CONFIG.py**を環境に合わせて編集してください。
+
+```python
+JJY_CONFIG={
+    "signal_out_pin": 15,       # 信号入力GPIO
+    "signal_pol": 1,            # 信号の極性
+    "pon_pin": 13,              # 電源制御(PON)GPIO
+    "pon_pol": 0,               # PON極性(0でオン)
+    "band_select_pin": 14,      # バンド切り替えGPIO
+    "default_band": 1,          # 優先するバンド(1か0)
+    "tm1637_sda_pin": 2,        # TM1637 SDAピン
+    "mode_select_pin": 16,      # モード選択スイッチ
+    "force_sync_pin": 17,       # 強制受信スイッチ
+    "sync_indicator_pin":18,    # 同期インジケーターLED
+}
+```
+
+JJY_CONFIGは、Pythonの辞書型です。`pon_pol`にJJY受信ユニットの電源制御端子の極性(オンになる値)を、`default_band`にお住まいの地域で受信できるJJYのバンドの値を、`signal_pol`に出力の極性(正論理なら1、負論理なら0)を設定します。LEDやスイッチ、TM1637などを接続したGPIOが異なる場合は、それぞれを設定してください。
+
+## 実行
+
+すべてのソースコードをPicoシリーズにアップロード後、メインプログラム`WaveClock.py`を実行します。ディスプレイの初期表示は`----`ですが、JJYとの同期に成功すると時刻が表示されます。JJYとの同期は、強制同期ボタンを押さない限り1時間に1回行われます。
+
+JJY同期中は、受信している信号に合わせてオンボードLEDが点滅します。1秒に1回の点滅があれば、正常にJJYを受信できています。チラチラしていたり、点灯しっぱなしあるいは消灯したままならば、正常にJJYを受信できていないか、接続ミスあるいは極性設定のミスなどが考えられます。

BIN
WaveClock/image/README/1772675960692.png


BIN
WaveClock/image/README/1772676585352.png