JH1LHVの雑記帳

和文電信好きなアマチュア無線家の雑記帳

スポンサーリンク

ARDUINO CW KEYER を試してみた ~その52~

今日は K3NG Arduino CW Keyer Shield の組み立てです。
これで ICSP が解放されて、USB キーボードが使えるようになる・・・はずなんですが。。。

まず最初に、今日の作業の結論から。
お陰様で、USB Host Shield を認識して、USB キーボードが使えるようになりました。
キーボードの打鍵でモールスが送出できることを確認しました。

ところが、USB Host Shield を重ねた時だけに起こる現象なんですが、LCD に文字が表示されなくなってしまいました。
USB ライブラリが悪さをしてるのか、それとも I2C のアドレスが競合してるのか・・・
(USB Host Shield って、基本的に ICSP 動作で、I2C なんて使ってないと思うんだけどなぁ。)

Um... この新たに発生した事象については追々ではありますが、ゆっくり調査していこうかと思います。

と、しっくりこない現象は起こってしまいましたが、とりあえず USB Host Shield は認識してくれたので、前回と今回で使った2種の基板の動作だけは良好だったということで、ホッとしました。

ということで、今日やった作業の様子はいつも通りに写真に収めたので、以下、コメントと一緒にアップしていきますので、何かの参考にして頂けたなら幸いです。
 

f:id:JH1LHV:20200430154436j:plain
必要なパーツはこれだけ。

K3NG の CW Keyer は少ないパーツで動作するのが、ホント素晴らしい。
ユニバーサル基板でも簡単に組み立てられますから。

この基板では、抵抗とコンデンサだけは SMD パーツを使ってます。
とはいっても、チップとしては大きなサイズの1206 なので、基本的に手ハンダでも大丈夫です。

<今回の基板で使える、秋月電子で購入できるパーツ類(一部)>

ピン配置や形状など、間違いやすいパーツだけを抜粋して載せときました。

f:id:JH1LHV:20200430154548j:plain
1206 のチップなんで、デジタルスコープも不要だと思うのですが・・・
わたしは、できるだけ最良な環境でハンダ付けがやりたい派なので、ちょっとしたハンダ付けでも、事前準備だけは怠らずに入念に行っております。

完全非磁性なピンセット
チップ抵抗を挟んだり押さえたりするのに、完全に磁力がゼロな、完全非磁性なピンセットがあるととっても便利です。

f:id:JH1LHV:20200430154641j:plain
チップを挟むだけで値が読める、チップ専用なテスタはやっぱり便利です。

チップ類の値は、取り付ける前にテスターで必ずチェック。
裸眼だけでチップの数字を読んでると、結構間違ったりするんですよね。
ここは面倒だけど、必ずテスターね。

f:id:JH1LHV:20200430154730j:plain
SMD なパーツを手ハンダする時。
わたしは、こういう治具を使って基板を固定してます。

f:id:JH1LHV:20200430154853j:plain
チップを手ハンダで付ける時

  1. SMD ランドの片側だけに、ちょっとだけ予備ハンダ
  2. ピンセットを使ってチップをランドに配置
  3. チップの真ん中をピンセットの先端で押さえて、予備ハンダ側にこて先を当てる
  4. 予備ハンダの反対側をしっかりハンダ付け
  5. 予備ハンダ側をしっかりハンダ付け

と、こういう感じでハンダ付けしますが、チップを押さえる治具があると結構便利で、予備ハンダすることもなく、一息で本気ハンダできちゃいます。

3Dプリンタをお持ちなら、是非、いっこ作って手元に置いとくといいと思います。

f:id:JH1LHV:20200430155028j:plain
ということで、チップ以外のパーツもハンダ付けして・・・完成です。

f:id:JH1LHV:20200430155205j:plain
LCD の装着は、3×15mmのスペーサを使って固定します。(15mmでピッタリなんです。)

f:id:JH1LHV:20200430155431j:plain
4か所です。(3mmネジだと、少々キツキツですが・・・ちゃんと入ります。)

f:id:JH1LHV:20200430155733j:plain
今回は黄色のSWを使ってみました。
 

f:id:JH1LHV:20200430160043j:plain
で、前回組み立てた mega2560 pro mini Board に、今回のボードを載せて一旦動作確認します。


USB Host Shield (ICSP)を使うため、K3NG の標準回路の D11とD12を開放したので、スケッチを変更します。

keyer_pin_settings.h
11 → 6 、12 → 7 に変更します。 

f:id:JH1LHV:20200430153643j:plain
ゲタを履かせなくても、ギリギリなんとかなりそうなんですが・・・
ソケット2段にしてゲタを履かせました。

f:id:JH1LHV:20200430160132j:plain
実際にキーや PS/2 キーボードを繋いないだりしてモールス出したり、CW デコード機能を試したり・・・
ひと通り CW Keyer の機能チェックをしてみましたが、まぁ、動作は良好でした。 

USB Host Shiled を試す

さて、今日の本当のメインであります USB Host Shield の動作チェックです。
 

f:id:JH1LHV:20200430153017j:plain
赤いヤツと青いヤツの2種類持ってますが、青い方は動作しませんでした。

mega2560 pro mini 単体の試験ではちゃんと動作したんですけどね。
CW Keyer を重ねると何か問題が発生するみたいです。
原因を追究しようかとも思ったのですが、赤が簡単に動いてくれたんで、これ以上かかわることは止めました。
 

f:id:JH1LHV:20200430154144j:plain
mega2560 pro mini 基板と CW keyer 基板の間に USB Host Shield を挟みます。
こういう Arduino Uno のシールドが使えるようにと・・・2枚のボードは作ってるんですよ。
 

f:id:JH1LHV:20200430153326j:plain
ということで、USB キーボードを繋いで適当なキーを押したらモールス音が聞こえたので、「よし!」と、喜んだのもつかの間で。。。

モールスはちゃんと送出されたんだけど、LCD に文字が表示されないんですよ。
LCD の表示には I2C を使ってるんですが・・・なんか、死んでます。

USB Host Shield って ICSP 以外に何か信号線を使ってるんでしょうか。
もし使ってるとしたら、また CW Keyer 側のポート構成から見直さなきゃダメかもしれません。

でも、LCD は I2C なんだよねぇ・・・
基本的にはアドレスさえかちあってなければ、ちゃんと動作するはずなんだけど。

あと、動作に必要な I/O なんだけど、標準的な Arduino Uno の I/O だけじゃ足りないのかも。

もうこうなると、USB キーボード使うのってムリっぽいので、使うの止めちゃおうかなぁ。

どうしても(そこまでこだわる必要もない)USB キーボードを使わなきゃダメってこともないし。
PS/2 キーボードだって、当たり外れはあるけど、ちゃんと使えるわけだし。
それに Winkey として使えば、PC のキーボードは普通に使えるしね。(この使い方が普通だよ。)

この問題が I/O の数だけで解決するんだったら、もう Arduino Uno 互換にこだわらずに、mega2560 pro mini を中心とした基板に作り直した方が早いかもしれません。

Um... 泥沼にハマっていってるような・・・そんな、感じがしてます。。。

ー・・---
I2C アドレスだけは調査してみますが、
ひとまず、最近組み立てた2枚の基板を、最終的なバージョンとしたいと考えています。
もう、これ以上、沼に落ちるのは・・・ちょっとね。
ー・・---