• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+
イイね!
2026年05月01日

アプリを作って9軸センサーで遊んでみた

アプリを作って9軸センサーで遊んでみた 電子回路のクルマネタもだんだん無くなってきて、少し暇をしていたので、昔買った「9軸センサモジュール」を使って、姿勢を表示するアプリを作って遊んでみました。完成品はこんな感じです。



9軸センサモジュールで取得した加速度やジャイロのデータをPICマイコンで受信し、そのデータを回路内のBluetoothモジュールからiOS端末、今回はiPadへ送信します。受信したデータは自作のiPadアプリで計算・加工し、回路の向きを模した3Dグラフィックや、回転速度データ、加速度データを表示します。こういった流れで動作するシステムです。





回路構成はこんな感じです。PICマイコンがすべての制御を担い、9軸センサーとはI2C通信で、BluetoothモジュールとはUART通信でデータをやり取りしています。
一見複雑そうに見えますが、回路中にはデバッグ中に値を確認するためにパソコンとつなぐUSBシリアルや、PICの書き込み用ポートも用意しています。実際に完成品として作り込むなら、もっとシンプルな構成にできそうです。





今回使った各モジュール類は、すべて家にあった在庫品です。どれも10年近く前の古いモジュールばかりです。
例えば、9軸センサモジュールは2018年製で、この機種はすでに販売終了しています。Bluetoothモジュールも2019年製で、すでに後継機種が出ています。今回はお遊びなのでこれで十分ですが、実際に車両へ取り付けて継続的に使いたくなったら、最新のモジュールを使って作り直してみようと思います。
【9軸モジュール】
Bosch製のBMX055を使用しました。
9軸、つまり加速度3軸、ジャイロ3軸、磁気コンパス3軸のデータを取得できるモジュールです。
本来は、この3種類の3軸データを厳密に計算することで、そのときの姿勢や向きをより正確に取得できます。具体的には、磁気コンパスのデータも使用し、クォータニオンなどを用いてセンサーフュージョンを行うことで計算できます。
ただし、磁気コンパスはキャリブレーションが面倒なので、今回は使用しませんでした。今回は加速度とジャイロの2つを使って向きを計算しています。そのため、ヨー方向、つまり上方向を軸とした回転については固定表示とし、常に一定方向を向いています。
通信にはI2Cを使用し、マイコンとデータの送受信を行っています。
【Bluetoothモジュール】
Microchip製のRN4020というBluetooth Low Energy、BLE通信モジュールを使用しました。
このモジュールを使うことで、iPhoneやiPadと無線通信でデータを送受信できます。
UARTやI2Cが搭載されており、マイコンとの相性も良いです。このモジュールはすでに生産がされておらず後継機種としてRN4870などが出ています。設定は少々複雑ですが、覚えてしまえば応用の幅が広く、個人的には好みのモジュールです。
【PICマイコン】
Microchip製の16ビットマイコン、PIC24FJ64GA002を使用しています。
これもかなり古いマイコンです。後継機種も出ていますが、現在でも普通に流通しており、まだ現役で使えるマイコンです。在庫に32ビットマイコンもありますが、この程度であればオーバースペックかな?
RAMは8KBあり、メモリ領域に余裕があるのでかなり扱いやすいです。また、16ビットマイコンなので、演算も8ビットPICより素直に扱えます。
最近はあまり大掛かりな回路を作らず、スペースの都合もあって8ビットの小さいマイコンばかり使っていますが、たまにこういった16ビットPICを使うと、性能も高く使い勝手が良いと感じます。





これらのモジュールやマイコンを使って、Bluetooth経由でiOS端末へ向けて生データを送信します。
iPhoneやiPadで動くiOSアプリはいつものように、Mac環境のXcodeを使い、Swift言語で作成しました。今回は久しぶりのアプリ制作だったので、ちょっと本気でアプリを作ってみました。
まず、アプリ側のボタンを押して、回路とのBluetooth接続を確立します。接続に成功すると、回路側から0.1秒ごとに加速度とジャイロのデータが連続して送信されてきます。
送信されるデータは、9軸モジュールから取得した12バイトの生データです。今回は16ビットのマイコンを使っているので、姿勢の計算自体はマイコン側でも可能です。
ただ、iPhoneやiPadで計算したほうが圧倒的に速く、またBluetooth通信に大きなデータを乗せたくないため、複雑な計算はすべてiPad側で行っています。





メインのViewでは、姿勢を表すグラフィックや各種数値データが送られてきたタイミングの0.1秒ごとに更新されるようにしました。
【姿勢表示】
動きの3Dモデルはフリー素材使っています。この手の表示は飛行機がはまります。
回路には9軸センサーが取り付けられているため、回路を動かすと、それに合わせてグラフィックも同じ向きに回転します。加速度センサーは各軸にかかる重力の強さを検出するため、この動きは加速度データを使って計算しています。
今回は磁気コンパスを使っていないので、動きはロールとピッチのみです。ヨー方向は固定表示としています。
これで、コーナリング時にクルマが左右に傾いた際のロール値や、ブレーキ・加速時に変化するピッチ値が見えることに期待しています。
【ジャイロ】
ジャイロでは、回転速度のデータを取得できます。
gxのデータがロール方向の回転速度、gyがピッチ方向の回転速度、gzがヨー方向の回転速度を表しています。正負の値があるため、棒グラフでその強さを表示しています。単位は1秒あたりの角度です。
これで、コーナリング時のロールの速さや、ブレーキ・加速時のピッチの速さが数値として見えることに期待しています。
【回転強度】
回転速度は3軸に分かれているため、それらを合成して1つの数値として表示しています。
これにより、その瞬間にクルマへかかっている回転速度の大きさが分かります。言い換えれば、クルマにかかっている力の大きさのような指標として見られないかと期待しています。

手元に置いておもちゃとして遊ぶのも楽しそうですが、これを実際にクルマへ取り付けて試してみます。
おそらく「あっ、そう。」という感想だけで終わる可能性は高いです。
今回は久しぶりに、回路制作からiOSアプリ作成まで一通り行ったので、かなり自己満足しています。
もし実用性がありそうならiPadではさすがに少し大きいので、iPhoneアプリとして作り直そうと思います。
ブログ一覧 | 電子回路 | 趣味
Posted at 2026/05/01 07:58:09

イイね!0件



タグ

今、あなたにおすすめ

関連記事

【深層解明】Android Aut ...
ふっじいさん

ODB2読出し(RCZ)
G59.touristさん

【深層解明・後編】Android ...
ふっじいさん

ノッキング解析ツール -その2、マ ...
エルピーダさん

手ブレ補正はあとからできる(Gyr ...
popo taguさん

【深層解明・完結編】Android ...
ふっじいさん

この記事へのコメント

2026年5月1日 23:19
凄いですね、大人遊びができる貴方が羨ましい。
コメントへの返答
2026年5月2日 20:34
実用性はわかりませんが、確かに電子工作は暇つぶしに最適な大人遊びです。

プロフィール

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

ユーザー内検索

<< 2026/8 >>

      1
2345678
9101112131415
16171819202122
23242526272829
3031     

リンク・クリップ

車高調導入 
カテゴリ:その他(カテゴリ未設定)
2026/06/01 13:57:11
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月
ヘルプ利用規約サイトマップ

あなたの愛車、今いくら?

複数社の査定額を比較して愛車の最高額を調べよう!

あなたの愛車、今いくら?
メーカー
モデル
年式
走行距離(km)
© LY Corporation