• Skip to main content
  • Skip to primary sidebar
  • Skip to footer
  • HOME
  • Arduino
    • Arduino初心者編
    • Arduino基礎編
    • Arduino応用編
    • Arduino実践編
  • Raspberry Pi
  • microbit
  • XBee
  • Scratch
  • Contact Us
  • Privacy Policy

STEMSHIP

ものづくりを通して、科学を学ぼう!

現在の場所:ホーム / Arduino / Arduino番外編 / 「ELEGOO UNO R3スマートロボットカーV3.0+」で障害物回避(自動運転)をやってみた

「ELEGOO UNO R3スマートロボットカーV3.0+」で障害物回避(自動運転)をやってみた

2019年10月26日 by STEMSHIP 1 コメント

先日、子供がArduinoで何か作りたいと言うので、ELEGOOのスマートロボットカーを購入しました。小学校低学年でも2~3時間で組み立てることができました。プログラムは書き込まれた状態で出荷されているため、組み立てたらすぐに遊ぶことができます。どのような仕組みで動いているのか、簡単に説明したいと思います。

1.障害物回避(自動運転)の動作について

自動車業界のトレンドとして、自動運転があります。自動運転にはいくつかレベルがあり、現在はレベル1やレベル2の機能が搭載された車が増えてきています。その内の「衝突被害軽減ブレーキ」と「障害物回避」の機能を簡素化しておもちゃの車に搭載したのが、今回の作成物です。

次は、障害物を避けるモード。顔をフリフリしながら、頑張って脱出しました!#Arduino #自動運転 pic.twitter.com/XFHZCDPcoo

— STEMSHIP (@stemship) October 19, 2019

2.回路構成

この機能を構成するための主なパーツは下記のとおりです。

  • 超音波センサ(HC-SR04)
  • サーボ(SG90)
  • モータドライバ(L298N)
  • DCモータ4個
  • Arduino-UNO-R3

超音波センサとサーボの使用方法については、以前の記事で紹介していますので、基本的な使用方法についてはそちらを参照してください。

  • ArduinoでSTEM教育​ 基礎編:超音波センサ
  • ArduinoでSTEM教育​ 基礎編:サーボ

実際の車では、障害物を検知するために、ミリ波レーダ・赤外線レーザ・ステレオカメラが使用されています(wikipedia:衝突被害軽減ブレーキ)。今回のキットでは、安価に実現するために超音波センサ(HC-SR04)を使用しています。この製品仕様は、測定可能距離が2cm~400cmで、測定角度範囲が30度となっており、ある程度指向性を持っていることが特徴です。

障害物を検知して止まるだけであれば、前方の障害物のみを常時測定していれば良いのですが、回避するためには周囲の状況も把握する必要があります。実際の車をよく見てみると、車の前方と後方の左右にセンサが取り付けられています。同様に、おもちゃの車では超音波センサを複数使用することで実現できますが、値段が高くなってしまいます。今回のキットでは、1つの超音波センサを使用して、それをサーボモータで動かすことで、周囲の障害物の有無を検知しています。

3.プログラム構成

プログラムの流れは下記のフローチャートのとおりです。

電源を入れると前方の障害物までの距離を測定し、その値が閾値よりも大きければ、一定期間直進します。一方、その値が閾値以下である場合は、サーボを動かして右側の障害物までの距離を測定します。次に反対方向にサーボを動かして左側の障害物までの距離を測定します。その結果、左右ともに障害物がある場合は後退し、左右どちらか(もしくはどちらも)障害物までの距離が遠い場合は、より遠い方に旋回します。

障害物回避プログラムのフローチャート

非常に簡単なプログラムですが、ページ先頭で示した動画のように、それなりに機能しています。ただし、超音波センサは測定ばらつきがあるため、障害物があるにも関わらず、そちらの方向に旋回してしまうことがありました。これを軽減するためには、複数回測定してフィルターで処理をする方法が考えられます。具体的なフィルターの記述方法については、別の記事で紹介したいと思います。

Filed Under: Arduino番外編 関連タグ:ELEGOO

Reader Interactions

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。

最初のサイドバー

CONTACT US

  • Facebook
  • Twitter
  • Youtube

More to See

Arduinoベースのセンサノード:XBeeデータ収集ノードの製作

2021年9月27日 By STEMSHIP

Arduinoベースのセンサノード:Arduinoを使った温度センサの作製

2021年9月21日 By STEMSHIP

XBeeモジュールとBMP280センサを使用してデータ収集する

2021年5月31日 By STEMSHIP

XBeeモジュールでMicroPythonを使ってセンサを読み取る

2021年5月24日 By STEMSHIP

XBeeモジュールでセンサを読み取る:センサノードの設定と測定

2021年5月17日 By STEMSHIP

カテゴリー

  • Arduino (44)
    • Arduino初心者編 (15)
    • Arduino基礎編 (11)
    • Arduino実践編 (4)
    • Arduino応用編 (11)
    • Arduino番外編 (3)
  • MakeyMakey (1)
  • microbit (11)
  • Raspberry Pi (13)
  • Scratch (6)
  • STEM教育 (5)
  • XBee (15)
  • ものづくり教育 (2)
  • 子供の教育 (2)
  • 科学 (6)
  • 算数 (5)

Tags

BLE DCモータ EEPROM ELEGOO ESP32 ESP8266 IoT LCD LED makeymakey MQTT Node-RED scratch STEM教育 WiFi XBee アニメーション オンラインゲーム カメラ クローン ゲーム コスチュームの変更 サーボモータ ステッピングモータ ステートマシン スピーカ タイマー ピンポン ブロック定義 ペン ライントレース ラジコン リスト 分数 割り込み 実験 工作 幼児 当たり判定 温度センサ 無線通信 物理 角度制御 重力 音楽

Footer

最近の投稿

  • Arduinoベースのセンサノード:スケッチ(プログラム)の作製
  • Arduinoベースのセンサノード:XBeeデータ収集ノードの製作
  • Arduinoベースのセンサノード:Arduinoを使った温度センサの作製
  • XBeeモジュールとBMP280センサを使用してデータ収集する
  • XBeeモジュールでMicroPythonを使ってセンサを読み取る

タグ

BLE DCモータ EEPROM ELEGOO ESP32 ESP8266 IoT LCD LED makeymakey MQTT Node-RED scratch STEM教育 WiFi XBee アニメーション オンラインゲーム カメラ クローン ゲーム コスチュームの変更 サーボモータ ステッピングモータ ステートマシン スピーカ タイマー ピンポン ブロック定義 ペン ライントレース ラジコン リスト 分数 割り込み 実験 工作 幼児 当たり判定 温度センサ 無線通信 物理 角度制御 重力 音楽

Search

2023年3月
月 火 水 木 金 土 日
 12345
6789101112
13141516171819
20212223242526
2728293031  
« 10月    

Copyright © 2023 · STEMSHIP.COM