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

BLEモジュールで遊んでみた

BLEモジュールで遊んでみた クルマの情報を取るためにiPhoneアプリを色々作ってきました。
こんなとここんなとことかこんなところでも…。

これらのアプリは、クルマの情報をマイコンで受けて、計算させて、BLE(Bluetooth規格)の無線で飛ばしてiPhoneに送って画面表示するような仕様になっています。

iPhoneと無線するにはBLE(Bluetooth Low Energy)に準拠したモジュールが必要となります。
世間では数種類個人でも買えるモジュールが存在しますが、5,000円近くするものも多く気軽に買えるものではありません。

今回Webで、Mpressionの「Koshian」(こしあん?)ってモジュールを見つけました。1,000円くらいの値段的にはお手頃なモジュールです。

この「Koshian」BLEモジュールは、ユカイ工学の「konashi」(こなし?)という小型化拡張ボード互換用のモジュールですので「Koshian on konashi base」で使用するのが通例のようです。

でも、koshianの内容を見ていたらなんとなくこれだけで繋がりそうなので1個買ってみました。
今回の目的は「KoshianだけでiPhoneと無線通信をする。」です…。

「Koshian」は、3.3V電源で駆動し、通信は「UART」「I2C」「SPI」が利用でき、「PIO0〜5」の6つのデジタルI/Oと「AIO0〜2」の3つのアナログポートを持っている。デジタルピンでPWMもできるみたいなので、任意のセンサーをくっつけてこのモジュールだけで色々制御ができそうです。

ただし、今回はKoshian単体で動かそうとしているのでちょっと工夫が必要。
Koshianについている端子は、ブレッドボードで使われている一般的な2.54mmピッチ
ではなく1.27mmピッチ幅となっています。


ブレッドボードでテストしようとすると、1つ飛ばしで端子をくっつけなければなんない…。しかも、1.27mmピッチのハンダ作業…。

んで…できた完成品が1枚目の写真…。
1つ飛びなので使用できる端子が限られます、使える端子から見ると外部との通信は「I2C」のみで、使える「I/O」は3つという仕様です。

で…。「I2C」が使えるようなので試しにPICマイコンとつなげてみます。
作った回路が下図。


今回の回路仕様…
①PICマイコンとKoshianはI2C通信。
②PICマイコン内で1秒刻みのタイマーを作る。
③PICマイコンのI/Oには1つの緑LEDをつけて信号で光るようにする。
④KoshianとiPhoneはBLE無線通信。
⑤iPhoneとKoshianが接続中は赤LEDを点灯させる。

回路仕様①の「I2C」接続については何回か作ったことがあるのでそんなに難しくないですが…。いままで作ってきたこととの相違点がいくつか…。

まずは、「I2C」通信は機器間で「マスター」と「スレーブ」がはっきり区切られています。マスターが通信の主導権を持っておりマスターが欲しい情報をスレーブに送信し、受信したスレーブがその情報を送信する形となります。
今回の回路においてはkoshianモジュールが「マスター」限定。PICマイコンPIC16F1705が「スレーブ」となります。マイコンがスレーブの振る舞いをするプログラムを作ればいいわけで、スレーブプログラムは初めてだけど、ここはマイコンのデータシートとにらめっこして理解済み。

あとは、Koshianの電源は3.3V。PICマイコンの電源は5.0VなのでI2Cを通信するには電圧のレベルシフトが必要になってきます。I2C通信を提唱しているPhilipsの仕様書ではFETを使ってレベルシフトをしていますが、今回はトランジスタを使ってレベルシフトをしています。普通に通信できているので良いのでしょう…w。回路中の2つのトランジスタがそれです。

回路仕様②〜③についてはマイコン内の「Timer0」と「Port」でちまちまプログラムをイジって作ってます。

回路仕様④については、要はiPhoneのアプリ作りになります。Mac上でXcodeでのコーディングとなります。
ユカイ工学の「konashi」小型化拡張ボード制御するために専用のSDKがネット上で公開されています。「Koshian」にもそのまま使用でき、これが秀作でとても使いやすい。I/OポートのON-OFFであったり、アナログポート通信の処理など全ての処理がSDKで公開されています。これを使えばXcode上で回路の制御プログラムができてしまします。

ただし、このSDKはレガシー言語である「Objective-C」で書かれています。現在のiPhoneアプリ作りの主流は「Swift」。Objective-Cで記述してもいいけどSwiftのほうがもう慣れちゃったんでなんとかSwiftで書いてみます。Objective-C言語とSwift言語の間をプログラムブリッジを使って混在させてSwiftメインで書く技法で作ってみました。

回路仕様⑤については、赤LEDをKoshianのI/Oモジュールにつけて、BLEの接続が成立したら点くようにアプリ側でコーディングしています。


できたアプリはテスト用のほんと、素っ気ない簡単なアプリです。
よかったら動きをみてください。


なんとか動いてるみたいです。今回のプログラムはクルマに使うことを想定してプログラムを作ってみました。いつでもクルマ用の回路に転用可能です。

このモジュールのSDKはiPhoneアプリで回路を制御できます。今まで作ってきた回路はマイコンをプログラムのメインとして通信をしていましたが、マイコンの狭いメモリ範囲でアセンブラやC言語でちまちま打つよりiPhoneの広大なメモリ内でSwiftでプログラムした方が圧倒的にできることの幅が広がります。

あとはこのモジュールが使用範囲で使えるモジュールかを確認するために、何かネタを探してまた何か作ってみます…。
ブログ一覧 | 電子回路 | 日記
Posted at 2017/09/24 20:37:00

イイね!0件



タグ

今、あなたにおすすめ

ブログ人気記事

Zの後面(こうめん)!
フリームファクシさん

'25年4月20日 イチゴ狩り
良郎さん

田植えです(コシヒカリ) 草の処理 ...
urutora368さん

いまだに雨(・・・未洗車)
らんさまさん

洗車&ワイパー交換&買い物😊
o.z.n.oさん

楽しいGWが、悲しいブラックウイー ...
ウッドミッツさん

この記事へのコメント

コメントはありません。

プロフィール

「[整備] #N-ONE メッシュグリルにしてみる https://minkara.carview.co.jp/userid/1540421/car/3584390/8101874/note.aspx
何シテル?   02/01 13:30
satto.v11です。 機械を弄るのが大好きですw クルマ・バイク・パソコン多趣味な人間です。
みんカラ新規会員登録

ユーザー内検索

<< 2025/4 >>

  12345
6789101112
13141516171819
20212223242526
27282930   

リンク・クリップ

バンパー、グリル、ネット取り付け 
カテゴリ:その他(カテゴリ未設定)
2025/02/06 06:05:02

愛車一覧

ホンダ N-ONE ホンダ N-ONE
N-ONE RSに乗り換えました。 通勤用として久しぶりの新車購入。 "通勤中も楽しく" ...
アウディ TT クーペ TT (アウディ TT クーペ)
メイン車です。 これは自分では弄りません。 全てディーラーにお任せw
ホンダ ゴールドウイング (GL1800) GL1800 (ホンダ ゴールドウイング (GL1800))
ホンダGold Wind Tour DCTに乗っています。 水平対向6気筒1800ccを ...
ホンダ モンキー ホンダ モンキー
モンキーを作りました。 10年前に所有していたモンキーフレームの残骸からナンバーを取得 ...

過去のブログ

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