USB Host Shield を使うと I2C が使えなくなるという原因が判明しました。
この問題はしばらくこのまま放置かな、って思ってたんですが、やっぱり気になっちゃって。
その日、気が付いたら深夜2時まで、なんやかんややってました。
それで、結果なんですが・・・すごいお恥ずかしいことで。
わたしが所有してる USB Host Shield なんですが、最初から I2C 端子が出てなかったんですよ。
これは作る前から知ってなきゃダメな基本的ことなんですが。
こうなるまで、まったく気づきませんでした。。。トホホ。
Arduino Uno R3 ピン配置(ソース)
わたしが所有してる2種の USB Host Shield なんですが、Arduino Uno が最初に販売された頃の古い仕様に合ったものだったんです。
今どきの Arduino Uno のバージョンって R3 が主流なんですが、こういうシールドって売れないのか、R3 に対応したものって、なかなか出してくれないみたいです。
それで Arduino Uno R3 の全ピンに対応した USB シールドって売ってないのかとネットで調べたんですが、1種類だけ(USBHostShield-Rev2、回路図)でしたが、スイッチサイエンスに在庫限りということで見つけました。
でも、値段が高い。(@3,685)
それに在庫限りって・・・これって、どうなの。。。
こういう USB Host Shield の需要って、あんまりないものなんですね。
ホント、この1種類しか全ピン対応品はなかったんだよね。
AliExpress や Amzon とかでも調査したんだけど、わたしが所有している I2C 端子がないものばっかり見つかるし。
この USB Host Shield を一番上にスタックするような使い方なら、このシールドでも I2C は使えるようになると思うけど、CW Keyer 基板の上にスタックするのも変だしね。
あと、わたしが持ってる赤いシールドの回路図を見てて気づいたんだけど。
D7~D13 の7本も使ってることが分かったんですよ。
これも問題ありなんですよね。
この D7 なんですが、CW Keyer の送信機2側に繋がる I/O なんですよ。
(もう I/O 満杯で、空きなしです。)
ということで、このシールドを使うと、送信機2側の I/O は使えないということなんです。
所有する USB Host Shield の問題点
- Arduino Uno R3 のソケット全ピンに対応しない(スタックで I2C は使えない)
→ スイッチサイエンスで売ってる在庫限りのシールドなら対応可 - 動作に必要な I/O 数が多い
という、2つの問題を解決する必要があるということです。
ということで、以下、Mini USB Host Shield を使って、この2点の問題を解決しました。
Mini USB Host Shield で Uno シールドを作る
前に動かなくてそのまま放置していた、GAOHOU USB Host Shield を再び持ち出し試し、今度は真面目にあれこれやってたら、動作確認が取れました。
わたしの使い方だけの問題だったようです。
この USB Host Shield mini ですが、あの時速攻で AliExpress に2個注文したんだけど。
まったく届く気配なしです。
届いたら比較しながら調査しようと思ってたんですが、今、USB Host Shield 沼に片足ハマって危うい状態なので、やっぱり気になり再チャレンジしました。
最初壊れてるのかなぁと思ったりもしたんですが、まぁそう簡単に壊れるようなもんじゃないし・・・前、試した時なんだけど、薄っすらと自分の使い方に問題あるんじゃないかって感じはしてたんですよね。
そういこともあって、気にはなってました。
で、この GAOHOU USB Host Shield なんですが。
これは中華製で、同じ中華あたりのショップで、@400 程度で販売されてます。
スイッチサイエンスの在庫限りと比べると 1/10 と、とってもお手頃です。
Amazon の転売屋だと 1,000円 以上で、ショップによっては発送が中華からだったりするので、結局は時間もお金もかかるという2重苦なので、ホント注意してくださいね。
まず、基本スタイルでチェックです。
Arduino Uno と ブレッドボード + USB Host Shield mini 、そして、このスケッチでテストです。
どうして前回上手くいかなかったのか・・・
ジャンプワイヤの接触でも悪かったんでしょうか。
こういう作業、焦りは禁物ですね。
テストも上手くいったので、バニラシールドを使ってちゃんと作ることにしました。
深夜2時までやってた・・・これ、半分意地ですね。Hi
USB Host Shield mini と Reset ボタンのタクト SW 1個だけの構成です。
完成です。
すべて、表面の配線にしました。
I/O 食いで値段も 4,000円と高い、USBHostShield-Rev2 より、絶対こっちの方が良いはず。
I/O は D9、D10 の2本だけなので、CW Keyer 基板と干渉することもなく、なんら影響は与えません。
それになにより、安く仕上がります。
基板、3段スタックです。
スタック(ゲタ)に使うピンソケットは、足長のピンを半分に切断するとちょうどイイ感じになります。
もちろん、LCD の表示も問題なしです。
最後に、USB キーボードでわたしのコールサイン「JH1LHV」を送出してみました。
ふ~う。
なんかホッとしました。
USB キーボード全盛時代なのに使えないっていうのは、やっぱり引っかってたので。
これで、やっと肩の荷が下りました。Hi
パソコン繋がないで単独でキーボードを使かって CW を送出する。
まぁ、こういうオペレーションする人って、そういないとは思ってるんだけど。
やっぱり、パソコン繋いで WinKey でやりますよね。
■ ■
こうして Arduino CW Keyer ネタをあれこれ6年近く続けてきましたが、いつまでも Arduino Uno の互換にこだわる必要なんてないんじゃないかって、最近強く思ってます。
6年前のはじめた頃。
Arduino Uno 互換で作っておけば、今後出てくるであろう様々な Uno シールドがそのまま使えるんじゃないかって、そう思って Uno 互換にこだわってきたんですが。。。
時代の流れとともに、マイコンの性能も上がって、形状だって変化してるし。
この CW Keyer も、mega2560 pro mini の機能をフルに使った新たなものに変化する時じゃないかって。
今、ホント、強くそう感じてます。
mega2560 pro mini だけ考えたら、メモリボタンや接続できる送信機も、I/O が許す限り増やすことができますからね。
両面基板1枚に、今日の USB Host Shield mini も最初から配置させて。
あとケーシングも考慮して、イヤホンジャックや LCD の I2C など、端子は全部外に出せるようにコネクタも同時に配置するとか・・・
夢、あるなぁ。
ということで、6年近く続けてきた、この Arduino CW Keyer ですが・・・
まだまだ、続きますよ。
(ミニ告知)
で、この CW Keyer ですが、作ってみたいという方はいらっしゃいますかねぇ。
今、2種の基板が9セットあります。
ハム(金銭上の利益のためではなく、無線技術に対する個人的な興味により・・・)ですから。
タダでもいいかなと思ったりもしたんですが、まぁ実費分だけでも頂いた方が、お互いにとって最良じゃないかと思ってみたり。
趣味の世界で金銭が絡むって・・・ん~。あまり好まないんですよね。。。
製造費用は、2種10枚(計20枚)で送料j込みで、約3,000円でした。
なので、1セット(2枚)当たり、300円 になります。
送料込みで、500 円でどうでしょうか。(余剰分は遠慮なく頂戴させていただきます。)
で、郵送でやり取りするのも、それこそ手間なので、500円 の送金については、PayPal か PayPay で送金できる人に限定させていただきたいと思います。
あっ、あと必要なパーツは自分で集められる人ね。
以上、ミニ告知でした。
更に追加で10セット発注することにします。(5/5 )