Raspberry Pi で障害物回避ロボットを自作 – 初心者ガイド
Raspberry Pi 初心者で、ソフトウェアとハードウェアを融合した実践的なプロジェクトを探しているなら、このガイドが最適です。Python で制御する赤外線センサー搭載の障害物検知・回避ロボットの構築手順を解説します。
障害物回避ロボットはロボティクス学習に人気で、驚くほど簡単に組み立てられます。このチュートリアルに従えば、信頼性の高い物体回避機能をロボットに追加でき、Python と Raspberry Pi の GPIO エコシステムを探求できます。
必要なもの
- Raspberry Pi B、B+、2、3、4 および基本周辺機器(SD カード、キーボード、マウス、電源)。
- IR 距離センサーモジュール(例:人気の 4 チャンネル IR センサー)。
- シャーシに適したトルクのギアード DC モーター。
- L293D モータードライバーボード。
- ロボットシャーシとホイール。
- 安定性用キャスターホイール。
- ブレッドボードと両面テープ。
- オス-オス / メス-オス ジャンパーワイヤー。
- 9 V 電池と適切なコネクター。
- プッシュボタンと 220 Ω 抵抗(電源オン制御用)。
仕組み
ロボットの核心機能は、5-6 cm 範囲内の物体を検知する 2 つの IR センサーに依存します。物体があるとセンサーの出力ピンが LOW(0 V)に、物体がないと HIGH(5 V)のままです。Raspberry Pi はこれらのデジタル信号を GPIO ピンで読み取り、添付の Python スクリプトがモーターを適切に制御します。
IR(赤外線)モジュールは IR LED 送信機とフォトダイオード受信機で構成されます。物体が放出された赤外線の一部を反射して受信機に戻すと、近接を示す LOW 信号が発生。これらの信号は Pi の GPIO 入力にルーティングされます。
ロボット起動時(プッシュボタン押下でトリガー)、Pi は L293D ドライバー経由で DC モーターを前進させます。IR センサーが障害物を検知すると、スクリプトはまずモーターを短時間逆転させ、続いて旋回して障害物を回避します。
ステップ 1:IR センサーの配線
センサーに Raspberry Pi から 5 V と GND を供給し、出力ピンを GPIO ピン 3 と 16 に接続(公式 GPIO ピンアウト図 参照)。ボードの GPIO.BOARD モードではヘッダー上の見た目通りにピン番号が割り当てられます。
以下のスクリプトを irtest.py として保存:
import RPi.GPIO as GPIO
import time
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
# 右センサー (GPIO 3)
GPIO.setup(3, GPIO.IN)
# 左センサー (GPIO 16) プルアップ付き
GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)
while True:
right = GPIO.input(3)
left = GPIO.input(16)
if right == 0:
print "Obstacle detected on Right", right
time.sleep(0.1)
elif left == 0:
print "Obstacle detected on Left", left
time.sleep(0.1)
sudo python irtest.py で実行。センサーに手をかざすと、コンソールにどちら側が障害物を検知したか表示されます。
ステップ 2:L293D ドライバー経由でモーターを接続
L293D に 9 V 電池で給電(プラスを + ピン、マイナスを – ピン)。ボードのグラウンドを Raspberry Pi の GND に接続。モーター出力をドライバーの出力ピンに、制御ピンを追加の GPIO に配線(ピン定義は L293D データシート 参照)。モーター配線完了後、スクリプトで前進、後退、旋回を指令できます。
ハードウェア組み立て後、Raspberry Pi に電源を入れ、プッシュボタンを押せば、障害物を回避しながらナビゲートするロボットの完成です。
さらなる学習リソースとして、Raspberry Pi と Arduino に関する無料 eBook をダウンロードしてスキルを深めてください。
製造プロセス
- 5ドルI2C温度センサーで作るRaspberry Pi温度ロガー
- Raspberry Piで気象観測ステーションを構築し、日次天気データをメール送信
- Raspberry Pi用DIY赤外線モーションセンサー構築 - ステップバイステップガイド
- Raspberry PiでPIRモーションセンサーとLEDを制御
- Raspberry Piで低コスト土壌水分センサーを構築 - スマート灌漑に活用
- Raspberry Piガイガーカウンター構築 - オープンハードウェア放射線センサーチュートリアル
- Raspberry Pi、DHT11、ThingSpeakで作る初めてのIoTプロジェクト
- Raspberry Piの可能性を最大限に引き出す必須アクセサリー
- Raspberry Pi光センサーチュートリアル - LDRを配線してPythonで光量を読み取る
- Raspberry Pi、MCP9808、InfluxDB、Grafanaで作る家庭温度モニター
- Raspberry Pi GPIOマスター:PIRモーションセンサーをB+/Model 2でインターフェース