2013年04月一覧

亀戸・根津・東京駅・お台場

 ツレと都心めぐり。メインは、はとバスのオープントップバスの「極まるTOKYOの夜景」。面白かった。

 ツレがはとバスの夜のツアーを予約したので都心へ。

 まずは亀戸の天神さまの藤まつり。人は多いけど、藤はもう終わりでした。というか、着いたのが11:30過ぎだったので境内に入る前に八べえでうな重でお昼。
そして、お参りした後、境内の玉子焼きやさんで玉子焼き大をゲット。その後も船橋屋さんでくず餅をゲット。

 都バスにて根津へ移動。前回は臨時のバスも出てたのだけど、今回は無しでギューギューづめ。中途半端な体勢で長い間いたので、翌日筋肉痛です。猪瀬の所為だ。

 根津は根津神社のツツジ。なーんか舞殿でフラダンスとかしてましたが、見ないふり。さくっと裏に抜けて、団子坂をのぼって安田邸。残念ながら休館日でした。まわりの高級豪邸に感嘆しつつ須藤公園を通って千駄木駅。

 地下鉄で二重橋駅まで移動。そして改装された東京駅。残念なことにビルの影がうつって微妙な状態。しばし写真タイムのあと、東京ステーションホテルのラウンジで休憩。ってだいぶ待たされましたが。ケーキセットで1人2,200円ですよ。コーヒーはお代わり出来ましたけどね・・・。

 バスは18:30出発なので先に晩御飯ってことで、ツレが発掘したお店へ。八重洲側南の南インド料理のダバインディア。ここが超当たりでした羊肉三昧で食べて来ました。美味かった。

 そして、丸の内側南の「はとバス」のりばへ。本日、天井なしバスの夜景組は3号車まで出てました。皇居、国会議事堂を通って六本木をまわって、東京タワー下、そしてレインボーブリッジを通ってお台場。観覧車にのって下道で東京駅へ戻るコース。
 日中は暖かかったというか暑かったのだけど、さすがに日も落ちて&天井なしのバスで首都高だもん冷えました。
 でも、面白かったです。

 ライトアップされた東京タワー
 

レインボーブリッジあたりの動画。 
 


Hapry nano版USBHIDキーコードコンバータ基板固定化

 Harpy nanoとATMEGA8U2 Breakoutの夢の?コラボレーション版HIDコンバータを実用版にするべく、ユニバーサル基板に固定しました。
まず、Harpy nanoに付いているピンソケットをはんだシュッ太郎を使って取り除いた。そして、ピンソケットの部分にピンヘッダを半田づけ。基板長辺側は全10ピン分、基板短辺側はGND,5Vのみ取り付け。

20130427_01

 で、秋月のC基板で配線。分厚い両面タイプを使いたかったけど、表側のランドとHarpy,8U2の裏側が接触すると嫌なので、片面基板を使用。
 機能選択用に2PのDIP SWを取り付け。ソフトウエアシリアルでHarpyのATmega328P側の動作確認できるように、USB-UART基板をつなげるように6ピンのピンソケット設置。配線は、ブレッドボード用のワイヤで、長くてあまり使わない緑、黄色、赤を使用。片側剥かなくても済むし、手頃だしw。

20130427_02

 ケースは秋月のP-00358のポリカケースを想定。基板固定用のネジ穴とUSB端子の部分のカットをすればOKかな。8U2の動作中LEDが結構目障りなのでシール貼るか、SMD抵抗を大きいのに取り替えるか。
 ソフト側は、2bitのDIP SWを載せたので、キーコードパススルーモードも搭載します。なーんの変換もしないモード。でもUSキーボード限定かな。JPのキーボードは変なコード出すからどうなるかは抑えてないのです。

 当然ながらこの記事はこの変換機を使って書いてます。US→US(CAPSLOCKをatl+~変換)のロジックですが。敢えて、日本語キーボードドライバいれて試すのもおつなもんかな。


SSD故障

 今週に入ってから、メインマシンのWindows8を使ってるとやたらと反応が悪くなる時があった。マウスカーソルは動くのだがWait状態のアニメーション。アプリだけでなくタスクバーも反応無し。eventvwrで確認しようとしてもこれまた上がってこない。という具合なのをだましだまし使っていたが。
 金曜の朝、ついにOSが起動しなくなった。ってかboot先が無いよと。このSSDはCrucial m4の128G
 夜、一旦起動できたのでUSBでHDDをつなげてパーティションコピーを開始して寝た。(昨日4/26のブログエントリーが無いのはこの為です。)

 早朝起きてきて、SSDとHDDを入れ替えて復旧はした。だが、SSDに慣れた身としてはHDDだとやっぱ遅い。ちなみにイベントログを見ると、OS無反応になってた時は「ディスク 0 の論理ブロック アドレス xxxxxxx で IO 操作が再試行されました。」(論理ブロックアドレスはその都度異なる)がたくさん出てました。
 で、遅いのはかなわんので、USB3でデータディスクとしてつないでいたintelのSSDに切り替えるべくパーティションコピー。その後、SSDをUSB接続のまま起動先デバイスを変えてみてもエラーになってしまう。SATAにつながってるHDDと入れ替えて無事動作。やはりSSDに慣れるとHDDきついなぁ、そしてSSDの故障は突然来て結構面倒なので常日頃から要観察だね。


Pinguino

 PICでUSB HOST関連を探していたらPinguinoが引っかかった。Arduinoライクな開発環境&ライブラリ。
とりあえずIDEをインストール。

20130425_01

 ペンギンの尻尾がUSBなんですけどw。USBサポートが売りなのかな?でも、pickit3があるのでICSP焼きでもよろしいんです。と言うかlibusb-win32を使うみたいで、AtmelStudioのUSBドライバとのバッティングが心配です。

 まずは、PIC32MXで仮のボードを作成しないとね。


今週はいろいろある

 朝会社についたら連れから電話が。出てみたら、こないだ新入りになった金魚のうち丹頂のほうが昇天とな。
昨日内部ろ過の水作を設置するのに底砂をいじったせいだろうか?一番泳ぎが上手かっただけにちょっと残念である。

 帰宅後。丹頂を埋葬。

 帰宅したらHarpy&8U2をちょっといじろうと思っていたのだけど。Harpyが見つからない。ここじゃないここでもないと探して諦めた頃に部品だなの手前側にあるのを発見。
 サクッとブレッドボードで配線。今回は8U2を5V駆動に戻して、8U2のUSBの5VでHarpyを駆動。さらにHarpyから8U2のシリアルはどうせ片方向なのでHarpyのTXを8U2のRXにつなぐだけ。逆方向はつなぎません。3.3V系のHarpyから5V系の8U2はロジックレベル的にはOK。Harpy側が3.3VのHIGHを出しても8U2のHigh相当は2.5V程度でしょうから。もっと低かったかも。
 コードの方はUNO&HOSTシールドの方と同じようにUS→JPNだけでなくUS→USの切り替えも入れました。というわけで、このブログエントリーはこいつで書いてます。

20130424_01

 もうすこしコードを整理したい。電源オン直後のモディファイヤがなんか微妙に初期化されてない気がする。ハード側はHarpyはピンソケットでなくてピンヘッダに付け替えて、ユニバーサル基板に固定して、クロージャーに納めればこれはこれで使えそう。電源は8U2のUSB5Vを使用している関係上Harpy5VのLDOの入りと出の両端に5Vをかけてる状態だけど問題ないかな?問題ありそうなら5V側のLDOを外しちゃいますが。


エーハイム 2074またまた水漏れ

 事は昨日です。帰宅して自分の机に座ろうとしたら、ペチョ。フラッシュバックしてすぐ分かりました。
また水漏れしてるよ2074。水槽台の扉を開けるとベチョベチョ。電源止めて、フィルターのなか開けて、それほど汚れていないウールフィルターを変えたりOリングのワセリンを強化して再セット。電源ON。
 水槽の水面のとこにテープを貼っておいて様子見。
 1時間後くらいに見たら水面が下がってる。また漏れてるよ。いろいろ見てみたら、モーターヘッドとろ材バケツの接合部ではなく、モーターヘッドの電源コネクタのあたりから漏れている。
 どうしようもないので、一旦在庫の水作Mに切り替え。

 本日ぐぐってみたら、2074系で同様な水漏れ事故が多々見つかった。モーターヘッドについてる呼び水機構の弁に問題ありとな。
さてここで問題発生です。帰宅して取ってあった製品箱をみたけど保証書が見つかりません。メールを検索すると2011/4/4にチャームから買っていることがわかったので一応まだ3年の保証期間内。まだ1年あるので、じっくり探してみるかなぁ。でも、取扱説明書の裏とかが保証書だったりすると捨てている可能性が高い。だってPDFの取説があるので実物なんて場所とるだけでいらんでしょ。
 昨晩緊急発注した水作フラワーも先ほど届いたので、しばらく外部ろ過でなく、内部ろ過で過ごそうかと思う。
 保証書が見つかって修理できたとしても、水漏れブザーの作成は必須だなぁ。

 そういうわけで昨日水槽台のあたりで座ったりしゃがんだり立ったりを繰り返していたので、内腿が筋肉痛です。運動しないとね。


Arduino UNO & USB HOST SHIELDのキーボードコンバータ運用テスト開始

20130421_03

 USキーボード対応も出来たので、Arduino UNO版もいれ変えました。シールドのdigital5ピンからGNDにジャンパ入れてUSモードです。
 で、問題がないか確かめるために自宅で運用を開始してみます。このブログエントリー自体も、すでにこの変換機を通してます。OS側の変換ドライバは止めてます。この無線キーボードはCAPS,NUMLOCKなどのLEDが無いので、UNOのソフトはLED対応はしてないバージョンです。今のところレスポンスなども特に問題は無さそうです。


Harpy nanoでUSB HID Keyboard変換テスト

 USB HOST SHIELD 2.0のライブラリを修正。最新ソースをgit hubから拾ってきて展開。#define DEBUGがあちこちで生き残ってるのでコメントアウト。 message.cppのUsbDEBUGlvlを0x80から0x00へ変更。あと、ADKも使うのでavrpins.hの#define BOARD_MEGA_ADKをアンコメント。
 これでコンパイルして、HEXをATmega2560に焼いてみたら、OK。昨晩小手先の対応をした不要なReportも流れてこない。
 同じソースをArduinoUNO用に焼いてみても期待通りの動作。

 安定動作しているようなので、以前買っただけで使っていなかった株式会社 鳥人間Harpy nanoを使ってみた。PCとつなげるHID device役はSparkfunのATmega8u2ブレイクアウトを使用。PICでHID deviceを作ったらそっちも試す予定。

20130421_01

Harpy nanoはロジック3.3V動作なのでHID device側の電源選択半田ブリッジを5Vから3.3Vに変更。肝心なときにハンダ吸い取り線が見つからず探しちゃったよ。あとHarpy nanoのMAX3421Eのリセットの接続が旧USB HOST SHIELDの設計なので、起動時にdigital7ピンをlow→highとやってソフトでリセット。

20130421_02

 Harpy側はシリアル書き込みが使えるので、ArduinoIDEからArduino Pro/Pro miniの3.3V Clock8MHzで書き込み。ATmega8u2はHEXをAVRISPmk2で書き込み。両者のtx rx gndを接続して、無事動作を確認。ATmega8u2が3.3VでClock16MHzなんだけど、まぁ動く。5Vに戻して、ATmega8U2のtxに分圧抵抗を入れるのかも。

 次はUS、JP両対応です。ってどこかのデジタル入力にプルアップ抵抗とGNDにつなぐスイッチをつけてチェックして、HighならJP,LowならUSで変換テーブルのポインタを切り替えるだけですけど。PC側が変わるときってUSBケーブルを差し替える状態なので、変換機の電源も入れ直しになるからプログラムの起動時にチェックすりゃええかな。毎度毎度チェックしても良いけど。

 忘れてた、CAPSロックのLED対応もしないと。CAPSLOCKを吐いていないのにLEDはトグルしてしまうのです。気にしなきゃいいのだけど。これってHID HOST側から制御できるはず。現に自宅のDriverでキー置き換えしてるPCだと、CAPSキーを押してもCAPSのコードを出さない限りはLEDに影響ない。キーボード内部でON/OFFしてるわけでなく、PC側からなんかもらってる筈。

 夜、ADKにてJIS/US切り替え実装完了。Harpyでも使えるDigital5ピンを使用。Harpyはピンソケットを外してピンヘッダに置き換えようかな。で、このJIS/US切り替えを固定スイッチでなく、キーボードのキーコンビネーションから切り替えられるようにしても良い。CTRL-SHIFT-ALT-CAPSLOCKとか開いているだろうか?


初心に戻って調査(USBキーボードコンバータAVR編)

20130420_02

 上記のような接続でテスト。PCの代わりにUSB HOST shieldをつなげて、飛んでくるデータをウォッチしてみた。本来の回路であるADKではATmega2560からHIDファームを焼きこんだATmega8U2との間をシリアルでウォッチ。
 ADK側のウォッチポイント1はすごく正しくデータが流れていた。

 が、PCの代わりにおいたウォッチポイント2では、キーを打っている間は正しいデータが受信されているものの、しばらくキー入力がないと妙なデータが流れ込んでいた。HIDのレポートのはずなのだがBinaryで50 6F 6C 6C 3A 46 46 0D 0A。
0D 0A がある時点で改行コードかってことはASCIIか?ってことでその前は「Poll:FF」。そもそもHID reportはASCIIコードじゃないし、1レポートは1キーだ(実際は同時押し6キーまではありですが)。図のATmeaga8U2以降でこのデータが追加されている。しかもこのデータの通信は不安定で、場合によってビットがずれたりしている。これをそのままPCに繋ぐとモディファイヤが絡むと非常に厄介な誤動作になる。(実際体験して、速攻でUSBケーブル抜きましたし。)
 とりあえず、おかしなHID Reportになっているから安定しなかったわけで。
 なぜ、時間をおいた時に上流から流れてきていないものが出力されて来ているのかを考えたい。ADK→ArduinoUNOのUSB部分の通信を、ドライバが復活したプロトコル・アナライザLAP-Cで見てみようと思う。あとUSB HOST Shieldのライブラリと読んでるとやたらとSerial.Printが入ってるのが気になる。ATmeaga8U2のHID化ファームは多分白だと思っている。

 なんとなくですが、USB付きのPICを使わなくても片付きそうな気がしてる。でも、USB HOST shieldだけに問題があった場合はハマるかな。

[ちょっと置いて]
 ADKのATmega2560からATmega8U2の間にシリアルを置いてみたら「Poll:FF」やら「Poll:1」をシリアルに流してるのが確認できた。ライブラリを修正すれば治りそうだ。

[さらにあと]
 確かにライブラリ内でデバッグ用にSerial決め打ちでデバッグ文字を出してる部分はあったけども。それだけでなく、純粋にUSBホストとして受け取っているレポートがあった。けど、よくわからん。しばらくキーボードをいじらないと出てくるので接続確認のポーリングなのかしらん。07 00 1dで始まるReport。それ以降の部分は適度に変わるのでなんとも。仮にこの文字列のReportは無視するようにしたら、とりあえず異常動作をすることがなくなっている。一部、CAPS LOCKのランプが逆になる事もあるが、その辺はキーコンビネーションのバリエーション対策で解決できそうだ。もしかしたらこれで行けたのかしらん?
 明日状況を明確にして日本語キーボードのマシンにつなげて安定化できたら、小さい回路で実現する方向を試します。あとは、スイッチでモードを切り替えられるようにして、クロージャーに入れて・・・と。やっと終わりが見えてきたかも。


PICでLチカ

20130420_01

 PICとPICKIT3が届きました。とりあえずLチカしてみました。無駄にLEDアレイを配置。PICのXCのライブラリを把握していないのでまずはこんなもんから。

 ちょっと思ったんですが、PIC18F4550あたりを使って、キーボードマトリックスのデータをHIDにして出してしまうのもありかもと。FILCOのフルキーボードの中に組み込む形で。スイッチつけて出力するReportをUSタイプとJPタイプ切り替え可能にしたりして。