MobileHackerz
HOME > ウェアラブル奮闘日記:入力装置関係Pickup


2004/01/17

Bluetooth 2月も中旬にならないと体が空きそうにないなぁ…
と、とりあえず情報だけ上げておきます。写真のMSIマザーボード用のBluetoothモジュール(M/B用の外付アンテナつきモジュール+USB Bluetoothドングルのセット)が俺コンハウスで1380円。


Bluetooth まだ全然使ってないですが、M/B用のモジュールのほうは、ブランケットを取っ払うだけでなんかちょーど良いコネクタ付・外部アンテナ付のドータボードに…。
とりあえず部品取りにひとつゲット。あとは結線調べないとなぁ…。





2003/08/11

コンソール画面 昨日に引き続きBluetoothプロトコルスタック書き。メイン処理タスクとHCI受信タスクを分けて、SCIの送受信はきちんと送受信ともに割り込みで。さらにL2CAPも別タスクに…と、かなり「ちゃんとした」ツクリで書き始めたのはいいのですが…。

一応現在リセット→ボーレート変更(7.37MHzでは57600bpsはかなりつらいのでEricsson独自コマンドで19200bpsへ)→初期化、でInquiryに反応するところまでは確認しました。他の機器からのコネクション要求も届きますし、コネクションの確立もできます。(L2CAPが未実装なのでこの先へは行きませんが。)
が、タスクをわけたりバッファをきちんと取ったりタスク間通信をちゃんとやったりしたため、(わかっちゃいたが)この段階で早くもRAMの使用量が4KBに届こうかという勢いです(笑)
今使っているのはIrGEARなH8S/2134ボードなので、きちんとバスを設定してやれば外部SRAMも使えるためまだまだ余裕はあります。そう、この余裕があるからこそH8S/2134ボードを選択したのだし、こういう「ちゃんとした」コーディングをした…のです。

が、この余裕を使いはじめるともうH8/3664などには戻れません

いやー、わかっちゃいるんですが…。どうも、今の状態でしばらくまわしているといきなりCPUボードがリブートするという現象も散見されて(これがOSの移植ミスによるものか、いろいろ基板をいじくりまわした末のハードウェア障害なのかは不明)、ちょっとこのまま突っ走るのには微妙な不安感があるのも確かです。
迷ってます、迷ってます…。このまま俺スタックをμiTRONできっちり書くか、H8/3664でお手軽スタック(いしかわきょーすけさんのbluemeとか)に逃げて適当に機械をでっち上げるか、どっちが良いのか……

まぁ、長くいじって遊ぶのなら断然「俺スタック」なのですが…。他にもやりたいことたくさんあるしなあ。





2003/08/10

今日はちょこっとだけ時間があったので、IrGEAR for KEITAI基板(H8S/2134)+Bluetoothモジュールのコードをちょっと書きました。
μiTRON(HOS)ベースに、リングバッファのシリアル送受信関数、HCI受信タスクとHCI送信関数をへろっと書いたところで終了。
先は長い…




2003/07/22

せっかくの大容量高性能マイコン(ROM128KB,RAM内蔵4KB+外部SRAM128KB)なので、ちゃんと使ってあげようとHOS(μiTRON4.0仕様OS)をIrGEAR for KEITAI基板(H8S/2134)へ移植しました。(まぁ、移植したといっても書き換えた箇所はごくわずかですが。)
とりあえずタスクスケジューラは普通に動いてます。あとはこの上にBluetoothのプロトコルスタックを書いていけばいいのかな、と。

移植の詳細と続きの作業を細かく書きたいところですが、ちと頭痛がするので今日はここまで…。



2003/07/21

さんれんきゅー、ということで温泉行ったり雑事を片付けたりごろごろ寝てたりしてました。
というかお金がないのでしばらくは手持ちの部品の範囲内でできる遊びをやろーか作戦。今回のテキストはずばりできる周波数ホッピング(via いしかわきょーすけのほーむぺーじ)。

OMRON AirBlue一式 以前遊ぼうと入手しておきながら放置していたH"(PHS)用のBluetoothカードを引っ張り出します。
"AirBlue"もしくは"LinkBlue"などの名前で市販されていたもので、しばらく前に在庫処分価格であちこちで叩き売られていた時に入手しました。現在ではY!オークションでだいたい1000円〜2000円くらいで取引されているようです。


分解開始(1) 分解開始(2) 分解開始(3) これをひたすらこのページを参考にしつつべきべきと分解していきます。金色に輝くBluetoothモジュールを発見したら、カッターの刃先や精密ドライバーなどでモジュールと基板の間の隙間をこじってやることで引き剥がします。
基板の再利用を考えなければ(もちろんカケラも考えていないわけですが)とても簡単に部品取りできます。というか、ばきばき壊していくのはなんだか楽しいです。


アンテナ(1) アンテナ(2) ついでにこの白い物体(アンテナ)も忘れずに取り外しておきます。


部品取り完了 というわけで、Bluetooth関連部品を一通りゲット。これが1000円程度で手に入るなら万々歳でしょう。


IrGEAR for KEITAI 次に机の奥から引っ張り出してきたのが「IrGEAR for KEITAI」(またはITAX-IrDA)です。
当初Bluetoothを駆動するマイコンはH8/3664あたりを想定していました。が、H8/3664はシリアルポートが1つしかないので、ホストから書き込み・デバッグしながらBluetoothを使う(Bluetoothモジュールはシリアル線で制御します)のはちょっと厳しいことに気がつきました。
では他に小さい基板でいいCPUは……あ、そうだ!…という感じで、今回は手持ちのIrGEAR for KEITAIをマイコンモジュールとして使うことにしました。
正直えらい大容量なマイコンだったり、外部SRAMまで載っていたりと、遊ぶ内容と比較してすごいオーバースペックなCPUボードな気もしますが、現在の販売価格は1個1980円くらいですし、他に特に使うアテもないのでまぁ今回は贅沢にもこれでいくことにしましょう。


IrDAモジュール IrDAモジュール撤去 というわけで早速バラしはじめます。携帯電話接続部に出ているシリアルポート(SCI1,フラッシュメモリ書き込み時にも使用)の他に、IrDAの部分にSCI2が出ているので、今回Bluetoothモジュールはここにつなぐことにします。IrDAモジュールを手っ取り早く撤去。(そしてこの瞬間「IrGEAR」の「IrGEAR」たるいわれが消滅…)


7404? 7404?撤去 さらに、マイコンのSCI2から、どうもNOT(かな?)を通ってIrDAモジュールに行っているようなんで、面倒なんでこれも撤去しちゃいます。で、反転するはずだった信号を直結。
無謀にもいきなりICを撤去してしまったことでこのICを使っていた他の回路にも影響しているような気がしますが、とりあえず動いているので気にしないことにします。(真似しないように(笑))


Bluetoothモジュール配線 さて、これでもともとIrDAモジュールがあったところにSCI2のTxDとRxDがそろいました。早速ひっぺがしたBluetoothモジュール&アンテナと配線します。(モジュールのデータシートはここ。主要な信号線のピン配置は下にまとめました。)
配線しながら、うわー細かい配線面倒だなぁ、これ、IrGEARにさらに入出力を加えようとしたら、はたして配線引き出せるようなピン残ってるんだろうかとか疑問に思ってしまったことは一旦忘れることにします。忘れるったら忘れます。


■ IrGEAR for KEITAIのIrDAモジュール側のピン対応

   ━ 8  GND
( ─ 7
   ─ 6  Vcc
 | ━ 5  GND
 | ─ 4  CPU/pin23 P62
   ─ 3  CPU/pin40 RxD2
( ─ 2  CPU/pin39 TxD2
   ━ 1  Vcc

■ Bluetoothモジュールのピン配置(下から見た図)
------------------------------------
     TR        CBA
6    ○○        ○○○
5    ○○        ○○○
4    ○○        ○○○
3    ○○        ○○○
2    ○○        ○○○
1    ○○        ○○○
------------------------------------
VCC     C6  ┐マイコン側Vccに接続
VCC_IO  C4  │
ON      C2  ┘
ANT     T2    アンテナ(白い物体)の片側に接続
TxD     B5    マイコン側RxDに接続(Bluetoothモジュール→H8)
RxD     A5    マイコン側TxDに接続(Bluetoothモジュール←H8)
GND     B3,R1,R2,T1,T3    マイコン側GND、アンテナのもう片側に接続

RTS     A6  ┐本当はつなぎたいけど面倒なので放置(何も繋がない=HI)    
CTS     B6  │
RESET#  R3  ┘

PCと接続 ここまでできたところで、PCと接続してテスト用ソース(SCI1の入力をSCI2に、SCI2の入力をSCI1に57600bpsでそれぞれ出力するだけのもの)を書き込みます。
書き込んだところで試しにデータを送ってみると…


テスト結果
む、ちゃんとBluetoothモジュールも動いているようです。(手動でリセットコマンドを送信したら、ちゃんとレスポンスが返ってきています)
今日はここまで確認したところで終了〜。



2003/07/13

今日はちょこっとだけ小技な環境改善を図ってみました。

レンズ固定 ちょっと抜けやすかった「ディプレイユニット」と「レンズ」の間に細く切った強力両面テープを挟み込みました。クッション性のあるテープで、かつ強力なものなので これでとりあえず簡単には抜けなくなるでしょう。


ベルトポーチ 次にEyetopの外部ユニット+Jukebox Multimedia(などのデバイス)という組み合わせがぴったり入るベルトポーチを購入。近所のお店で980円。
なんだかんだとやっぱりデバイスが2個になると邪魔ですねぇ…。


スポーツバンド そして眼鏡用のスポーツバンドを購入。ドンキホーテで680円。(高い…)
眼鏡の後ろにつけるベルトで、スポーツなど激しく動くようなことをしている時に、眼鏡が落ちるのを防ぐためのものです。やっぱり結構Eyetopは重いので、ちょっとしたしぐさでズレてしまうことがあります。このバンドがあればそれも少なくなるだろうと期待してみました。(まだ実地テストはしていません)


さて、ウェアラブル・ビデオという使用方法ではこれでほぼ環境が整いました。何日か運用してみましたが、かなり感触としては良好です。
今までJukebox Multimediaではちょっと躊躇したような動画(アニメとか…いや、まぁ、気にしなければいいといえばいいんですが)も、Eyetop+Jukebox Multimediaという組み合わせでは 周囲を気にせず鑑賞することができます。…あー、いや、鑑賞している姿そのものが怪しい、というツッコミは忘れてください…。

というわけで(?)いよいよ、さらに一歩進んで「ウェアラブル・ビデオ」から「ウェアラブル・コンピューティング」へ踏み出すことにします。

「ウェアラブル・コンピューティング」。こんなプロジェクトとかこんな人とか、日本だとこんな人とかが有名です。
要は彼らと同じよーなことをしたいわけですが…さて、どこから手をつけましょう?
ただ「コンピュータを着ている」だけではコンピューティングとはいえません。実際に歩きながら、移動しながら、いつでもどこでもコンピュータが自在に使えて、はじめてウェアラブルコンピューティングを実現したと言えるのではないでしょうか。
そんな中先述の人たち(ウェアラブル・コンピューティングを研究している方々)は、Twiddlerなどといった片手キーボードや、腕に装着する小型キーボードなどを装着しているわけですが…

これらのデバイスは、正直言って、高い!んです。キーボードだけで2〜3万はあたりまえ。

いや、キーボードに2万出すというメンタリティがわからない、というわけではありません。私も初代Happy Hacking Keyboardを持ってますし、一方こんな(普通の人から見たらなんでこんなもんに8万も9万も出すのか理解できないような)Eyetopなんてシロモノを 買ったりしています。
わからない、というわけではないんですが…さすがに、お金がありません。(笑)

もともとEyetopはNTSC入力しかない、320x240画素のディスプレイです。これに一般的なコンピュータをぶら下げて可搬運用しようと思うと…わりと洒落にならないくらい手間とお金がかかりそうです。
バッテリーで動作し、腰にぶら下げられる重量とサイズで、NTSC出力を持っているコンピュータ…(あるのか?)それに外付けで片手キーボード…そして、320x240で運用できるようなソフトウェアの開発…。などなど、その研究を目的としているなら面白いでしょうが、仕事しながら片手間で遊ぶには、ちょっと大変そうです。

そこで、3秒くらい悩んだ結果、格安でウェアラブルなインターフェースを持つコンピュータを接続することにしました。
このコンピュータは、いわゆるWindowsのような汎用OSが動作するものではありませんが、豊富なソフトウェア資産がある上に、それなりのコンピューティング能力もあり、バッテリー駆動もばっちりで、外付けオプションでNTSC出力も可能で、使用するユーザインタフェースがもともと非常に洗練されているため片手操作も充分可能な上にすごく安いのです。信じられないような話ですが、本当です。






というわけで早速ヤフオクなどで材料を物色・購入。

液晶が壊れたゲームボーイアドバンス
ゲームボーイアドバンス(液晶が壊れたもの) 購入価格:810円

片手用ジョイスティック
ファミコン用片手ジョイスティック(なんと新品未開封) 購入価格:80円

テレビdeアドバンス
テレビdeアドバンス 購入価格:5800円(高…)

そう、ゲームボーイアドバンスだってコンピュータです。しかも、誰でも簡単に扱えるようインターフェースは非常に練りこまれた簡単なものになっています。…別に茶化すつもりはなく、大真面目に「ウェアラブル環境ではせいぜい十字キーのコントローラか、携帯電話のキーパッドくらいが快適に操作できる限界だろう」という気はしています。そこで、とりあえずゲームボーイをウェアラブル化してみることにしました。


割れた液晶の除去 まずちょっと見苦しいのでゲームボーイ本体から割れた液晶を除去しました。分解して、液晶を取り外すだけです。本体内にちょっと隙間ができましたが、この隙間、有効活用できるかなぁ…
ついでにテレビdeアドバンスの裏蓋装着もやっておきます。


テレビdeアドバンス側の改造 次に、テレビdeアドバンス側を改造です。
不要なオーディオケーブル(ゲームボーイアドバンス本体のヘッドホン端子に差し込み、テレビのRCAピンジャックに出力するためのヘッドホンケーブルがついていますが、今回はヘッドホンで運用するので不要です)をばっさり根元から切り取り、取り去ります。
また、テレビ側のケーブルも一旦根元から切り離し、写真のようにビデオケーブルだけ一本つけなおしました。(この部分、コネクタ状になっているのでコネクタ差し替えができるかと思ったのですが、しっかり半田付けされているようでした。思い切りよくニッパで切ってしまいましょう。もちろん保証は効かなくなりますが。)


改造済テレビdeアドバンス 改造が終わった状態のテレビdeアドバンスです。必要最小限のケーブルが出ている感じですね。


改造済テレビdeアドバンス+本体 そしてゲームボーイ本体、Eyetopの外部モジュールと組み合わせるとこんな感じになります。


さて、とりあえず今日はここまで。あとはテレビdeアドバンスの電源をバッテリー運用可能にする改造と、ゲームボーイ本体のコントローラをどうにかする(片手コントローラで遊べるようにしたい…)改造を一応予定しています。


液晶が壊れたゲームボーイアドバンス
えへ♪












管理人へのメールについてはこちら
MobileHackerz - It is not cracking but happy hacking!