• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+

satto.v11のブログ一覧

2014年08月30日 イイね!

クルマとiPhoneを無線でつなげてみた…【続々】

クルマとiPhoneを無線でつなげてみた…【続々】久しぶりの更新です…。

今回もクルマとiPhoneをBluetoothの無線でつなげてモニタリングするネタですw

前回まではクルマで取得したセンサやECUからのデータをiPhoneでモニタリングするシステムを作りました。
今回は逆にiPhoneからクルマを操作もさせてみます。

要は送受信出来るシステムを作ってみます。

回路からBluetoothで送信したデータをiPhoneで受信してiPhone上へ表示させるデータについては、前回同様に「水温計」「アクセル開度」「電圧計」「外気温」「ブースト圧」を表示させます。
加えて今回は、iPhoneのiOSフレームワークを使って「GPS」データも表示させてみたいと思います。

逆にiPhoneを操作してBluetooth送信してやり、回路で受信して、「オーディオの操作」「ワンショットハザードの起動」(俗にサンキューハザード)の操作を行ってみたいと思います。

まずはざっくりとアプリの動きから…。下手な動画で…w


んで、メインとなる回路は…。こんな感じ…。


今回の作製回路は複雑なやり取りが必要なので、マイコンを2機使用しました。
メインとなるマイコンは「PIC24FJ64GA002」で主にBluetoothモジュールの通信を行っています。
これは、ECUからデータを取っている「水温計」「アクセル開度」「電圧」のデータの取得と「外気温」「ブースト圧」のデータをiPhoneに送っています。

サブにもう1機「PIC16F88」というマイコンを組んでいます。
これは、iPhoneから「メインマイコン」にデータが送られそのデータをこの「サブマイコン」に送信してクルマに「オーディオの操作」「ワンショットハザードの起動」のような動きを与えています。要はクルマの制御用です。

この回路は、iPhoneと回路がかなり頻繁にデータの送受信を行うので制御の仕事を分けました。

回路の動きとしては…
「メインマイコン」でECUやセンサーのデータを取得してそのままBluetooth無線通信でiPhoneへデータを送信してやります。データの複雑な計算はiPhoneの方が圧倒的に速いのでiPhone側のアプリで計算させるようにしました。
ここまでは、前回ブログで紹介した方法と同じです。

今回は、iPhoneでクルマを操作させます。
まずはオーディオ操作。
この機能については、「ステアリングスイッチ機能追加」で行った応用です。
ナビは新車のときにつけた「CN-S300D」を使用しています。
このナビにはステアリングスイッチの配線があるのでそれをデータ偽装して回路から信号を送ってやります。
回路がこれです。

写真上側がサブマイコン側の信号入力で下側がナビへの信号出力です。
サブマイコンから出力された信号によって抵抗値を変化させている単純な回路です。

ナビの再生中「早送り」「巻戻し」「ソース切換え」「音量+」「音量ー」「ミュート」の操作がiPhone上で行えるようになっています。

特に「CN-S300D」のナビは「ミュート」の操作がステアリングスイッチを使わなければできない隠れ機能なので重宝しています。

各オーディオボタンの起動は、iPhone操作により「メインマイコン」にBluetooth経由で送られてきます。その信号を受け「サブマイコン」へ信号が送られます。
メインからサブへのデータの送信については、単純に「メインマイコン」からピン出力して「サブマイコン」で受け取ると6本も入出力ピンを使っちゃうので「メインマイコン」からはD/A変換で電圧データとして出力して「サブマイコン」ではA/D変換でデータの識別を行っています。これで1本の配線で6つのデータ選別できるように工夫しました(「メインマイコン」の出力ピンが足りなくなったのが理由)。


もうひとつiPhoneで操作できる機能に、俗にサンキューハザードとか呼ばれている機能も付けました。
これはここで実装しているものと同じ機能です。
現在付けているサンキューハザードの回路は正常に機能して問題はないのですが、この際一緒に盛り込んですっきりさせちゃいます。
これは、iPhone画面上部の「Hazard Flash」のボタンを押すとiPhoneから回路にBluetooth送信され「メインマイコン」から「サブマイコン」へデータ処理されます。「サブマイコン」のプログラムでハザードが3回点滅するように回路を作り込みました。

ついでに…、
今回はクルマのウィンカーの配線を制御しているのでウィンカーレバーをチョンと操作すると方向指示器が3回点滅するように「サブマイコン」にプログラムを追加しました。
レーンチェンジなどにとても便利です。

「メイン回路」周りの回路は以下です。


「サブマイコン」と「オーディオ操作」周りの回路は以下です。



今回は「ブースト圧」を測定する回路も新調しました。

ここで作った回路では、0.16mV/hPaと小さな係数で電圧を測定していたので、微量な圧力変化の読み取りは対応できませんでした。今回は「オペアンプ」を組んで10倍に増幅させてやりました。



今度はアプリについて…。

今回はアプリも新調しました。
開発には前回同様、「MacOS X10.9」上の「XCode5」で「Objective-C」って言語でプログラミングしました。

iPhoneのシステムがiOS7になって画面のガイドラインが大きく変更になりました。
最近のiPhoneのアプリはすっきりしているのが多いのはこのためです。
今回のアプリ作成はこのガイドラインにできるだけ乗っかって作ってみました。

あっさりしてますw

機能は、画面下のタブバーで機能が変えられます。

まずは「Meters」。
ECUデータやセンサーなどのデータを表示させる画面です。

上に「サンキューハザード」を起動させる「Hazard Flash」のボタン。
左に「アクセル開度」をの棒グラフ。
右に「ブースト計」。真ん中に数値表示。周り玉が数値によってクルクル回ります。
下に「水温計」データ。
その下に、「電圧計」が並びます。

あとは、「日時」「外気温」、iPhoneの「バッテリー残量」などが続きます。
運転中この画面はぺこぺこ変化して楽しいですw


次に、「Audio」画面。

これは画面の通り。表示されているボタンを押すことによってナビの操作ができちゃいます。
ここにも、サンキューハザードが起動できる「Hazard Flash」ボタンを付けました。


後は、「GPS」の画面。

これは、iPhoneのフレームワークに標準であるものから取得しているデータです。
「現在の住所」「緯度」「経度」「標高」「現在速度」と「コンパス」の表示を行っています。
コンパスについては、方向の角度データのみが取得できるので、その角度によって角度盤をクルクルまわすプログラムを組んでます。

ここにも「Hazard Flash」ボタンをおいてどの画面でも瞬時にサンキューが言えるようにしましたw。
これも、運転してるとコンパスがクルクル回るので楽しいです。
ただし、実際はナビがクルマに付いてるのでこの情報はいらないけどね…w


最後に「Debug」画面。

これは、開発用のデバッグ用の画面なので使用中は特に必要ない…。
ECUから入力されている電圧や、GPS・iPhoneの情報の生データを表示させています。
間違いがないかの確認用…。


以上のように新しくシステム回路を新規に作って実際に「スクラム」に取り付け1週間テストしてみました。
思惑通り快適に動作してくれて問題はなし…と思う。

「自作回路」+「iPhone」のコンビはかなり楽しいですw
iPhoneにはまだまだ使える機能がありそうです。

今9月にiPhone6が出るとの噂が広がっています。
iOSも8になるでしょう。
画面インチも大きくなるとか…。
表示できるデータ量が増やすこともできるかも…。
アプリのプログラマーは、目が離せませんw。
Posted at 2014/08/27 19:46:51 | コメント(0) | トラックバック(0) | 電子回路 | 日記
2014年06月07日 イイね!

クルマとiPhoneを無線でつなげてみた…【続】

クルマとiPhoneを無線でつなげてみた…【続】先月に試しに作ったこの回路で引き続き遊んでみました。

おさらい…
この回路は、ECUやセンサーなどの測定データを「Bluetoot LE」で無線送信してやる回路です。
その「Bluetooth LE」の無線データをiPhoneで拾ってやりそのデータをiPhoneに表示させてやるシステムを前回作成しました。


この自作回路はうまく行ったみたいなので、もうちょっといじって遊んでみました。
今回は基板のほうは何もしていません。
「iPhone」側の画面をちょっといじって遊んでみました。


前回までは送信データのデバックをするつもりで文字のみを表示させていました。
せっかく表示させるなら、グラフィカルにしたい…ってことで「iPhone」側の画面を作り直してみました。
「グラフィカル=絵画的」 最初に言っときますが…。私絵心ありませんw

作成した画面は以下の通りです。


ちょっとは、絵画っぽくなったかな?
今回も、iPhoneのアプリ開発は「MacOS X10.9」上の「XCode5」で「Objective-C」って言語でプログラミングしました。
さすがにiPhoneはグラフィック関係のAPIが豊富にそろってます。
このぐらいのアニメーションは簡単に作成できちゃいます。

今回から、プログラムの内容も大幅に変更しクルマの回路側はA/D変換値などの数値データを送るだけにし、iPhone側で複雑な計算をさせるようにしました。
クルマの回路はひたすら測定の生データを送るだけです。
演算はiPhoneのほうが速いだろうから(?)複雑な計算はiPhone側でプログラムしました。

画面内のメーターなどは、さすがに定番のグラフィックソフト「Adobe Illustrator」は買えなので「Inkscape」というフリーのグラフィックソフトを使いました。このくらいのベクターイメージを作成するには必要にして十分なソフトです。

今回も一応動画を撮ってみました。



一週間通勤で使ってみましたが、問題なく動作してくれます。
だた、ちょっとブースト計が小刻みに動きすぎ…。これは回路側のセンサーの電圧の拾い方に問題があると思う…。

思ったところまでできたので「試作回路」と「試作iPhoneプログラム」はここまで…。
本番の回路の作成に取り掛かりたいと思います…。時間があればね…。


それにしても、AppleがWWDC2014で「Swift」とか言う新しい開発言語を発表しましたね。確かにiPhoneアプリのネイティブ言語「Objective-C」ってのは初心者にはわかりにくい言語で敷居のかなり高い言語です。でも14年前のMacOSXの立ち上がり当初の「Objective-C」の扱いにくさに比べ格段に今は使いやすくなっています。

新しい言語でアプリ作成が簡単になるのは歓迎ですが。
また、言語をひとつ覚えなきゃなんないのか…?おっさんには大変です…w
Posted at 2014/06/07 08:12:10 | コメント(0) | トラックバック(0) | 電子回路 | 趣味
2014年05月17日 イイね!

クルマとiPhoneを無線でつなげてみた…

クルマとiPhoneを無線でつなげてみた…先日ブレッドボード上で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 | コメント(1) | トラックバック(0) | 電子回路 | 趣味
2014年05月03日 イイね!

iPhoneと電子回路をつなげてみた…

iPhoneと電子回路をつなげてみた…私は、20数年来のApple党です。
パソコンは常に1台はMacを所有してます。
携帯電話については、2008年にiPhone3Gが発売されてからはずっとiPhoneを買い続けています。
iPhoneのアプリなら少しは作れます…。

ってことで…。
今回、iPhoneなどで使用されているBLEを使って何かできないかな?って思って色々調べて試作してみました。

BLEっていうのは、Bluetooth4って呼ばれる2011年以降のApple製品に対応しているBluetoothの規格です。それ以前のBluetoothはMFiの承認が必要だったり、なかなか個人では開発しにくい環境にありました。
BLEデバイスになって一気に敷居が低くなって簡単に無線環境の開発が可能になっています。

無線でマイコンのデータをiPhoneへ送信。
逆に、iPhoneのデータをマイコンへ無線で送信。
要は無線でデータを送受信させたいと思います。


BLE通信モジュールは「ランニングエレクトロニクス SBDBT5V」ってのを今回は使用してみます。基板にUSBの口がついておりそこへUSBのBluetoothアダプタをつけて使用するモジュールとなります。

このモジュールは「PIC24FJ64GB004」というマイコンでデータ通信を制御しています。このマイコンは基板裏側に搭載されています。

結局は、これもPICマイコンなので直接PICKit3につなげることができてプログラムを容易に転送することができます。

 

こんな風にPICKit3つなげてモジュール内のプログラムを更新してやってモジュールの振る舞いを変えることもできます。
今回は最初なんでランニングエレクトロニクスで公開されているプログラムをそのまま使用しました。

 


モジュールのUSBに挿すBluetoothアダプタは「Planex BT-Micro4」っていうアダプタを使用しました。
当然Bluetooth4に対応したアダプタが必須です。

「BLEモジュール」の送受信データを処理する為に「PIC16F1938」というマイコンを今回も使用しました。
「BLEモジュール」と「PIC16F1938」はシリアル通信でデータのやり取りを行っています。

iPhoneがデータを無線送信し、BLEモジュールがそのデータを受信するとモジュールはシリアルでマイコンに送信してきます。そしてマイコンで何らかの処理してやります…。

逆に、マイコンからシリアル通信でBLEモジュールにデータを送るとモジュールは、iPhoneにそのデータを無線で送信します。そしてiPhoneで何らかの処理してやります…。


今回のiPhone側アプリは、写真のような簡単なアプリを作成しました。
でもクルマで使えるように項目は考えて…。

アプリの作成だけならMacがあれば無料でできますが、実機にアプリをいれてテストしようとすると年会費を払って「iOS Developer Program」ってのに参加しなければいけません・・・。
私は、このプログラムに参加しているので実機に入れてテストができます。

このアプリプログラムについてはもっぱら本家Appleの「Core Bluetoothプログラミングガイド」をひたすら参考にしながら作りました。

回路の機能として…。
①アプリ起動すると自動的に「BLEモジュール」を検索し接続する。
②アプリの「LED」スイッチをONにすると、回路上のLEDが3回点滅し点灯する。
③アプリの「LED」スイッチをOFFにすると、回路上のLEDが消灯する。
④アプリの「接続」スイッチのON/OFFで接続と切断が行える。
⑤回路上のスイッチを押すとアプリにてデモ画面がスタートする。
 ※デモプログラムはマイコンで0.1秒毎にデータをカウントアップさせて、iPhoneにデータを送っています。

そして作った回路がこれ…(動画撮り下手です)。




アプリはバグ取りも何もしてないので、動きがおかしいところも多いです・・・。

マイコンで作ったデータを通信モジュールで送信してiPhoneまで送ることもできたし、その逆もできた。
 
これを応用して…。
スクラムの「自作デジタルモニターを作ってみた」やモンキーの「自作 モンキーにデジタルモニターを付けてみた」のようなものが作れるかも…。

あとは…。
スクラムの「偽装ステアリングスイッチの作り直し」のような操作がリモコン感覚でできるかも…。

やるかどうかはわかんないけど…。
Posted at 2014/05/03 21:26:51 | コメント(1) | トラックバック(0) | 電子回路 | 趣味
2014年04月20日 イイね!

週末のマイコン遊び

週末のマイコン遊び久しぶりにPICマイコン遊びをしてみました。

いじったPICマイコンは「PIC24FJ64GA002」という16ビットの優れモノです。

自作 時計&外気温をルームミラーに映してみた」で使ったPICマイコンです。

このPICマイコンは機能が満載なものですが、上記の回路を作ったっきりであまり極めてなかったので久しぶりに使ってみました。

PICマイコンを作るときは、「プログラム」を記述して「コンパイル」して「PICKit3」というプログラマーでPICマイコンに書込んでいきます。

「プログラム」から「コンパイル」までの作業はパソコンで行います。
コンパイラは8ビットマイコンでは「HI-TECH」を使用していましたが、このマイコンではこれは使用できないため「C30」というコンパイラを使用します。

コンパイルされた実行ファイルをUSBでパソコンとPICKit3をつなぎPICマイコンに転送するわけですが、PICマイコンとPICKit3とつなげる転送用の基板が必要となります。
前述のこのマイコンを使った回路では、実際の基板に直接PICKit3をつなげるように工夫をしていました。
今回のように単独で遊ぶ場合はこのPICKit3と接続する転送用の基板があった方が便利です。

って訳で作りました。
簡単な回路です。PICKit3の先についている基板です。


回路図はこんな感じです。
回路中のLEDはパイロットランプです。電圧が上がると点灯します。


試しにLEDをピコピコやる簡単なプログラムを作って転送してみました。
問題なしです。良好です♪
8ビットのマイコンに比べ転送スピードが、とてつもなく速いです。

ただ、テストでLEDをスイッチでピコピコやったりするだけでは面白くないんでこんなものを使って遊んでみました。



aitendoで買った「OLEDモジュール 128X64/3バス」です。1,300円くらいかな?
前回モンキーにつけたOLED(「自作モンキーにデジタルモニターをつけてみた」)が思いのほかキレイだったので倍の画面サイズのモジュールを購入してみました。

名前の「3バス」っていうのは「パラレル8ビット転送」「SPI転送」「I2C転送」の3種類のバスでデータが送ることができるモジュールです。
今回も前回のOLEDでやった「SPI接続」で制御してみようと思います。
モジュールが前回モンキーで作ったモジュールと同じコントローラーだったので、サクサクと前回作ったライブラリをこのマイコン用に書き換えました。

ブレッドボードでサクサクと回路を作成しました。


128X64の画面サイズなのでスクラムの「自作 デジタルモニターを作ってみた Ver.2」で使ったグラフィックLCDで使ったデータをそのまま映してみます。
ちょっとプログラムを変更して移植するだけの作業なのでこれもサクサクと…。
んで、できたデモ画面がこれ…。


やはり、OLEDはキレイですね♪


久しぶりに「PIC24FJ64GA002」のマイコンを使ってみましたが。
16ビットなので取っつきにくいですが、慣れれば使いやすい。
特に気に入ったのが「ピン割付」の機能。好きなピン位置に好きな機能を付けることができる機能でこれはうまく回路をレイアウトすれば基板がすっきりすることができそう。
16ビットタイマーも5個あるし、A/D変換もたくさんあるし、SPIも2チャンネル、I2Cも2チャンネルあるみたい。とにかく盛りだくさん…。

今スクラムについている自作の回路たちはむかしマイコンいじりたての頃に作ったモノばかりです。
荒削りのモノも多い…。
8ビットマイコンから16ビットマイコンへの移植もあっさりできたし、今ついてるスクラムのデジタルモニターの画面も移植できた…。
これを機に作り直すかな…。


Posted at 2014/04/20 21:24:58 | コメント(1) | トラックバック(0) | 電子回路 | 趣味

プロフィール

「[整備] #ロードスターRF 自作ワンタッチハザードを再び作り直した(試作) https://minkara.carview.co.jp/userid/1540421/car/3779299/8586811/note.aspx
何シテル?   03/29 07:26
satto.v11です。 機械を弄るのが大好きですw クルマ・バイク・パソコン多趣味な人間です。
みんカラ新規会員登録

ユーザー内検索

<< 2026/5 >>

      12
3456789
10111213141516
17181920212223
24252627282930
31      

リンク・クリップ

1年後の反省:新型ロードスター電装改造 
カテゴリ:その他(カテゴリ未設定)
2025/11/10 08:20:01

愛車一覧

マツダ ロードスターRF マツダ ロードスターRF
学生の頃に新車で購入したNAロードスター以来、久々のマツダの新車です。あの頃とイメージが ...
ホンダ N-ONE ホンダ N-ONE
N-ONE RSに乗り換えました。 通勤用として久しぶりの新車購入。 "通勤中も楽しく" ...
ホンダ ゴールドウイング (GL1800) GL1800 (ホンダ ゴールドウイング (GL1800))
ホンダ Gold Wing Tour DCTに乗っています。 水平対向6気筒1800c ...
ホンダ モンキー ホンダ モンキー
モンキーを作りました。 10年前に所有していたモンキーフレームの残骸からナンバーを取得 ...

過去のブログ

2026年
01月02月03月04月05月06月
07月08月09月10月11月12月
2025年
01月02月03月04月05月06月
07月08月09月10月11月12月
2024年
01月02月03月04月05月06月
07月08月09月10月11月12月
2020年
01月02月03月04月05月06月
07月08月09月10月11月12月
2018年
01月02月03月04月05月06月
07月08月09月10月11月12月
2017年
01月02月03月04月05月06月
07月08月09月10月11月12月
2016年
01月02月03月04月05月06月
07月08月09月10月11月12月
2015年
01月02月03月04月05月06月
07月08月09月10月11月12月
2014年
01月02月03月04月05月06月
07月08月09月10月11月12月
2013年
01月02月03月04月05月06月
07月08月09月10月11月12月
2012年
01月02月03月04月05月06月
07月08月09月10月11月12月
ヘルプ利用規約サイトマップ
© LY Corporation