マイコン工作実験日記

Microcontroller を用いての工作、実験記録

キーパッドへの機能割り当て

2013-03-03 18:19:57 | Weblog
これまでチビチビとBlueHAND-miniのソフトウェアの作成を進めてきましたが、だいたいの仕様が固まってきたので、何回か関連する記事を書いておこうと思います。まずは、キーパッドの使い方について。



BlueHAND-miniで使用しているキーパッドは3X4のマトリックス構成です。電話機と同じキー配列ではありますが、携帯電話機と比べるとキーの数が足りません。通常の携帯電話機にはオンフック/オフフックキー、メニュー操作用の十字キーと決定キーといったキーが備わっているので、これらのキーを使って発着呼や機能選択操作を行うことができます。

電子工作用のキーパッドとしては上の写真のような4x4のマトリックスのものもしばしば見受けますが、電話機のイメージからは外れた感じがします。右側よりも上側にキーが増えて、オンフック/オフフックのキーが欲しいところです。

大きさの都合もあり3x4のキーパッドを選択しているので、12個のキーだけで操作することを考えねばなりません。オンフック/オフフック用にタクトスイッチを追加するという方法も考えられますが、キーの高さが変わってしまうのも嫌だったので12個のキーだけでやりくりする操作方法を考えることにしました。
  • まずは、オンフック/オフフック操作のためのフックスイッチ機能が必要です。これには*キーを割り当てることにしました。*キーを押す毎にLCDの電話機マークが点灯/消灯し、点灯時にオフフック状態を示します。上記の写真はオフフックしたところを示しています。
  • オフフック状態ではキーを押すことでダイアル番号入力をすることができます。ただし、*キーは1桁消去キーとして機能することにしました。1桁も入力が無い状態で*キーが押されれば、オンフックとなります。この結果、ダイアル番号には*は使えないことになります。
  • 通話状態でも*キーはフックスイッチとして機能しますので、*を押すことで呼を切断します。
  • HFP接続が無い場合には、*キーを長押しすることでペアリングの受付を開始し、他のBluetoothでバイスから発見可能とします。*キーを押すことでペアリング受付を中断することができます。
  • 着信中は#キーを除く任意のキーを押すことで応答することとしました。#キーは着信応答拒否を指示します。

以上はHFP接続してハンドセットとして使う場合のキー割り当てですが、WCA-009を使えばA2DP/AVRCPでの接続と制御も可能ですので、それらに対応するためのキー割り当ても必要となります。そこでオンフック状態では、次のようなキー操作を可能としました。
  • 2ならびに8のキーを押すことで、A2DPでの音楽再生時の音量を増減させる。HFPで通話中も同じように音量調節可能。
  • 0を押すことで再生/停止操作
  • 4と6を押すことで次の曲/始まりに戻る操作。
  • 7と9を押すことで巻き戻し/早送り操作。

これで、キーパッドだけでだいたいの操作ができるようになりました。しかし、このままでは通話中のキーパッドも音量調節や呼の切断のための機能を割り当てられており、キーに対応するDTMFを送出することができません。そこで、メインボード上にあるタクトスイッチであるMODEボタンの助けを借りることにしました。通話中にMODEボタンを押すと、キーパッドモードに切り替わることとし、キーパッドモードではDTMFトーンを生成することにしています。操作性は悪いですが、使用頻度は高くないので、これで妥協することにします。

どこかで緑色/赤色の電話機マークがついたオフフック/オンフックボタンがついているキーパッド入手できないでしょうかねぇ。Nokia携帯の修理用パーツとかを流用するしかないのかなぁ?