主にandroidとかのメモ

Android+PICでBluetoothなスピードメーター作ってみた

androidの会の横浜支部のロボ部に触発されて。

昔PICの練習で作ったスピードメーターを作り直してみた。

当時は練習の定番16F84で、mikroC、秋月のPICライタという環境で、7セグ2桁を自力で表示してました。

今回、hrdakinoriさんのBluetoothスタック公開を受けて、Bluetoothなら色々遊べるぞー!まずは昔作ったものを作り直してみよー!という流れです。

PIC24FJ64GB002用のBluetooth stackのソースコード公開しました – hrdakinoriのいろいろ
http://d.hatena.ne.jp/hrdakinori/20110328

スタックにはPIC側でSPP受信はあったのですが、送信は無かったのでそこは作りました。
そこにタイマ張って、外部入力割り込みでパルスカウントする簡単な仕組み。

できたのがこんな感じ。

下半分です。PICSYS-24STICKという製品を使ってます。
この大きさにUSB-Bコネクタ、リセットスイッチ、入力スイッチ、チップLED*2がついてて、USB電源で動作するので勉強用の取っ掛かりには便利です。

左下がUSB-AコネクタにPC用のBluetoothドングル刺してます。

右上が車の車速パルス(黄色のワニ口)入力、車のGND(黒色のワニ口)。

(上の8PINのPIC(12F)は別で作った残骸なので関係ない)

車速パルスカウントして、BT(SPP)で送信します。

こちらが表示側。Acroで受信して速度表示します。(改造したBluetoothChatですw)

単純にBT(SPP)でカウンタ数値受け取って、時速(km/h)表示します。
(本当はOpenGLとかで表示懲りたかったけど時間的に無理ぽいので)

NoSignal表示ですが、ペアリングすると。。。

こんな感じで動作します。
(動画はぶれて綺麗に取れてないので控えます)

これだけなんですが、PIC24F買って、開発環境MPLABに変えて、ライタもPICkit3買って、部品も色々揃わず大変でした。

アキバ行ってUSB-Aコネクタ買って、次の日抵抗がないことに気がついて、2週間後にやっと暇見つけてアキバ行って、1本5円の抵抗買って・・・とか。
ソフトウェアに無いこの大変さは久々でした。。。

コメント (5)
  1. bun_bun より:

    似たようなことをやってみたいと思っています。

    >スタックにはPIC側でSPP受信はあったのですが、送信は無かったのでそこは作りました。

    この部分を、教えてもらえませんか?
    詳細が不可であれば、SPP送信がサンプルとして動く程度のソースでもいいです。
    宜しくお願いします。

    1. ta9mar より:

      昔のソースが見つかりませんでした。。。
      申し訳ありません

  2. ジャッキー より:

    お早うございます。車速が取れて面白いと思います。もしかして、OBD2からこの車速パルスを取得してくるのではと思いますが、正しいでしょうか?ご教示頂ければ幸いです。

    1. ta9mar より:

      車速信号線から取り出しています。JIS D5601規格です。

      OBD2でやるのであればOBD2-Bluetoothなものがヤフオクなどで安く売っていますよ。(中身はPICのようです)
      この場合ハード工作は不要ですね。
      SPPシリアルでコマンドたたくだけで、値が取れるのではないでしょうか?(まだやってないので予想です)

  3. bafbaaf より:

    自分も似ていることをしているのですが
    PICの送信部分のコードがかけません。上のほうの質問でソースはもうないと言っていたのですが
    送信の部分のコードを書く時に何か参考にしましたか?
    できればそれを教えてくれませんか?