- 必要な材料:
- ラインフォロワーの概念
- Raspberry Piラインフォロワーロボットの回路図と説明:
- Raspberry PIのプログラミング:
- Raspberry Pi Line Followerの動作:
ご存知のとおり、RaspberryPiはARMマイクロプロセッサをベースにした素晴らしい開発プラットフォームです。その高い計算能力と開発オプションにより、エレクトロニクス愛好家や学生の手で驚異を解決することができます。Raspberry Piとその仕組みの詳細については、RaspberryPiを使用してラインフォロワーロボットを構築してみましょう。
ロボット工学に興味がある場合は、「ラインフォロワーロボット」という名前をよく知っている必要があります。このロボットは、センサーとモーターのペアを使用するだけで、ラインをたどることができます。RaspberryPiのような強力なマイクロプロセッサを使用して単純なロボットを構築するのは効率的ではないように思われるかもしれません。しかし、このロボットは無限の開発の余地を与えてくれます。Kiva(Amazon倉庫ロボット)のようなロボットはその一例です。他のラインフォロワーロボットも確認できます。
- 8051マイクロコントローラーを使用したラインフォロワーロボット
- Arduinoを使用したラインフォロワーロボット
必要な材料:
- Raspberry Pi 3(どのモデルでも機能するはずです)
- IRセンサー(2Nos)
- DCギアモーター(2Nos)
- L293Dモータードライバー
- 椅子(段ボールを使って自分で作ることもできます)
- パワーバンク(利用可能な電源)
ラインフォロワーの概念
Line Follower Robotは、IRセンサーを使用してラインを追跡できます。このセンサーには、IR送信機とIR受信機があります。 IR送信機(IR LED)は光を送信し、受信機(フォトダイオード)は送信された光が戻るのを待ちます。 IRライトは、表面で反射された場合にのみ戻ります。下の図に示すように、すべての表面がIR光を反射するわけではありませんが、白色の表面だけがそれらを完全に反射でき、黒色の表面はそれらを完全に観察します。 IRセンサーモジュールの詳細については、こちらをご覧ください。
次に、2つのIRセンサーを使用してロボットがラインに沿っているかどうかを確認し、2つのモーターを使用してロボットが軌道から外れた場合に修正します。これらのモーターは大電流を必要とし、双方向である必要があります。したがって、L293Dのようなモータードライバーモジュールを使用します。また、IRセンサーからの値に基づいてモーターに指示するRaspberryPiのような計算デバイスも必要になります。同じものの簡略化されたブロック図を以下に示します。
これらの2つのIRセンサーは、ラインの両側に1つずつ配置されます。どのセンサーも黒い線を検出していない場合、PIは、以下に示すようにモーターに前進するように指示します。
左のセンサーが黒い線になっている場合、PIは、右のホイールだけを回転させて左に曲がるようにロボットに指示します。
右のセンサーが黒い線になっている場合、PIは、左のホイールだけを回転させて右に曲がるようにロボットに指示します。
両方のセンサーが黒い線になっている場合、ロボットは停止します。
このようにして、ロボットはトラックの外に出ることなくラインをたどることができます。それでは、回路とコードがどのように見えるかを見てみましょう。
Raspberry Piラインフォロワーロボットの回路図と説明:
このラズベリーパイラインフォロワーロボットの完全な回路図を以下に示します。
ご覧のとおり、回路には2つのIRセンサーとRaspberrypiに接続された1対のモーターが含まれています。回路全体は、モバイルパワーバンク(上記の回路では単4電池で表されています)から電力を供給されます。
Raspberry Piにはピンの詳細が記載されていないため、下の図を使用してピンを確認する必要があります
写真に示すように、PIの左上隅のピンは+ 5Vピンです。回路図(赤線)に示すように、この+ 5Vピンを使用してIRセンサーに電力を供給します。次に、黒いワイヤーを使用して、アースピンをIRセンサーとモータードライバーモジュールのアースに接続します。黄色の線は、それぞれGPIOピンおよび3に、センサ1及び2の出力端子を接続するために使用されます。
モーターを駆動するには、 4つのピン(A、B、A、B)が必要です。この4つのピンは、それぞれGPIO14、4、17、および18から接続されています。オレンジと白のワイヤーが一緒になって、1つのモーターの接続を形成します。したがって、2つのモーターに対して2つのそのようなペアがあります。
写真に示すように、モーターはL293Dモータードライバーモジュールに接続されており、ドライバーモジュールはパワーバンクから電力を供給されます。パワーバンクのアースがRaspberryPiのアースに接続されていることを確認してください。そうしないと、接続が機能しません。
Raspberry PIのプログラミング:
組み立てと接続が完了すると、ロボットは次のようになります。
今度は、ボットをプログラムして実行するときです。このボットの完全なコードは、このチュートリアルの下部にあります。Raspberry Piでのプログラムと実行コードの詳細については、こちらをご覧ください。重要な行を以下に説明します
ライブラリからGPIOファイルをインポートします。以下の関数を使用すると、PIのGPIOピンをプログラムできます。また、「GPIO」の名前を「IO」に変更しているため、プログラムでGPIOピンを参照する場合は常に、「IO」という単語を使用します。
RPi.GPIOをIOとしてインポートします
時々、私たちが使おうとしているGPIOピンが他の機能をしているかもしれません。その場合、プログラムの実行中に警告が表示されます。以下のコマンドは、PIに警告を無視して、プログラムを続行するように指示します。
IO.setwarnings(False)
PIのGPIOピンは、ボード上のピン番号または機能番号のいずれかで参照できます。ボード上の「PIN29」のように「GPIO5」です。したがって、ここでは、ピンを「29」または「5」で表すことにします。
IO.setmode(IO.BCM)
入出力ピンとして6ピンを設定しています。最初の2つのピンは、IRセンサーを読み取るための入力ピンです。次の4つは出力ピンで、最初の2つは右モーターを制御するために使用され、次の2つは左モーターを制御するために使用されます。
IO.setup(2、IO.IN)#GPIO 2->左IR出力IO.setup(3、IO.IN)#GPIO 3->右IR出力IO.setup(4、IO.OUT)#GPIO 4- >モーター1端子AIO.setup(14、IO.OUT)#GPIO14->モーター1端子BIO.setup(17、IO.OUT)#GPIO17->モーター左端子AIO.setup(18、IO.OUT)#GPIO18->モーター左端子B
IRセンサーは、白い表面上にある場合、「True」を出力します。両方のセンサーがTrueを示している限り、先に進むことができます。
if(IO.input(2)== TrueおよびIO.input(3)== True):#両方の白が前方に移動IO.output(4、True)#1A + IO.output(14、False)#1B- IO.output(17、True)#2A + IO.output(18、False)#2B-
我々はする必要が右折最初のIRセンサーは、黒い線の上に来る場合。これは、IRセンサーを読み取ることによって実行され、条件が満たされた場合は、以下のコードに示すように、右側のモーターを停止し、左側のモーターのみを回転させます。
elif(IO.input(2)== False and IO.input(3)== True):#右折IO.output(4、True)#1A + IO.output(14、True)#1B- IO.output (17、True)#2A + IO.output(18、False)#2B-
我々はする必要が左折第2のIRセンサーは、黒い線の上に来る場合。これは、IRセンサーを読み取ることによって実行され、条件が満たされた場合、以下のコードに示すように、左側のモーターを停止し、右側のモーターのみを回転させます
elif(IO.input(2)== True and IO.input(3)== False):#左折IO.output(4、True)#1A + IO.output(14、False)#1B- IO.output (17、True)#2A + IO.output(18、True)#2B-
両方のセンサーが黒い線を越えた場合は、ロボットを停止する必要があることを意味します。これは、以下のコードに示すように、モーターの両方の端子を真にすることで実行できます。
else:#stay still IO.output(4、True)#1A + IO.output(14、True)#1B- IO.output(17、True)#2A + IO.output(18、True)#2B-
Raspberry Pi Line Followerの動作:
ラインフォロワーのPythonコードをRaspberryPiにアップロードして実行します。ポータブル電源が必要ですが、この場合はパワーバンクが便利なので、同じものを使用しました。私が使用しているものには2つのUSBポートが付属しているので、下の写真に示すように、PIとパワーモータードライバーに電力を供給するために使用しました。
今、あなたがしなければならないのはあなた自身の黒い色のトラックをセットアップして、それの上にあなたのボットを解放することです。黒色の絶縁テープを使用して、任意の黒色の素材を使用できるトラックを作成しましたが、地色が暗くないことを確認してください。
ボットの完全な動作は、以下のビデオで見つけることができます。プロジェクトを理解し、プロジェクトの構築を楽しんだことを願っています。ご不明な点がございましたら、下のコメントセクションに投稿してください。