小型の二輪ロボットを作る:回路編
はじめに
前回二輪ロボットの機体だけ作ったのですが、今回は回路です。ほとんど使ったことがある部品だったので難なく組むことができたのですが、電池を増やさないといけなくなってしまいました。その経緯も紹介しようと思います。
すぐにでも基板にはんだ付けをして機体に取り付けたいところですが、まずはブレットボードでの動作確認です。動作しない回路をはんだ付けしてしまったら、結局やり直すことになります。
ちなみに宇宙機開発でも BBM (ブレッド・ボード・モデル) という試作段階のものがあります。以前所属していた団体では、これに準じてブレッドボードで試験をしてからはんだ付けをするように教えられました。
▼JAXAの開発モデルについて紹介されているページ
https://humans-in-space.jaxa.jp/faq/detail/000491.html
なおそれぞれの部品の使い方については、また別の記事で紹介しようと思います。
超音波センサー(HC-SR04)、ジャイロ加速度センサー(MPU6050を載せたGY-521)については、いつも使っているArduinoスターターキットに入っていたものです。回路とプログラムはチュートリアルを参考にしています。
回路を組む
すべての部品を統合した回路図を以下に示しますが、最初から全部つなげると一斉に壊れるかもしれないので、一つずつ動作確認をしてから慎重につなげています。どうしても人間のミスというのは起こりうるので、試すのであれば気を付けてください。
▼統合した回路図
▼実際の回路。どうしても複雑になるので、ミスが起こりやすいです。
動作確認をする
全て統合して動作確認をしたところ、基本的には問題なく動作したのですが、まずはそのときの様子をご覧ください。
▼一回目の様子。パソコンから有線で操作しています。XBeeでも制御できるのですが、今のところプログラムの関係でタイミング次第になっています。
想定よりもかなり遅かったです。これで走らせたら、のろのろ進みそうにしか見えませんでした。ギア比も関係しているのかと思い、左側のギア比を変えて二回目を行ったのですが、回転速度が遅くなるギア比だったので、当然遅くなっていました。
一応比較のためにギア比はそのままにして、次は電池三本で試してみました。
▼三回目の様子。ギア比は、左が149.1:1、右が71.4:1になっています。
動画だと分かりにくいのですが、明らかに電池三本のほうが勢いがありました。説明書に書かれているモーターの基本電圧が3Vだったので、電池を増やしたくなかったのですが、二本だとさすがに弱すぎるので増やすことにしました。
この後、プログラムを見返すと速度が制限されていることに気づきました。とりあえず動作を確認するために過去のコードを切り貼りしたのですが、完全に忘れていましたね……
速度制御のプログラムをrpm()として定義しているのですが、中身はanalogWrite関数なので、値は0~255です。動画撮影時はrpm(100)で回していました。試しにrpm(255)で回したところ、電池二本だとあまり変わらなかったのですが、電池三本だとものすごい勢いで回転していました。あとはプログラムでちょうどいい速度に抑えられそうです。
▼実際のプログラム。モータードライバー、超音波センサー、ジャイロ加速度センサー、XBeeの順にプログラムを実行しています。
最後に
モーターの出力関係で紆余曲折がありましたが、電池を一本増やせば大丈夫そうです。機体に電池をもう一本取り付ける必要が出てきてしまいましたが、なんとかなるでしょう。他のセンサー類は何の問題もなく動作しました。
今後はプログラムにコメントをもっと書いていくべきでしょうね。速度を制限したままのことを完全に失念していました。loop文の中などにコメントを追加しましたが、完全なものになったら一番始めにプログラムの説明をちゃんと書こうと思います。
今回で回路は確定したので、次回ははんだ付けです。