
先日ブレッドボード上でBluetooth4の無線を使って「電子回路」と「iPhone」をつなげる
テストをして成功しました。
せっかくなんで、スクラムに取り付けるための回路を作って無線でECUのデータやらセンサーの測定値やらをiPhone上に表示させてみたいと思います。
うまく行ったのでご紹介…。
簡単に流れを説明するとクルマのECUのデータ(水温センサ信号・アクセル開度・車速センサ等々)やその他センサ類(ブースト用の気圧センサ・気温センサ)の測定データをマイコンで受けて演算します。
演算したデータをBluetoothモジュールを使って無線信号で送ってやります。
iPhoneでそのBluetoothの無線信号を拾ってやって画面に表示させてやります。
当然、無線なのでiPhoneとクルマとは何もつながっていません。
今回自作で作成するのは…
クルマ側は、測定データを受ける「
回路」と「
マイコンプログラム」。
iPhone側は、無線信号を受けて画面に表示させてやる「
アプリ」です。
まずは、クルマ側の「
回路」部分。

Bluetoothモジュールは、前回同様「ランニングエレクトロニクス SBDBT5V」を使ってます。USBに市販のBluetoothアダプタを取付けて無線を飛ばしてやるタイプのモジュールです。
Bluetoothモジュールの下に大きなスペースができるのでその下にマイコンが入るように2階建ての回路をレイアウトしました。
今回の表示については、ECUから「
水温計」「
アクセル開度」「
12V電圧」の信号を読み取ります。
ナビ裏から車速パルスを拾って「
速度計」を表示させます。
また、去年スクラムに「
自作ブースト計を作ってみた」で取り付けた圧力センサを使って「
ブースト計」を測定します。
温度センサを使って「
外気温」も表示させたいと思います。
回路図はこんな感じ…。
マイコンは、いつものように「PIC16F1938」を使いました。
「
マイコンプログラム」は、今回のデータはほとんどがA/D変換での換算なのでマイコンでA/D変換してやって、Bluetoothモジュールにシリアルで送ってやります。
モジュールはシリアルでデータが送られてきたらすぐに無線でそのデータを飛ばしてくれます。
「速度計」については、車速パルスを拾っているので単位時間当たりの回数をカウントしています。ホントはパルス間の時間を計りたかったけどプログラムがめんどくさくてやめた…。
「外気温計」については、「LM61BIZ」という温度センサを今回も使いました。
こんなのです…。
ここまでがクルマ側…。
ここからはiPhoneの「
アプリ」の作成になります。
iPhoneのアプリ作成は、Mac上で行います。
開発マシンは、我が家のサブマシンMacBook Air で OSが MacOS X 10.9.2上で行い、Xcode 5.1.1の統合開発環境でプログラミングしました。
今回は、まだできるかどうかわかんなかったんで、数値が出るだけの
味気ない画面となっていますw
アイコンはこんなのにして…
アプリの画面はこんなのにしました…
最上面のバッテリーの残量と大きな時計表示はiPhoneの内部からデータを取っています。
通勤時は時計表示重要ですw
回路のBluetoothモジュールの接続については下の「接続」スイッチをONにするとモジュールを検索し、指定のモジュールが見つかれば接続を試みます。
アプリ起動時は自動的に接続しに行くようにしました。
アプリを起動させて走ってみました。
一週間アプリを起動させて通勤してみました。
表示がおかしくなることが極たまにあります。
電圧計が17.0Vと表示されたり…。
この季節外気温が41℃と表示されたり…。
原因はつかめてるんで、もうちょっとマイコン側のデータの送り方の改善が必要。
でもここまで表示できてデータが送れれば良しとします。
相手がiPhoneなんで色々な表示ができるはず…。
あとは、表示をグラフィカルにしたい…。
でも私に絵心なし…w
Posted at 2014/05/17 18:10:50 | |
トラックバック(0) |
電子回路 | 趣味