LEGO 部品を利用した回転型倒立振子のレシピを公開！（第 1 回：組み立て）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/e2cd3862-1a70-63b0-e0fb-abd12e907027.png)

> この記事は [note に書いた記事](https://note.com/bright_crocus674/n/n4eff3f9d6fe4)を Qiita に移植したものです（内容はほぼ同じです）．

[YouTube 「かーたー」チャンネル](https://www.youtube.com/channel/UCQxZZypRXCsvALuvmWy68jw)

https://youtu.be/MfhpdYHZtJ0

https://youtu.be/ms35Zvcwrag

:::note info
<b><font color="#0070C0">LEGO 部品を利用した回転型倒立振子のレシピを公開！</font></b>
* [第 1 回：組み立て](https://qiita.com/Carter/items/6027bcb12dc7740e8dc3)
* [第 2 回：電子工作](https://qiita.com/Carter/items/ecad7ee7b8ea76c87c33)
* [第 3 回：運動方程式 ― MATLAB / Symbolic Math Toolbox](https://qiita.com/Carter/items/b4b77305f6a634a08468)
* [第 4 回：パラメータ同定 ― MATLAB / Simulink](https://qiita.com/Carter/items/80a1ed5d09f9dc420871)
* 第 5 回：現代制御 ― MATLAB / Simulink　…… <font color="#E84746">未完成</font>
* 第 6 回：アドバンスト制御 ― MATLAB / Simulink　…… <font color="#E84746">未完成</font>

<b>おまけ</b>
* [Simulink の分岐処理を利用して『回転型 LEGO 倒立振子』を振り上げ安定化！](https://qiita.com/Carter/items/db4bb11ead93ea3a1d42)


<b>補足</b>
*  [【補足説明】Simulink Support Package for Arduino Hardware と RASPLib をインストールして MinSegShield を動かしてみる](https://qiita.com/Carter/items/cc7faa5084aa4a69f4e7)
* [【補足説明】Simulink Support Package for Arduino Hardware で DC モータを動かしてみる](https://qiita.com/Carter/items/1c5f3ec49dbaa87bba79)
:::

# <font color="#33CC33">1. はじめに</font>

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

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

# <font color="#33CC33">2. 部品の調達</font>

## <font color="#33CC33">2.1　LEGO 部品の調達</font>

　「回転型倒立振子」の筐体は，<b><font color="#E84746">LEGO 部品</font></b>を利用して製作をします．
* 部品表の Excel ファイルは[こちら](https://github.com/Prof-Carter/LEGO_Rotary_Inverted_Pendulum/blob/main/LEGO_parts_list.xlsx)から入手できます．
* 部品表の PDF ファイルは[こちら](https://github.com/Prof-Carter/LEGO_Rotary_Inverted_Pendulum/blob/main/LEGO_parts_list_jp.pdf)から入手できます．
* EV3 replacement pack3 以外は[ブリッカーズ](https://www.brickers.jp)さんから購入できます．
* EV3 replacement pack3 は[アフレル](https://afrel-shop.com)さんから購入できます．

　下表に示すように，EV3 replacement pack3 以外の LEGO 部品をブリッカーズさんで購入すると，約 9,000 円（2022/05/30）となります．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/78414a98-0fc6-a45e-402f-f8d3a7f8b708.png)

　また，下表の部品は，アフレルさんから購入可能な [EV3 replacement pack3](https://afrel-shop.com/shopdetail/000000000395)（1,320 円）に含まれています．EV3 replacement pack3 にはこれらが 2 個ずつ入っています（2022/05/30 に確認）．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/0e4531f8-4d6f-7cd0-f09d-3c0be050b363.png)

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

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/a5bed715-2f6d-1084-56a8-ef61f975a0da.png)|
|:-:|
|EV3 replacement pack3|

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

## <font color="#33CC33">2.2　モータと関連部品の調達</font>

　まずは，調達する部品のリストです．

|  | 製品名・仕様等 | 製造元 | 個数 | 購入先 |
|---|---|---|---|---|
|エンコーダ付ギヤード DC モータ | [FIT0481: Micro Metal Geared motor w/Encoder - 6V 530RPM 30:1](https://www.dfrobot.com/product-1431.html) | [DFRobot 社](https://www.dfrobot.com) | 1 | [スイッチサイエンス](https://www.switch-science.com/catalog/4820/)，[Digi-Key](https://www.digikey.jp/ja/products/detail/dfrobot/FIT0481/7087158) |
|モータブラケット| [Micro Metal Gearmotor Bracket Pair - Black](https://www.pololu.com/product/989)〔黒，2 個入〕 | [Pololu 社](https://www.pololu.com) | 1 | [朱雀技研工房ストア](https://store.shopping.yahoo.co.jp/suzakulab/pololu-989.html) |
| D カット 3mm 軸用アダプタ | [Motor Shaft Adapters](https://circuitcubes.com/collections/parts/products/motor-shaft-adapters)〔2 個入〕| [Tenka 社](https://circuitcubes.com) | 1 | [Tenka 社](https://circuitcubes.com/collections/parts/products/motor-shaft-adapters) から輸入，もしくは[ポートトラスト](https://www.only-handmade.jp/?pid=167997129)から購入| 
| バインド子ねじ | M2 × 18 | ― | 2 | [モノタロウ](https://www.monotaro.com/p/2902/1546/)（50 個入です） |
| ワッシャー | M2 | ― | 2 | [モノタロウ](https://www.monotaro.com/p/6105/4377/)（50 個入です） |
| 六角ナット | M2 | ― | 2 | モータブラケットに付属のものを利用 |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/f11ac947-3a02-255e-34f7-007adbb905e9.png)

---

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

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/639c8ab6-327e-0e6b-5b93-402b5915fdc6.png)|
|:-:|
|DFRobot 社のモータ〔Micro Metal Geared motor w/Encoder〕|

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

|DFRobot 社のモータ の種類|
|:-:|
|[**FIT0481 (Micro Metal Geared motor w/Encoder - 6V 530RPM 30:1)**](https://www.dfrobot.com/product-1431.html)|
|[FIT0482 (Micro Metal Geared motor w/Encoder - 6V 310RPM 50:1)](https://www.dfrobot.com/product-1432.html)|
|[FIT0483 (Micro Metal Geared motor w/Encoder - 6V 155RPM 100:1)](https://www.dfrobot.com/product-1433.html)|
|[FIT0484 (Micro Metal Geared motor w/Encoder - 6V 105RPM 150:1)](https://www.dfrobot.com/product-1434.html)|
|[FIT0485 (Micro Metal Geared motor w/Encoder - 6V 75RPM 210:1)](https://www.dfrobot.com/product-1435.html)|
|[FIT0486 (Micro Metal Geared motor w/Encoder - 6V 52RPM 298:1)](https://www.dfrobot.com/product-1436.html)|
|[FIT0487 (Micro Metal Geared motor w/Encoder - 6V 41RPM 380:1)](https://www.dfrobot.com/product-1437.html)|

国内では，[DFRobot 社](https://www.dfrobot.com)のモータを，[スイッチサイエンス](https://www.switch-science.com)さんなどから購入できます．[スイッチサイエンス](https://www.switch-science.com)さんの場合，輸入取り寄せの商品なので，納期は 1 ヶ月半程度だそうです．

|スイッチサイエンスさんから購入する場合のコード番号|Digi-Key さんから購入する場合のメーカー製造番号|
|:-:|:-:|
|[**DFROBOT-FIT0481**](https://www.switch-science.com/catalog/4820/)|[**FIT0481**](https://www.digikey.jp/ja/products/detail/dfrobot/FIT0481/7087158)|
|[DFROBOT-FIT0482](https://www.switch-science.com/catalog/4821/)|[FIT0482](https://www.digikey.jp/ja/products/detail/dfrobot/FIT0482/7087159)|
|[DFROBOT-FIT0483](https://www.switch-science.com/catalog/4822/)|[FIT0483](https://www.digikey.jp/ja/products/detail/dfrobot/FIT0482/7087160)|
|[DFROBOT-FIT0484](https://www.switch-science.com/catalog/4823/)|[FIT0484](https://www.digikey.jp/ja/products/detail/dfrobot/FIT0482/7087161)|
|[DFROBOT-FIT0485](https://www.switch-science.com/catalog/4824/)|[FIT0485](https://www.digikey.jp/ja/products/detail/dfrobot/FIT0482/7087162)|
|[DFROBOT-FIT0486](https://www.switch-science.com/catalog/4825/)|[FIT0486](https://www.digikey.jp/ja/products/detail/dfrobot/FIT0482/7087163)|
|[DFROBOT-FIT0487](https://www.switch-science.com/catalog/4826/)|[FIT0487](https://www.digikey.jp/ja/products/detail/dfrobot/FIT0482/7087164)|

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

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

> <b><font color="black">【Pololu 社のモータとの比較】</font></b>
>　DFRobot 社のモータ (Micro Metal Geared motor w/Encoder) は Pololu 社のモータ (Micro Metal Gearmotor) と酷似しています．<b><font color="#E84746">本家 Pololu 社のモータはギヤ比や定格電圧などの種類が豊富</font></b>です．種類の一覧は[こちら](https://chrome-extension//efaidnbmnnnibpcajpcglclefindmkaj/https://www.pololu.com/file/0J1487/pololu-micro-metal-gearmotors_rev-5-1.pdf)に公開されています．
>　Pololu 社のモータ (Micro Metal Gearmotor) は，<b><font color="#E84746">エンコーダが取り付けられていません</font></b>ので，<b><font color="#E84746">[オプションのエンコーダ](https://www.switch-science.com/catalog/2709/)（磁気式，インクリメンタル型）を購入</font></b>し，<b><font color="#E84746">自分で半田付け</font></b>をする必要があります．また，分解能は 6 PPR（パルス / 回転）ですので，DFRobot 社のものより分解能が劣ります．
>　価格についてですが，スイッチサイエンスさんで購入すると，DFRobot 社のモータが 1,500 円程度であるのに対し，Pololu 社のモータは 2,700 円程度（これにプラスして，オプションのエンコーダが 1,200 円程度）と<b><font color="#E84746">少々，お高い</font></b>です．
> |![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/e3793154-dcd3-9ae2-d8bb-16c3372bd163.png)|
> |:-:|
> |Pololu 社のモータ〔Micro Metal Gearmotor〕|

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

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/f80c0d83-b79c-9e9e-65fe-97c6b5e03732.png)|
|:-:|
|Pololu 社のモータブラケット〔2 個入り〕付属のねじは不使用ですが，六角ナットは使用します|

　<b><font color="#E84746">Pololu 社の「モータブラケット」</font></b>は，たとえば，<b><font color="#E84746">[朱雀技研工房ストア](https://store.shopping.yahoo.co.jp/suzakulab/pololu-989.html)</font></b>さんから購入できます．これは，「ブラケット」が 2 個，M2 の「なべ小ねじ」が 4個，「六角ナット」が 4 個，入っています．

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/d99fa623-b330-e5bb-2ab8-87cc39abf0b3.png)|
|:-:|
|DFRobot 社のモータと LEGO 部品の結合|

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

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/1b316557-e2cc-7c80-c42d-df3b1975b5c4.png)|
|:-:|
|ねじ類|

<b><font color="#E84746">M2 x 18 の「バインド小ねじ」</font></b>や <b><font color="#E84746">M2 の「ワッシャー」</font></b>は，大きなホームセンターであれば，売っているかもしれません．ネットで購入するには，たとえば，モノタロウさんの場合，<b><font color="#E84746">M2 x 18 の「バインド小ねじ」</font></b>は[ここ](https://www.monotaro.com/p/2902/1546/)から，<b><font color="#E84746">M2 の「ワッシャー」</font></b>は[ここ](https://www.monotaro.com/p/6105/4377/)から購入してください．<b><font color="#E84746">M2 の「六角ナット」</font></b>は，Pololu 社の「モータブラケット」に付属しているものを利用します．

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/51e3d579-27cc-5b76-68ad-d61c319b7f57.png)|
|:-:|
|Tenka 社の D カット 3mm 軸用アダプタ〔Motor Shaft Adapters，2 個入〕|

　モータ軸に LEGO 部品で作られたアームを取り付けるために，<b><font color="#E84746">Tenka 社の「D カット 3mm 軸用アダプタ (Motor Shaft Adapter)」</font></b> を利用します．Motor Shaft Adapters は日本国内では販売していないので，[Tenka 社から直接，購入する](https://circuitcubes.com/collections/parts/products/motor-shaft-adapters)必要があります．2 個入で 0.99 ドルなので安いのですが，送料が 26.36 ドルですので，余裕をもった個数を購入するのが良いでしょう．ちなみに，私は 30 セット（60 個）も購入しました … 

… って記述していましたが，最近は，<b><font color="#E84746">[ポートトラスト](https://www.only-handmade.jp/?pid=167997129)さんから購入できるようになった</font></b>ようです．

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

---

## <font color="#33CC33">2.3　エンコーダと関連部品の調達</font>

　まずは，調達する部品のリストです．

||製品名・仕様等|製造元|個数|購入先|
|---|---|---|---|---|
|光学式エンコーダ|[E20S2-360-3-V-5-R](https://www.autonics.com/model/A2500002016)|[AUTONICS 社](https://www.autonics.com/)|1|[ミスミ社](https://jp.misumi-ec.com/vona2/detail/221005279615/)|
|LEGO ホイール用 2mm 軸用アダプタ|[2mm Shaft Adapter for LEGO Wheels (Pair)](https://www.pololu.com/product/1001)〔2 個入〕|[Pololu 社](https://www.pololu.com)|1|[朱雀技研工房ストア](https://store.shopping.yahoo.co.jp/suzakulab/pololu-1001.html)|
|なべ子ねじ|M2 × 8|―|2|[モノタロウ](https://www.monotaro.com/p/0832/6561/)（160 個入です）|
|ワッシャー|M2|―|2|前節でモータ用に購入|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/fb5762e6-444a-e445-a6bf-d896b25039a4.png)

　エンコーダ軸に LEGO 部品を取り付けるため，<b><font color="#E84746">Pololu 社の 「2mm 軸用アダプタ」</font></b>を利用することにします．Pololu 社からは「3mm 軸用アダプタ」も販売されていますが，これは，六角軸に対応したものですので，エンコーダに利用することが困難です．
　「2mm 軸用アダプタ」を利用するために，
* <b><font color="#E84746">軸径が 2mm</font></b>
* <b><font color="#E84746">分解能がある程度高い</font></b>
* エンコーダ側のねじ穴の間隔が <b><font color="#E84746">LEGO 部品の穴の間隔とほぼ同じ</font></b>である

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

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/ba701c7b-cf21-672d-46fe-bccfabf661bf.png)|
|:-:|
|AUTONICS 社のエンコーダ E20S2-360-3-V-5-R|

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

# <font color="#33CC33">3. 組立図</font>

## <font color="#33CC33">3.1　振子部の組立図</font>

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

* **[pendulum.pdf](https://github.com/Prof-Carter/LEGO_Rotary_Inverted_Pendulum/blob/main/pdf/pendulum.pdf)**

|![pendulum.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/0eee9dad-4596-38fa-b8f6-9c40aa440933.gif)|
|:-:|
|振子部の組立図|

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

## <font color="#33CC33">3.2　土台部の組立図</font>

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

* <b><font color="#E84746">ステップ 1</font></b>：**[body_step1.pdf](https://github.com/Prof-Carter/LEGO_Rotary_Inverted_Pendulum/blob/main/pdf/body_step1.pdf)**　
* <b><font color="#E84746">ステップ 2</font></b>：**[body_step2.pdf](https://github.com/Prof-Carter/LEGO_Rotary_Inverted_Pendulum/blob/main/pdf/body_step2.pdf)**
* <b><font color="#E84746">ステップ 3</font></b>：**[body_step3.pdf](https://github.com/Prof-Carter/LEGO_Rotary_Inverted_Pendulum/blob/main/pdf/body_step3.pdf)**　
* <b><font color="#E84746">ステップ 4</font></b>：**[body_step4.pdf](https://github.com/Prof-Carter/LEGO_Rotary_Inverted_Pendulum/blob/main/pdf/body_step4.pdf)**
* <b><font color="#E84746">ステップ 5</font></b>：**[body_step5.pdf](https://github.com/Prof-Carter/LEGO_Rotary_Inverted_Pendulum/blob/main/pdf/body_step5.pdf)**　　
* <b><font color="#E84746">ステップ 6</font></b>：**[body_step6.pdf](https://github.com/Prof-Carter/LEGO_Rotary_Inverted_Pendulum/blob/main/pdf/body_step6.pdf)**

　土台部の組立図において，<b><font color="#E84746">ステップ 1</font></b> から<b><font color="#E84746">ステップ 3</font></b> まで（**[body_step1.pdf](https://github.com/Prof-Carter/LEGO_Rotary_Inverted_Pendulum/blob/main/pdf/body_step1.pdf)**，**[body_step2.pdf](https://github.com/Prof-Carter/LEGO_Rotary_Inverted_Pendulum/blob/main/pdf/body_step2.pdf)**，**[body_step3.pdf](https://github.com/Prof-Carter/LEGO_Rotary_Inverted_Pendulum/blob/main/pdf/body_step3.pdf)**）は，指示にしたがって組み立ててください．

|![body_step1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/10707fae-1040-dafe-7745-606e6b86c33f.gif)|
|:-:|
|土台部の組立図（ステップ 1）|

|![body_step2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/a9b8adc2-9fe3-faf6-d42a-b8e8efa3ab08.gif)|
|:-:|
|土台部の組立図（ステップ 2）|

|![body_step3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/9b1fa01e-681d-bdc4-f485-e869dfdcbc00.gif)|
|:-:|
|土台部の組立図（ステップ 3）|

　<b><font color="#E84746">ステップ 3</font></b> では，EV3 replacement pack3 に含まれる部品を「おもり」として装着していますが，購入していない場合は，無視してください．

---

　つづいて，<b><font color="#E84746">ステップ 4</font></b> に進む前に，モータを LEGO 部品と結合します．
　まず，<b><font color="#E84746">Pololu 社の「モータブラケット」</font></b>に <b><font color="#E84746">DFRobot 社のモータ</font></b>をはめ込みます．モータブラケットは向きがありますので，注意をしてください．

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/c7a519f3-617f-3458-5fdc-1cf451379611.png)|
|:-:|
|Pololu 社のモータブラケットの向き|

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/f6d29cec-32af-d13a-0ee7-a7d05676871d.png)|
|:-:|
|モータをモータブラケットに装着|

つぎに，<b><font color="#E84746">モータブラケット</font></b>のねじ穴に，<b><font color="#E84746">M2 x 18 の「バインド小ねじ」</font></b>を貫通させます．

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/636b4bad-246a-29ea-a271-76221f6966ba.png)|
|:-:|
|モータブラケットに M2 x 18 の「バインド小ねじ」を貫通させる|

さらに，<b><font color="#E84746">LEGO 部品 (デザイン ID：99773)</font></b>

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/f15b2efc-cdc3-0659-13dd-38f39dab08d8.png)|
|:-:|
|LEGO 部品（Technic, Liftarm, Modified Triangle Thin 3 x 5 with Short Supports，デザイン ID：99773）|

を 2 個，用意し，穴に <b><font color="#E84746">M2 x 18 の「バインド小ねじ」</font></b>を貫通させます．

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/2d1978e0-ecbb-5fe7-b303-e87fe5067e60.png)|
|:-:|
|LEGO 部品に「バインド小ねじ」を貫通させる|

そして，<b><font color="#E84746">M2 の「ワッシャー」</font></b>と <b><font color="#E84746">M2 の「六角ナット」</font></b>をはめ込み，<b><font color="#E84746">M2 x 18 の「バインド小ねじ」</font></b>を締めます．

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/22aae220-27fa-57f2-cb4e-5ca6799cf175.png)|
|:-:|
|「ワッシャー」，「六角ナット」をはめ，「バインド小ねじ」を締める|

最後に，<b><font color="#E84746">Tenka 社の「D カット 3mm 軸用アダプタ (Motor Shaft Adapter)」</font></b> を，モータ軸に差し込みます．

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/2ab33b41-cb5c-5324-fe7a-8d754280253e.png)|
|:-:|
|Tenka 社の D カット 3mm 軸用アダプタをモータ軸に差し込む|

　以上で<b><font color="#E84746">ステップ 4</font></b> の下準備は終了です．

---

　<b><font color="#E84746">ステップ 4</font></b> から<b><font color="#E84746">ステップ 6</font></b> まで（**[body_step4.pdf](https://github.com/Prof-Carter/LEGO_Rotary_Inverted_Pendulum/blob/main/pdf/body_step4.pdf)**，**[body_step5.pdf](https://github.com/Prof-Carter/LEGO_Rotary_Inverted_Pendulum/blob/main/pdf/body_step5.pdf)**，**[body_step6.pdf](https://github.com/Prof-Carter/LEGO_Rotary_Inverted_Pendulum/blob/main/pdf/body_step6.pdf)**），指示にしたがって組み立ててください．

|![body_step4.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/e5cf0e81-72b0-0d7f-36ca-29bf808be7b1.gif)|
|:-:|
|土台部の組立図（ステップ 4）|

|![body_step5.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/f3dadf48-189d-dea1-5145-cef2b16f22c6.gif)|
|:-:|
|土台部の組立図（ステップ 5）|

|![body_step6.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/ce67a938-fd27-6e48-e356-1c33fdfbb3cc.gif)|
|:-:|
|土台部の組立図（ステップ 6）|

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

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/852a46b0-ba4e-5e9b-b51f-aaf369ab366e.png)|
|:-:|
|土台部|

## 3.3　アーム部の組立図

　アーム部の組立図のPDF ファイルは以下から入手できます．
* **[arm.pdf](https://github.com/Prof-Carter/LEGO_Rotary_Inverted_Pendulum/blob/main/pdf/arm.pdf)**

---

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

　まず，エンコーダ，<b><font color="#E84746">LEGO 部品 (デザイン ID：99773)</font></b> と <b><font color="#E84746">M2 x 8 の「なべ子ねじ」</font></b>2 個，<b><font color="#E84746">M2 の「ワッシャー」</font></b>2 個を準備します．

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/0bad27de-8009-6ec4-7927-577aea0e4fe4.png)|
|:-:|
|LEGO 部品（デザイン ID：99773），なべ小ねじ，ワッシャー|

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

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/a963d5d1-084d-77f8-af92-90e7e8dcef16.png)|
|:-:|
|LEGO 部品（デザイン ID：99773）に「ワッシャー」と「なべ小ねじ」を通し，エンコーダに取り付ける|

　つぎに，<b><font color="#E84746">LEGO 部品 (デザイン ID：99773)</font></b>

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/4f5dace4-5751-3528-e5bc-4e9cc6df62c0.png)|
|:-:|
|LEGO 部品（デザイン ID：99773）|

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

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/3d0db922-2c44-4f89-f4fb-7e8042b28fcd.png)|
|:-:|
|エンコーダのコードを LEGO 部品の穴に通す|

エンコーダのコードは硬いので，アームを回転させると，バネのような反力を生じてしまいます．そこで，<b><font color="#E84746">ワイヤーストリッパーで断片的（1 cm くらいごとに）に外皮部分を剥がして</font></b>ください．

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/a97f6349-1feb-294d-a49c-bdea36255583.png)|
|:-:|
|ワイヤーストリッパーで外皮を断片的に剥がす|

---

　つぎに，エンコーダ軸に<b><font color="#E84746">Pololu 社の「2mm 軸用アダプタ」</font></b>を装着します．
　[Pololu 社の「2mm 軸用アダプタ」の製品紹介](https://www.pololu.com/product/1001)を見ると，説明文に

> https://www.pololu.com/product/1001
> （原文）
> Instructions
> 1. Fit the adapter onto the metal output shaft of one of the four gearmotors linked above. <b><font color="black">You will need to push quite hard; be careful not to damage the gearmotor.</font></b>
> 2. Slide the adapter into a LEGO wheel of your choice.
> 
> （日本語訳）
> ＜略＞
> <b><font color="black">かなり強く押し込む必要がありますが，ギヤモータを傷つけないように注意してください．</font></b>
> ＜略＞

とあります．かなりどころか，<b><font color="#E84746">元のままでは，どんなにがんばっても，モータ軸の先端しか「2mm 軸用アダプタ」の穴に入りません．「2mm 軸用アダプタ」の穴が狭すぎるのです．</font></b>

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/e486a0fc-f75a-338d-f357-c37506b0cd01.png)|
|:-:|
|「2mm 軸用アダプタ」の穴が狭いので，モータ軸を奥まで挿し込めない|

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

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/697b02c8-c6de-2759-a2d2-4c317c56aca0.png)|
|:-:|
|「2mm の精密ドライバー」の先端を「2mm 軸用アダプタ」の穴に挿し込み，左右に何回か回転させることで，穴を少しだけ拡げる|

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

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/d5733c8c-0496-9a95-e0bc-3853110e59a3.png)|
|:-:|
|「2mm 軸用アダプタ」の穴を少しだけ拡げると，エンコーダ軸の根本付近まで挿し込める|

なお，<b><font color="#E84746">「2mm 軸用アダプタ」の根本が LEGO 部品 (デザイン ID：99773) に接触しないように注意</font></b>してください．

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/bba987ca-c3a6-60c0-e5cc-42ec47c9cd89.png)|
|:-:|
|「2mm 軸用アダプタ」の根本が LEGO 部品 (デザイン ID：99773) に接触しないようにする|

---

　以上の下準備が終了したら，**[arm.pdf]()** にしたがって，アーム部を完成させてください．

|![arm.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/81b3c98a-c8dc-5869-1a01-a72762467afd.gif)|
|:-:|
|アーム部の組立図|

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/c4f4376e-e98b-bc92-13aa-278ad79a585c.png)|
|:-:|
|アーム部|

## <font color="#33CC33">3.4　完成図</font>

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

|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2552191/09c265ca-77dc-d5a4-e408-faf599cc29cc.png)|
|:-:|
|完成図|

# <font color="#33CC33">4. おわりに</font>

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

　次回は，**[MinSeg.com 社](https://minseg.com)**から販売されている**[車輪型倒立振子のキット](https://minseg.com/collections/products/products/minsegshield-m2v5-dual-axis-balance-minseg-kit-new)** に含まれている，<b><font color="#E84746">MinSegShield M2V5</font></b>（Arduino 互換マイコン＋シールド）との接続について説明する予定です．これ，簡単に Simulink と連携できる優れものです．

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

（終わり）

# <font color="#33CC33">参考文献</font>

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

1. K. J. Åström, and K. Furuta: [Swinging Up a Pendulum by Energy Control](https://www.sciencedirect.com/science/article/abs/pii/S0005109899001405), Automatica, Vol.36, Issue 2, pp.287-295 (2000)
　$\cdots\cdots$ https://doi.org/10.1016/S0005-1098(99)00140-5

1. 杉江俊治, 岡田昌史：[並列倒立振子システムの H∞ 制御](https://www.jstage.jst.go.jp/article/iscie1988/6/12/6_12_543/_pdf/-char/ja)，Vol.6, No.12, pp.543-551 (1993)
　$\cdots\cdots$ https://doi.org/10.5687/iscie.6.543

1. 川田昌克：[MATLAB/Simulink と実機で学ぶ制御工学 ― PID 制御から現代制御まで ―](https://www.amazon.co.jp/dp/B01CNSJTWQ/)，TechShare (2013)

1. 川田昌克：[LEGO MINDSTORMS を利用した回転型倒立振子の開発](https://www.jstage.jst.go.jp/article/sicejl/54/3/54_192/_pdf)，計測と制御，Vol.54，No.3，pp.192-195 (2015)
　$\cdots\cdots$ https://doi.org/10.11499/sicejl.54.192