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)をつなげ、
このモータドライバにつなげることでモータの制御を行います。
回路図は以下のようになっています。
かなり適当に引いているので、正直微妙です。
今回、RaspberryPiへの電源供給はGPIOのピンから行ないます。
理由は、Raspberry PiのマイクロUSBポートにはポリスイッチが入っており、
電流を流しすぎると安全のために電源を遮断するためです。
そのため、Raspberry Piとモータドライバ回路への電源供給はGPIOピンから行うことにしています。
これをユニバーサル基板上に作成したものがこちらになります。
これをGPIOソケットにつなげて使用します。
ソフトウェア作成:
ソフトウェアについては、
ブラウザからLEDを制御する記事を応用して作成します。
作成した回路にあった出力をGPIOから出力するだけで、モーターを動かすことができます。
前回のソースに少し修正を加えただけなので、
こちらからダウンロードして参考にしてください。
また、画像表示用のindex.htmlで使用されている画像のIPとポート番号は、
自身で立てたmjpg-streamerのものに変更してください。
:::Download:::
実行:
ソフトウェアの実行では、以下のソフトを同時に起動します。
・ mjpg-streamer (動画配信用)
・ モータ制御用ソフト
ダウンロードしたソフト内にあるものを同時に起動します。
この後、指定したRaspberryPiのIPアドレスにアクセスすることで、
ロボットの操作画面を開くことができます。
実行結果:
この動画のようにロボットを動かすことができました。
所感:
成果物はできてたのに記事を書くのが遅くなってしまいました。
定期的に記事を書くのは難しいですね。
次はRaspberry Piとネットを繋げた回路でも作ってみましょうか。
そろそろソース管理が面倒になってきたのでGitでも使おうかな。
最終更新日から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)をつなげ、
このモータドライバにつなげることでモータの制御を行います。
回路図は以下のようになっています。
かなり適当に引いているので、正直微妙です。
今回、RaspberryPiへの電源供給はGPIOのピンから行ないます。
理由は、Raspberry PiのマイクロUSBポートにはポリスイッチが入っており、
電流を流しすぎると安全のために電源を遮断するためです。
そのため、Raspberry Piとモータドライバ回路への電源供給はGPIOピンから行うことにしています。
これをユニバーサル基板上に作成したものがこちらになります。
これをGPIOソケットにつなげて使用します。
ソフトウェア作成:
ソフトウェアについては、
ブラウザからLEDを制御する記事を応用して作成します。
作成した回路にあった出力をGPIOから出力するだけで、モーターを動かすことができます。
前回のソースに少し修正を加えただけなので、
こちらからダウンロードして参考にしてください。
また、画像表示用のindex.htmlで使用されている画像のIPとポート番号は、
自身で立てたmjpg-streamerのものに変更してください。
:::Download:::
実行:
ソフトウェアの実行では、以下のソフトを同時に起動します。
・ mjpg-streamer (動画配信用)
・ モータ制御用ソフト
ダウンロードしたソフト内にあるものを同時に起動します。
sudo sh stream.sh &
sudo server_motor.py
この後、指定したRaspberryPiのIPアドレスにアクセスすることで、
ロボットの操作画面を開くことができます。
実行結果:
この動画のようにロボットを動かすことができました。
所感:
成果物はできてたのに記事を書くのが遅くなってしまいました。
定期的に記事を書くのは難しいですね。
次はRaspberry Piとネットを繋げた回路でも作ってみましょうか。
そろそろソース管理が面倒になってきたのでGitでも使おうかな。
● COMMENT FORM ●
Re: タイトルなし
型番の件、回答ありがとうございます。
もう一件、電源がよくわからないので質問したいのですが、
以下のような流れなのでしょうか?
(お忙しいところすいません。時間あるときに回答下されば、と思います)
・Webカメラ、RaspberryPi
単3を6本→基板→三端子レギュレータ(5V1A)→セルフパワーUSBハブ→Webカメラ、RaspberryPi
・モーター
単3を6本→基板→モータードライバIC→モーター
もう一件、電源がよくわからないので質問したいのですが、
以下のような流れなのでしょうか?
(お忙しいところすいません。時間あるときに回答下されば、と思います)
・Webカメラ、RaspberryPi
単3を6本→基板→三端子レギュレータ(5V1A)→セルフパワーUSBハブ→Webカメラ、RaspberryPi
・モーター
単3を6本→基板→モータードライバIC→モーター
Re: タイトルなし
返信が遅れてしまい,申し訳ございません.
つなぎ方の件ですが,以下のような流れになっています.
単三6本→基板→三端子レギュレータ(5V1A)→ セルフパワーUSBハブ → Webカメラ
→ RaspberryPi
→ モータドライバ → モータ
RaspberryPiの電源供給は,GPIOピンから行なっています.
つなぎ方の件ですが,以下のような流れになっています.
単三6本→基板→三端子レギュレータ(5V1A)→ セルフパワーUSBハブ → Webカメラ
→ RaspberryPi
→ モータドライバ → モータ
RaspberryPiの電源供給は,GPIOピンから行なっています.
トラックバック
http://chicklab.blog84.fc2.com/tb.php/54-476fe55e
この記事にトラックバックする(FC2ブログユーザー)
検索してもでてこないので…
僕も同じようなことがやりたいので調べています。