toio core cubeでグラフィグを動かす

#ふと思いついた

　toio core cubeをひっくり返して２つの車輪の動きを取り出して機構を作る方法というのがありますが...

https://qiita.com/tetunori_lego/items/9d3168bccfe0bd685523


これを応用して、車輪の回転で傾くロッド２本を連結するようにすれば、pitch回転、roll回転ができるのでは？と。

　つまりこういうやつを作って、
<img alt="rods.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/278f9e56-cf0d-9f84-6ba1-9e0a95ea4042.png" width=50%/>

　こういうプレート状の部品で３つのロッドをゆるくねじで連結します。
<img alt="faceplate.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/db1c3542-6963-ac6c-ab17-9933bfbbf6ec.png" width=50%/>

　そしてtoio core cubeの車輪と棒の生えたホイールをいい感じに押し付けるための「押さえ」パーツを作ります。
<img alt="base.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/d398a014-efe5-1fd7-4514-19a433a28ff8.png" width=50%/>

　そしてこんな感じに組み上げます。
<img alt="mecha.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/0c39807f-c1e8-2ceb-6ac2-34d5f6e25bd9.png" width=50%/>

　そうするとtoio core cubeの左右の車輪の回転で、プレートがpitch方向に持ち上がったり下がったり、左右の車輪の回転の差分でプレートがroll方向に傾きます。

ちょうど首をかしげたような感じに右、左にある程度傾きます。
<img alt="P_20211205_101425.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/1368d591-6bac-7429-717e-b8d8971cec95.jpeg" width=30%/><img alt="P_20211205_101442.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/f0fe822a-84e8-68a5-8a69-0dacc49aa887.jpeg" width=30%/> 

裏側
<img alt="P_20211205_101519.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/8e40afa5-8eae-293d-9717-8b87ff73c902.jpeg" width=30% />

　さらにこの機構の下にもう一つtoio core cubeを連結すればyaw回転が足されるので３軸になります。

# 組み立て方

　材料は以下の写真のとおり。3Dプリンタでプリントしたパーツと、M3の40mmのねじ１本とナット１つ、M3の8mm(6mmとかでもかまいません)を3本。ホイールの軸はM3の40mmのねじ、プレート部を棒に取り付ける部分はM3の8mmのねじを使います。
<img alt="P_20211205_100827.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/cbedbcb4-7fc8-8e20-6280-d7d180698715.jpeg" width=50% />

## roll pitch部分の組み立て
　M3の8mmのねじ３本で左右のホイールから生えているロッドと中央のロッドを留めます。プレートと棒はぴったりくっつけた状態になるまでねじこんではいけません。数ミリ空けた状態のぐらぐら状態にしておきます。
<img alt="P_20211205_101047.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/95f87acf-7f36-14f8-5298-9300d7d2e360.jpeg" width=30% /><img alt="P_20211205_101054.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/88da3694-f598-bf6d-f10b-cefeae67aadc.jpeg" width=30% />

　M3の40mmのねじで左右のホイールと中央のロッドを串刺しになるようにして「押さえ」パーツにとりつけ、ナットで留めます。ここも強く締め付けないで、ホイールがスムースに回転するようにします。
<img alt="P_20211205_101314.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/5c8d91e4-bba4-0fcd-c352-96a8f5d1aca4.jpeg" width=50% />

## yaw部分の組み立て

　yaw部分を担当するtoio core cubeを連結します。このパーツを使って、toio core cubeを上下に連結します。丸く突き出ているのはpitch roll部分の左右のホイールをtoio core cubeの車輪におしつけるための輪ゴムをひっかける部分です。(または3mmねじで締め付けるための穴)
<img alt="toiocubeConnecter.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/f4ae58e1-37d8-5359-2af3-775d694295a7.png" width=30%/><img alt="P_20211205_101539.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/dc32fb4f-bf35-b7e9-cdb4-85b08b11ba5d.jpeg" width=30%/>

　輪ゴムを通して、連結パーツの丸く突き出ている部分にひっかけます。
<img alt="P_20211205_101622.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/8038b04f-5fe9-e994-f7fd-6d32c6929ffd.jpeg" width=50%/>

<img alt="P_20211205_101649.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/ea134634-1970-9ac2-0334-77ec4f77a0d1.jpeg" width=30%/><img alt="P_20211205_101654.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/9ffc7af1-0e7f-c055-9d7f-ef132c803890.jpeg" width=30%/><img alt="P_20211205_101706.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/15c5554f-0817-2286-914c-e996a7d81363.jpeg" width=30%/>

　yaw部分を担当するtoio core cubeを連結します。
<img alt="P_20211205_101738.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/452ed2f5-11c7-c68b-9796-13651b5a9b86.jpeg" width=30%/><img alt="P_20211205_101742.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/a60c3ef0-1af6-368e-224f-93988010af1d.jpeg" width=30%/>

#動作テスト

　3軸動作させてみます。toio core cubeのタイヤが滑ると少しずれてしまいますので、輪ゴムのテンションを調整してみてください。

https://youtu.be/F-MNwnzF2WI


　この機構を作るためのパーツのSTLファイルは Thingiverseのここにおいておきます。

https://www.thingiverse.com/thing:5155449



# グラフィグの首をつけてみる

　3軸回転する機構ができたのでなにか首のようなものをつけてみます。なんか適当なものはないか、できれば軽いものがいいなあと考えていたら、そういえば数年前、[グラフィグ](https://www.cospa.com/staticdoc/p/graphig_papertoy)とか流行ったなぁと思いだしました。
　あれだと紙なので軽いし加工も簡単です。

　今回、サンプルとしてグラフィグの始祖？のデータがこちらにあったので使わせていただきました。
 「NC帝國」さんのダウンロードページから"Blank Graphig"をダウンロードし、プリントします。
　https://ncempire.net/download 

　ちょうど白くてtoio core cubeにピッタリ。

　A4の紙(普通のコピー紙でも組み立てられますが、ペーパークラフト用の紙のほうが作りやすいです。)にプリントして組み立てます。

<img alt="P_20211205_092556.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/0fccb036-9e37-4a99-f485-45bb96ca8c52.jpeg" width=30%/><img alt="P_20211205_093550.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/5ad52ec6-75ba-dee2-c18a-caa45f30a25b.jpeg" width=30%/>

<img alt="P_20211205_094546.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/d07b7b41-e9ef-2056-d651-e97582702c2f.jpeg" width=30%/><img alt="P_20211205_095320.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/1bd7d165-f82f-c07e-e3ad-8ad1fa89a28e.jpeg" width=30%/>

　とりあえず胴体まで作ってみました。かわいい。
<img alt="P_20211029_150309.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/71eac2b8-4a32-bb61-6a13-89dddfd432a8.jpeg" width=50%/>

　今回使うのは首部分。機構のプレート部分が入るようにハサミで後頭部を切り欠きます。

<img alt="P_20211205_095613.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/5a3f8ba7-12b5-8140-4173-056403d624e0.jpeg" width=30%/><img alt="P_20211205_100335.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/efa7f79f-0950-6654-70a9-69cb9147c48b.jpeg" width=30%/>



　プレート部に両面テープなどをつけてグラフィグの首部分を貼り付けます。

<img alt="P_20211205_101951.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/bf326d57-082d-cfee-2c1a-43ea02dd2bf1.jpeg" width=30%/><img alt="P_20211205_102036.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/e1e02f11-5b38-8347-2479-9887bcfa8417.jpeg" width=30%/>

<img alt="P_20211205_102113.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/89c4066a-ee9a-9b15-505a-aa7a80be9d6b.jpeg" width=50%/>

<img alt="P_20211205_102105.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/2667c644-2edb-6994-bf69-b5bff895f154.jpeg" width=50%/>



　取り付けたら、上側のtoio core cubeの左右の車輪と下側のtoio core cubeの車輪を動かしてみます。
　時間は0.1秒単位で速度は10～20ぐらいがいいでしょう。

## 3軸動作サンプルコード Python
　tomotoioライブラリを使っています

https://qiita.com/kenichih/items/f78356107ba6428d73ec

```python
# tomotoioライブラリを使っています
from functools import partial
from time import sleep
from utils import createCubes, releaseCubes, Cube

cubes = createCubes()
cube = cubes[0]
lcube = cubes[1]
try:
    sleep(1)
    print("1")
    cube.setMotor(-15,-15,0.3);
    sleep(1)
    cube.setMotor(15,15,0.1);
    sleep(1)
    cube.setMotor(10,-10,0.1);
    sleep(1)
    cube.setMotor(-10,10,0.2);
    sleep(1)
    cube.setMotor(10,-10,0.1);
    sleep(1)
    lcube.setMotor(10,-10,0.2);
    sleep(1)
    lcube.setMotor(-10,10,0.4);
    sleep(1)
    lcube.setMotor(10,-10,0.2);
    sleep(1)
finally:
    releaseCubes(cubes)


```

## 3軸動作サンプルコード toio Do
<img alt="toioDo_shakeHead.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/752ffdd1-fdb4-a46f-fa58-38a3a67dc654.png" width=50% />


## 動作の様子
<img alt="P_20211205_102131.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/6775cbd4-20a8-ff24-13a0-a9718cfb8603.jpeg" width=30% /><img alt="P_20211205_102142.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/41383274-e6aa-6ef8-fbde-e21ef325ff1f.jpeg" width=30% /><img alt="P_20211205_102359.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/3a2ff5a0-41b6-099c-585d-3acbeb9d6ed5.jpeg" width=30% />

動画

https://youtu.be/QoKXTj2K3Hg


# さいごに
グラフィグは版権もの、自作を含めてとてもバリエーション豊かなのがいいですね。かわいいモーションをいっぱい作って楽しみたいです。

CanonのCreativeParkで配布のグラフィグ

https://creativepark.canon/jp/categories/CAT-ST01-0081/index.html

　下側のtoio core cubeはマットに載せれば正確なyaw回転の制御ができるのですが、上側のtoio core cubeはモーターの速度と時間のみでなんとかしないといけないのがなかなか厄介です。
　ホイールの直径を大きくして読み取りセンサーの上までかぶるサイズに拡大して、開発者マットをホイールの表面にまきつける、とかすると読み取りセンサーによってホイールをどこまで回転したか検知できるかも？とか考えてますが、できるかなあそれ。まあ今後の課題としておきます。


# おまけ
　グラフィグの頭をとりつけたプレートの隅に穴があいています。これを何に使うかというと...M2のねじ2本を使いまして...

<img alt="P_20211212_095057.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/9d421a24-2368-5d3e-f2d0-6ab97306ebd0.jpeg" width=30% /><img alt="P_20211205_104609.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/9e3ed54e-fc82-6fe7-1b27-7db6742bda5e.jpeg" width=30% />

<img alt="P_20211205_104655.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/4a8a3a27-8045-874f-1811-fca1638aaafb.jpeg" width=30% />

<img alt="P_20211212_095046.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/3725862c-801b-a5e1-4cb0-6206d5bd096b.jpeg" width=30% />
　Stack-chanの弟分？ Stick-C-chan feat. toio core cube をつくってみたいんじゃー。(来年のadvent calendarまでにはできるといいなぁ。)

https://protopedia.net/prototype/2345