忍者ブログ

≪ 前の記事次の記事 ≫

VL6180X試食

ストロベリーリナックスで買えるVL6180X。
https://strawberry-linux.com/catalog/items?code=16180
測距センサですね。
よくあるSharpの奴とは違って、光が跳ね返ってくるまでの時間を計るタイプです。
なので物体の反射率とか形状に影響を受けにくいとかなんとか

I2C面倒だなーと思いながら簡単に実装してみました。
でも何故か110mm程引いたされた値で取得されちゃいます(´・ω・`)
 →アプリケーションノートのオススメ設定を試したらちゃんと計測できました(2016/03/15追記)
ひとまずやり方↓

【使い方(暫定版)】
I2C通信フォーマット
[I2Cアドレス(0x29)][レジスタ上位アドレス][レジスタ下位アドレス][データ][データ][…
送受信ともにこんな感じ。

詳細
1, 計測間隔を設定する
I2Cで0x00, 0x1B, 0x04を送る。
 3バイト目で間隔を設定している。10msなら0x00, 20msなら0x01, …, 50msなら0x04

2, 連続計測モードにする
I2Cで0x00, 0x18, 0x03を送る

3, 計測結果を読む
I2Cで0x00, 0x62を送って1バイト受信

これでmm単位の値が取れます。

あと気になるのはI2Cアドレス書き換えられるかだけど、0x0212に7bitの新アドレスを書けば良いみたい。でも電源切ったら忘れちゃうみたい?意味ない!!!!???
GPIO-0が起動時にCEな機能を持つこととGPIO-1を組み合わせて使えないかかんがえちゅー
アプリケーションノートの初期化コードで、データシートに載ってないレジスタいじってるから何か隠されてるようだ。。。

-----------------------
2016/04/10 追記
Using multiple VL6180Xs in a single design
複数デバイスを使いたい時用アプリケーションノート見っけた。
使いたい数分のGPIOをマイコンとつなぐか、I2CでIO拡張するIC使う的な感じで対応するしかないみたい。

拍手

PR

Comment (0) | ▲TOP

Comment

  • メールアドレスは入力しても管理画面でしか表示されません。
  • コメント投稿時にパスワードを設定していた場合のみ、名前をクリックすると編集出来ます。

Vodafone絵文字 i-mode絵文字 Ezweb絵文字