検索コード

コース レッスン9/10: Raspberry Pi Pico 4WDスマートカーを使用した障害物回避

このレッスンはの一部です: Raspberry Pi Pico 4WDスマートカー

コース レッスン9/10: Raspberry Pi Pico 4WDスマートカーを使用した障害物回避

はじめに

このガイドは、Robojaxのコースレッスン9/10に基づいており、SunFounder Raspberry Pi Pico 4WDスマートカーキットを使用して障害物回避ロボットを構築する方法を説明します。このプロジェクトは、サーボ駆動の超音波センサーとモーター制御を組み合わせ、環境を自律的にナビゲートできるロボットを作成します。センサーをレーダーのようにスイープさせることで、車は障害物を検出し、進むべき明確な経路をインテリジェントに選択します。これは、ロボット工学、センサー統合、自律ナビゲーションへの完璧な入門となります。

このプロジェクトは単なるおもちゃではなく、多くの実用的なアプリケーションの基盤です。ここにいくつかのアイデアをご紹介します:

  • 自律探査ロボット:人間の介入なしに部屋や屋外エリアをマッピングして探索できるロボットを構築します。
  • スマート掃除機:同じ原理を使用して、掃除中に家具や壁を回避しながら部屋をナビゲートするロボットを作成します。
  • セキュリティパトロールボット:車を周囲のパトロール用にプログラムし、超音波センサーを使用して予期しない障害物や侵入を検出して報告します。
  • AIの教育プラットフォーム:このプロジェクトを足がかりとして、経路探索やSLAM(自己位置推定と地図作成の同時実行)などのより複雑なアルゴリズムを学びます。

このレッスンでは、車が意思決定を行うためのコアロジックとコードに焦点を当てます。車はサーボモーターを使用して超音波センサーを回転させ、レーダーとして機能して0度から180度までの距離を測定します。コードはこのデータを分析して最も広い空き経路を見つけ、それに応じて車を前進、左折、または右折させます。ビデオでは、個々のコンポーネントのテストから、実際の迷路での最終的な障害物回避アルゴリズムの実行まで、プロセス全体をデモンストレーションしています。

ハードウェア/コンポーネント

このプロジェクトはSunFounder Raspberry Pi Pico 4WDスマートカーキットに基づいています。このレッスンで使用される主要コンポーネントは以下のとおりです:

  • Raspberry Pi Picoマイクロコントローラーボード
  • 4つのモーターを備えたSunFounder 4WDスマートカーシャーシ
  • モータードライバーボード
  • 超音波距離センサー(HC-SR04タイプ)
  • サーボモーター(超音波センサーを回転させるため)
  • 電源(車用バッテリー)

配線ガイド

SunFounderキットは簡単に組み立てられるように設計されており、配線は通常、専用の拡張ボードを介して事前に接続されています。超音波センサーはサーボモーターに取り付けられ、それがメイン制御ボードに接続されます。このセットアップにより、センサーを回転させて環境をスキャンできます。お使いのキットに固有の詳細な配線図については、公式のSunFounderドキュメントを参照してください。

主要な接続には、超音波センサーのトリガーピンとエコーピン、およびサーボモーターのシグナルピンが含まれ、これらはすべてRaspberry Pi Picoの特定のGPIOピンに接続されます。モータードライバーもPicoに接続され、4つの駆動モーターを制御します。ビデオでは、配線図を含む完全なドキュメントがキットと一緒にダウンロード可能であることが言及されています。

コードの説明

このレッスンでは、`obstacle_avoid` サンプル内のロジックに焦点を当てます。コードはMicroPythonで記述されています。完全なプログラムはダウンロード可能ですが、車の動作を制御する主要なユーザー設定可能パラメータに焦点を当てます。これらは通常、スクリプトの先頭にあります。

ロボットのパフォーマンスを微調整するために調整できる主な変数は次のとおりです:


# レーダーと移動パラメータ
radar_reference = 20  # 安全と見なされる最小距離(cm)
step_angle = 10       # 各レーダースキャンステップの角度増分
forward_speed = 30    # 前進時のモーター速度(0-100)
turn_speed = 50       # 旋回時のモーター速度(0-100)
forward_scan_angle = 50  # 障害物が検出されないときにサーボがスキャンする角度
  • radar_reference:これはセンチメートル単位の重要な安全距離です。障害物がこの値より近くで検出された場合、車はそれを「危険」と見なし、回避操作を開始します。ビデオでは20cmに設定されています。
  • step_angle:これはレーダースキャンの解像度を定義します。値が小さいほど(例:10度)、詳細なスキャンが可能ですが、時間がかかります。値が大きいと高速ですが、狭い障害物を見逃す可能性があります。
  • forward_speed と turn_speed:これらはモーターに送られる電力を制御します。車の全体的な速度と機動性を変更するために調整できます。旋回速度は、車が効果的に旋回できるようにするため、しばしば高く設定されます。
  • forward_scan_angle:前方に差し迫った危険がない場合、車はスキャンをこの角度(前方を中心とする)に狭め、直接経路上の障害物をより頻繁にチェックし、よりスムーズな前進移動を可能にします。

ビデオでは、主要な意思決定ロジックも説明されています。`get_direction()` 関数は、距離読み取り値のリスト(安全/不安全を1と0に変換)を分析して、最も広い連続した「1」の経路を見つけます。この最も広い経路がどこにあるかに基づいて、関数は「forward」、「left」、または「right」の方向を返します。メインループはその後、対応するアクションを実行し、車を旋回させて前方の経路がクリアになるまで再スキャンします。

ライブプロジェクト/デモンストレーション

このビデオでは、プロジェクトの詳細なデモンストレーションが行われます。まず、超音波センサー単体をテストし、距離を測定してシェルに値を出力する様子を示します。次に、インストラクターがフローチャートを用いて障害物回避アルゴリズムを説明し、左折・右折の判断プロセスを詳しく解説します。最後に、車を箱で作った小さな迷路に置き、障害物回避動作が実際に機能する様子を実演します。車は迷路をうまく進み、左右に曲がりながら前方の進路を見つけ出します。

ビデオチャプター

  • [00:00] 障害物回避の紹介
  • [01:31] SunFounderスマートカーキットと機能の概要
  • [02:47] 障害物回避機能の仕組み
  • [03:34] 超音波センサーのテスト
  • [07:45] 障害物回避アルゴリズムとフローチャートの説明
  • [12:49] メインの障害物回避コードの分析
  • [15:43] 障害物回避ロジックのライブデモンストレーション
  • [22:53] 障害物迷路を使った最終デモンストレーション
  • [24:35] まとめと次のステップ
コードは添付されていません。

リソースと参考文献

まだリソースはありません。

ファイル📁

ファイルは利用できません。