2
Help us understand the problem. What are the problem?

posted at

updated at

LEGO 部品を利用した回転型倒立振子のレシピを公開!(第 1 回:製作編)

image.png

この記事は note に書いた記事を Qiita に移植したものです(内容はほぼ同じです).

YouTube 「かーたー」チャンネル

LEGO 部品を利用した回転型倒立振子のレシピを公開!
 第 1 回:製作編
 第 2 回:マイコン編 ― MATLAB / Simulink …… 未完成
 第 3 回:運動方程式編 ― MATLAB / Symbolic Math Toolbox
 第 4 回:パラメータ同定編 ― MATLAB / Simulink …… 未完成
 第 5 回:現代制御編 ― MATLAB / Simulink …… 未完成
 第 6 回:アドバンスト制御編 ― MATLAB / Simulink …… 未完成
 【補足説明】Simulink Support Package for Arduino Hardware と RASPLib をインストールして MinSegShield を動かしてみる
 【補足説明】Simulink Support Package for Arduino Hardware で DC モータを動かしてみる

1. はじめに

 ここでは,工作に自信がない人でも,比較的,簡単???に「回転型倒立振子」を製作するできることを目指して,本記事を書きます.
 なお,モノによっては,発注してから届くまで1ヶ月半程度を要します.これは,輸入品であったり,受注生産であったりするためです.届くまで,気長にお待ち下さい.

「回転型倒立振子」は,海外では発案者の古田勝久先生(東京工業大学名誉教授)の名にちなんで Furuta Pendulum とも呼ばれています.

2. 部品の調達

2.1 LEGO 部品の調達

 「回転型倒立振子」の筐体は,LEGO 部品を利用して製作をします.

  • 部品表の Excel ファイルはこちらから入手できます.
  • 部品表の PDF ファイルはこちらから入手できます.
  • EV3 replacement pack3 以外はブリッカーズさんから購入できます.
  • EV3 replacement pack3 はアフレルさんから購入できます.

 下表に示すように,EV3 replacement pack3 以外の LEGO 部品をブリッカーズさんで購入すると,約 9,000 円(2022/05/30)となります.
image.png

 また,下表の部品は,アフレルさんから購入可能な EV3 replacement pack3(1,320 円)に含まれています.EV3 replacement pack3 にはこれらが 2 個ずつ入っています(2022/05/30 に確認).

image.png

【EV3 replacement pack3 について】
 土台が動かないようにするためのおもりとして,EV3 replacement pack3 を利用しています.2022/05/30 現在,アフレルさんに在庫がありますが,在庫がなくなり次第,販売終了です.Amazon などからでもしばらくは購入できるかもしれませんが… 入手できなかったら,土台に金属製の何か(四角い 9V 電池とか)を両面テープで貼り付けるなどして,土台が動きにくくなるように工夫してください.単なるおもりですので.

image.png
EV3 replacement pack3

 ちなみに,私は教育用 LEGO MINDSTORMS EV3 の基本セットと拡張セットを多数,所有しているので,その中から部品を調達しました.

2.2 モータと関連部品の調達

 まずは,調達する部品のリストです.

製品名・仕様等 製造元 個数 購入先
エンコーダ付ギヤード DC モータ FIT0481: Micro Metal Geared motor w/Encoder - 6V 530RPM 30:1 DFRobot 社 1 スイッチサイエンスDigi-Key
モータブラケット Micro Metal Gearmotor Bracket Pair - Black〔黒,2 個入〕 Pololu 社 1 朱雀技研工房ストア
D カット 3mm 軸用アダプタ Motor Shaft Adapters〔2 個入〕 Tenka 社 1 Tenka 社 から輸入,もしくはポートトラストから購入
バインド子ねじ M2 × 18 2 モノタロウ(50 個入です)
ワッシャー M2 2 モノタロウ(50 個入です)
六角ナット M2 2 モータブラケットに付属のものを利用

image.png


 それでは,個別に説明します.
 まず,モータについてです.

image.png
DFRobot 社のモータ〔Micro Metal Geared motor w/Encoder〕

 エンコーダ付きのギヤード DC モータとしては,DFRobot 社の Micro Metal Geared motor w/Encoder を使用しています.ギヤ比(減速比)に応じて 7 種類が用意されています.今回は,アームや振子が軽量であるので,速応性を考慮して 30:1 のモータを使うことにしました.

DFRobot 社のモータ の種類
FIT0481 (Micro Metal Geared motor w/Encoder - 6V 530RPM 30:1)
FIT0482 (Micro Metal Geared motor w/Encoder - 6V 310RPM 50:1)
FIT0483 (Micro Metal Geared motor w/Encoder - 6V 155RPM 100:1)
FIT0484 (Micro Metal Geared motor w/Encoder - 6V 105RPM 150:1)
FIT0485 (Micro Metal Geared motor w/Encoder - 6V 75RPM 210:1)
FIT0486 (Micro Metal Geared motor w/Encoder - 6V 52RPM 298:1)
FIT0487 (Micro Metal Geared motor w/Encoder - 6V 41RPM 380:1)

国内では,DFRobot 社のモータを,スイッチサイエンスさんなどから購入できます.スイッチサイエンスさんの場合,輸入取り寄せの商品なので,納期は 1 ヶ月半程度だそうです.

スイッチサイエンスさんから購入する場合のコード番号 Digi-Key さんから購入する場合のメーカー製造番号
DFROBOT-FIT0481 FIT0481
DFROBOT-FIT0482 FIT0482
DFROBOT-FIT0483 FIT0483
DFROBOT-FIT0484 FIT0484
DFROBOT-FIT0485 FIT0485
DFROBOT-FIT0486 FIT0486
DFROBOT-FIT0487 FIT0487

私は利用したことがありませんが,米国の会社である Digi-Key さんは,日本語のサイトがあるだけでなく,日本語での電話,メールをサポートしているようで,在庫に応じて即日出荷してもらえるようです.

 DFRobot 社のモータ (Micro Metal Geared motor w/Encoder) は,エンコーダが最初から取り付けられているという,うれしい仕様です.電源が供給されると,エンコーダ基板の緑色の LED が点灯し,おしゃれ???です.磁気式のインクリメンタル型であり,分解能は 7 PPR(パルス / 回転)です.モータのギヤ比 (減速比) は 30:1 なので,4 逓倍でカウントすると,$$
30 \times 7 \times 4 = {\bf 840}\ \bf\mbox{[カウント/回転]}
$$
なので,$$
360/840 \simeq {\bf 0.42}\ \bf\mbox{[度/カウント]}
$$
となります.

【Pololu 社のモータとの比較】
 DFRobot 社のモータ (Micro Metal Geared motor w/Encoder) は Pololu 社のモータ (Micro Metal Gearmotor) と酷似しています.本家 Pololu 社のモータはギヤ比や定格電圧などの種類が豊富です.種類の一覧はこちらに公開されています.
 Pololu 社のモータ (Micro Metal Gearmotor) は,エンコーダが取り付けられていませんので,オプションのエンコーダ(磁気式,インクリメンタル型)を購入し,自分で半田付けをする必要があります.また,分解能は 6 PPR(パルス / 回転)ですので,DFRobot 社のものより分解能が劣ります.
 価格についてですが,スイッチサイエンスさんで購入すると,DFRobot 社のモータが 1,500 円程度であるのに対し,Pololu 社のモータは 2,700 円程度(これにプラスして,オプションのエンコーダが 1,200 円程度)と少々,お高いです.

image.png
Pololu 社のモータ〔Micro Metal Gearmotor〕

 モータ軸の長さを除くと,DFRobot 社のモータは Pololu 社のモータとほぼ同じサイズです.したがって,Pololu 社のモータ用の様々なアクセサリを利用することができます.今回は,Pololu 社の「モータブラケット」を利用して,モータを LEGO 部品で製作された土台部に結合します.また,Tenka 社の「3mm 軸用アダプタ」を介して,モータ軸と LEGO 部品で製作されたアーム部を結合します.

image.png
Pololu 社のモータブラケット〔2 個入り〕付属のねじは不使用ですが,六角ナットは使用します

 Pololu 社の「モータブラケット」は,たとえば,朱雀技研工房ストアさんから購入できます.これは,「ブラケット」が 2 個,M2 の「なべ小ねじ」が 4個,「六角ナット」が 4 個,入っています.

image.png
DFRobot 社のモータと LEGO 部品の結合

 本来の使用方法は,「ブラケット」のねじ穴に「六角ナット」をはめ込み,「ブラケット」の反対側から「なべ小ねじ」で締めるというものですが,この実験装置の製作では,異なる使用方法となります.
 「LEGO 部品」と「ブラケット」の穴の間隔は,少しずれています.そこで,「ブラケット」のねじ穴に M2 x 18 の「バインド小ねじ」を通し,反対側に取り付けられた「LEGO 部品」の穴も貫通させます.そして,LEGO 部品側の穴に M2 の「ワッシャー」をはめ込み,M2 の「六角ナット」で締めます.詳しくは,後述します.

image.png
ねじ類

M2 x 18 の「バインド小ねじ」M2 の「ワッシャー」は,大きなホームセンターであれば,売っているかもしれません.ネットで購入するには,たとえば,モノタロウさんの場合,M2 x 18 の「バインド小ねじ」ここから,M2 の「ワッシャー」ここから購入してください.M2 の「六角ナット」は,Pololu 社の「モータブラケット」に付属しているものを利用します.

image.png
Tenka 社の D カット 3mm 軸用アダプタ〔Motor Shaft Adapters,2 個入〕

 モータ軸に LEGO 部品で作られたアームを取り付けるために,Tenka 社の「D カット 3mm 軸用アダプタ (Motor Shaft Adapter)」 を利用します.Motor Shaft Adapters は日本国内では販売していないので,Tenka 社から直接,購入する必要があります.2 個入で 0.99 ドルなので安いのですが,送料が 26.36 ドルですので,余裕をもった個数を購入するのが良いでしょう.ちなみに,私は 30 セット(60 個)も購入しました …

… って記述していましたが,最近は,ポートトラストさんから購入できるようになったようです.

 さて,このアダプタは Pololu 社のモータ用に製品化されたものなので,D カット3mm 軸に合うよう設計されています.DFRobot 社のモータは Pololu 社のモータと軸の形状は同じなので,このアダプタを利用できます.
 D カットに対応しているので,負荷がかかった状況で使用しても,力をロスすることなく回転させることができます.


2.3 エンコーダと関連部品の調達

 まずは,調達する部品のリストです.

製品名・仕様等 製造元 個数 購入先
光学式エンコーダ E20S2-360-3-V-5-R AUTONICS 社 1 ミスミ社
LEGO ホイール用 2mm 軸用アダプタ 2mm Shaft Adapter for LEGO Wheels (Pair)〔2 個入〕 Pololu 社 1 朱雀技研工房ストア
なべ子ねじ M2 × 8 2 モノタロウ(160 個入です)
ワッシャー M2 2 前節でモータ用に購入

image.png

 エンコーダ軸に LEGO 部品を取り付けるため,Pololu 社の 「2mm 軸用アダプタ」を利用することにします.Pololu 社からは「3mm 軸用アダプタ」も販売されていますが,これは,六角軸に対応したものですので,エンコーダに利用することが困難です.
 「2mm 軸用アダプタ」を利用するために,

  • 軸径が 2mm
  • 分解能がある程度高い
  • エンコーダ側のねじ穴の間隔が LEGO 部品の穴の間隔とほぼ同じである

という条件を満足するエンコーダを選定する必要があります.これらの条件を満足するエンコーダをいろいろと探しましたが,最終的に,AUTONICS 社の「インクリメンタル型の光学式エンコーダ (E20S2-360-3-V-5-R)」を利用することにしました.価格は 9,160 円です(2022/05/30 現在).

image.png
AUTONICS 社のエンコーダ E20S2-360-3-V-5-R

なお,受注生産のようで,購入手続きをしてから届くまで,1 ヶ月半くらいを要します.
 このエンコーダの分解能は,360 PPR(パルス / 回転)です.4 逓倍でカウントすると,$$
360 \times 4 = {\bf{1440}\ \bf\mbox{[カウント/回転]}}
$$
なので,$$
1440/360 = {\bf{0.25}}\ \bf\mbox{[度/カウント]}
$$
となります.振子の角度検出用としては,十分の精度でしょう.

3. 組立図

3.1 振子部の組立図

 振子部の組立図の PDF ファイルは以下から入手できます.

pendulum.gif
振子部の組立図

 振子部は非常に単純な構造で,4 個の LEGO 部品で構成されています.
 LEGO なので,振子の長さを変えたり,重さを変えたりすることも容易です.

3.2 土台部の組立図

 土台部の組立図の PDF ファイルは以下から入手できます.

 土台部の組立図において,ステップ 1 からステップ 3 まで(body_step1.pdfbody_step2.pdfbody_step3.pdf)は,指示にしたがって組み立ててください.

body_step1.gif
土台部の組立図(ステップ 1)
body_step2.gif
土台部の組立図(ステップ 2)
body_step3.gif
土台部の組立図(ステップ 3)

 ステップ 3 では,EV3 replacement pack3 に含まれる部品を「おもり」として装着していますが,購入していない場合は,無視してください.


 つづいて,ステップ 4 に進む前に,モータを LEGO 部品と結合します.
 まず,Pololu 社の「モータブラケット」DFRobot 社のモータをはめ込みます.モータブラケットは向きがありますので,注意をしてください.

image.png
Pololu 社のモータブラケットの向き
image.png
モータをモータブラケットに装着

つぎに,モータブラケットのねじ穴に,M2 x 18 の「バインド小ねじ」を貫通させます.

image.png
モータブラケットに M2 x 18 の「バインド小ねじ」を貫通させる

さらに,LEGO 部品 (デザイン ID:99773)

image.png
LEGO 部品(Technic, Liftarm, Modified Triangle Thin 3 x 5 with Short Supports,デザイン ID:99773)

を 2 個,用意し,穴に M2 x 18 の「バインド小ねじ」を貫通させます.

image.png
LEGO 部品に「バインド小ねじ」を貫通させる

そして,M2 の「ワッシャー」M2 の「六角ナット」をはめ込み,M2 x 18 の「バインド小ねじ」を締めます.

image.png
「ワッシャー」,「六角ナット」をはめ,「バインド小ねじ」を締める

最後に,Tenka 社の「D カット 3mm 軸用アダプタ (Motor Shaft Adapter)」 を,モータ軸に差し込みます.

image.png
Tenka 社の D カット 3mm 軸用アダプタをモータ軸に差し込む

 以上でステップ 4 の下準備は終了です.


 ステップ 4 からステップ 6 まで(body_step4.pdfbody_step5.pdfbody_step6.pdf),指示にしたがって組み立ててください.

body_step4.gif
土台部の組立図(ステップ 4)
body_step5.gif
土台部の組立図(ステップ 5)
body_step6.gif
土台部の組立図(ステップ 6)

 以上で土台部が完成です.

image.png
土台部

3.3 アーム部の組立図

 アーム部の組立図のPDF ファイルは以下から入手できます.


 アーム部を組み立てる前の下準備として,エンコーダを LEGO 部品と結合します.

 まず,エンコーダ,LEGO 部品 (デザイン ID:99773)M2 x 8 の「なべ子ねじ」2 個,M2 の「ワッシャー」2 個を準備します.

image.png
LEGO 部品(デザイン ID:99773),なべ小ねじ,ワッシャー

そして,LEGO 部品の穴に「ワッシャー」と「なべ小ねじ」を通し,エンコーダの前面のねじ穴にしっかりと取り付けます.

image.png
LEGO 部品(デザイン ID:99773)に「ワッシャー」と「なべ小ねじ」を通し,エンコーダに取り付ける

 つぎに,LEGO 部品 (デザイン ID:99773)

image.png
LEGO 部品(デザイン ID:99773)

を 2 個,用意し,エンコーダのコードを LEGO 部品の穴に通します.

image.png
エンコーダのコードを LEGO 部品の穴に通す

エンコーダのコードは硬いので,アームを回転させると,バネのような反力を生じてしまいます.そこで,ワイヤーストリッパーで断片的(1 cm くらいごとに)に外皮部分を剥がしてください.

image.png
ワイヤーストリッパーで外皮を断片的に剥がす

 つぎに,エンコーダ軸にPololu 社の「2mm 軸用アダプタ」を装着します.
 Pololu 社の「2mm 軸用アダプタ」の製品紹介を見ると,説明文に

https://www.pololu.com/product/1001
(原文)
Instructions

  1. Fit the adapter onto the metal output shaft of one of the four gearmotors linked above. You will need to push quite hard; be careful not to damage the gearmotor.
  2. Slide the adapter into a LEGO wheel of your choice.

(日本語訳)
<略>
かなり強く押し込む必要がありますが,ギヤモータを傷つけないように注意してください.
<略>

とあります.かなりどころか,元のままでは,どんなにがんばっても,モータ軸の先端しか「2mm 軸用アダプタ」の穴に入りません.「2mm 軸用アダプタ」の穴が狭すぎるのです.

image.png
「2mm 軸用アダプタ」の穴が狭いので,モータ軸を奥まで挿し込めない

したがって,「2mm 軸用アダプタ」の穴を少しだけ拡げる必要があります.少しだけです.拡げすぎるとガバガバになってしまい,エンコーダ軸が空転してしまいます.つまり,「2mm 軸用アダプタ」の少しだけ拡げられた穴にエンコーダ軸を挿し込み,摩擦で固定しなければなりません.
## 心配なら,接着剤を使ってみても良いかも.

image.png
「2mm の精密ドライバー」の先端を「2mm 軸用アダプタ」の穴に挿し込み,左右に何回か回転させることで,穴を少しだけ拡げる

 「2mm 軸用アダプタ」の穴を少しだけ拡げるために,穴に「2mm の精密ドライバー」の先端をまっすぐに挿し込み,左右に何回か回転させます.このとき,先端は奥に入れすぎないようにしてください.穴を拡げすぎてガバガバになってしまいますので.『少し削っては挿し込めるかを確認』し,慎重に作業を進めてください.

image.png
「2mm 軸用アダプタ」の穴を少しだけ拡げると,エンコーダ軸の根本付近まで挿し込める

なお,「2mm 軸用アダプタ」の根本が LEGO 部品 (デザイン ID:99773) に接触しないように注意してください.

image.png
「2mm 軸用アダプタ」の根本が LEGO 部品 (デザイン ID:99773) に接触しないようにする

 以上の下準備が終了したら,arm.pdf にしたがって,アーム部を完成させてください.

arm.gif
アーム部の組立図
image.png
アーム部

3.4 完成図

 以上でそれぞれの部分ができあがったので,合体させてください.

image.png
完成図

4. おわりに

 今回の記事では,LEGO 部品と汎用のモータ,エンコーダを利用して,「回転型倒立振子」を製作する手順を説明しました.

 次回は,MinSeg.com 社から販売されている車輪型倒立振子のキット に含まれている,MinSegShield M2V5(Arduino 互換マイコン+シールド)との接続について説明する予定です.これ,簡単に Simulink と連携できる優れものです.

 さて,いつになることやら…

(終わり)

参考文献

  1. K. Furuta, M. Yamakita, and S. Kobayashi: Swing-up Control of Inverted Pendulum Using Pseudo-state Feedback, Journal of Systems and Control Engineering, Vol.206, pp.263-269 (1992)
     $\cdots\cdots$ https://doi.org/10.1243/PIME_PROC_1992_206_341_02

  2. K. J. Åström, and K. Furuta: Swinging Up a Pendulum by Energy Control, Automatica, Vol.36, Issue 2, pp.287-295 (2000)
     $\cdots\cdots$ https://doi.org/10.1016/S0005-1098(99)00140-5

  3. 杉江俊治, 岡田昌史:並列倒立振子システムの H∞ 制御,Vol.6, No.12, pp.543-551 (1993)
     $\cdots\cdots$ https://doi.org/10.5687/iscie.6.543

  4. 川田昌克:MATLAB/Simulink と実機で学ぶ制御工学 ― PID 制御から現代制御まで ―,TechShare (2013)

  5. 川田昌克:LEGO MINDSTORMS を利用した回転型倒立振子の開発,計測と制御,Vol.54,No.3,pp.192-195 (2015)
     $\cdots\cdots$ https://doi.org/10.11499/sicejl.54.192

 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
2
Help us understand the problem. What are the problem?