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円の抵抗買って・・・とか。
ソフトウェアに無いこの大変さは久々でした。。。
似たようなことをやってみたいと思っています。
>スタックにはPIC側でSPP受信はあったのですが、送信は無かったのでそこは作りました。
この部分を、教えてもらえませんか?
詳細が不可であれば、SPP送信がサンプルとして動く程度のソースでもいいです。
宜しくお願いします。
昔のソースが見つかりませんでした。。。
申し訳ありません
お早うございます。車速が取れて面白いと思います。もしかして、OBD2からこの車速パルスを取得してくるのではと思いますが、正しいでしょうか?ご教示頂ければ幸いです。
車速信号線から取り出しています。JIS D5601規格です。
OBD2でやるのであればOBD2-Bluetoothなものがヤフオクなどで安く売っていますよ。(中身はPICのようです)
この場合ハード工作は不要ですね。
SPPシリアルでコマンドたたくだけで、値が取れるのではないでしょうか?(まだやってないので予想です)
自分も似ていることをしているのですが
PICの送信部分のコードがかけません。上のほうの質問でソースはもうないと言っていたのですが
送信の部分のコードを書く時に何か参考にしましたか?
できればそれを教えてくれませんか?