1/15(木)『Yokohama Innovation Showcase』(@みなとみらい) に出展します☆彡
Raspberry Pi / Arduino

New!! Arduinoで物体との距離を測る(②レーザー測距センサー編)

AI要約

ArduinoとVL53L0Xレーザー測距センサーを用いて距離測定に挑戦。配線の解説と、検出範囲を調べる実験も行いました。

やること

ロボットの衝突防止のために近接センサーを導入するぞ、の第2弾です。

秋月電子で1200円程度で買える「レーザー距離センサーモジュール」を試してみます。

材料

VL53L0X使用 レーザー測距センサーモジュール(ToF)

VL53L0X使用 レーザー測距センサーモジュール(ToF): 計測器・センサー・ロガー 秋月電子通商-電子部品・ネット通販
電子部品,通販,販売,半導体,IC,LED,マイコン,電子工作VL53L0X使用 レーザー測距センサーモジュール(ToF)秋月電子通商 電子部品通信販売

2個買ったのですが、一台のArduinoで2個起動するのがかなり難しかったので1個だけにしました。I2C通信の難しさだと思います。

マザーボード用のビープスピーカーも接続しました(前回参照)。

接続

VCCを5V、GNDをArduinoと共通のGNDに接続します。他にSDAとSCLをArduinoのアナログピンA4, A5に接続。A4, A5はI2C通信用の指定席です。センサー1個の場合はXSHUTとGPIO1は使用しないようです。

Arduinoセンサー
A4VL53L0X SDA
A5VL53L0X SCL
D11ブザー +
GNDブザー -

センサーモジュールは適当な木の板にネジで固定しました。

コード

こんな感じです。

#include <Wire.h>
#include <VL53L0X.h>

//ブザーピン
const int buzzerPin = 11;

//検出しきい値[cm]
const float THRESHOLD_CM = 10.0;

//VL53L0Xオブジェクト
VL53L0X sensor;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  Wire.setClock(100000);

  //センサー初期化
  sensor.init();
  //タイムアウト[ms]
  sensor.setTimeout(10);

  //ブザー初期化
  pinMode(buzzerPin, OUTPUT);
  digitalWrite(buzzerPin, LOW);
}

//センサーで距離[cm]を測る関数
float measureDistanceCm() {
  //計測[mm]
  uint16_t distanceMm = sensor.readRangeSingleMillimeters();

  //タイムアウト、0や非常に大きい値は-1.0を返す
  if (sensor.timeoutOccurred() || distanceMm == 0 || distanceMm > 4000) {
    return -1.0;
  }

  //変換[mm]→[cm]
  float d = distanceMm / 10.0;
  return d;
}

void loop() {
  //距離[cm]
  float distanceCm = measureDistanceCm();

  //検出結果
  bool isNear = (distanceCm > 0 && distanceCm <= THRESHOLD_CM);

  //検出されればブザーを鳴らす
  if (isNear) {
    tone(buzzerPin, 442);       //4kHz
  } else {
    noTone(buzzerPin);          // ブザー OFF
  }

  //ループ待機[ms]
  delay(50);
}

結果

動画はしきい値30cmで検出範囲を調べています。ノイズに強くて床もしっかり検出してしまうので本体をかなり浮かせています。

検出範囲

超音波センサーに比べて角度が狭かったです。境界ギリギリはブザーが「ビ…ビ…」となりますが、範囲内は安定して鳴り続けてくれました。安定感ありますね。

おわりに

少し値段は高いですがレーザー式はいいですね。もう一つ検証したいものがあるのでまた次回。

リアクションのお願い

「参考になった!」「刺激された!」と思ったらぜひリアクションをしましょう。エンジニアの世界はGive and Takeによって成り立っています。これからも無料で良質な情報にアクセスできるよう、Giveする人への感謝をリアクションで示しましょう!

この記事をシェアする

自身のブログ等で使用する場合は引用を忘れずに!

また、寄付も受け付けています。コーヒー1杯でとても喜びます(*˘︶˘*)

 Amazonでギフト券(アマギフ)を贈る

こちらのリンク から金額を指定してお贈りください。(デフォルトで10000円になっているのでご変更ください)

配送:Eメール
受取人:staffあっとvigne-cla.com
贈り主:あなたのお名前やニックネーム
メッセージ:◯◯の記事が参考になりました。など

のようにご入力ください。見返りはありませんのでご了承ください。

 Amazonで食事券(すかいらーく優待券)を贈る

500円 1000円 2000円 5000円 からお贈りください。

配送:Eメール
受取人:staffあっとvigne-cla.com
贈り主:あなたのお名前やニックネーム
メッセージ:◯◯の記事が参考になりました。など

のようにご入力ください。見返りはありませんのでご了承ください。

 その他、ギフト券やクーポン券をメールで贈る

デジタルのギフト券/クーポン券はメールアドレス(staffあっとvigne-cla.com)までお送りください。受領の返信をいたします。
紙のギフト券/クーポン券は 「郵便物はこちらへ」の住所 まで送付してください。名刺やメールアドレスを同封していただければ受領の連絡をいたします。
余った株主優待券等の処理におすすめです。
いずれも見返りはありませんのでご了承ください。

不明点はSNSでお気軽にご連絡ください

ビネクラのTwitter・Youtubeでコメントをください!


Slack・Discordの場合はこちらの公開グループに参加してShoya YasudaまでDMをください!


※当ブログに関することは何でもご相談・ご依頼可能です。

この記事を書いた人
Yasuda

博士(理学)。専門は免疫細胞、数理モデル、シミュレーション。米国、中国で研究に携わった。遺伝的アルゴリズム信者。物価上昇のため半額弁当とともに絶滅寸前。

タイトルとURLをコピーしました