メカナムロボットのLesson2で使っている超音波センサーを動かしてみました。

メカナムホイール

OSOYOOさんのメカナムロボットのLesson2では超音波センサーとサーボーモーターを使ったプログラムになっています。

こちらもGitHubにまとめ始めていますが、まだ途中です。

超音波センサーを試してみる

ちょうど同じ超音波センサーを持っていたので、Lesson2のソースコードを参考にしてArduinoに接続してみました。

HC-SR04_test.jpeg

シリアルモニタに超音波センサーから出力された距離の情報が出力されました。

HC-SR04_result.jpeg

今回作成したテストプログラムとfritzingで作成した実体配線図もGitHubに登録しています。

Thinkercadでシミュレートしてみる

Thinkercadでも同様に実体配線図が書けると聞いたので、こちらでも試してみました。

Thinkercadではブロックでプログラムを書けるようなので試してみたところ超音波センサー専用のブロックがあり、これを使うと同様なArduinoプログラムを生成することができ、おまけにシミュレートまでできるようです。

HC-SR04_thinkercad.jpeg

今回Thinkercadで生成されたArduinoプログラムです。コメントもついてきれいなソースです。

int distance = 0;

long readUltrasonicDistance(int triggerPin, int echoPin)
{
  pinMode(triggerPin, OUTPUT);  // Clear the trigger
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  // Sets the trigger pin to HIGH state for 10 microseconds
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);
  pinMode(echoPin, INPUT);
  // Reads the echo pin, and returns the sound wave travel time in microseconds
  return pulseIn(echoPin, HIGH);
}

int counter;

void setup()
{
  Serial.begin(9600);

}

void loop()
{
  for (counter = 0; counter < 10; ++counter) {
    Serial.println(0.01723 * readUltrasonicDistance(7, 6));
    delay(1000); // Wait for 1000 millisecond(s)
  }
}

Thinkercadを使って、メカナムロボットのプログラムを作ってみるのも理解しやすく面白いかもしれません。

次はLesson2のサーボモーターのところを見ていきます。

コメント

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