モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

マイクロマウス (頭はいいけど足腰が弱い版)

モーダルを閉じる

ステッカーを選択してください

お支払い手続きへ
モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2016/01/03
最終更新最終更新
2024/07/14
記事区分記事区分
一般公開

目次

    博士課程学生です。電子工作はただの趣味です。

    一定の規則のもとに用意された迷路を、独自の制御プログラムでバランスを取りながら進みます。その過程で得られた壁情報を自身の思考ルーチンで解き、ゴールを目指します。世界的にも有名な競技ロボットで、大会では、スタートからゴールまでに要した時間を競います。上級者になると、コースを斜めに直進して走らせたり、曲線的にターンしたりと、タイムを縮めるための様々なテクニックを使うようになりますが、私を含め初めたばかりの人はゴールさせるだけでも精一杯です。

    マイクロマウスの製作に要した時間は約半年、かかった費用は知人にモーターを借りることができたため、それを除いて約1万円です。高度な知識やテクニック、開発用の設備も求められることから、電子工作の中では難しい部類に属すると思います。とはいえ、製作自体はとても楽しいものですので、是非一度挑戦してみてはいかがでしょうか。以下にロボット開発のおおまかな流れを記載します。

    工具およびパーツを用意

    ニッパー、はんだごて、ラジオペンチといった必要な工具を揃えておきましょう。日用品売り場でもある程度は揃えられると思いますし、マルツパーツ館などの専門店に足を運ぶのもよいと思います。あるいは、Amazon等でインターネット購入するのが一番楽かもしれません。一方、パーツについてはさすがに専門の場所でないと入手できません。近場に東京の秋葉原や大阪の日本橋といった電気街があればいいのですが、ない場合は、秋月電子通商などの専門の販売サイトを利用しましょう。

    シャーシおよびタイヤを作成

    最初の難所がここです。電子回路一式やバッテリー等を乗せるシャーシ、およびタイヤとその車軸の機械製作です。フリーの2D CADを用いて設計し、紙に実物大で印刷します。これをアルミ版に貼り付け、切削時の目印にします。旋盤等の工作機械を利用できる環境がある場合はよいのですが、ない場合でも、マイクロマウス程度の機械工作であり細部にこだわらない場合は、糸鋸等を駆使すれば製作自体は何とかなります。ただ、この機械工作部分の出来栄えが、後々のソフトウェア開発における制御のしやすさに影響してくるので丁寧に仕上げるようにします。

    バッテリーの作成

    エネループ等の充電池を、回路およびモーターの動作に必要な電圧になるよう直列に接続し、電池パック化します。具体的には、充電池の正極と負極をはんだづけしていった後、ペットボトルの包装プラスチックでつつみ、ドライヤーの熱風を当てることで収縮させ、パッキングします。この電池パックの充電には、市販のラジコン用バッテリーの充電器の中から、電圧が近いものを流用すればよいです。ただし、専用の充電器ではありませんので、発熱には十分に注意しましょう。

    回路を作成

    四種類の回路を製作します。それぞれの動作確認を行った後、ロボットとしてまとめます。

    マイコン制御用の回路

    SH7125Fというマイコン、およびそれに定電圧の電力を供給するためのレギュレータ、リセットスイッチ、プログラムの書き込みおよびデバッグ時にPCとシリアル通信するための端子等がすべてまとまった回路です。

    PCとのシリアル通信を行っている様子

    マイコンでLEDを点灯させてみている様子

    センサ回路

    迷路の壁に可視光を当て、反射された光の強さを感知して数値化し、その大きさを基準値と比較することで、壁からの距離を計算することができます。センサ回路はその計算に必要な情報を取得するための回路です。計算自体はマイコンが行います。

    ロボット本体に乗せてみた様子。

    モータドライバ回路

    DCモーターを制御するためには、専用のモータードライバ回路が必要になります。上記写真はその回路を完全に自作してみたものです。ただ、実際は途中で壊れてしまい、市販のモータードライバICを利用するはめになりました。

    モーターを回している様子

    ロボット本体に乗せてみた様子

    昇圧回路

    作成した電池パックの電圧が、市販のモータードライバIC (画像左) に供給するための電圧としては不足していたので、追加で昇圧回路 (画像右) を用意しました。

    ソフトウェア開発

    大きくは二種類、細かくは三種類のプログラムに分かれています。

    ロボット本体を制御するためのプログラム

    センサ回路から得られる情報から壁との距離を把握し、モータードライバ回路を利用して左右それぞれのDCモーターに電圧を加える時間を調整することで、進行方向や移動速度等を制御します。実装には、古典的なPID制御を利用しています。ちなみに、DCモーターに付属しているエンコーダーで単位時間あたりのモーターの回転量を把握することで速度を計算しています。

    迷路を解くためのプログラム

    制御プログラムで迷路を進む中で得られた壁情報をもとに、スタートからゴールまでの最短距離を計算します。今回採用したアルゴリズムのイメージは次のようになります。スタート地点で水を放出しつづけると、閉鎖的な迷路であれば、いずれ水はゴールに到達します。最初に到達した水が通ってきた経路が最短であるという仮定のもと、計算を行います。上の画像はその計算結果の一例です。

    シミュレータプログラム

    「迷路を解くためのプログラム」の動作テストを行うためのシミュレータプログラムです。キャッチコピーの「頭はいいけど足腰が弱い」とは、シミュレータ上では華麗な走りを見せる、つまり理論上は最短経路を発見できる頭脳を有しているにも関わらず、ロボット本体の制御がうまくいかず、そもそも壁情報が集められない、という残念な状況を表現したものです。

    回路図 (主要なパーツ一覧)

    実際に製作で利用した回路図、およびそれをどのように基板上に配置するかをまとめた資料です。

    マイコン制御用の回路

    配置図

    センサ回路

    配置図

    モータードライバおよび昇圧回路

    サンプルプログラム

    製作したプログラムをすべてGitHubのページにアップロードしました。サンプルとしてご利用ください。

    完成までの道程は長いのです

    C++の勉強

    形になっただけでも満足できます

    大変なのは制御パラメータの調整

    完成

    Likeボタン(off)0
    詳細設定を開く/閉じる

    記事内で用いられたソフトウェア (電子回路図、CAD、ソースコード等)

    • ファイル名種別サイズアップロード日時
    • マイクロマウス 回路図と配置図.zip電子回路図670KB2024/12/30 22:16
    アカウント プロフィール画像

    博士課程学生です。電子工作はただの趣味です。

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    >>さらに詳しくステッカーを贈る
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      ログインする

      関連記事