デイリーレポート一覧

ArduinoUnoでHID

 Arduino UNOでUSB-UART変換をしてるサブチップであるATmega8U2(UNO rev3はATmega16U2)。こいつを書き換えてHIDデバイスとして振る舞わせる作戦。先人が居るのでATmega8U2のファームはある。これを使ってキーボードキーコード変換を試してみます。
 LeonardoだとUSBのシリアルデバイスとしてのクラスタイプも通知してしまうので面倒かと、杞憂かな?

 未来形なのは、明日は休日出勤の振り替えでお休みにしましたから。明日のプロトタイピングで足りないパーツが有っても、速攻発注しておけば次の日曜日の休みには間に合いますから(米digikeyに発注しても間に合うかも)。鉛筆問題は結構死活問題なので進ませます。

 で、Arduino UNOのATMega8U2をHID対応に書き換え。この辺り、DFUモードにするというWeb記事が多いですが、UNOのR2以降はサブチップのISPピンが基板にありますのでそのままISPで焼けました。メインのATmega328PにもISP経由ででテストプログラムを書き込みして、アウト側の部分はテスト完了。意外とすんなり。今夜はここまで。

 あとは明日USBホスト側からもらったキーコードを変換かませるようにATmega328Pのプログラムを書き換えて、テストです。USBホストがシールドなので、デバッグしつつのプログラム再投入の為のISPのケーブル接続が面倒ですね。あと、入力側と出力側は別PCに繋がないとアカンね。シリアルコンソールとか使っているとキーボードで売ったものが、同じアプリにHID出力として打ち込まれてわけわからなくなる。


携帯電話のバッテリー購入

20130401_01

 客先にずっと行っていたりすると充電も出来ず困ったり、また動画を撮ったりすると激しく消耗する稼働8ヶ月の純正バッテリーBA900。純正品は超お高いので純正品の2倍以上で厚みも2倍のQCELLの奴をゲット。
 買い換えるのはせめてAndroid4.2の端末でないとなぁ。国内キャリアバージョンだと余計な消せないプレインストールソフトが入っているは、OSのバージョンアップは遅いかそもそもしない状態で困り果ててます。かと言って、国内キャリア版でないとfelicaの対応が微妙だしなぁ、まだ。

 バッテリー的にはなーんか昔HTCのWindowsMobile機であるTouchDiamondでやってたのと似たような状況です。ま、厚みが増えて下の方に重心が映るので、縦に持ってると意外と安定します。
 USB接続のバッテリーもいくつか持ってますが、やっぱ単体での容量アップのほうが持ち運び上は便利。買い換えたら使えないですけどね。

 電池の持ちは今後の実稼働にて判断です。持ちが良ければ昨年末にアウトレットで買ったEモバイルのwifiルータを持ち歩かなくて済むかも。


さくら ☆になる

 先週くらいから体調を落としていた、金魚の桜東錦のさくらちゃん。一昨日夜から治療水槽にいれたりしていたのだが、環境がかわってかえって状態が良くなくなってしまった。
 今朝起きてみたら、もう動きませんでした。残念だ、


キーボード配列変換機テスト

20130330_01

 手持ちのデバイスでテスト。Sparkfunの新しい方のUSB HOSTシールドとArduino microにて。
なんかうまく動かない。
 Arduino microをやめて秋月のArduino互換機で試してもおかしい。キーボードを変えてみたら文字コードを受信するようになった。それまでは場所が狭いからテンキーレスのUSキーで試していたのだった。
 でも、Arduino microに戻すとうんともすんとも。なんでだ?

20130330_02
 今朝方緊急発注しておいたArduino Leonardoと、白い基板の本家と同じ回路であろうUSB HOSTシールドが届いた。SparkfunのUSB HOSTシールドは電源周りとか微妙なのです。で、届いたこいつらで試したらUSキーボードのキーコードをサクサク受信。同じように会社から日本語キーボードのノートPCを貸与されて困っていた人の記事のコードもサクッと動いた。一安心。

 あとは、自分用のカスタマイズ。自分がいじれるPCではのどかをインストールしてCAPSロックをIMEのトグルに、SHIFT+CAPSLOCKをCAPSLOCKにしているのでその対応をすればOK。しかしうちにはキーコードを検証する日本語キーボードはツレのPCにしかないのだった。
 完成まではもう少し。で、ツレから日本語キーボードを借りて、キーコードを調べてとかして、なんとか自分の使えるようなものができたっぽい。

 明日は早朝か日曜なのに仕事です。っかなんでこんなことしないといかんのかなぁ。しっかりしてくださいよ>親会社。手に馴染んだ万年筆を使いたいけど、会社が文具量販店のボールペンの配給だけでなく使用を強要するというような感じなのですかね。
 うまく行ったら、基板起こして小型化して頒布とかするかも。ってか同じようなことはMakeTokyoMeeting2012の時にやったらしい方が要るんだよね。その時は我が身にこんな事が振りかかるとは思ってなかったのでスルーしてたのに。今だったら速攻で頒布受けてる。

 まぁ、英語キーボードを使おうなんて、プログラムを書かない、最初から日本語キーボードしか使ったことが無い人ならまったく気にもならないことですから。海外旅行して気づくくらいかな。



sanguinoマスタコントローラ化の下準備

20130328_01

 家のいろんなデバイスのデータを集中的に取得してネットにアップロードする自作デバイスを「マスターコントローラ」と呼んでいます。現状、mbedで動かしているのですが、mbedも高いので他のマイコンにしたいかなとか思って。

 sanguinoでのwiz820io動作が見通しがついたので、他にGLCDやXBeeを配置したプロトタイプをブレッドボードでやってみます。今夜は配置しただけです。GLCDはむかーし買ってあったTG12864B-02WWBVを今回初めて使います。センサー類のデータを何処かに(i2cのEEPROMとか?書き換え回数的にEEPROMは無理だなぁ、SPIなSRAMか。)保存しておいて、時系列グラフ表示するとか考えてます。当然各センサの現在値も表示させます。ATmega644(SRAM 4Kbyte)でやるつもりなのだけど、やっぱATmega1284P(SRAM 16Kbyte)かなぁ。

 ブレッドボード上のGLCDの置き方がだいぶもったいない置き方ですが、まぁこれでも想定の回路は作れますので。はみ出してると引っ掛けてピン曲げたりとかもありますから。

 wiz820ioは0x2000バイト以上の受信をするとハングするバグが有るようですが、その前にソケットをcloseすれば良いとか。TCP/IPに関してはこのガジェットはクライアントなので、都度開け閉めするから大丈夫ですかね。

 オプショナル開発として、今XBeeで無線経由でデータを取得しているガイガーカウンタとエーハイムフィルターは有線接続に切り替えるかも。インターフェイスはi2cかな。wiz820ioとは当時に使わないだろうからSPIでも良いけど、SSが必要になるから躊躇している。