ようやくラズベリーパイを使って簡易的なロボットの制作が完成しました。
当初の予定はこちら↓
だったんですけども、時間が無くなったのでとりあえず、「スマホで操作できるカメラ付きキャタピラロボット」のみとなりました。
今後時間があれば少しづつ機能拡張していきますので、今回は出来上がったロボットの詳細をまとめたいと思います。
もしロボット制作に興味があれば、ぜひ参考にしていただければと思います。
※2020/9/4 追記
Raspberry Pi 4B対応のラジコン作成をより詳細にまとめていますので、こちらの記事の方を是非参考にしてください。↓
概要
段ボールの模型にキャタピラをつけて、スマホでカメラの映像を見ながら操作できる簡易ロボット。
制御にラズベリーパイ3を使用。
外出先からの遠隔操作も可能。
こんな感じです。え?見た目センス悪い?いやいや、斬新でいいでしょう。
使用部品
・TAMIYAダブルギヤボックス(左右独立4速タイプ)
・TAMIYAトラック&ホイールセット
・ブレッドボード
・モバイルバッテリー × 2(5Vと7V)
・ジャンパーワイヤー(メスーオス、オスーオス)40本入り
・ユニバーサルプレート
・ラズベリーパイ3(カメラモジュールつき)
・段ボール(頭模型)
・モータードライブIC(東芝TA7291P)×2
制作内容
ハードウェア
土台部分
まず、モーター、ホイール、ユニバーサルプレートを使って土台部分を作ります。
基本取り扱い説明書通りやればある程度形にはなります。
筆者の場合、2階部分を固定する柱を購入し忘れたので、ホイールセットのパーツの枠(ランナー)を強引に加工して使いました。
制御回路
ハードの要、重要ポイントです。モーターを制御するICを実装し、ラズパイのGPIOピンを使って回路を形成します。
筆者は「ラズベリーパイで遊ぼう」の本を参考にしました。
使用するGPIOポートGNDと5Vを省くと6.13.19.26.の4つです。配線図は次の通りです。
ブレッドボードを使用すればはんだ付けは不要なので楽でした。
参考書ではショベルドーザーを作ってますが、今回はそこを省いたのでモータードライブICは左右のキャタピラ分の2個で回路を組みました。
あとは空いてるスペースにラズパイとモバイルバッテリーを乗せて完成。
電源はラズパイ用とモーター用の2系統用意するのが電力供給面で良しとされています。
筆者の場合は、ラズパイの5Vとは別でモーター側の電源に7Vほど印可させています(ICの4と8ピン)。ここも5V前後で動くことは動くけど、かなり遅いです。これは単にモバイルバッテリーを2つ乗せてるからけっこうな重量になってる為でしょう。
重量がある場合は、できれば6V~7Vほしいところですね。
最後に配線処理して斬新な段ボールをかぶせて完成。
ソフトウェア
GPIO制御ソフト「webiopi」
キャタピラの操作は「GPIO」ピンを使って制御します。
制御には「webiopi」というソフトウェアがあり、ラズパイにインストールしてこれを使います。
こちらも「ラズベリーパイで遊ぼう」に詳細がのっているので、参考にしてもらえばOKですね。ネットにものってますけど。
ただこのツールは数年前に更新が途絶えてて、修正パッチが必要だったり少々面倒でした。
制御プログラム
「webiopi」はラズパイ上でサーバーを立ち上げて、そこにアクセスすることでハードウェアをコントロールする仕組みです。
つまり、ブラウザで各種操作ができるということです。
ですので、「HTML」「CSS」はもちろん、「マクロ」などのプログラム言語が必須になります。
こんなもの一から作れるのはプロの所業ですので、これも前途した本を参考にすればいいと思います。
サンプルのプログラムがダウンロードできるので、そのままつかってもいいし、ある程度知識があれば、一部変更するなどすればより好みの仕上がりになるでしょう。
一応後日、制御プログラムの記事をアップするので、使ってみたい方は参照してください。
カメラストリーミング画像の追加
「ラズベリーパイで遊ぼう」の本には、操作画面にカメラ映像がのっかりません。
シンプルにキャタピラだけの操作ならまるまる前途したダウンロードデータのままでいいですが、せっかくなんで操作画面にロボット目線の映像があれば楽しいですよね?
ってことで、筆者は一部だけプログラムに変更を加えました。
いたって簡単です。ダウンロードした「rover.html」のプログラム<header>部に記述されている「ラジコンカーを走らせる」のタイトルを消します。(残してもいいけど、多分じゃま。)
そこに、
<img src=”http://ラズパイのローカルIP:8080/?action=stream”/>
とカメラストリーミング映像のスクリプトを挿入します。これだけで操作画面にカメラ映像が映し出されます。
動作確認
まず、スマホやPCからSSH接続でラズパイのシェルを開きます。(ラズパイの電源が入っていること、および同じLAN内であることが前提)
そして、mjpg-streamerを立ち上げます。
※mjpg-streamerについてはこちら↓
webiopiも立ち上げます。
これで準備OKですので、あとはブラウザで、操作パネルのhtmlを開きます。
”ラズパイのローカルIP:8000/操作パネルのHTMLが入ってるフォルダ/操作パネルのHTML名”
これで操作パネルが表示され、かつ上部にカメラ映像が出ていればひとまず成功。
最後に、上下左右のボタンでキャタピラロボが動くことが確認できれば大成功です。
ロボット完成(7V駆動)↓
DIY「カメラ付きラジコンロボ」ラズパイ3で作ってみよう!まとめ
今回のロボット作成、けっこう疲れましたけど、楽しかったです。
しかも、かなり勉強になります。
ほぼ参考書のままとはいえ、ブラウザで操作する事からHTML,CSS,マクロなどについて結構知識を得ることができると思います。
どうしてもプログラムを見る機会が多くなるんで、自然と分からないタグとか調べたりして、そのうちなんとなくなにを指しているのかが分かるようになります。
とにかく遊びながら勉強できるんで、おすすめです。
ロボット作り、ぜひお試しください。