toio core cube™️をホワイトボード上で動かす

結果だけ見たい場合は<a href="#まずは基本動作-回転と位置移動">こちらをクリック</a>

# SWITCH SCIENCEさんの「toio」ではじめよう、おうちでロボット開発第２回に応募した

　第１回の「[スイッチサイエンス「toio」取り扱い開始記念～「toio」ではじめよう、おうちでロボット開発キャンペーン～](https://mag.switch-science.com/2020/04/23/robot-programming-with-toio/) 」はCOVID-19や５月連休でばたばたしていてエントリーできずにスルーしてしまいました。まあ、[開発者マット(仮)](https://note.toio.io/n/n15ace43c69e6)は製品版買えばいいかなと思っていたら...
「[「toio」ではじめよう、おうちでロボット開発キャンペーン第2回開催決定！](https://mag.switch-science.com/2020/05/20/toio-campaign2/)」。
　ということでエントリーしてみました。
　せっかくエントリーしたなら、作例紹介して「『toio™コア キューブ専用充電器』用キャリングケース（非売品）」もゲットしたいところ。
　どうせなら開発者マット(仮)を使う意味のあるネタでないとダメだよなー、と思案しつつ「[「toio」ではじめよう、おうちでロボット開発キャンペーン、参加の皆さんの投稿紹介](https://mag.switch-science.com/2020/05/19/toio-posts/)」の「インタラクティブスクリーン」を見て思いつきました。

　思いついたネタは、磁石をtoio core cube™につけて吸い付くようにすればホワイトボードの上を走らせられるのでは？　開発者マット(仮)をホワイトボードに貼っておけば位置制御もできるのでいろいろできそう、というものです。
　まあ磁石で張り付かせるアイディアとしてはすでに「[うぉーるぼっと](https://qiita.com/jksoft/items/dbcbdff875e8e4a63ee2)」という先行事例はありますが、toio core cube™でやったやつはまだいない...はず。

#原理試作

　開発者マットが届く前に、まずは原理試作ということで100均ショップでネオジム磁石を調達。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/abc7e5ac-f036-4b6b-42f0-e945a39cb201.jpeg" width=50% alt="100均ショップのネオジム磁石">
　
　テキトーに選びましたが、サイズとしては直径13.2mm 厚み 2.5mm、小さいほうは直径6mm 厚み3mmでした。磁力を表すミリテスラ値はサイズが小さい磁石のほうが大きい値なのですが、たぶサイズが大きいほうがよく吸い付くだろうと判断してまずは、大きい磁石で試します。

　[Fusion360](https://www.autodesk.co.jp/products/fusion-360/overview)で磁石ホルダを作図。
<img width=50% alt="Fusion360で作図" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/6523e8d0-76a2-5ccb-7658-cc7f71241863.png">

　3Dプリンタで２つ出力してネジで締めます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/be84bad8-c282-6bed-d966-2feede4396bc.jpeg" width=50% alt="3Dプリンタで２つ出力してネジどめ">

　磁石をはめて、セロテープなどを貼ってさかさまにしてもはずれないようにします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/f84dff2d-22e9-dbbd-e875-c4dfb291fab8.jpeg" width=50% alt="磁石をはめる">

　裏側はこんな感じ　磁石ホルダが接地しない高さでとりつけます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/3458c16e-894c-a65a-7556-b4f6ec7e5fbb.jpeg" width=50% alt="裏側">
　高さは吸い付く力次第では下げたり上げたりしないといけないかもしれませんが、とりあずtoio core cube™の底面と磁石ホルダの底面を合わせます。

## 貼りつくか？
　さて実験。磁石で貼り付けるといえば、冷蔵庫。おお、いけた。間に紙を挟んでもくっつくことを確認。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/d58f40cd-c58f-072c-02c4-3c3c6dcd9738.jpeg" width=50% alt="冷蔵庫に磁石ではりつける">

　直径6mmタイプも同様にやってみましたが、残念ながらこっちは自重をささえるほどの力はありませんでした。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/40d5865f-14b5-0c79-2575-864487195004.jpeg" width=50% alt="9mmタイプ">
　2個を4個にしてみても、ささえられない感じなのでボツ。横への張り出しが大きくなってしまうけども13mmタイプを採用することにしました。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/e4519ad7-c48c-d35a-68f5-3fd7b35c1195.jpeg" width=50% alt="9mmタイプ 4連">

#開発者向けマット(仮)が届いた

　磁石で垂直な面に貼りつける実験をしているうちに、なんかでっかい封筒(A3サイズ)が送られてきました。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/28fbe3e0-cf7c-b669-8e8e-8c2ecb8f4f71.jpeg" width=50% alt="封筒">
　中身は中身は開発者向けマット(仮)12枚セット。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/0c0a6dae-5cf4-ba25-8682-0eabaa393749.jpeg" width=50% alt="中身は開発者向けマット(仮)12枚セット">

　早速、開発者マット(仮)を挟んだ状態で、ホワイトボードにくっつくかをテスト。大丈夫そう。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/98d00c53-869d-1290-dcc8-28aaf3d1df5a.jpeg" width=50% alt="開発者マット(仮)をホワイトボードに貼ってくっつくかテスト">

## 磁石が割れた

　ここで、何度か実験しているうちに落下させてしまい、その拍子に磁石が割れてしまいました。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/1ff59d5a-50e7-f0ef-20c0-08a51f80d9fa.jpeg" width=50% alt="割れた磁石">

　割れたぶんの磁石を補充すべく、100均ショップに磁石を買いに行きました。が、商品入れ替えのためか、目当てのネオジム磁石がおいてない。別の100均ショップにいってもない。さらに別の100均ショップに唯一置いてあったのがこれ。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/002ed9e6-d644-f75b-a9e2-497014efb773.jpeg" width=50% alt="キャン★ドゥのネオジム磁石"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/a5399a29-06ac-8642-9965-1e2c1223ce53.jpeg" width=50% alt="キャン★ドゥのネオジム磁石パッケージ裏側">

　13mmサイズのやつと直径はほぼ同じだが厚みが薄く、計ってみると直径12.7mm 厚み1.7mm。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/87e769b7-b21d-f79e-5b44-40718575ccf6.jpeg" width=50% alt="厚さ比較">

## 怪我の功名
　今までためした結果、パッケージに書いてある磁束密度(テスラ)の値よりは、磁石自体の容積が大きいほうがくっつく力が強いようなので、薄くなるとくっつく力が弱くなるはずです。
　この薄い磁石を磁石ホルダにはめて試すと13mm 2.5mm厚タイプよりくっつく力が弱い感じでした。
　これは使えないかなと思いましたが、「いや、厚みが薄いならtoio core cube™️の車輪の間に貼り付けられるのでは？」と思いなおしてやってみました。(2.5mm厚だと、車輪よりも高くなってしまうのでこの手は使えません。)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/3777b2e1-1770-3ee3-d9e8-f0425128d7d2.jpeg" width=50% alt="1.7mm厚磁石を裏面にセット１"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/ef427ec3-dcce-aaef-64be-be1c0a581327.jpeg" width=50% alt="1.7mm厚磁石を裏面にセット２">
　これが大正解。磁石とホワイトボードの間が狭くなることで、くっつく力が向上。また、見た目もすっきり。さらに磁石ホルダで両サイドに張り出しているとtoio core cube™を複数動かしている場合にぶつかりやすく使いづらいという問題もなくなりました。
　toio core cube™️の底面には鉄部品(たぶんモーターの外装)があるようで、磁石が吸い付くためテープで留めなくてもそれなりに使えますが、走行中にずれるのを防ぐためにテープで軽く留めておくほうが良いと思われます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/387b7f69-4158-8a7a-af0c-d3b9dddd7d37.jpeg" width=50% alt="冷蔵庫に貼り付けも問題なし"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/24861939-752c-823b-f7f9-9441bc150ab7.jpeg" width=50% alt="ホワイトボードに貼り付け">

## 注意：故障のリスクがあることを理解して次に進みましょう
　ただし、強い磁力をtoio core cube™️にかけて大丈夫か？という点での懸念はあります。一応toioの取扱説明書をひととおり確認しましたが、強い磁界においてはいけない、とは書いてありません。とはいえ、toio core cube™️の内蔵モーターが変に磁化してしまって誤動作、故障の可能性があります。
　**実際に試してみる場合はネオジム磁石の発する強磁界による故障リスクを考えたうえでご判断ください。**
　まあ、toio core cube™️の単品販売も始まったので、壊れたらまた買えばいいですし。(笑)

　リスクを理解したうえでチャレンジする場合でも、磁石をtoio core cube™️につけっぱなしにしておくのはあまりよろしくないと思いますので、動かしおわったら磁石をはずして保管したほうが良いでしょう。磁石つけたままだと充電できませんし。

# 実践　
　さて、ホワイトボードに貼り付けて動かせることで、いろいろな利点があります。
　垂直面でデモできるので、高い位置に設置することで、見やすくなります。プログラミング教育などの説明や、Maker Faireのデモに便利そうです。また、重力がかかるので重力を使った遊びをやってみるのもよいでしょう。

　なにはともあれ、実際に動かしてみましょう。

　外に持ち出して展示することを視野に入れて45cmx60cm(ほぼA2)サイズのホワイトボードをホームセンターで買ってきました。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/da9eac8a-760b-4fec-066c-ee210fdb5a19.jpeg" width=50% alt="45cmx60cmサイズのホワイトボード">
　これ、軽いのはいいんですが、鉄板が薄いようで、磁石のくっつき力はやや弱いようです。

　開発者マット二枚をつないで貼り付けます。二枚のマットは裏側でテープで段差が出ないように継ぎ目を貼り合わせます。
　ホワイトボードには両面テープかのりでびっしりと貼らないとダメかと思いましたが、フチを磁石で留める程度で大丈夫でした。バータイプの磁石を使うのも良いです。(梅雨の時期など湿気が強いと紙が伸びてたるむので、あえてぴったりと貼りつけないで、そのつど磁石で貼り直すほうが良さそうです。)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/431649/9c5e51cb-bd52-6ec8-5a3b-e7f6f86db4f4.jpeg" width=50% alt="A2サイズホワイトボードに開発者マットをマグネットで固定">

　以下の動作例では、[Python用ライブラリ tomotoio](https://github.com/tomoto/tomotoio)を使わせていただいています。動作環境はRaspberry Pi 3B、Raspbianです。

## まずは基本動作 回転と位置移動
[![toio core cube™️をホワイトボードの上で動かす](http://img.youtube.com/vi/efT_ffARcPQ/0.jpg)](http://www.youtube.com/watch?v=efT_ffARcPQ)
　回転していると重力に引かれてしたに下がっていきます。スリップ時に重力に引かれるので水平設置での動作を前提としていて位置を頻繁に読んで補正していないような制御ではまともに動きませんので注意。

## toioでディアボロ
[![toioでディアボロ](http://img.youtube.com/vi/mBkXiPprk6Q/0.jpg)](http://www.youtube.com/watch?v=mBkXiPprk6Q)
 [ディアボロ(Wikipedia)](https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3%E3%82%A2%E3%83%9C%E3%83%AD)
 2つのtoio core cube™に糸を渡してヨーヨーをぶら下げます。ヨーヨー部はLEGOのギアとホイールをシャフトでつないだものです。

## 宇宙遊泳?
[![宇宙遊泳](http://img.youtube.com/vi/-_3MnMl-RMs/0.jpg)](http://www.youtube.com/watch?v=-_3MnMl-RMs)
ホワイトボードをさかさまにして、LEGOの宇宙飛行士のミニフィグと人工衛星を吊り下げて動かしてみました。
ホワイトボードが影になるので撮影のために下からLED電灯で照らしたのですが、光量不足＆LEDのフリッカーで妙な感じに。

# toioはZ軸を征服した
　ネオジム磁石を貼り付けることで、ホワイトボードを垂直に駆け巡らせることができるようになりました。
　直径 15mm以下、厚み1.7mm程度のネオジム磁石が手に入れば簡単に試すことができます。
　ただ、いまのところこのサイズのネオジム磁石は100均ショップでは「[Can★Do](https://www.cando-web.co.jp/)」のものしか見つけられていません。磁石の専門店(https://www.neomag.jp/shop/ や https://www.e-sangyo.jp/ や https://www.magfine.co.jp/ など)でも買えるとは思います。
　強い磁石によってtoio core cube™が故障するリスクがありますが、リスクを理解したうえでチャレンジしてみてはいかがでしょうか。まあ壊れたらまた買えばいいんですよ。(笑)