Raspberry Piでロボットを作る

概要:


最終更新日から1ヶ月弱。 更新する気が起こらない時期ってありますよね。

さて、今回はRaspberry Piでモーターを制御する方法についてです。

無線LANを導入する記事

GPIO制御の記事

ブラウザからLEDを制御する記事

Mjpg-streamerを使って動画配信をする記事

を組み合わせてブラウザから動かせるロボットを作ります。

 

使用機器:


ハードウェア:

・Raspberry Pi

・セルフパワーのUSBハブ

無線LANアダプタ

Webカメラ

・モータドライバ(後ほど説明)

・モーター

・ 電源回路(エネループ6本から降圧)

 

ソフトウェア:

・mjpg-streamer → Mjpg-streamerを使って動画配信をする記事

python-dev → GPIO制御の記事

pythonのgpioライブラリ → GPIO制御の記事 だいたい今までの記事の構成と同じですね。

 

ハード作成:


今回使用するモータドライバは、定番のTA7291です。 GPIOにバッファIC(TD6004APG)をつなげ、 このモータドライバにつなげることでモータの制御を行います。 回路図は以下のようになっています。 かなり適当に引いているので、正直微妙です。

 robot_curcuit

 

今回、RaspberryPiへの電源供給はGPIOのピンから行ないます。 理由は、Raspberry PiのマイクロUSBポートにはポリスイッチが入っており、 電流を流しすぎると安全のために電源を遮断するためです。 そのため、Raspberry Piとモータドライバ回路への電源供給はGPIOピンから行うことにしています。 これをユニバーサル基板上に作成したものがこちらになります。

 

circuit_pict

これをGPIOソケットにつなげて使用します。

 

ソフトウェア作成:


ソフトウェアについては、 ブラウザからLEDを制御する記事を応用して作成します。 作成した回路にあった出力をGPIOから出力するだけで、モーターを動かすことができます。 前回のソースに少し修正を加えただけなので、 こちらからダウンロードして参考にしてください。 また、画像表示用のindex.htmlで使用されている画像のIPとポート番号は、 自身で立てたmjpg-streamerのものに変更してください。

:::Download:::

 

実行:


ソフトウェアの実行では、以下のソフトを同時に起動します。

・ mjpg-streamer (動画配信用)

・ モータ制御用ソフト ダウンロードしたソフト内にあるものを同時に起動します。

sudo sh stream.sh &
sudo server_motor.py

この後、指定したRaspberryPiのIPアドレスにアクセスすることで、 ロボットの操作画面を開くことができます。

 

control_screen

 

実行結果:


この動画のようにロボットを動かすことができました。

 

所感:


成果物はできてたのに記事を書くのが遅くなってしまいました。 定期的に記事を書くのは難しいですね。 次はRaspberry Piとネットを繋げた回路でも作ってみましょうか。 そろそろソース管理が面倒になってきたのでGitでも使おうかな。