おしゃれな広々としたロケ地だった。
Arduinoの互換機である「びんぼうでいいの」をaitendoで購入した。アルデイーノのもじりなのだろうか。命名が素晴らしい。
昨年末からArduinoに少しだけ触れて来た。まだ理解はできていないが何となく入りやすいと感じている。一からプログラムを作ろうとは思わないが少し手を加えるくらいで楽しみたいと思っている。今回、CWのデコードに使えないかと思った。
ネットでcwdecorderというArduinoベースのものを見つけた。面白そうなので挑戦だ。
まずはびんぼうでいいのを組み立てる。クリスタルと各ソケットとタクトスイッチ、USBコネクタなので特に問題なく完成した。
cwdecorderはJH1LHV OMのブログを何回も閲覧し参考にさせてもらった。でもスケッチや配線図はcwdecorderのサイトの通りに接続しインストールした。
LCDとの接続で注意がある。LCDのD4,D5,D6,D7はそれぞれびんぼうでいいののD5,D4,D3,D2へ、またLCDのE,RSはD11,D12へ接続してOKだった。
準備したものは
1.びんぼうでいいの(Arduino)
http://www.aitendo.com/product/10941
2.20文字4行のLCD
http://www.aitendo.com/product/15637
3.接続のための各部品
LED
LED用抵抗R4 220Ω
R1,R2, 10KΩ
LCD輝度調整用R3 10KΩボリューム
C1 0.1μF(104)
3.5φモノラルジャック
生基板と線材
配線そのものはいたってシンプルだ。調整箇所もないので完成率は高いのでは。
配線が終わればArduino IDEでcwdecorder11のスケッチをコンパイルし、びんぼうでいいのへ転送する。
RESETを押せばプログラムが実行される。
スケッチの仕様ではトーン周波数のデフォルトは558Hzになっている。手持ちのFT-817にはCWピッチの設定があったので550Hzに設定した。
もし、ない場合は受信時に558Hz付近になるようチューニングする。ここはキモだ。どういう仕組みか分からないがちゃんと558Hzを認識してLEDが点滅してくれている。反対にそうでないときは無線機のボリュームを大きくしても反応しない。賢いのだ。選択度が悪くて隣接する電波と2波同時に受信していてもトーン周波数が558Hzの方にしか反応しない。勿論少しの幅はあるが。
余談だが558Hzというのはかなり低音だということに今回気づいた。例えるなら男の低音といったところか。
理解できていないがアルゴリズムという技術を使っているのでCWの送出スピードが変動してもそれを補ってデコードしてくれる。より人間工学的なのだ。期待以上だった。でもどうしても人の耳にはかなわない。耳は補填する機能がアルゴリズムを上回っている。
もう一つわかったことがある。それは電源についてである。単体で稼働させるため電源はUSBから供給していた。ところが雑音が凄いのだ。そこで600HzのBPFを製作してみた。すると音声出力がかなり減衰してしまった。仕方がないのでAFアンプを製作することに。でも雑音は完全には取れなかった。たまたま乾電池で供給したところ雑音は無くなった。なるほどUSBは雑音発生器なのかと頭に刷り込んた。ところがある日、パソコンのUSBコネクタから供給してみたら雑音がなかった。なんで?。結果的にスイッチング方式のACアダプタが雑音の原因だった。よくよく考えてみたら良く言われていることなので当たり前のことだった。今回身を持って実感したのである。
今後、和文のデコードにも挑戦してみたい。
新年が明けた。天候は晴れ。清々しいお正月だ。お酒はやめたので緑茶でおせちを食べる。お酒をやめるとお茶や紅茶が美味しく感じる。近所の氏神さまと有名なお寺と有名な神社に初詣した。電車で遠くまで行くのは遠慮させてもらった。コミットはしないが今年の目標も決めた。楽しく、暇をつぶして有意義に過ごしたいものである。
さて、Iot Expressでネットワーク時計の挑戦である。
せっかくWi-Fiが搭載されているので使わない手はない。しかも単体で動かすことができればマイコン型Iotと呼べるかも知れない。
記事に従ってハードウェアを準備した。時刻を表示させるためのLCDが必要だ。LCD Keypad Shield ArduinoというArduinoの拡張コネクタに直接接続できるタイプだ。ピンヘッダ接続ケーブルで接続すると試作では便利だが日頃の運用には向かない。
秋月電子通商で購入した。
http://akizukidenshi.com/catalog/g/gM-07029/
記事にプログラムリストが記載されているのでTeratermから一行づつ入力してみた。ところがいたるところでエラーになる。項目が定義されていないという意味のものが多い。色々とネットで調べてエラーを取り除くためimport命令などを追加して少しづつ減らす努力した。ところが表示処理に至っては~省略~ときた。いくらなんでもプログラムで省略はないだろう。命令分を補うすべがない。かくなる上は誰かESP32でネットワーク時計を作った人はいないかを調べた。結果ESP8266で作った人はいた。
一旦諦めてどうするかを2,3日浅く熟慮してみた。
もう一度記事を目を凝らして読み、参考文献の記載があったがヒットせず。トランジスタ技術のWebサイトを何気なく見ていたら[●プログラム こちらからダウンロードできます]という文字を見つけた。やっと見つけた。そりゃそうだろう。限られた紙面でプログラム全文を載せることはできない。無事ダウンロードできた。
しかしこれを一行づつTeratermで入力なんてとっても暇な身とはいえやってられない。それを解決する方法がコラムとして記載されていた。MicroPython向け統合開発環境「uPyCraft」だ。どこの誰かは知らないが偉い人たちがいるものである。これがないと使い物にならない。そんなわけでまたダウンロードしなければならない。
ダウンロードは最新のバージョンだけで良さそうだ。マスターとしてダウンロードすると全バージョンと付属の何かがダウンロードされて130MBにもなってしまう。最新の.exeだけだと約13MBだ。これだけで動かないようであれば全てダウンロードしてみても良いかも。
Iot ExpressにLCD Keypad Shield Arduinoを差しUSBケーブルで接続しシリアルポート番号とボードをESP32に設定する。トランジスタ技術からダウンロードした「NTP時計」のソースをFileメニューからOpenする。2か所修正する必要がある。家庭にあるアクセスポイントの情報を入力してやる。
sta_if.connect(’ssid’ , ‘password’ )の命令分にSSIDとpasswordを変更する。普通に文字を入力してやれば良い。JISコードに変換などは不要だ。修正したらパソコンに上書き保存する。
保存が終われば[Tools]-[ Download]でも良いしソースを開いておいてプレイボタンらしき[▶︎]をクリックしても良いがIot Expressへ送る(ダウンロード)。
プログラムの実行は左側の[device]フォルダ以下のプログラムからntpclock_lcd.pyを右クリックして[Run]をクリックする。
いつもパソコンに接続した状態では不便なので単独で実行させるためには[Default Run]を選択すると電源ON直後に実行される。この情報はmain.pyに書き込まれる。
無事完成した。僕の環境では1秒のカウントが少しずれている。でも一時間に一回NTPサーバーから正確な時刻を取得するので十分実用にはなる。
Micro Pythonの準備ができたので記事にあるLEDチカチカを試してみる。
IoT Expressをパソコンに接続しTeratermを立ち上げる。COMポートと通信ポートレートを設定し、接続できたらIot ExpressのRESETスイッチを押してプロンプトを表示させる。
命令文をTeratermから一行づつ入力し一行づつ実行させる。ループ命令の場合は繰り返しが終わるまでは実行されない。最後まで入力したら後退キーで左端にカーソルを持って行ってEnterキーを必要分押せば実行される。
英数Capsか否かは判断されるので入力時に注意が必要だ。:(コロン)に続く行のインデントも大切だ。後退キーを使ってインデントを合わせる必要がある。
無事入力が終わればBOOTスイッチを押す度に緑色のLEDがON/OFFされるのが確認できた。終了するには[Ctl]+[C]で無限ループを抜ける。
でも一行ずつ入力間違いに気をつかうのはかなりのストレスである。なんとかできないかな。
とはいえサンプルプログラムが動いたので気をよくした。
次回はWi-Fi通信機能を使ったネットワーク時計に挑戦してみたい。





























