SonyのMESHを入れるサイコロを作ってみた

##はじめに
[SonyのMESHハブとNode−REDをつないでみた](https://qiita.com/mnakada/items/9193e09ff47ebb4ed765)でMESHを入れるサイコロの例を上げたのですが、これの作り方が結構複雑なのでまとめてみました。

この記事がQiitaにふさわしいのかどうか判らないのですがコミュニティ・ガイドラインに
> 私たちの認識としては、技術的な内容が記事の主目的である限りは、「プログラミングに関係ある」記事だと考えています。

とあるので投稿してみます。問題あるようでしたら削除してください。

##前提条件
加工に必要な材料、加工機、工具がありますので、制作する場合は近所のファブラボなどの設備と費用をご確認ください。

###材料
+ MDF 350mm以上 x 200mm以上 6mm厚　(Daisoなどで売ってます)
+ 木ネジ(皿頭) Φ3~3.5mm x 20mm 2本
+ 木ネジ(皿頭) Φ3~3.5mm x 30mm 4本
+ 木工用ボンド　少々
+ 紙やすり　必要に応じて

####レーザーカッター(必須)
MDF 6mm厚をカット、彫刻できるもの
機種によりますがtrotec Speedy300なら最初のcutの実時間は10分程度、最後の彫刻は１面あたり２分程度 x 6面の加工時間です。
ファブラボでは時間貸しだと思いますので慣れていればcutで30分〜１時間、その後木工加工した後、彫刻で３０分〜１時間の２回に分けて予約するのが良いかと思います。
また、MDFの加工を認めていない場所も有りますので事前に確認してください。

####クランプ・バイス　2〜4本
レーザーカッターでカットした後、カットしたMDFを積層して接着する時に使います。
無ければ2〜3分手で抑えておいて、動かなくなったら本など重りを載せて暫く置いておくでも構いません。

####ボール盤(Φ6.5~7mmドリル)
木ネジの頭を沈ませるための加工に使います。
電動ドリル、手回しドリルでも大丈夫です。
電動ドリルの場合は加工時に穴を開けすぎないように注意してください。

####プラスドライバー(必須)
木ネジを締めるのに使います。レーザーカッターで穴は空いているので電動でなくても大丈夫です。

####ベルトサンダー
レーザーカッターでカットして組み立てた後、表面をきれいにするのに使います。木工用のベルトサンダーがない場合は、ちょっと大変ですが平らなところに紙やすりを置いて手で磨くことでも対応できます。

##作るもの
MESHの動きタグを入れるサイコロ

要件
+ 充電のためにMESHを取り出せること
+ あまり開くことが分からない作り
+ 普段使い出来る強度
ということで設計してみました。

<img width="400" alt="dice.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/159374/3d85bf4b-2bb2-be36-ade5-20313ae84bdc.png">
<img width="500" alt="dice2.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/159374/540ddede-6643-2645-3f12-0b25d7aeda91.jpeg">


##準備
レーザーカッター用のデータを用意します。

[カット用のデータ](https://geckolink.com/download/mesh_dice.dxf)はDXFファイルになっています。
中身はこうなっています。最終的な出来上がり寸法は60mm x 60mm x 60mmの正方形で6mm厚の板を10層重ねています。
![スクリーンショット 2017-12-28 9.43.23.png](https://qiita-image-store.s3.amazonaws.com/0/159374/0540a46c-f8b0-ee3b-7680-bfc9458ed4c3.png "スクリーンショット 2017-12-28 9.43.23.png")

カット用データはこのまま使っていただければ良いのですが、6面分の彫刻用データは好きなものを彫刻したいだろうと思いますので準備する必要があります。
基本的には白黒の2値のSVGデータを使用制限のないフリーのアイコンサイトから選んで準備します。サイコロを触っているうちに絵が見えなくなってくるので階調のあるデータは今回の用途にはおすすめできません。
今回は[ICOOON MONO](http://icooon-mono.com)から使わせてもらいました。
データは60mm x 60mmの中心にアイコンを適当な大きさで配置します。端の5mm位は面取り用に空けておいてください。正味最大でも50mm x 50mm、できれば45mm x 45mm程度までにしておいたほうが良いかと思います。

また、左上の角に1つ点を打っておいてください。
レーザーカッターの制御ソフトは左上を原点として加工しますが、加工データのないエリアを詰めてしまうので左上の原点に点を打っておかないとずれてしまいます。(speedy300の場合)
準備するデータのフォーマットは使用するレーザーカッターの機種によりますのでファブラボ等のWebSiteで確認してください。
Adobe Illustratorで準備するのが良いようですが、無い場合は白黒のSVGデータで6面分準備してファブラボで相談するのでもよいかと思います。

##レーザーカッター　カット
カット用データを使いカットしていきます。
speedy300の場合はIllustratorでDXFファイルを読み込み、カット用の線幅と色を指定して出力します。線幅と色を間違えると彫刻加工されてしまいます。また、MDF6mmの加工パラメータは経時変化などもあり機械毎に違ったりするのでファブラボの担当者に相談してください。

![Kobito.Jlx6rl.png](https://qiita-image-store.s3.amazonaws.com/0/159374/f5ac3777-f6ab-26e4-e52a-f9f9c7f9f0a5.png "Kobito.Jlx6rl.png")

カットしたMDFを組み立て順に並べたものです。
![Kobito.aePehL.png](https://qiita-image-store.s3.amazonaws.com/0/159374/9d86bf9b-3fd6-417a-53e7-8c2f6c17e0e8.png "Kobito.aePehL.png")

##接着
木ネジは下まで届かないので一部木工用ボンドで接着します。

まず、上蓋の方を作成していきます。
きれいな面が外側に出るように注意して赤枠の3枚を接着します。
接着する時にできるだけズレの無いように揃えてください。
きれいに揃えておけば、あとで側面を削る量が削減できます。
接着できたらクランプ・バイスで押さえておきます。

![Kobito.yzxULT.png](https://qiita-image-store.s3.amazonaws.com/0/159374/22dc28f3-4887-fc1f-3196-0d197607c29e.png "Kobito.yzxULT.png")

次に下側を作成します。
きれいな面が外側に出るように注意して赤枠の4枚を接着します。
4層目を接着する時に木工用ボンドは4層目に塗ってください。3層目に塗るとボンドが穴の部分にも付いてしまいます。
こちらも接着時にずれの無いように注意してください。
接着できたらクランプ・バイスで押さえておきます。

![Kobito.OQD0Yq.png](https://qiita-image-store.s3.amazonaws.com/0/159374/62b67802-4049-667d-c216-0f506fb8b465.png "Kobito.OQD0Yq.png")

##ボール盤で加工
下の赤枠の2枚をΦ6.5~7mmのドリルで加工します。

![Kobito.hmuVTq.png](https://qiita-image-store.s3.amazonaws.com/0/159374/9000ee22-341e-66d6-2877-cb5655515820.png "Kobito.hmuVTq.png")

穴の中心に合わせて、木ネジの頭が沈む位削ります。
開けた時に表に見えるので、きれいな面に加工してください。

![Kobito.yFCJUi.png](https://qiita-image-store.s3.amazonaws.com/0/159374/7d606f41-7b7d-3d19-a143-fc7688bb6c50.png "Kobito.yFCJUi.png")

計6箇所加工します。
取り付けに使う木ネジと切り出したMDFのパーツの関係です。

![Kobito.1YpT9f.png](https://qiita-image-store.s3.amazonaws.com/0/159374/7bd2e0f0-7dd3-62cc-6215-06f4c33e8418.png "Kobito.1YpT9f.png")

##組み立て
穴加工しているうちにボンドも乾いたと思うので、クランプ・バイスを外して組み立てます。
順番を間違えないように積んで確認したら、ネジを締めていきます。
下穴が空いているので簡単に締まります。
ネジの頭が出ないように注意してください。

![Kobito.G6qmtu.png](https://qiita-image-store.s3.amazonaws.com/0/159374/43c56dec-6b66-cdc3-9d38-feba7848d731.png "Kobito.G6qmtu.png")

組み終わったら上下を嵌め合わせて90度回します。
この後、側面を削っていくのでしっかりと回りきった状態にしてください。削る時にずれていると出来上がりが残念なことになります。

![Kobito.2WjbcA.png](https://qiita-image-store.s3.amazonaws.com/0/159374/fb9495be-76e0-4c95-d739-eb90fa069600.png "Kobito.2WjbcA.png")

##側面を削る
ベルトサンダーの上で側面の焦げているところを綺麗にしていきます。
この時の加工でサイコロの各面の平らさが決まるので削りすぎない程度に納得行くまで綺麗にしてください。また、この時ちゃんと閉め切った状態で加工しないと出来上がりで回し込んだ時にずれが出てしまいます。ベルトサンダーの振動で緩む場合があるのでしっかりと閉まっているか随時確認しながら削ってください。
軽くサンダーの上に置くようにして押し付けないほうがきれいに削れるようです。

<img width="400" alt="beltsander1.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/159374/de55e384-2361-a3c3-ccb6-d2db252b9b51.png">

面が綺麗になったら、辺も丸めていきます。
ベルトサンダーだとあっという間に削れ過ぎるので、もしかするとこちらは紙やすりで手でやったほうが綺麗にできるかもしれません。

<img width="400" alt="beltsander2.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/159374/69024c4f-fece-6223-d958-464f7825c86a.png">

ここまでやると立方体の完成になります。

<img width="400" alt="dice2.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/159374/df634442-df96-0381-4b18-ee2d66b26559.png">

##レーザーカッター　彫刻
最初に端材などで思った位置に彫刻されるかを確認してください。
また、ベルトサンダーでの加工で小さくなりすぎてないか大きさを確認してください。
また、加工を始める前に上下の面と側面の絵柄の並びと向きを考えてみてください。

最初に加工の原点を立方体の左上に合わせます。

<img width="400" alt="carve1.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/159374/9ff35a01-b888-80f0-f97e-70da0189b138.png">

面倒ですがこればかりはどうしようもないので、順番に各面に彫刻をしていきます。

<img width="400" alt="carve1.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/159374/21608d77-0c3e-2535-99e3-10ae4aab9c74.png">

完成です。

![Kobito.Zl5pml.png](https://qiita-image-store.s3.amazonaws.com/0/159374/fa96e128-0f37-1782-1b1c-48f1eb906790.png "Kobito.Zl5pml.png")

##MESHの設定
[SonyのMESHハブとNode−REDをつないでみた](https://qiita.com/mnakada/items/9193e09ff47ebb4ed765)で書いた内容ではNode-REDの最終段をdebugノードにしていましたが、今回は動きタグのOrientationのイベント情報だけ使用します。

![スクリーンショット 2017-12-28 12.16.21.png](https://qiita-image-store.s3.amazonaws.com/0/159374/678a6c97-123d-4144-445f-85be6de2b95c.png "スクリーンショット 2017-12-28 12.16.21.png")

```javascript:flow.json
[{"id":"f4a52c61.3d1628","type":"http in","z":"fe9c0fd2.f7d65","name":"MESH","url":"mesh-if","method":"post","upload":false,"swaggerDoc":"","x":90,"y":420,"wires":[["e09fd66c.f59718","9f31014f.665af"]]},{"id":"e09fd66c.f59718","type":"http response","z":"fe9c0fd2.f7d65","name":"","statusCode":"200","headers":{},"x":260,"y":360,"wires":[]},{"id":"9f31014f.665af","type":"switch","z":"fe9c0fd2.f7d65","name":"MESH-Acceleration","property":"payload.functionId","propertyType":"msg","rules":[{"t":"eq","v":"AccelerationShake","vt":"str"},{"t":"eq","v":"AccelerationOrientation","vt":"str"},{"t":"eq","v":"AccelerationFlip","vt":"str"}],"checkall":"true","outputs":3,"x":290,"y":420,"wires":[[],["eff41e06.069b18"],[]]},{"id":"eff41e06.069b18","type":"switch","z":"fe9c0fd2.f7d65","name":"MESH-Orientation","property":"payload.orientation","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"2","vt":"num"},{"t":"eq","v":"3","vt":"num"},{"t":"eq","v":"4","vt":"num"},{"t":"eq","v":"5","vt":"num"},{"t":"eq","v":"6","vt":"num"}],"checkall":"true","outputs":6,"x":510,"y":420,"wires":[["313506bb.49f75a"],["33439580.d08812"],["1e4ae30f.9bd43d"],["9c8c3db5.5de258"],["61191d74.5b23cc"],["f64a0b78.efa828"]]},{"id":"313506bb.49f75a","type":"debug","z":"fe9c0fd2.f7d65","name":"orientation1","active":true,"console":"false","complete":"payload","x":750,"y":320,"wires":[]},{"id":"61191d74.5b23cc","type":"debug","z":"fe9c0fd2.f7d65","name":"orientation5","active":true,"console":"false","complete":"payload","x":750,"y":480,"wires":[]},{"id":"33439580.d08812","type":"debug","z":"fe9c0fd2.f7d65","name":"orientation2","active":true,"console":"false","complete":"payload","x":750,"y":360,"wires":[]},{"id":"9c8c3db5.5de258","type":"debug","z":"fe9c0fd2.f7d65","name":"orientation4","active":true,"console":"false","complete":"payload","x":750,"y":440,"wires":[]},{"id":"1e4ae30f.9bd43d","type":"debug","z":"fe9c0fd2.f7d65","name":"orientation3","active":true,"console":"false","complete":"payload","x":750,"y":400,"wires":[]},{"id":"f64a0b78.efa828","type":"debug","z":"fe9c0fd2.f7d65","name":"orientation6","active":true,"console":"false","complete":"payload","x":750,"y":520,"wires":[]}]
```

debugノードorientation1~6への出力に分離しています。

MESH-orientationと名前をつけたswitchノードの設定です。
<img width="400" alt="switch.jpg" src="https://qiita-image-store.s3.amazonaws.com/0/159374/eb2253dd-f376-d153-91ec-c57d3bce9107.png">

MESHの動きタグをサイコロに入れた後に、それぞれの面を上にした時の出力がどのorientationに来るのかを確認し、それぞれの動作を追加してください。
debugノードの代わりに照明、エアコンの制御やtwitterやメール、REST APIを持つデバイスなどもつなげると思います。

##まとめ
レーザーカッターを使ってMESHを入れるサイコロを作ってみました。
嵌合部などは、もう少し工夫の余地はあるかと思います。
最近は色々な加工方法があって、技術がなくても簡単に加工出来るようになってきました。
たまには違うジャンルのことをしてみるのも楽しいですね。