自己バランスロボットを作りました Vol #1 – 回路設計

自己バランスロボットとは?

  • 自己バランスロボットとは、外部から支えられることなく、自らバランスを取り続けるロボットのことです。代表的な例として、二輪で直立しながら走行するロボットが挙げられます。このロボットは、センサーと制御アルゴリズムを用いて重心を常に調整します。

自己バランスロボットの動作は?

  • 図Aのような構成のロボットが、図Bのように水平面に対して垂直に位置している場合、その姿勢を維持します。一方、図Cは垂直の位置から角度θだけ傾いた状態を示しています。このまま放置すると傾きはさらに大きくなり、最終的に倒れてしまいます。そこで、このロボットに傾きを検出するセンサーを取り付け、傾きの情報から車輪の回転を計算してモーターを制御することで、倒れずにバランスを取り続ける動作が可能になります。
  • Arduinoと組み合わせて、加速度・角速度センサ(GY-521、MPU6050)、DCモーター、連続回転サーボモータ(SG90-HV)の操作方法を学習しました。角速度センサでロボットの傾きを検出し、連続回転サーボモータを回転させて重心を調整することで、バランスを取れるロボットを作成できそうです。また、超音波距離センサ(HC-SR04)の動作についても学習しました。ロボットの前方に壁などの障害物がある場合、超音波距離センサを用いて移動を制御できる仕組みも追加できそうです。

自己バランスロボットの主要部品は?

  • 自己バランスロボットを構成する主要部品を今まで学習した部品から選択しました。Arduinoボード、加速度・角速度センサ、連続回転サーボモータ、車輪、電池、超音波距離センサを使います。
  • DCモーターの回転数は高いので減速ギアを使って回転数を落とす必要があります。そうするとモータに係る構成部が大きくなってしまいます。できるだけ小型の構成にしたいので、連続回転サーボモータを使うことにしました。Amazonで車輪との組み合わせで連続回転サーボモータ[FS90R]が販売されていたのでこのモーターを購入しました。
  • バッテリーは電流の容量の大きなラジコン用のリポ バッテリー[K6 7.4V 850mAh 35C70C]と[充電器]を購入しました。
  • 連続回転サーボモータへの電圧は一定にしたいので、リポ バッテリーの電圧を5Vの定電圧ICを使って一定にします。
主要部品品名
連続回転サーボモーターFS90R
加速度・角速度センサ―GY-521 (MPU6050)
超音波距離センサHC-SR04
制御ボードArduino UNO R3
バッテリーK6 7.4V 850mAh 35C70C
5V 定電圧ICLM7805 (5V 1.5A)

自己バランスロボットの構想は?

  • 主要部品は既に入手済みで、それぞれの大きさは解っているので、自己バランスロボットのどのように組み立てるかを考えます。Arduino UNOとバッテリーが大きな部品になります。色々と考えて構想をまとめました。横幅は15cm、縦は12cm程度の大きさです。
  • 超音波距離センサ、加速度・角速度センサ、定電圧ICなどは自作シールドを作成し、そこに配置します。半田付けで配線する煩わしが減らします。また完成品の外観がさっぱりとします。 
  • バッテリーはロボットの下部に配置し重心を下げてロボットのバランスを取りやすくします。

電気回路の詳細を検討します

  • Arduino UNO3と加速度・角速度センサ、連続回転サーボモータ、超音波距離センサをどのポートで接続するかを決めます。
  • サーボモータ用の電源に5VレギュレータICを取り付けます。5VレギュレータICが出力されている時にLEDをONします。5VレギュレータICへはArduino UNO3のVin経由で電圧を供給します。Vinの電圧は7.4Vバッテリーから供給します。デバッグ中に連続回転サーボモータが回ると煩わしいのでトグルスイッチを付けて連続回転サーボモータ用の5VレギュレータICへの電圧の供給をON/OFFできるようにします。
  • 主要部品以外の部品リスト
No.部品名品番・仕様購入先員数
1シールド用PCB基板PCBメーカへ発注FusionPCB1
2ブロックターミナルTB112-2-2-E-1秋月電気通商3
3電源ICLM7805秋月電気通商1
5セラミックコンデンサ1uF秋月電気通商2
6Al電解コンデンサ470uF/16V秋月電気通商1
7角度検出センサGY-521 (MPU6050)(キットに付属)1
8LED(品番不明)(キットに付属)1
9抵抗1KΩ(キットに付属)1
Arduino スターターキットは?

自作シールドを作って電気部品を配置します

  • KiCADを使って自作シールドの回路図からパターンを作成し、自作シールド基板をPCB基板メーカーに発注することにしました。
  • KiCADでパターン設計をすると部品を含めて3Dで立体配置を確認できるので、完成時のイメージを掴みやすくなります。
  • パターン図を作成すると部品の配置を3Dイメージすることが可能です。
KiCADを学習する記事は?
[KiCADの入手方法と学習方法 ] — KiCADの概要を説明しています。

専用シールドを発注します

  • 安価な費用でPCB基板を製造するサービスが多くの企業から提供されています。またKiCADのような多機能のCADがフリーで使える状況になりました。自分自身でPCB設計をしてしまえば安価にPCBを入手できます。
  • KiCADで設計したPCBを発注する記事を[KiCADでPCBレイアウト設計してFusion PCBに発注しました]にまとめています。今回作成した専用シールドもFusion PCBに発注しました。
  • 発注して、5日後にシールドPCBが発送されたとの連絡がありました。発送後8日間で配達されてきました。設計したそのままにPCBが出来上がっているのは少し感動です!
  • PCBの発注の費用は、PCBのサイズが10cm x 10cm以内であれば、10枚で$4.9です。(2026年1月時点の価格です。現在155円/ドル程度なので、760円です。この価格に輸送料金が加わります。輸送料金は輸送会社により異なり、$19から$29程度まで異なります。料金が高いほど輸送期間は短いようです。)

専用シールドが届きました

  • 届いたPCBに部品を半田付けして、加速度・角速度センサと超音波距離センサを取り付けると完成です。
  • 部品を半田付けした自作シールドをArduinoi UNOに挿入すれば結線が終了です。
PCBの発注方法をまとめた記事は?
[KiCADでPCBレイアウト設計してFusion PCBに発注しました]– KiCADで設計したPCBを発注する方法をまとめました。

御質問、誤植の指摘、記事の改善点の気づきなどありましたら「問い合わせ 」のページからお願いします。