Raspberry Piでロボットを作る
概要:
最終更新日から1ヶ月弱。 更新する気が起こらない時期ってありますよね。
さて、今回はRaspberry Piでモーターを制御する方法についてです。
を組み合わせてブラウザから動かせるロボットを作ります。
使用機器:
ハードウェア:
・Raspberry Pi
・セルフパワーのUSBハブ
・無線LANアダプタ
・モータドライバ(後ほど説明)
・モーター
・ 電源回路(エネループ6本から降圧)
ソフトウェア:
・mjpg-streamer → Mjpg-streamerを使って動画配信をする記事
・pythonのgpioライブラリ → GPIO制御の記事 だいたい今までの記事の構成と同じですね。
ハード作成:
今回使用するモータドライバは、定番のTA7291です。 GPIOにバッファIC(TD6004APG)をつなげ、 このモータドライバにつなげることでモータの制御を行います。 回路図は以下のようになっています。 かなり適当に引いているので、正直微妙です。
今回、RaspberryPiへの電源供給はGPIOのピンから行ないます。 理由は、Raspberry PiのマイクロUSBポートにはポリスイッチが入っており、 電流を流しすぎると安全のために電源を遮断するためです。 そのため、Raspberry Piとモータドライバ回路への電源供給はGPIOピンから行うことにしています。 これをユニバーサル基板上に作成したものがこちらになります。
これをGPIOソケットにつなげて使用します。
ソフトウェア作成:
ソフトウェアについては、 ブラウザからLEDを制御する記事を応用して作成します。 作成した回路にあった出力をGPIOから出力するだけで、モーターを動かすことができます。 前回のソースに少し修正を加えただけなので、 こちらからダウンロードして参考にしてください。 また、画像表示用のindex.htmlで使用されている画像のIPとポート番号は、 自身で立てたmjpg-streamerのものに変更してください。
実行:
ソフトウェアの実行では、以下のソフトを同時に起動します。
・ mjpg-streamer (動画配信用)
・ モータ制御用ソフト ダウンロードしたソフト内にあるものを同時に起動します。
sudo sh stream.sh & sudo server_motor.py
この後、指定したRaspberryPiのIPアドレスにアクセスすることで、 ロボットの操作画面を開くことができます。
実行結果:
この動画のようにロボットを動かすことができました。
所感:
成果物はできてたのに記事を書くのが遅くなってしまいました。 定期的に記事を書くのは難しいですね。 次はRaspberry Piとネットを繋げた回路でも作ってみましょうか。 そろそろソース管理が面倒になってきたのでGitでも使おうかな。