タミヤ カムプログラムロボットをArduino+ジョイスティックで動かしてみる

家での時間が増えてきたので、子どもたちとロボットを作って遊んでいます。今回はロボットに加え、Arduinoを使ってロボットを動かせるようになったので、その内容をまとめてみます。

カムプログラムロボットの組み立て

パーツはニッパーで切ってもらいました。タミヤの圧倒的な切れ味のニッパーがあれば、5歳でもできます。細かいバリは夫婦が夜な夜な削りました。

細かい道具は100均のケースに整理します。ここから設計書にあるパーツを見つけるのは子供の仕事です。支えてあげればネジも回してくれます。

ロボットの心臓となるギアボックス完成。設計書を読んでもわかりにくい部分があります。しかし、「あれー入らないなー」とかを繰り返しながらやっていけば、すぐに終わるぐらいの量です。

カムプログラムロボットは、カムをはめ込んだレールを使って動きます。今流行のプログラミング教育に近いことができますが、小さい子供にはカムがはめにくい構造です。

らさに娘が「リモコンで動かしたい!」というので、Arduinoを使って自由に操作できる方法を試すことになりました。

カムプログラムロボットをArduinoで動かす

カムプログラムロボットとArduinoの連携はカムプログラムロボット工作セットのArduino化改造にとてもいい事例があります。

僕はドライバシールドではなく、持っているパーツで試していきましたが、

などを経験し、最終的にはドライバモジュールを使いました。カムプログラムロボットは単3電池1本で弱々しく動きますが、電流を気にしないでやるなら出力の強いドライバを使うとよさそうです。

モーターの線(上記の青と黄色の線)の刺し口は、あとでArduinoのPIN設定を変えればなんとでもなるため、どちらに刺してもOKです。

モーターは負荷の少ないものでも数百mAの電流を使います。一方、Arduinoはいかにもあるように20mAしか出力できません。

DC出力電流:1つのI/Oピン当り20mA程度、I/Oピン全部の合計100mAまで
(1ピンあたり40mA以上流すと壊れます)

スイッチサイエンスのページより

よって、いろんな本に「Arduinoでモーター使うときは注意するように!」と書いてありました。さらに、モーターの電源とArduinoの電源は分けたほうが回路が壊れないとも書かれていたので、電源モジュールを利用しました。

それでも電流が足りないような動きをしたのですが、ブレッドボード用電源モジュール(MB102)の使い方に「ブレッドボードへ接続する端子の電圧設定それぞれ出力端子の近くにあるジャンパーピンにより設定を行います」とあり、設定が3.3Vになっていたと気が付き解決!本当に助かりました。

このモジュールからArduinoに給電もできますが(電源モジュールの5VをArduino NanoのVINにつなぐだけ)、問題を切り分けるためにArduinoにはモバイルバッテリーをつないでいます。

このあたりは、あとでユニバーサルプレートを使って、カムプログラムロボットの背中に乗せようと思っています。

ロボットの操作は、Arduino 入門 Lesson 13 【ジョイスティック編】(1)を参考にジョイスティックを使います。おもろ家さんは持っているパーツが似ているのでまじ参考になる)。

上下左右で動かせますし、感度の良いものであれば、スピードもHIGHとLOWにわけて動かせるはずです。僕の持っているものはHIGH/LOW判定が難しかったため断念しました。

ソースコードは大きいのでGitHubを確認ください。

まとめ

今回必要になった道具や部品はこちらです。

回路図はこちら。

ドライバモジュールや電源モジュールはちょうどいい画像がなかったので似たようなものを選んでおり、PINの説明をNoteに書いておきます。お使いの部品に合わせてつないでください。

ここまでこれたのは、半月の稼働と、大量に読んだ本と試した部品たちとWeb上の情報のおかげです。あとは、

  • LEDで目を光らせたり(コード上にはあるのでD11、D12に繋げばいいはず)
  • ジョイスティックをクリックしたらミサイルを発射したり
  • バックするときに「バックします」と話したり
  • ジョイスティックのコードをなくしてWifiかBluetoothにしたい

などなど、やりたいことが増えてきたので、ちょっとずつ作っていこうと思います。

だんだんやりたいことに必要な部品を見つけるスキルがついてきた気がする。