【現代制御理論】倒立振子の製作記

本記事では現代制御理論の応用学習として、少し古い記事のものですが「トランジスタ技術 2019年 07 月号」に掲載されている 倒立振子(とうりつしんし)を製作してみたいと思います。

倒立振子とは、2個の車輪で倒れないように制御するロボットのことです。

本記事では、雑誌に沿って製作の過程を紹介していきます。

心太
心太

部品をイチから調達して、自分の手でロボットを組み立てるのは楽しいですね♪

部品、工具の準備

トランジスタ技術の入手

部品の調達に入る前に、まずは「トランジスタ技術 2019年 07 月号」を調達します。

トランジスタ技術は電子版(pdf版)もありますが、今回は付録DVDに格納されたプログラムを使用するため、紙ベースの雑誌版を入手します。

Amazonなどで中古が購入できますが、付録DVDがしっかりついているものを選びます。

Fig. 1 トランジスタ技術
2019年7月号

部品の入手

雑誌が入手できたら、ロボットの部品を入手します。代表的な購入先を下表に示します。

購入先のリンクは製品ページになっていますので、選定などで迷ったら覗いてみてください。

#品名型番個数購入先
製品ページ
参考単価
23年8月現在
1マイコンボードNUCLEO-F401RE1個RSコンポーネンツ1,878 円
2加速度 + ジャイロ センサBMX0551個秋月電子1,680 円
3マイコンボード用ソケット2×20ピン2個秋月電子110 円
4センサ用ソケット1×3ピン2個秋月電子15 円
5モータ・ドライバICTA7291P2個Amazon881 円
6ロータリ・エンコーダEC202A100A1個千石電商3,570 円
7エンコーダ用ケーブルA1501個千石電商420 円
8エンコーダ用治具(代用品)汎用小型ツマミ1個秋月電子20 円
9片面ユニバーサル基板155×115 mm1個秋月電子300 円
10基板実装用トグルスイッチ2回路 2接点 1個秋月電子100 円
11LED赤色1個秋月電子10 円
12LED黄色1個秋月電子20 円
13LED黄緑色1個秋月電子10 円
14積層セラミックコンデンサ0.1uF5個秋月電子(100 円)
15電解コンデンサ220uF, 25V2個秋月電子20 円
16電解コンデンサ2.2uF, 50V1個秋月電子10 円
17カーボン抵抗220Ω, 1/4W4個秋月電子(100 円)
18カーボン抵抗3.3kΩ, 1/4W2個秋月電子(100 円)
19カーボン抵抗2kΩ, 1/4W2個秋月電子(100 円)
20電池ボックス単3×4本1個秋月電子80 円
21タミヤ ユニバーサルプレート L210×160mm1個Amazon726 円
22タミヤ ハイパワーギアボックスHE2個Amazon789 円
23タミヤ スポーツタイヤセット56mm径1個Amazon412 円
24エンコーダ用治具素材樹脂L字 25×25mm1個モノタロウ268 円
25M3スペーサ(M4用で代用)長さ 10mm4本Amazon(738 円)
26M3ねじ首下長さ 20mm4本Amazon(495 円)
27M3超極低頭ねじ首下長さ 10mm4本Amazon(501 円)
28配線用コード1個Amazon220 円
29スズメッキ線1個Amazon159 円
Table 1 部品購入先の一例 ※カッコのついた価格は1パック最小購入数の価格

ねじはタミヤのキットについているものを基本的に使いますが、足りものがありますので上表のNo.25~27を参考に購入してください。

上表から合計金額は15,647円となりますが、通販の場合は送料や手数料などが別途かかりますので、予算は2万円程度になると思います。

心太
心太

マイコンボードとパソコンとの接続はUSBミニBタイプのケーブルが必要なため、持ってない人は忘れずに購入しよう。


なお、電池は単三の充電池(1.2V×4本=4.8V)を使います。乾電池(1.5V×4本=6V)ではロータリー・エンコーダやマイコンボードに供給する電圧が高くなってしまいますので、もし乾電池を用いる場合は三端子レギュレータを別途用意する必要があります。


一通り部品を揃えると以下のようになります。

Fig. 2 倒立振子用 主要部品

工具等の準備

本記事の倒立振子の製作に必要な工具等を紹介します。

お持ちでない方は以下を参考に揃えてみてください。

ハンダごて
ハンダ付けするもののサイズやハンダの種類などに合わせてワット数を選びます。
今回は以下のものを使用しました。


ハンダごて台
ハンダごては高温になるため、机に直接置くことができません。(火事になります)
メーカーや品番はなんでも構いませんが、ハンダごてと同じメーカーで揃えると使いやすいです。


ハンダ
はんだ付けするには当然ハンダが必要になります。
地球環境にやさしい「鉛フリーハンダ」もありますが、今回は家庭での工作ですので、ハンダ付けのしやすさを考慮し、今回は以下のもの(共晶ハンダ)を選択しました。


ハンダ吸い取り器
ハンダ付けを失敗した際にハンダをハンダごてで再加熱し、ハンダを吸い取る際に使用します。


ハンダ吸い取り線
ハンダ吸い取り器と同様にハンダ付けを失敗した際に使用します。ハンダ吸い取り器より一度に吸える量は少ないですが、吸い取り器より綺麗に吸い取ることができます。


ヒートクリップ
ハンダ付けする部品の熱を逃がすのに使用します。小さい部品をはんだ付けする際に、部品を手に持って作業すると半田ごての熱が伝わり火傷しますので、部品を掴むのにも使用できます。


ラジオペンチ
部品を押さえたり、掴んだりするのに使用します。


ニッパー
樹脂パーツの切り離しなどに使用します。


デザインナイフ
切り離したパーツを整えるのに使用します。今回は見た目を気にする工作ではないのでなくても構いません。


プラスドライバー
ねじを締め付けるのに使用します。ドライバーのサイズが合わないとねじの頭がなめてしまいますので、必ず適合するサイズを使用します。

今回は超極低頭ねじにNo.1、その他のねじにNo.2を使用します。


ナットドライバー
ねじとナットで部品を締結する際にナットを押さえないと供回りしますので、ナットドライバーを使用します。

ねじのサイズが小さく、大きなトルクはかかりませんので、ラジオペンチで代用しても可です。


糸鋸
今回はロータリーエンコーダを固定する治具を樹脂製のL字金具を加工して作成します。
L字金具を適切な長さにカットする際に使用します。


やすり
切断面を綺麗に整えるのに使用します。


コード式ドリルドライバー
ドリルでの穴あけに使用します。工作用途であれば安いものでよいかと思います。


ドリルの刃
ドリルドライバーに取り付けて使用します。色々なサイズが入ったものを持っておくと便利かと思います。
本記事でもM3ねじ用の穴 や ロータリー・エンコーダの固定用治具の穴など、複数のサイズが必要となります。


リーマー
ドリルで開けた穴を拡大するときに使用します。

メカ部分の組み立て

ギアボックスの組み立て

まず、タミヤの説明書に沿ってギアボックス(ハイパワーギアボックス HE)を2つ組み立てます。

減速比(ギア比)は2種類が選択できますが、「64.8:1」を選択します。

シャフトの位置はシャーシに取り付けた際に調整するので仮止めしておきます。

Fig. 3 ギアボックス

キットについているコードは今回の工作では短すぎるので、200mm程度の長さのコードに付け替えます。

また、コードを付け替えるときに、モータの端子に積層セラミックコンデンサ(0.1μF)を直接ハンダ付けします。

なお、積層セラミックコンデンサは極性(プラス・マイナス)はありません。

心太
心太

キットには穴あきのシャフトと穴なしのシャフトの2種類がついているけど、穴あきのシャフトを使用してね!

ロータリーエンコーダ用カップリングの製作

次にロータリーエンコーダとギアボックスのシャフトを接続するカップリング(治具)を作成します。

マジックなどで印をつけ、ツマミの中央にΦ3.5程度の貫通穴をあけます。

Fig. 4 エンコーダ用カップリング

このツマミはギアボックスのシャフト先端のねじ部に固定するため、ツマミ内側のΦ6穴にギアボックスのキットについていたナットを仕込みます。

なお、ツマミ内側のΦ6穴より、ナットのほうが僅かに大きいです。

ギアボックスについていた穴なしシャフト(今回は使わないほうのシャフト)にナットをねじ込み、ハンマーなどで真っ直ぐ打ち込みましょう。

ロータリーエンコーダ固定用 L字金具の製作

ロータリーエンコーダをシャーシ(タミヤ ユニバーサルプレートL)に固定するためのL字金具(治具)を作成します。

今回は光モール社製のブラックアングル 品番:160(L字寸法:25mm×25mm, 厚さ:2mm)を使用しましたが、加工しやすい樹脂製のアングルであれば何でもよいかと思います。

Fig. 5 エンコーダ用L字金具

寸法はタミヤのキットの説明書や外箱、ロータリーエンコーダのデータシートに載っているので、そちらを参考に作成していきます。

上の写真は、ロータリーエンコーダの固定穴Φ9.5と周り止め穴Φ2.8、シャーシへの固定穴Φ3.5(2箇所)を開けたところです。

Φ9.5はドリルで下穴を開けたあとにリーマーで拡大して開けているよ!

ギアボックスとエンコーダの取り付け

ギアボックスをシャーシ(タミヤ ユニバーサルプレートL)へねじ(M3, 首下長さ10)とナットで固定します。

ギアボックスの固定位置はユニバーサルプレートLの一番外側の下から7番目の穴の位置に取り付けます。

なお、Fig. 6では右側のギアボックスもついていますが、ロータリーエンコーダをつけてからでないとギアボックスをつけられませんので注意してください。

Fig. 6 シャーシ【表側】
※ ギアボックスのピニオンが紫色のものに変わっていますが、途中で紛失したため
代用品(ミニ四駆用 8Tピニオンギヤセット)を使用しています。
Fig.7 シャーシ【裏側】

なお、干渉対策として、ロータリーエンコーダ固定用 L字金具は超極低頭ねじで取り付けます。

心太
心太

モータのコードは引っかけて切ってしまわないように、ユニバーサルプレートLの穴にUターンするように通しているよ!

タイヤの取り付け

スポーツタイヤ (56mm径)を取り付けるため、今回はギアボックスのキットに付属しているスプリングピンをシャフト穴に取り付けます。

そしてスポーツタイヤの説明書に従って組み立て、ギアボックスのシャフトに取り付けます。

ギアボックスのシャフトは仮止めしておいたので、位置を調整して本締めします。

Fig. 8 スポーツタイヤの取り付け

基板の製作

ユニバーサル基板の製作

トランジスタ技術 P54の回路図をもとにユニバーサル基板へ部品をハンダ付けしていきます。

マイコンボードのピン配置はトランジスタ技術 P41を参照するかデータシートを見ながら配線していきます。

Fig.9 ユニバーサル基板【表側】
※ 端子類は部品表に入れていませんが
お好みで付けてください
Fig.10 ユニバーサル基板【裏面】

ハンダ付けは背の低いものから行うとやり易いです。また、熱に弱い半導体部品はなるべく後で付けるようにします。

また、部品を取り付ける際はマイコンボードを仮合わせし、干渉しないように取り付けましょう。

心太
心太

ハンダ付けの仕方はYoutubeで解説している人もいますね。

マイコンへプログラムの書き込み

次にUSBケーブルを用いてパソコンと接続し、マイコンにプログラムを書き込んでいきます。

トランジスタ技術 付録DVDに格納された「Inverted_Pendulum_Kalman.cpp」を書き込みます。
(D:\3_カルマン・フィルタのソース・コード\programs.zip内にあります。)

初めて使用する際は環境構築が出来ていないと思いますので、以下の記事を参考に設定してみてください。

【早わかり】Arm開発環境「Keil Studio Cloud」でマイコンを動かしてみよう!

最終組み立て

電池ボックスの加工と配線

基板が完成したら電池ボックスをシャーシに取り付けています。

今回使用した電池ボックスには穴が開いていますが、ねじの頭が電池ボックスの壁と干渉しますので、ニッパー等で切り取ります。

切り取った角部は応力が集中して割れる可能性があるので、要らないハンダごての先などで丸めます。(樹脂を溶かすとこて先がダメになりますので、必ず不要となったこて先を使用してください。)

Fig. 11 加工後の電池ボックス

電池ボックスの加工が終わったら、全ての部品の配線をしていきます。

部品の組付け

配線が終わったら、電池ボックスの中心がシャーシの下から約75mmの位置にくるように超極低頭ねじを使って固定します。

そしてユニバーサル基板をユニバーサルプレートLの下から22番目の穴に取り付けます。

ここで、少し基板を浮かせたいので、10mmのスペーサと首下長さ20mmのM3ねじを使用します。
(基板上側の穴は位置が合わないので、ドリルで穴開け加工しています。)

最後にユニバーサル基板にマイコンボードを差し込んだら完成です。

Fig. 12 倒立振子【表側】
Fig. 13 倒立振子【裏面】

動かしてみよう!

充電池(1.2V)を入れて電源をONします。黄色のLEDが点灯しますので、その間はちょうど倒れない角度(約90°)になるように手で固定します。

モータが動き出してしばらく経ったら、そっと手を放しましょう。自分で制御して倒立している筈です。

もし、倒れる方向と逆向きに動こうとしていたら、モータのプラスマイナスが間違っているので修正します。