2013年6月22日土曜日

Blackberry Trackball

ブラックベリーのトラックボール ブレークアウトボードを買ってみました

ちょっと興味があって確保しただけで何かに使う予定はないですが
とりあえずmbedで動作確認をしたので報告

かなり暗い画像ですが、これ以上明るくするとトラックボールのバックライトの色合いがわからなくなってしまいます

このトラックボールはホールセンサを使用して回転を検出するタイプで
チャタリング処理が必要ありません(クリックボタンはタクトスイッチなのでチャタリング処理必須)
しかも回転方向毎で計4出力があるので
変化したピンの方向にインクリメントするだけなのでかなり楽です
今回はTickerを使いましたが、ピン変化割り込み等の方が楽だと思います
変化割り込みの場合は検出は立上がりと立下りの両エッジを検出するほうが無難です

そしてこのトラックボールにはLEDが内蔵されており、
単純な3色フルカラーではなく、Whiteを含んだ計4色となります
上の画像の状態はRGBWそれぞれ100%です
かなり赤っぽい感じになります
クールホワイトを表示したい場合はRGBWでFF,FF,00,FFくらいがちょうどいいくらいです
白だけを点灯させた場合は微妙に黄色っぽい白となります(電球色ではないです)
内蔵LEDはカソードコモンになっているので点灯させる電圧には注意が必要です
一応180Ωの抵抗がそれぞれのLEDに接続されているのでマイコンに直結できますが
3.3V駆動ではかなり暗いです
完全な暗闇で自分の居場所を誇示するには十分ですが
動作状態を示す用途に使用する場合は明るい環境での視認性が悪くなると思います
わざわざ5Vを引っ張ってトランジスタ等でドライブというのも面倒なので
このトラックボールのバックライトを使う場合は5V動作のマイコンを使うといいかもしれません
Arduinoとか そっちの方を


内部処理的には面倒なことはしていないのでソースコードは載せませんが
トラックボールの検出とLEDのPWMをひとつのタイマ割り込みでやろうとすると面倒になります
トラックボール自体の割り込みは数十mSec程度で十分ですが、LEDはPWM分解能に合わせて十分に速い速度で制御する必要があるからです

それとSparkfunの例によって取り付け穴は横方向にハーフピッチずれています
なのでコネクタとネジ穴の両持ちをする場合はハーフピッチのユニ基盤か、自分で基板を作る必要があります
ブレークアウトボードのブレークアウトボードとかいうワケわからないことになりそう。。

コネクタは電源含め11本出ているので、コネクタをつけるのは現実的ではないかもしれません
ピンヘッダを使うか、さもなくばフラットケーブルを直接ハンダ付けというのがいいでしょう
ケースを使わずに直接基板に固定する場合はソケット等を使わずにピンヘッダの両端にハンダ付けするというのもひとつの方法です
ただしネジ側を固定しないとクリックはできません

今回は2個買いましたが、双方の基盤でクリックの感触が異なります
カチッと押した感じがするものと、押したかどうかわからないものです
クリックは微妙に検出しづらい時があるので、あまり多用しないほうがいいかもしれません

値の変化等に使う場合はまっすぐ上に動作させてる気でも実際には横方向にも入力されていたりするので スイッチ入力の代わりにカーソルを移動したり値を変化させたりという用途には向かないですが
GUI上でマウスポインタを移動するような、ある程度遊び幅のある用途に使うことが望ましいでしょう

3 件のコメント:

  1. 突然のコメント申し訳ありません。
    私もブラックベリーのトラックボールを購入し、動かしてみようと色々と調べてやってみたのですが、動かすことはできませんでした。どうすればいいのかネットを見ていたら、このページにたどり着きました。
    もし、可能であればコードを教えて頂きたくコメントに記入しました。
    お願いできる立場ではないのですが、どうしていいかわからずワラをもつかむ思いで記入しました。
    乱筆乱文で申し訳ありません。
    何卒、ご教授お願いします。

    返信削除
  2. /* 返信したつもりでいたら、返信していませんでした 申し訳ないです */

    新しくエントリを作りました
    http://hima-tubusi.blogspot.jp/2014/12/mbed_27.html
    あんまり良いコードじゃないですが、参考程度にはなるかもしれません

    基本的には出力端子5本を一定間隔でサンプリングしてxor ピンに応じてカウンタを加算、減算 という感じです
    タイマ割り込みで読むのではなく、ピン変化割り込みを使うのであれば直接カウンタを加算、減算できます
    何を作りたいかによって選ぶといいでしょう(上記URLは前者のタイマで監視です)

    返信削除
  3. ご回答ありがとうございます。
    参考資料等もみつけられず困っていましたので、本当にありがたいです。
    回答のためにお手間をとらせて申し訳ありませんでした。

    現在、私はPIC18Fを使って動かそうとやっています。ご教授いただいたコードを参考にやってみます。動かすことが出来るかは、まだわかりませんが、やってみます。

    ご教授いただき本当にありがとうございました。
    本当に感謝します。ありがとうございます。

    返信削除