tag:blogger.com,1999:blog-87103231901946244842024-03-13T16:13:55.895+09:00技術猫の工作室プログラム、電子工作、Webサービスを問わず、オープンな技術を使った工作活動を行なっています。工作の手順やノウハウだけでなく、それらのイベントへの展示について記事にしていきます。@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.comBlogger18125tag:blogger.com,1999:blog-8710323190194624484.post-31862537062652242832023-12-07T00:58:00.001+09:002023-12-07T00:58:54.501+09:00クラフト系ゲーム環境とサーバーと猫の話<p><a href="https://adventar.org/calendars/9540">mhidakaが建立した Advent Calendar 2023</a> 7日目です。</p><p>近況としては<a href="https://wscat.cattaka.net/2020/08/ubie.html">数年前に転職</a>していわゆる技術の最前線からはやや距離は置いているものの、新しい事業を作るというところで割と真面目に働いています。コードは普通にガチャガチャ書いてます。</p><p>プライベートではクラフト系だったりPvEのゲームとかは好きなので、ゲーミングPCを自作したり、ゲーム用サーバーを建てたりとかあれこれやってます。</p><p>デスクまわりはこんな感じです。机の下にキューブ型ケースの自作用PC2台を積んで置いていて、それぞれゲーム用PCとサーバー用PCです。</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxCohznLejPpMMp43c6gmmOlWtqWLZz9RPZp3p2poz1_fiIAL4ecIwjjPDaRWdQ4ankqeo3fi0BIVU0ii4_lOuDwcNjAjej3O-jyO2kj7Lb2ZFf8O217p_ZsQZE3rPJ_f99JjQmJ1nqqaBAAZH0A7scOQGsJ6q_Z6beH97h24cftnyhjWppR0QaAIw6pA/s4080/PXL_20231203_063639954.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4080" data-original-width="3072" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxCohznLejPpMMp43c6gmmOlWtqWLZz9RPZp3p2poz1_fiIAL4ecIwjjPDaRWdQ4ankqeo3fi0BIVU0ii4_lOuDwcNjAjej3O-jyO2kj7Lb2ZFf8O217p_ZsQZE3rPJ_f99JjQmJ1nqqaBAAZH0A7scOQGsJ6q_Z6beH97h24cftnyhjWppR0QaAIw6pA/s320/PXL_20231203_063639954.jpg" width="241" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><p></p><h3>ゲーム用PCがどんなんか</h3><div><div>構成はよく変えるけど、だいたいAMD系であることが多いです(純粋に好みとして)。</div><div>キーボードはゲーミングキーボード的なのを何度か買おうと考えたけど、結局ストロークの浅いのが好みなのでThinkPadキーボードをずっと使ってます。</div><div>マウスは超軽量という評判に惹かれて買った<a href="https://row.hyperx.com/collections/gaming-mice/products/hyperx-pulsefire-haste-2-wireless-gaming-mouse?variant=41560780570829">HyperX Pulsefire Haste 2</a>を愛用してます。</div><div>クラフト系ゲームをやっていると左手が忙しいので<a href="https://www.razer.com/jp-jp/gaming-keypads/razer-tartarus-v2">Razer Tartarus V2</a>も併用している。</div><div>インディーズゲームとかを遊ぶときに、ダウンロード元を何処まで信用できるかに懸念があるので、他のPCとは独立させています。</div></div><div>ここ数年で長くプレイしたゲームはこの辺り。</div><div><ul><li>Icarus | The Future of Survival</li><li>Valheim</li><li>地球防衛軍5</li><li>Empyrion</li><li>ARK</li><li>Watch Dogsシリーズ</li><li>Minecraft</li></ul></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkPpJqP1TVEqGrI1ajYgE5d1rQuuMAMP-tio6xhKJCD02sCZf7NdwwZDisd2zc25aroiY0mXk-9DEtAKdfa6h2a2WpCwy05PQ88BIAb4_cQqS5sv4VRu5zDPF0xUB0PvJ_k9c1kJ5Jzw096iVBv94L2SFZ5avY4cPKXF9SBTm3CDOSgxHmnsrTUU2ZKsg/s2048/valheim.jpeg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1152" data-original-width="2048" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkPpJqP1TVEqGrI1ajYgE5d1rQuuMAMP-tio6xhKJCD02sCZf7NdwwZDisd2zc25aroiY0mXk-9DEtAKdfa6h2a2WpCwy05PQ88BIAb4_cQqS5sv4VRu5zDPF0xUB0PvJ_k9c1kJ5Jzw096iVBv94L2SFZ5avY4cPKXF9SBTm3CDOSgxHmnsrTUU2ZKsg/w400-h225/valheim.jpeg" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;">Valheimで建築した出雲大社の巨大神殿</div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlhI5Zgs287IZyFdJYeV5NaWoKFElRqMZ5OFoL1hYh70OuEX0ktRI3isENLZMhjagw441WpCijKbSyY0OBTT1BaEpmoej5jQoVMtIYc1krIdIJ9fjtREW21QvUTY6BkBVxNdTdvQGEKT0pz-5YBKLLzzeJ_0xBYxbccRAHj6Z32X1xnbgdou7xllDh-Ws/s1707/icarus.jpeg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="960" data-original-width="1707" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlhI5Zgs287IZyFdJYeV5NaWoKFElRqMZ5OFoL1hYh70OuEX0ktRI3isENLZMhjagw441WpCijKbSyY0OBTT1BaEpmoej5jQoVMtIYc1krIdIJ9fjtREW21QvUTY6BkBVxNdTdvQGEKT0pz-5YBKLLzzeJ_0xBYxbccRAHj6Z32X1xnbgdou7xllDh-Ws/w400-h225/icarus.jpeg" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;">Icarusで火事で焼け落ちる拠点を呆然と眺める姿</div><h3><br /></h3><h2 style="text-align: left;">サーバー機にしてるPC</h2><div>数人でクラフト系のゲームをやってるとホスト(サーバー)を誰がやるかが課題に挙がります。自分がプラッと建築とかしたくても、ホスト役の人がゲームを起動してないとワールドに入れないのは都合が悪いんですよね。レンタルサーバーを使うのもいいけど、建てっぱなしにするのはお金が継続的に掛かるし勿体ない。なのでサーバーを建てることに。</div><div><br /></div><div>以前はDeskMiniという流行りのMini PCにDebian Linuxを入れてそれに<a href="https://linuxgsm.com/">LinuxGSM</a>というサーバーを建てるのを便利にするのをいれて運用していました。</div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5iFZID-c1zEUlYmW5QoJlgLU826ry0ebjxQW8F1jADvoBcCg_sV4VPFp8eXsT2EmjFk2teog2WMgnwqZt0LDQxAuW-8E77MY_Fnd336G0St9fAXYdvYbMhYT5FYyqb4IHU_Msb7q7ESRZh3fsBupvzqxmRqp2CZ79V-1dwgVWEQUTLk5O0MllbId6ov0/s4032/IMG_20200502_190349.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5iFZID-c1zEUlYmW5QoJlgLU826ry0ebjxQW8F1jADvoBcCg_sV4VPFp8eXsT2EmjFk2teog2WMgnwqZt0LDQxAuW-8E77MY_Fnd336G0St9fAXYdvYbMhYT5FYyqb4IHU_Msb7q7ESRZh3fsBupvzqxmRqp2CZ79V-1dwgVWEQUTLk5O0MllbId6ov0/s320/IMG_20200502_190349.jpg" width="320" /></a></div></div><div><br /></div>ただ、ゲームの数が増えてくると1個のPCで管理すると別のゲームに影響しそうなので、ゲームごとに分けたくなり、だからといって物理的にPCを増やすのは面倒なので、仮想化環境を構築することにしました。</div><div>それが今のサーバ機にしているPCで、<a href="https://pve.proxmox.com/">Proxmox VE</a>で中に複数のサーバーが動いています。こだわりどころで言えば、クラフト系のゲームのサーバーって結構メモリを食うので、メモリを128GB積んでいること。さらにECCメモリなので、動かしっぱなしにしても謎なエラーを気にしなくて良いと言うのがあります。<br /><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjESk20ALrvUT5IsKUMwjMqpYGYR98NoejDK_XVr5DN8cywx7xSV7s3YfooE4dAovwzaQ4i1EBsZdMKtALxl2NnJ0RZ6iM-kDtOH4KBr6fpnCaODm1f5Sy_toRkaK6BY1LWA4OcCi0DmTNpKZ8B3DZalSRr9aD__hPj69QVMCe-P8YGtHSFVsC-7PDHVDg/s2549/20231206.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1323" data-original-width="2549" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjESk20ALrvUT5IsKUMwjMqpYGYR98NoejDK_XVr5DN8cywx7xSV7s3YfooE4dAovwzaQ4i1EBsZdMKtALxl2NnJ0RZ6iM-kDtOH4KBr6fpnCaODm1f5Sy_toRkaK6BY1LWA4OcCi0DmTNpKZ8B3DZalSRr9aD__hPj69QVMCe-P8YGtHSFVsC-7PDHVDg/w400-h208/20231206.png" width="400" /></a></div><div><br /></div><div>また、Proxmox VEには<a href="https://pve.proxmox.com/wiki/PCI(e)_Passthrough">PCI(e) Passthrough</a>の機能があり、仮想マシンに物理のGPUを接続できます。なので勉強がてら仮想マシンのUbuntuで<a href="https://jupyter.org/">Jupyter Notebook</a>や<a href="https://ja.stability.ai/stable-diffusion">Stable Diffusion</a>とか動かしてみたりとかにも使っています。ただ、MircoATX用の小さい筐体にあれこれ詰め込んだ結果、中身が地獄みたいになっているのはご愛嬌です。</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif_9Q5GVoQI-8SGYpB2TC5QS7n1rD5DPnUdWCbIaaSuqMJKDvEvsObONVX8RZOG6jNC3RAO9jX3ghsYdqsGSeHLxhpHdUuBDspEBGXZXyiHBjHC4EndTJvcI37fww1G_Nbt5Zh4EqeTfQPVESd9Y82DZFIL0IvFnp19iksen6AOEFhQ0Wy0kWHDi9nAXc/s1811/20231206.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1364" data-original-width="1811" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif_9Q5GVoQI-8SGYpB2TC5QS7n1rD5DPnUdWCbIaaSuqMJKDvEvsObONVX8RZOG6jNC3RAO9jX3ghsYdqsGSeHLxhpHdUuBDspEBGXZXyiHBjHC4EndTJvcI37fww1G_Nbt5Zh4EqeTfQPVESd9Y82DZFIL0IvFnp19iksen6AOEFhQ0Wy0kWHDi9nAXc/w400-h301/20231206.jpg" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;">詰め込みすぎたサーバー機の中身</div><div><br /></div><h2>ネットワークのお話</h2><p>仮想マシンとしてサーバーをたくさん建てるのは良いけど、外からのアクセスを考えるとルーティングをちゃんとしないといけません。罠になりそうなのが2つあります。1つは契約してるインターネットプロバイダがそもそも外から繋げられるようになってるかです。もう1つは使っているルーターのポート開放の挙動です。ポート開放がなかなかの曲者で、一般向けのルーターだとポート開放の機能がオマケ程度になっていて、アクセス元が内側か外側かで挙動が変わって、動いたり動かなかったりするケースがあるからです。なのでこの辺りで嵌ったら正式にサポートしているルーターを使うことをオススメします。僕はメルカリで購入した<a href="https://network.yamaha.com/products/routers/rtx830/index">YAMAHA RTX830</a>を使っています。</p><p><br /></p><h2 style="text-align: left;">余談:猫用定点観測カメラ&給餌器</h2><p>自宅に猫が2匹いますが、飼い主の朝が遅いため、朝御飯はタイマー付きの給餌器に任せています。ただちゃんとご飯を食べられているかの確認(黒白さんが灰錆さんのご飯を強奪するんですよ、、、)に録画用のRaspberry PIを設置しています。</p><p>仕組み的にはRasplerry PiにインストールしたDebian Linux上でこんな感じのシェルスクリプトをcronで決まった時間に実行しているだけです。(ついでに録画されたファイルはnginx経由でローカルネットワークからのみ閲覧できるようにしてます。)</p>
<pre class="prettyprint" style="background-color: lightgrey; margin-left: 2em; white-space: pre-wrap;">#!/bin/sh
OUT_DIR=/var/www/html/movies
FILE_NAME=`/bin/date "+%Y%m%d-%H%M%S"`.mp4
# USBをオンにしてLEDライトを点灯
/usr/sbin/uhubctl -a on -p 2
# カメラの設定
/usr/bin/v4l2-ctl \
--set-fmt-video=width=320,height=240,pixelformat=YUYV \
-d /dev/video0
# ffmpegで録画
/usr/bin/ffmpeg \
-f video4linux2 \
-s 320x240 \
-t 600 \
-i /dev/video0 \
-r 10 \
-c libx264 \
-threads 4 \
$OUT_DIR/$FILE_NAME
# USBをオフにしてLEDライトを点灯
/usr/sbin/uhubctl -a off -p 2
</pre>
<p>ご飯の時間になるとこれによって録画されるという寸法です。</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgasWriF-tzEjILUOoa264wR2vJQU5IGfbYRJubSpi3qzte-FTv7UpdLtLUGkGugnIrlcArN8B1HrwaLlwXppHClDRkQlBHO6BgZWEU7ari_keTscWn6f2Ph55tLRgsoLd7s_lbRmL1txRY3w-dB9K8ydG5QbAstPCvA4QFIOFOr_jEDG9sn1wEZNrUFNo/s1811/20231206_2.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1364" data-original-width="1811" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgasWriF-tzEjILUOoa264wR2vJQU5IGfbYRJubSpi3qzte-FTv7UpdLtLUGkGugnIrlcArN8B1HrwaLlwXppHClDRkQlBHO6BgZWEU7ari_keTscWn6f2Ph55tLRgsoLd7s_lbRmL1txRY3w-dB9K8ydG5QbAstPCvA4QFIOFOr_jEDG9sn1wEZNrUFNo/w400-h301/20231206_2.jpg" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;">給餌器と録画用Raspberry Piの配置<br /><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaMbMaCSvGs16OAgN7honNkmjSK2Mboiyr1MitDoyBhLHnLDwyO_t93ofkrSp_PjkTVKy0WhNhePKTEQi_05c51zZqdtnmijQceHQ-lxxI0a4TK7vpDS6fY6jhbKSc2v5oaseYLy_7hjpTO8Mb05cdIK0h76Ac6hjpaUJld5tKk6BkbbZkMeHbjk1NTnk/s400/20231206_3.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="300" data-original-width="400" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaMbMaCSvGs16OAgN7honNkmjSK2Mboiyr1MitDoyBhLHnLDwyO_t93ofkrSp_PjkTVKy0WhNhePKTEQi_05c51zZqdtnmijQceHQ-lxxI0a4TK7vpDS6fY6jhbKSc2v5oaseYLy_7hjpTO8Mb05cdIK0h76Ac6hjpaUJld5tKk6BkbbZkMeHbjk1NTnk/w400-h300/20231206_3.jpg" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;">撮影された動画</div><br /><div>なお、晩御飯は人間が手であげているのですが、ご飯時になるとこういう感じで圧を掛けてきます。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKUq5enbvDRKvG32qPB6h9TVtvCybUJkWA2jkZOeSQ2N9AlQoDerbZz8GnaZ9v1xH1ZXBA5qFwffDircNs9jFNn2ecmUhISBd_L9yTYUG4BdzXXqBTUqmww15-lJl9OxTPsrgDilnODpg2zwQP4QPiYzO8c12f-UtfA-gLg4EKH_d7CMJtBuBIY1qR31Y/s4080/PXL_20231125_012430956.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3072" data-original-width="4080" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKUq5enbvDRKvG32qPB6h9TVtvCybUJkWA2jkZOeSQ2N9AlQoDerbZz8GnaZ9v1xH1ZXBA5qFwffDircNs9jFNn2ecmUhISBd_L9yTYUG4BdzXXqBTUqmww15-lJl9OxTPsrgDilnODpg2zwQP4QPiYzO8c12f-UtfA-gLg4EKH_d7CMJtBuBIY1qR31Y/w400-h301/PXL_20231125_012430956.jpg" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;">飼い主に御飯の圧を掛ける2匹</div><br /><div><br /></div><h2 style="text-align: left;">来年とかに思うところ</h2><div>コロナ禍も落ち着いてきて、物理イベントも増え始めたので、物理的に何か作りたいと思う今日この頃です。</div><div><br /></div>@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-49086171171492548172020-08-14T13:11:00.001+09:002020-08-14T17:31:59.590+09:00一年越しの転職ブログ:Ubie株式会社にジョインしました<h2 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">概要</span></h2><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">2019年10月に<a href="https://ubie.life/" rel="nofollow" target="_blank">Ubie株式会社</a>に入社していたのでその報告です。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><h2 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">なんで今頃書いたの?</span></h2><strike style="color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">入社エントリーを書いてとめっちゃせっつかれました。</strike><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">物臭なのと入社前後がいろいろ変わった時期で忙殺されていて書けていなかったのですが、いま思えばUbieには入社を決めるだけの魅力があったので、遅くなりつつも筆を取ることにしました。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><h2 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;"><br /></span></h2><h2 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">君は誰?</span></h2><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">僕自身、いろんなことをやっていたのですが、<a href="https://twitter.com/cattaka_net" rel="nofollow" target="_blank">twitter</a>、<a href="https://www.slideshare.net/TakaoSumitomo/" rel="nofollow" target="_blank">SlideShareの講演資料</a>、<a href="https://www.wantedly.com/users/392473" rel="nofollow" target="_blank">Wantedlyのプロフィール</a>、<a href="https://qiita.com/cattaka" rel="nofollow" target="_blank">Qiita</a>、このブログなど、いろんなところに情報が散らばっているので、ざっと自己紹介します。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><h3 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;"><br /></span></h3><h3 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">何がしたい人?</span></h3><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">個人としては手を動かして何かを作っていたい、社会との接点としては何かを作るなら誰かの役に立つもの、面白いものでありたい人です。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><h3 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;"><br /></span></h3><h3 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">社会人になるまで</span></h3><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">小学校のときにN88-BASICを触りプログラムを学び始めました。中高生のころは小遣いを溜めてPC部品やVisual BasicやVisual C++を買ってました(当時は無料で手に入る開発環境がなかったのです)。ずっとコードは書いていたものの高校くらいまでは学校の勉強をほとんどしてなかったので成績は低空飛行していました。両親および教師から「プログラムの仕事なんかない」といわれたのを真に受け(実際、当時は少なかった)、比較的得意だった物理科に進学した。当時は情報工学科がある大学はとても少なく、選択肢が無かったのもあります。とはいえ、大学3年のときにやはりプログラムがやりたいと考え、このころにJava(1.4→5の時期)とLinux(2.4〜2.6の頃)を独学で学び始める。当時の自分はライブラリを使うという考え方が無く、なんでもかんでもフルスクラッチで作っていたが、そのときの経験が今に生きているとも感じている(2D物理エンジンや3Dのレンダラー、通信プロトコルも自分で作ってた)。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">大学院の修士課程のころに諸事情でメンタルをブッ壊し、新卒の就職活動をしくじる。就職氷河期の終わり頃で新卒カードを失うとまず仕事にありつけないDead or Alive状態でした。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><h3 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;"><br /></span></h3><h3 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">社会人になってから</span></h3><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">新卒でしくじったものの何とか仕事にはありつけた。しかし当時はバブルが弾けて以降、プログラマを正規雇用する企業はとても少なく、プログラマは派遣や受託企業で案件単位で動かされるリソースという扱いで、僕もそのうちの一人でした。2014年くらいまではSIerさんやメーカーさんでWindowsアプリ作ったり、業務系Web作ったり、Androidアプリを作ってました。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">ただ、この頃の自分はかなり擦れています。僕自身、要求されたものを期限内に作っていたつもりですが、何か提案/提言すると「たかがプログラマ」という扱いをされていました(実際何度も言われた)</span><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">。とはいえ、当時の自分はプロダクトを如何に作るかを知りませんでした。手を動かすのは好きだったので個人でいろんなものを作ってはいたけれど、それらをプロダクトとするのに何が必要なのかを知らなかったのです。</span><div><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">あの頃、SIerさんやメーカーさんで会った方々に聞くと「面白ければバズって広がる」とか「良いプロダクトを作れば自然と広がる」と返って来ましたが、いまいちピンと来ず、悶々とする日々を送っていました。だけど、これは後にいろんな勉強会やハッカソン、特にStartup Weekendに参加したことで、少しずつ理解でき、解消されていきました。もっとも、この辺りは昨今のプロダクト開発に関わっている方は普通に備えているマインドセットだとは思うので、「プログラマは依頼されたものを作っていれば良い」という環境に長くいた当時の僕に抜けていた考え方だったのだと思います。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">その後、紆余曲折あり2014年12月に前職であるWantedlyにジョインしました。当時はまだ20人くらいで、Androidのアプリ開発に軸足を置きつつ、プロダクト開発に携わらせて貰いました。その時に学んだことや得たものは<a href="https://www.wantedly.com/companies/wantedly/post_articles/214809" rel="nofollow" target="_blank">WANTEDLY TECH BOOK</a>や、<a href="https://droidkaigi.jp/" rel="nofollow" target="_blank">DroidKaigi</a>を通してアウトプットさせて貰っています。Wantedlyにジョインしたモチベーションは、自分の氷河期時代だったころの学生にあった「如何に面接官を攻略して内定を勝ち取るか」や「会社員は社内のストレスに耐えていくもの」という価値観、「社会人と学生の接点の少なさ」に課題を感じており、それらを変えたいというものでした。いずれもプロダクトを通して、やれることと、自分のやりたいと思ってたことがおおよそできたので、後は後任の人達に任せて自分は別に移ることにしました。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><h2 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;"><br /></span></h2><h2 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">今回の転職活動はどんなんだったか?</span></h2><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">知人やWantedlyやLinkedIn経由で何社かお話を聞き、その会社の社会的意義と自分の能力や時間を掛けたいかどうかを基準に選びました。特に僕はモチベーションが<a href="https://ja.wikipedia.org/wiki/%E3%83%94%E3%83%BC%E3%82%AD%E3%83%BC" rel="nofollow" target="_blank">ピーキー</a>なので、それが維持できるものを優先して探していました(逆に給与面や福利厚生については自分の能力から相場くらいであれば気にしない、ただし安売りはしない</span><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">)。給与面や福利厚生面、技術的なTRYなど、魅力的なオファーはいくつか頂いていたのですが、その中でも自分の中で医療分野における課題やそこへの自分への興味と技術的なtryが重なり、Ubieへの入社を決めました。</span></div><div><span style="background-color: white; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;"><span face="" style="color: #202124; font-family: roboto, arial, sans-serif;">このとき面談等していただいた会社および採用担当の方々には時間を割いて頂き</span></span><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">、本当にありがとうございました。</span><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">深く感謝申し上げます。</span></div><div><h2 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;"><br /></span></h2><h2 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">Ubieに入社前と入社を決めるまで</span></h2><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">Ubieに来る前まではAndroidアプリをメインとしていたのでKotlin言語を使っていて、その言語界隈で名前が通っていた、<a href="https://twitter.com/ngsw_taro" rel="nofollow" target="_blank">@ngsw_taro</a> さん、<a href="https://twitter.com/sys1yagi" rel="nofollow" target="_blank">@sys1yagi</a> さん、<a href="https://twitter.com/shiraj_i" rel="nofollow" target="_blank">@shiraj_i</a> さんの3人がUbieに在籍していたのは知っていました。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">最初にカジュアル面談で話を聞いたときはサーバーサイドKotlin(Spring Boot)を使っていることや、AIで医療をサポートをしていることを聞きました。特に後者のAIの文脈は、僕自身学生時代に知識情報処理を学んでいたので「まぁ今のコンピューターならできるよね」くらいの認識だった(僕が学生だった2000年頃のPCではGPGPUは珍しく、CPUの性能も低く、32bitの壁でメモリも足りず、厳しかった)。なので最初の頃はUbieはスタートアップ的なプロダクトや組織の成長はするだろうと思いつつも、既に目指す未来が現実的な状態になっているように聞こえたので、一回断っていました。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">その後、代表の阿部と話したところ、現在の医療現場には僕の認識を遥かに超える課題があること、それらが改善できれば医療従事者だけでなく、医療を受ける人にもメリットがあり、敷いては世界中の医療の改善に繋がるということを知りました。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">たとえば医師の方は時間外労働の上限が960時間(普通は360時間)というとても厳しい環境に置かれています。他の職種ならば忙しいなら売上が増えるので人を増やすことができるのですが、医療系は学校の数が限られているため、それができず、如何に業務負荷を減らすかが肝になるとのこと。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">現在、医療現場で課題になっていることの多くはテクノロジーで改善できるとのこと。そこの改善にフォーカスし、実際に現場に導入され実運用されているプロダクトはUbie以外には殆ど無いないとも。でも、そこがゴールでは無く、Ubieのミッションに「テクノロジーで人々を適切な医療に案内する」とあるように、むしろそこから先にある。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">僕自身、過去にSIerさんで凄まじい量の紙ベースで行われていた生産管理をITストラテジストの方とシステム化して改善をしたことがあり、それは楽しい仕事だったことを覚えています。でもUbieが解決しようとしている課題はそれの遥か上をいっているし、</span><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">社会的意義も大きく、</span><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">自分もそれに携わりたいと思いました。</span></div><div><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">自分はエンジニアというよりも何かを作るのが好きな身として、自分が作っていて楽しいもの、そしてそれが人の役に立つものであって欲しく</span><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">、Ubieがそれに一番近いものだったので、ジョインを決めました。</span></div><div><h2 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;"><br /></span></h2><h2 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">Ubieにジョインしてからのギャップや印象</span></h2><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">ときどき巷で「スタートアップらしさ」というものが話題にあがります。「スタートアップなら〇〇するよね」みたいなやつです。でもUbieだとそういうのはあまり見ません。あるのは「その場その時勢における最適を選んだら結果としてそうなった」です。言語化すると当然のことなのかもしれないのですが、現実ではそれに嵌ってしまっているスタートアップはチラホラと見かけます。それが起こってない辺り、自分の想像の斜め上を行っていました。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">僕がジョインした頃は社内でスクラムの運用が始まった頃でした。丁度そのとき面白いことが起こっていました。タスクのストーリーポイント(課題の大きさ)を決めるときに、数字がデフレを起こしていたのです。簡単にいえば実際2週間くらい掛かるタスクを「いけるっしょ!」で1週間と見積もったりするやつです(ストーリーポイントを工数扱いすると怖い人に起こられるのですが)。勢いがあるにしても、ちょっと勇み足状態でした。でも、メンバーの課題への気づく能力と意識が凄まじく、数字の適正化とタスク分解が数スプリントで行われるようになり改善されました。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">組織についても今のUbieのビジョンやメンバー構成、ビジネスなどを考慮した上でどの手法が適しているかを踏まえつつ、組織を作っていっているので流石だと感じています。僕の過去の経験でもワンマンの組織には各メンバーの納得感が欠落する課題があり、話し合いベースの組織だと意思決定が延々として進まない課題があったと記憶しています。これらの躓きやすい課題に嵌まり込まずに、一緒に組織の実装を協力して作っていける人達がメンバーにいると感じています。ソフトウェアでは思想と設計と実装は中々思ったとおりに擦り合わないけど、組織でも同じだと僕は考えています。それをメンバー全員が一緒に考えていける人達だと感じています。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><h2 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;"><br /></span></h2><h2 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">実際、普段は何をしてるの?</span></h2><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">僕は「<a href="https://introduction.dr-ubie.com/" rel="nofollow" target="_blank">AI問診Ubie</a>」という所謂ToBプロダクトの開発に携わっています。平たくいうと医療機関様で患者さんが使うタブレットとお医者さんのPCで使用するWebアプリケーションです。バックエンドはKotlinとRuby、フロントエンドはReactをType Scriptで書いています。たまに「<a href="https://ubie.app/" rel="nofollow" target="_blank">AI受診相談Ubie</a>」というToCプロダクトのコード(Vue.js)も書いています。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">コードを書く以外だと、スクラムの各種セレモニー(プランニングやリファインメント、デイリースクラムなど)に参加したり、全体のOKRや採用の作業もしています。これだけ聞くと「エンジニアの仕事じゃない」と思われるかも知れません。</span><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">実際、<a href="https://dic.nicovideo.jp/a/%E3%81%9D%E3%82%93%E3%81%AA%E3%81%B5%E3%81%86%E3%81%AB%E8%80%83%E3%81%88%E3%81%A6%E3%81%84%E3%81%9F%E6%99%82%E6%9C%9F%E3%81%8C%E4%BF%BA%E3%81%AB%E3%82%82%E3%81%82%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F" rel="nofollow" target="_blank">そんなふうに考えていた時期が俺にもありました</a>(AA略)、が、プロダクト的な議論も採用も、少なくとも今のフェーズでは自分が関わることがミッションの達成には必要と感じています。Ubie自体、全員で採用をしていく組織です。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><h2 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;"><br /></span></h2><h2 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">Androidアプリ開発者からWeb開発者になったこと</span></h2><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">9年ほど前にAndroidを知ったとき、当時はあのような小型のデバイスでプログラムが容易に書けるデバイスは珍しく、のめりこみ、その後、8年ほどAndroidのお仕事でご飯を食べることができました。時期的にはAndroidの機能がPoorで最新情報をずっとウォッチし、新しいものが出るたびにキャッチアップし、自分のアイディアに組み合わせられないかという遊びをよくしていました。そして、それらの課程をまとめ、勉強会などにアウトプットしていました。縁あってDroidKaigiへの登壇も何度か務めさせていただきました。でもAndroidも9年も経つと成熟し、僕の興味の中心からは逸れてきていました。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">僕はもともと個人でLinuxサーバーを立てたりするくらいLinux環境が好きでした。しかし最近のDockerやKubernetes、KVMやqemuという環境はついていけてなく、他にも所謂HTML5の上にいろんな技術が出てきていても、興味があるだけで止まっていました。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">大きな勉強会とかで登壇できてたのは楽しかったし、名残惜しいと思いつつも、自分の興味が薄れてきてることを続けても誰も幸せにならないなと思ったので、新しいことをやっていきたいと思います。</span><br style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;" /><h2 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;"><br /></span></h2><h2 style="text-align: left;"><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;">閑話休題</span></h2><span face="" style="background-color: white; color: #202124; font-family: roboto, arial, sans-serif; font-size: 16px; font-variant-ligatures: none; letter-spacing: 0.1px; white-space: pre-wrap;"><div>長い雑文ですがここまで読んでいただいてありがとうございました。Ubieは<span style="letter-spacing: 0.1px;">いい会社なので、このブログを読んで少しでも興味を持って頂けたら嬉しいです。この記事では医療業界的な難しい話は敢えて書きませんでしたが、カジュアル面談等でご説明することは可能ですので、お話を聞きに来て貰えれば幸いです。</span></div></span><div><br /></div>Ubie株式会社ホームページ <a href="https://ubie.life/">https://ubie.life/</a><div><br /></div></div>@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-36522132256529961132020-01-24T00:09:00.000+09:002020-01-24T00:10:44.952+09:00M5Stackで猫のトイレを体重計にする猫様の体重を測るのが大変だったので、猫のトイレで体重計が測れれば嬉しいなと思ってやってみました。改造には何処のご家庭にもあるM5Stackとロードセルを使用しました。<br />
<br />
<h3>
概要</h3>
猫がトイレに乗ったとき、その数字をGoogleスプレッドシートに追記されるようなシステムを作ります。重量の測定にはロードセルをトイレの下に仕込み、その値をM5Stackで読み取ります。読み取った値はM5StackからHTTP通信で、GoogleスプレッドシートのGoogle Apps Scriptで作ったAPIに送信します。<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxdoJMGxk-sDzt5rD8ZN7pj-tQmOfNxueRXonD0NnYcUuHZqtwHLh1LXon9QVgx1wn_eY97JwH5YhT8vIznT__F1aT4BGgBAWJBdlCuVXCmD0EQ2AjpoJNmJ6vQadsB9EMj5lg3_XraJA/s1600/Screenshot+from+2020-01-22+23-57-23.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="628" data-original-width="936" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxdoJMGxk-sDzt5rD8ZN7pj-tQmOfNxueRXonD0NnYcUuHZqtwHLh1LXon9QVgx1wn_eY97JwH5YhT8vIznT__F1aT4BGgBAWJBdlCuVXCmD0EQ2AjpoJNmJ6vQadsB9EMj5lg3_XraJA/s400/Screenshot+from+2020-01-22+23-57-23.png" width="400" /></a></div>
<br />
<br />
<h3>
ハードウェアの作成</h3>
ハードウェアの作成というと物々しいですが、今回作るものは市販の部品をパパっとハンダ付けするだけです。どんな部品を使っているのか、どう接続しているかを見ていきましょう。<br />
<br />
<h4>
用意する部品</h4>
<div>
使用する部品は次の通りです。これらの他に、ユニバーサル基盤やピンヘッダなどの小物は適宜使用します。</div>
<div>
<ul>
<li><span id="goog_1303683361"></span>M5Stack Basic<span id="goog_1303683362"></span></li>
<ul>
<li>いわずとしれたディスプレイ付きの開発モジュールです。</li>
<li><a href="https://www.switch-science.com/catalog/3647/" target="_blank">スイッチサイエンスで購入できます</a></li>
</ul>
<li>ロードセル 4ポイント(薄型) 200kg(50kgx4)</li>
<ul>
<li>荷重を電気信号に変換する装置です。</li>
<li>電気信号は微弱なため、そのままでは読み取れないので、専用のADコンバータが必要です。</li>
<li><a href="http://akizukidenshi.com/catalog/g/gP-13043/" target="_blank">秋月電子で購入しました。</a></li>
</ul>
<li>HX711使用 ロードセル用ADコンバータ モジュール基板</li>
<ul>
<li>ロードセルの信号を読み取り、デジタル信号の変換するモジュールです。</li>
<li>動作電圧は4.5V~5.5Vであるため、M5Stack</li>
<li><a href="http://akizukidenshi.com/catalog/g/gK-12370/" target="_blank">秋月電子で購入しました。</a></li>
</ul>
<li>ロジックレベル双方向変換モジュール</li>
<ul>
<li>M5Stackとロードセル用ADコンバータの電圧差の調整に使用します。</li>
<li><a href="https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4JEB" target="_blank">千石電商で購入しました。</a></li>
</ul>
<li>ケース</li>
<ul>
<li>百円均一のケースです。</li>
<li>トイレの近くに設置する都合上、作成する基盤が汚れないようにするのに使用します。</li>
</ul>
</ul>
</div>
<br />
<h4>
配線を考える</h4>
接続にはM5Stackの向かって右側のコネクタを使用します。今回は通信にはGPIOの16と17を使用しています。<br />
余談ですがM5Stackのポートは、ディスプレイやスピーカーなど内部で接続しているものと競合するものがあります。この図では16と17を使用していますが、PSRAMと競合するため、PSRAMを使用する場合は適宜別のGPIOを使用して下さい。<br />
具体的な配線は次の図のようになります。ロードセル用ADコンバータは5Vで動作するため、M5Stackにはロジックレベル双方向変換モジュールを介して接続しています。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPCXj0nop7wu9LKvUUgNDp81NFxMoJIUpBhe6HxzXIvi6LNzZbXmq2M920ZQ9UogZqt_SY3rcLjh-st-Nb5uoGP9WsGY1pw5DhV6ajaW12K0u4mWWlS83aoG6ast26pGEydi05SxGaPNU/s1600/Screenshot+from+2020-01-23+00-28-30.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="848" data-original-width="1031" height="328" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPCXj0nop7wu9LKvUUgNDp81NFxMoJIUpBhe6HxzXIvi6LNzZbXmq2M920ZQ9UogZqt_SY3rcLjh-st-Nb5uoGP9WsGY1pw5DhV6ajaW12K0u4mWWlS83aoG6ast26pGEydi05SxGaPNU/s400/Screenshot+from+2020-01-23+00-28-30.png" width="400" /></a></div>
<br />
<h4>
ブレッドボードとサンプルスケッチで動作確認する</h4>
回路を実際にハンダ付けする前に、ブレッドボードを使って各部品を実験的に接続し、サンプルスケッチで動作確認をしましょう。秋月電子の<a href="http://akizukidenshi.com/catalog/g/gK-12370/" target="_blank">「HX711使用 ロードセル用ADコンバータ モジュール基板」のページ</a>にArduino向けのサンプルソースがあるので、それを動かします。微調整が必要ですがそれは次の2種類です。<br />
<br />
<br />
<ul>
<li>ピンアサインに関するもの</li>
<ul>
<li>ADコンバータのデータ出力(DAT)とクロック入力(CLK)のピンを指定します</li>
<li>例</li>
<ul>
<li>#define pin_dout 17</li>
<li>#define pin_slk 16</li>
</ul>
</ul>
<li>ロードセルのパラメーター</li>
<ul>
<li>ロードセルが出力する信号について、ロードセルの仕様書に基づいて値を設定します。</li>
<li>例</li>
<ul>
<li>#define OUT_VOL 0.0005f // 定格出力 [V]</li>
<li>#define LOAD 50000.0f // 定格容量 [g]</li>
</ul>
</ul>
</ul>
<br />
一通り動作確認が取れたら回路を作っていきましょう。<br />
<br />
<h4>
回路を作る</h4>
配線図を元に、黙々とハンダ付けします。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7ShRpp5AJdpmKXdZuqKKWpW-lk4plOTBPQBnItUnZfkfjg-NyTuohC39jj6bmobgL3LZ6xsIKfyDBxLF7ti9WZzVbEgdadd0f0FwVeWG39NnPPMTo0W-rQjGuKkWhOU56dPOfPOp14kQ/s1600/IMG_20200104_134733.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="981" data-original-width="1308" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7ShRpp5AJdpmKXdZuqKKWpW-lk4plOTBPQBnItUnZfkfjg-NyTuohC39jj6bmobgL3LZ6xsIKfyDBxLF7ti9WZzVbEgdadd0f0FwVeWG39NnPPMTo0W-rQjGuKkWhOU56dPOfPOp14kQ/s320/IMG_20200104_134733.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxlh7UqLuYNRoEn8eMV2IPhQO-Z-23r2f6HuEV-jMnr3nCbnSxhcNXuTv33PC2LRNQlJoLDK8-Z7lVyCdsycn6-eVN9l9fukgi8onp-uGgnus4jA4NatpVzu9XM1dz9h0cnyOP9LG8fyM/s1600/IMG_20200104_134737.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="923" data-original-width="1231" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxlh7UqLuYNRoEn8eMV2IPhQO-Z-23r2f6HuEV-jMnr3nCbnSxhcNXuTv33PC2LRNQlJoLDK8-Z7lVyCdsycn6-eVN9l9fukgi8onp-uGgnus4jA4NatpVzu9XM1dz9h0cnyOP9LG8fyM/s320/IMG_20200104_134737.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwJFJtdfEn_LlMsHOMR_F5DBOmh7GFbRHhRzKcDU7kNdFwBQUhbfvxJQFNsa3bLtMXRzLfwcm_Qsol1-NIiyLCatlDi5TjFfDkUN8kHtN7wlVBfJ5v2Ss67TE_UUb6WnG9C9gzoPqX5RA/s1600/IMG_20200104_134733.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
ハンダ付けが終わったら、テスターで想定外の繋がり方をしていないかを確認します。確認ができたら部品を乗せます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4fl99qJf8IA0GMV0drvRHZO-_D2YEKGIbFyHYyaELdBXTvh8FfmMJwOx4Pp-Wnys7s0nvxJPuhbt5KOUXGpuFqsCEAeU7YYvFkRPHmWHjm179IK28LdQubmuIjtbta6QMsw8phnldLco/s1600/IMG_20200104_134812.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="923" data-original-width="1231" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4fl99qJf8IA0GMV0drvRHZO-_D2YEKGIbFyHYyaELdBXTvh8FfmMJwOx4Pp-Wnys7s0nvxJPuhbt5KOUXGpuFqsCEAeU7YYvFkRPHmWHjm179IK28LdQubmuIjtbta6QMsw8phnldLco/s320/IMG_20200104_134812.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqGDqOacIeOHJw1zwUn36FJxRMm8tXcs5-j4O1zC8GEhCxE9YstrJZNdS6jnWXD78W9EQ58aZl-bQT3pOpLGeAZYM5sJleLR5gyCCdzc4SQzMhOpZFLtwnWbBSR8RazSzvNqc5S6KMvbY/s1600/IMG_20200104_134827.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="923" data-original-width="1231" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqGDqOacIeOHJw1zwUn36FJxRMm8tXcs5-j4O1zC8GEhCxE9YstrJZNdS6jnWXD78W9EQ58aZl-bQT3pOpLGeAZYM5sJleLR5gyCCdzc4SQzMhOpZFLtwnWbBSR8RazSzvNqc5S6KMvbY/s320/IMG_20200104_134827.jpg" width="320" /></a></div>
一通り接続したらサンプルスケッチを動かし、ブレッドボードのときと同じように動くか確認しましょう。<br />
<br />
<h3>
Googleスプレッドシートを準備する</h3>
M5Stackがデータを送信する先となるGoogleスプレッドシートを準備します。作りたいものは簡単に次のようなイメージです。<br />
<br />
<br />
<ul>
<li>データを受信したとき、その月のシートが無ければ作る</li>
<li>受信したデータを書き込む</li>
<ul>
<li>データは計測された値をそのまま記録する</li>
<ul>
<li>センサーの故障時に気づきやすくするため、生のデータで保存する</li>
</ul>
<li>変化前と変化後の値を記録して、引き算すれば重量が計算できる</li>
</ul>
</ul>
<br />
<br />
Googleスプレッドシート上には次のように見えることをイメージしています。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7BECfPf9Wwekeu0sRdxEfgPQ-TQTUBe3KFGODuC5iAItgU7DlCpGdsMYOH8uN9uZWIPdOzfvETuzBT7t4k_O7QDrxJlcCOKj0wAbOihzc4fNe_-4rnsBHAufU00NTqe2aXc8_GkoFIlA/s1600/Screenshot+from+2020-01-23+22-01-33.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="691" data-original-width="668" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7BECfPf9Wwekeu0sRdxEfgPQ-TQTUBe3KFGODuC5iAItgU7DlCpGdsMYOH8uN9uZWIPdOzfvETuzBT7t4k_O7QDrxJlcCOKj0wAbOihzc4fNe_-4rnsBHAufU00NTqe2aXc8_GkoFIlA/s400/Screenshot+from+2020-01-23+22-01-33.png" width="386" /></a></div>
<br />
<h4>
スクリプトを書く</h4>
<div class="separator" style="clear: both; text-align: left;">
Googleスプレッドシートのメニューのツール→スクリプトエディタで<b>スクリプトエディタ</b>が開けます。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0aIREnFYfsgoHJ3LYyaG6P99iN9G-mnIfVbE9B5Hk4P-GATt6oXMDZTNga_ngHyIcTxOeN4W7pxmPIoxrKdRexO6Vq6fU0Ra1a_2CM1t3AAFhECc7ASXZb7prFLImPGVAyNENR1uSYe4/s1600/Screenshot+from+2020-01-23+22-08-22.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="225" data-original-width="663" height="135" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0aIREnFYfsgoHJ3LYyaG6P99iN9G-mnIfVbE9B5Hk4P-GATt6oXMDZTNga_ngHyIcTxOeN4W7pxmPIoxrKdRexO6Vq6fU0Ra1a_2CM1t3AAFhECc7ASXZb7prFLImPGVAyNENR1uSYe4/s400/Screenshot+from+2020-01-23+22-08-22.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhspWr9tZx-VUt5yvy36khopskJlQwgGkyGeZvbS5dD_CBXDtjAwqJP8ho08Or06fvAjFE7LrNywanftGgw3WNMcd7DSGjKXy-7czSolih55EfNzaO5yfS5h1Ju978_yVRF6KI948zXV-4/s1600/Screenshot+from+2020-01-23+22-12-37.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1053" data-original-width="960" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhspWr9tZx-VUt5yvy36khopskJlQwgGkyGeZvbS5dD_CBXDtjAwqJP8ho08Or06fvAjFE7LrNywanftGgw3WNMcd7DSGjKXy-7czSolih55EfNzaO5yfS5h1Ju978_yVRF6KI948zXV-4/s320/Screenshot+from+2020-01-23+22-12-37.png" width="291" /></a></div>
スクリプトの詳細については割愛しますが、HTTP通信のGETのパラメーターでロードセルの検知した重量の変化前(raw_weight_from)と変化後(raw_weight_to)の2つを受信するようにします。<br />
今回作成したスクリプトは次のものになります。<br />
<br />
<ul>
<li><a href="https://gist.github.com/cattaka/f369c412261e147700ebbac3e39b857d">https://gist.github.com/cattaka/f369c412261e147700ebbac3e39b857d</a></li>
</ul>
<br />
<br />
<h4>
スクリプトを公開する</h4>
<div class="separator" style="clear: both; text-align: left;">
スクリプトエディタでポチポチするだけで公開できます。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc1WzN8_PbVvED3VPlFWHMsmdNs9fePV8LUPPrmXU6SnwxB05oZ2vq994KowxBYnKpv55A3U4_npqWuKqeYXaXUIw4ZDXSz0fXPbIiw6gNIF3OSoOcyiaEM3gM762TyvTVZwtY9hktYPM/s1600/Screenshot+from+2020-01-23+22-17-54.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="211" data-original-width="551" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc1WzN8_PbVvED3VPlFWHMsmdNs9fePV8LUPPrmXU6SnwxB05oZ2vq994KowxBYnKpv55A3U4_npqWuKqeYXaXUIw4ZDXSz0fXPbIiw6gNIF3OSoOcyiaEM3gM762TyvTVZwtY9hktYPM/s320/Screenshot+from+2020-01-23+22-17-54.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXh0V5dU1PVsLTYzuz7Br33DwdlnuV9s3-w2tWT5-2nTH6PaFexrvzFNrE3lY0I7N2_j5j3Ngmu9rzUGAUEOHyzlpBg9KcoYMbnePkv_FMNFuZVROZy_qOJgJGg3nduhfdrdAKdjQ6yYE/s1600/Screenshot+from+2020-01-23+22-21-02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="510" data-original-width="486" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXh0V5dU1PVsLTYzuz7Br33DwdlnuV9s3-w2tWT5-2nTH6PaFexrvzFNrE3lY0I7N2_j5j3Ngmu9rzUGAUEOHyzlpBg9KcoYMbnePkv_FMNFuZVROZy_qOJgJGg3nduhfdrdAKdjQ6yYE/s320/Screenshot+from+2020-01-23+22-21-02.png" width="304" /></a></div>
M5Stackで認証を通すのは大変なのと機密情報でもないので、今回はアクセス権限を「Anyone」にします。<br />
<br />
<h4>
スクリプトを動作確認する</h4>
公開したときのURLをcurlコマンドなどで開いてみて動作確認をしましょう。次の例ではパラメーターとしてraw_weight_fromとraw_weight_toを付け加えています。成功すればスプレッドシートにデータが追加されているはずです。<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
curl 'https://script.google.com/macros/s/ここにキーが入る/exec?raw_weight_from=30&raw_weight_to=40'</blockquote>
</blockquote>
<br />
<h3>
M5Stackのソフトウェアを作る</h3>
もっとも楽しいM5Stackのソフトウェアを作っていきましょう。<br />
単純にロードセルの値を計測するのはサンプルスケッチで確認できました。しかしこれだけでは猫の体重を測ることはできません。それは値の計測は0.1〜0.2秒間隔で行っていますが、ゆっくりと乗ったり、乗った後に動いていると、値が安定しないからです。<br />
<br />
<h4>
値が安定したと判断する方法</h4>
値が安定するまで待つようにすればいいですが、ソフトウェア的にはどのように判断するかを決めなければなりません。幸い、この問題は高校数学で習う分散を使えば簡単に解決できます。だいたい0.1〜0.5秒間隔で計測した値を過去5〜10個くらい記憶しておき、それらの分散を計算し、分散が一定以下に下がれば安定していると見做すとすれば、<b>それらしく</b>動きます。この手の計算方法は他にもあるので、調べて使いやすいものを使うといいでしょう。<br />
<br />
<h4>
他にソフトウェアに必要な機能</h4>
<div>
今回作成するものの目的を達成するには、他にも次のような機能が必要になります。</div>
<div>
<ul>
<li>WiFiに接続できる</li>
<ul>
<li>M5Stackの標準ライブラリで可能</li>
</ul>
<li>HTTPS通信でデータを送信できる</li>
<ul>
<li>ルート証明書をハードコードすればHTTPClientで可能</li>
</ul>
</ul>
<div>
この辺りは適宜調整して実装します。</div>
</div>
<div>
<br /></div>
<h4>
ソフトウェアのソースコード</h4>
最終的なソースコードは次のようになりました。<br />
<br />
<ul>
<li><a href="https://gist.github.com/cattaka/360437a9968500e3ec1a4ba6fedce588">https://gist.github.com/cattaka/360437a9968500e3ec1a4ba6fedce588</a></li>
</ul>
<br />
<br />
<h3>
組み立て</h3>
<div>
ハードウェアとソフトウェアの一通りの部品が揃ったら組み立てて行きましょう。一度にやると失敗したときにわからなくなってしまうので、一つずつ進めていきます。</div>
<div>
<br /></div>
<h4>
猫のトイレに設置するための脚を作る</h4>
今回使用しているロードセルは次の写真のような形をしています。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipmZiYOxb4_ePzP8T9V9po2Ht8TRzNR_ytrDHbdYAHO6jLfs42f5tklDaa8VWQgTYA6jELzWsDnP1ByvGwwFMXeYJKFevPPwp8vhvt3vZaRrpiG_UfDYxRSbbKjv1c1DEpz8ZO-Cuu-x8/s1600/IMG_20200104_090238.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipmZiYOxb4_ePzP8T9V9po2Ht8TRzNR_ytrDHbdYAHO6jLfs42f5tklDaa8VWQgTYA6jELzWsDnP1ByvGwwFMXeYJKFevPPwp8vhvt3vZaRrpiG_UfDYxRSbbKjv1c1DEpz8ZO-Cuu-x8/s320/IMG_20200104_090238.jpg" width="320" /></a></div>
このままでは取り付けられないため、固定用の部品を作ります。今回はBlenderで適当にモデリングして3Dプリンタで印刷しました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb8Kkb4maE851WVYkCwpztuqnANVL-2rnOsrgG_AEs3Qh6IG7WSJ_0UAVvJtU1CoEhXdMom7m_O-vv3xvApnaYGCpc-U1W6xTO9e1n91pLCcvAj4GTcj7FElWnkE_tFwZMDHczePLxe0s/s1600/Screenshot+from+2020-01-23+23-04-21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="878" data-original-width="1600" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb8Kkb4maE851WVYkCwpztuqnANVL-2rnOsrgG_AEs3Qh6IG7WSJ_0UAVvJtU1CoEhXdMom7m_O-vv3xvApnaYGCpc-U1W6xTO9e1n91pLCcvAj4GTcj7FElWnkE_tFwZMDHczePLxe0s/s320/Screenshot+from+2020-01-23+23-04-21.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
印刷が終わった部品をロードセルに嵌め込みます。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBDM4HAAwx6AU6lBjv_vuPKhl3OCtU2bWb1i_-vPPCEoy3_wD2lb7feHnwcxyixGczQqGABg_v0_UgYcwqp-qyLDU9Vb9qcBnF0euSgCnG1qoK82idM4XrPiiGvFN_v0jrc0CU9X-ML1M/s1600/IMG_20200104_133709.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBDM4HAAwx6AU6lBjv_vuPKhl3OCtU2bWb1i_-vPPCEoy3_wD2lb7feHnwcxyixGczQqGABg_v0_UgYcwqp-qyLDU9Vb9qcBnF0euSgCnG1qoK82idM4XrPiiGvFN_v0jrc0CU9X-ML1M/s320/IMG_20200104_133709.jpg" width="320" /></a></div>
<br />
<h4>
改めて動作確認する</h4>
使用するロードセルは4つで1セットのものなので、配線をした後、仮でプラケースに取り付け、想定通りに重量が計測できるか動作確認をします。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuh4F_l8y_JQ1WI_Q_POHZhY9SBQcVBpcXyWxWSzdeEU48vOYqDVqMe5Tl5A5R48aDDTbDbJUq7dTi_1rFFzp2iBYibC6E1PKBPGfVm3ee35UAnKBLBHad9oCEpY9RTfLTpYg9R23_o0Y/s1600/IMG_20191230_140316.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="981" data-original-width="1308" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuh4F_l8y_JQ1WI_Q_POHZhY9SBQcVBpcXyWxWSzdeEU48vOYqDVqMe5Tl5A5R48aDDTbDbJUq7dTi_1rFFzp2iBYibC6E1PKBPGfVm3ee35UAnKBLBHad9oCEpY9RTfLTpYg9R23_o0Y/s400/IMG_20191230_140316.jpg" width="400" /></a></div>
<br />
この写真の例では6キロが計測できました(少々誤差が乗ってますが)。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIECmnz_dFqKR7Z0TX6TjBIWj8SmGRXGcDqEM9XplaIxzQWVQyARNs-dXs9IJ32Ea10BB8-fXVaLr9BW2LE6p8sTG1pqVV24rWfB5JFGUyzlhHdxQSXSvu_IkpTw1b9ujXDT35PdYGeNU/s1600/IMG_20200104_134528.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="923" data-original-width="1231" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIECmnz_dFqKR7Z0TX6TjBIWj8SmGRXGcDqEM9XplaIxzQWVQyARNs-dXs9IJ32Ea10BB8-fXVaLr9BW2LE6p8sTG1pqVV24rWfB5JFGUyzlhHdxQSXSvu_IkpTw1b9ujXDT35PdYGeNU/s400/IMG_20200104_134528.jpg" width="400" /></a></div>
<br />
<h4>
ケースを作る</h4>
M5Stackと基盤は剥き出しのままでは、不意にオシッコが掛かったりしてショートしてしまうかもしれません。簡単にでもケースを作りましょう。今回は100円均一で買ったケースを使います。<br />
まず、中に仮置きして、マジックで印を付けます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcJJavQQNsR4PTG4Q9a8iASKc6BGhhWMO9YLujaOxvfrcD6LL-x1kMOueyJywChDU6MfKZVXYxA-MN7qgKLu7_SkLbShKbbctJTZf-BeL3hKkECj-O07o0iAy_NFLneZOxH37lN0YkEVQ/s1600/IMG_20200104_134955.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcJJavQQNsR4PTG4Q9a8iASKc6BGhhWMO9YLujaOxvfrcD6LL-x1kMOueyJywChDU6MfKZVXYxA-MN7qgKLu7_SkLbShKbbctJTZf-BeL3hKkECj-O07o0iAy_NFLneZOxH37lN0YkEVQ/s320/IMG_20200104_134955.jpg" width="320" /></a></div>
<br />
<span style="text-align: center;">次にカッターで切り抜きます。手を切らないように気をつけましょう。</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5ZtWbVSr4A1W12wEevv73wpMVPswbqor3NkXRwDYFNwL0riaICdVRU8pVtmNCR1Ta6DksPw4w5QkTIVpTPs87UiwIyDiyeTPuH2dhLsOTxXHMnkT0Q760FbmBdfvIQ12pz2lLCSwcj4A/s1600/IMG_20200104_135710.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5ZtWbVSr4A1W12wEevv73wpMVPswbqor3NkXRwDYFNwL0riaICdVRU8pVtmNCR1Ta6DksPw4w5QkTIVpTPs87UiwIyDiyeTPuH2dhLsOTxXHMnkT0Q760FbmBdfvIQ12pz2lLCSwcj4A/s320/IMG_20200104_135710.jpg" width="320" /></a></div>
<br />
<br />
最後に部品を納め、コードを通します。所々はテープで目張りをするといいでしょう。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwJ56WAbJILKhtQV9ISYmQWesxLGxvzOIgJZEdukZXOmy6716-FYxN7OBxou7DA1M0PZUZDE0mZtOgIeHBmuRzqCRzU8Z1nEnsYH70lyj4217uhB1yeiyy4x53_8nxMe0LmyhHpk_7aH4/s1600/IMG_20200104_135857.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwJ56WAbJILKhtQV9ISYmQWesxLGxvzOIgJZEdukZXOmy6716-FYxN7OBxou7DA1M0PZUZDE0mZtOgIeHBmuRzqCRzU8Z1nEnsYH70lyj4217uhB1yeiyy4x53_8nxMe0LmyhHpk_7aH4/s320/IMG_20200104_135857.jpg" width="320" /></a></div>
<br />
<br />
<h4>
設置する</h4>
一通り終わったら、ロードセルを猫のトイレに取り付けて、可動させましょう。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdy3ZNEc_C2iiemtKdrXKF9ilQeNce20iIX5uUeez9xHc2PbhpnHQM4Q5MOca4V22Y4zX2_sR8bb2Dib0dycTePbG4ZO0fvPYPQKHdwmEg5etfpepsUFvshRga0QQEnuvmM-Uka8bDL10/s1600/IMG_20200105_130640.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdy3ZNEc_C2iiemtKdrXKF9ilQeNce20iIX5uUeez9xHc2PbhpnHQM4Q5MOca4V22Y4zX2_sR8bb2Dib0dycTePbG4ZO0fvPYPQKHdwmEg5etfpepsUFvshRga0QQEnuvmM-Uka8bDL10/s400/IMG_20200105_130640.jpg" width="400" /></a></div>
<br />
<br />
<h3>
課題</h3>
実際に動かしているといくつかの課題があることに気づいたので紹介します。<br />
<br />
<h4>
ロードセルの値が安定するまでの閾値</h4>
ロードセルの値が安定するための閾値に分散を使用しましたが、閾値を適当に決めたのと、うち猫様はゆっくりとトイレに乗ったり、前脚だけ乗せて一回止まったりするため、数回に分けて計測されることがありました。閾値の調整が必要そうです。<br />
<br />
<h4>
静電気の話</h4>
ロードセルの信号は微弱なため、静電気で値が容易にブレます。特にこれを作っていた頃は冬場だったのもあり、絶対値で計測すると1kgくらいズレることがありました。デバッガで繋いで放置していると、少しずつ値が上昇していくこともありました。厳密な重量系の設計ならば、それらを踏まえて設計するのでしょうが、そこまで余裕はないので悩ましいところです。<br />
とはいえ、継続的に測定していれば、体重が減少傾向か増加傾向かはわかるので、猫様の健康管理という意味では十分だと思います。<br />
<div>
<br />
<h3>
おわりに</h3>
完成してからこの記事を書き上げるまで、なんだかんだで3週間くらい間が開きましたが、適当に作った割に前述の課題が残りつつも安定稼働をしているようです。M5StackやGoogleスプレッドシート、3Dプリンター、今回は使用しませんでしたがAndroidやRaspberryPiなど、今では電子工作に便利ないろんな部品が簡単に手に入るようになりました。生活をよくするものを作れるのは楽しいので、こういうものを活用してこれからもいろいろなものを作っていきたいと思います。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwYZW020olETwtiTsR8Pua0snDkqcuo7z4ssz6zIajQa9cAkFZAamRY1rI-qi3hu6sqgUZ4YAe57HRA7vwDHezAIM7RpWhRXrwDsBZfAzKCYxwJJZLRtKE7K_niE11fX88upHHYGwV4CI/s1600/IMG_20191223_201033.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwYZW020olETwtiTsR8Pua0snDkqcuo7z4ssz6zIajQa9cAkFZAamRY1rI-qi3hu6sqgUZ4YAe57HRA7vwDHezAIM7RpWhRXrwDsBZfAzKCYxwJJZLRtKE7K_niE11fX88upHHYGwV4CI/s320/IMG_20191223_201033.jpg" width="320" /></a></div>
<div style="text-align: center;">
左:チャーリーさん[7.2kg]、右:犀(セイ)さん[4.3kg]</div>
<br />
<br /></div>
@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-58830487714751172312018-06-18T00:45:00.000+09:002018-06-18T00:45:42.387+09:00M5Stackを使ってCatbell Notifierに繋がるペリフェラルを作る<h3>
作るもの</h3>
Catbell NotifierはAndroid ThingsおよびAndroidデバイス(5.0以降)で動作しますが、それにBLEで通信して状態を表示したり、光って知らせるためのペリフェラルをM5Stackを使って作ります。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_Lcv41f5ZJIyXor4f2zMTfPUZky76w_XVnhIB3kG0NewTSzSamvOZs8KsGEf-1F8NUIuTyIghu1_o2Js6t_LNqonF5hVTcMLEyQAgj5utx8RVxB_xu01x0iIm-nDV1xeHt6vc9BgktHI/s1600/top.jpg" imageanchor="1"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_Lcv41f5ZJIyXor4f2zMTfPUZky76w_XVnhIB3kG0NewTSzSamvOZs8KsGEf-1F8NUIuTyIghu1_o2Js6t_LNqonF5hVTcMLEyQAgj5utx8RVxB_xu01x0iIm-nDV1xeHt6vc9BgktHI/s400/top.jpg" width="400" /></a><br />
<br />
<br />
<h3>
Catbell Notifierとは</h3>
Android ThingsやAndroidデバイスで動作する、CIのビルドのような時間が掛かるものの通知をディスプレイに表示するためのアプリです。<br />
<div>
<br /></div>
プロジェクトサイト:<a href="https://github.com/cattaka/CatbellNotifier">https://github.com/cattaka/CatbellNotifier</a><br />
<br />
<div>
<img height="223" src="https://lh3.googleusercontent.com/LQxYCADANCEfwnfl-IGSZ_11IqtS31UiPQg1ITtGQS-AAr7_33XOOT-W8s10oG_eXAmXQB9hWH0DHvzEag2vyL1sXtldUPEJJMmz-8-nkpOnEljuVBaJqozysrceKwRjOxDsB1AFUMzdcwjz7S73r3K3yY3F8RoPRX2yUJLmaZZixDTeiQN5Z2KF3sx0ATvHTn0-8-jNrtiHIukMGeBwEFJ5JMRvEwwWMYVobRvSiL4qQJ_0DaJO8QeIOhuse4cQ3UExbELgKk_gy8waCxcHoVmmete6Bp5ytxZF5xC7YMJFVFWbQKQF8RIcYLBGCMJg7MgC6KmT3pzy861o0g00jP1MafGPhWUvJRLxuXak-gfBaQ-z9KcEjAyTfqfkNytitPaFscTAIjaNPgh6FepgTW-C5pJKQbgWixR4UFlBmdba3EGhD0gs3AokqAdAG_GCU9QLH05MIgk3hNiO5mGKp9RrJZZ8kOewIZZBLx4e2MHHq99zDj6GHE_jCSBRl5QadDtrqLloCHrK6a9ZtjHE9TGsfuctPzYD9P4eBjTzWqSaUzwOkkfoqJN_KQLysuQsocK0mDyZUyW-3ZT0X5qr6Lu5YCbFkOA7ek8W27Pt=w1737-h977-no" width="400" /><br />
<br />
<br />
このアプリ自体はディスプレイに状態を表示し続けますが、M5Stackという小さな開発モジュールにBLEで通信することで、そちらの液晶にも状態を表示できます。<br />
<br />
<h3>
M5Stackについて</h3>
<div>
<div>
M5StackはESP32というモジュールに次のようなものが扱える形でパッケージングされた開発モジュールです。</div>
<div>
<ul>
<li>320 x 240 TFTカラーディスプレイ</li>
<li>microSDカードスロット</li>
<li>スピーカー</li>
<li>各種I/Oピン</li>
</ul>
</div>
</div>
Arduino IDEにM5Stackのライブラリを追加すると、Arduino IDEで開発できます。<br />
<br />
<ul>
<li><span style="background-color: white; color: #24292e; font-family: , "blinkmacsystemfont" , "segoe ui" , "helvetica" , "arial" , sans-serif , "apple color emoji" , "segoe ui emoji" , "segoe ui symbol"; font-size: 16px;">M5Stack Arduino Library: </span><a href="https://github.com/m5stack/M5Stack">https://github.com/m5stack/M5Stack</a></li>
</ul>
<br />
価格も5000円弱と安価で、Switch ScienceやAmazonでも手に入ります。<br />
<ul>
<li><a href="https://www.switch-science.com/catalog/3647/" rel="nofollow">M5Stack Basic - Switch Science</a></li>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2FM5Stack-Basic%25E3%2583%2590%25E3%2583%25BC%25E3%2582%25B8%25E3%2583%25A7%25E3%2583%25B3-ESP32%25E6%2590%25AD%25E8%25BC%2589-%25E3%2583%2590%25E3%2583%2583%25E3%2583%2586%25E3%2583%25AA%25E3%2583%25BC%25E5%2586%2585%25E8%2594%25B5-Arduino%25E9%2596%258B%25E7%2599%25BA%25E7%2592%25B0%25E5%25A2%2583%2Fdp%2FB07BV83Q2Y" rel="nofollow" target="_blank">M5Stack Basic - Amazon</a></li>
</ul>
ESP32はBLE(Bluetooth Low Energy)やWiFiのための技適が通っており、安価にこういったペリフェラルを作ることができます。<br />
<br />
<br />
<h3>
Catbell Notifier用のファームウェア</h3>
プロジェクトサイトの中にファームウェアのソースコードがあります。<br />
<ul>
<li><a href="https://github.com/cattaka/CatbellNotifier/tree/master/Arduino/CatbellNotifier">ファームウェアの場所</a></li>
</ul>
これをM5Stackに書き込むことでAndroid上で動作するアプリと通信ができるようになります。<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzfbnWvftkF3XXV13YyTXTs3LlykqTIUZAlI1KNZo9JMbAchbioMHeD06geoshRir0iU5cQOQ6jOuzTUbmhT9rz2x0ZuerHyqWZ93h0HqfwChUtOq7QJOjbUs4f6joGzPh0RserFbn4X4/s1600/arduino_ide.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="775" data-original-width="593" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzfbnWvftkF3XXV13YyTXTs3LlykqTIUZAlI1KNZo9JMbAchbioMHeD06geoshRir0iU5cQOQ6jOuzTUbmhT9rz2x0ZuerHyqWZ93h0HqfwChUtOq7QJOjbUs4f6joGzPh0RserFbn4X4/s320/arduino_ide.png" width="244" /></a></div>
<br />
<br />
<h3>
アプリ上での設定</h3>
ナビゲーションドロワーからPeripheral Settingsを開きます。<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib_nSmS_TfWswVI1kr53r8VoEiaQAGXpx5OmMZbMbyxLsKRVIMWW3u7V2Y0oARBuiPGX5WM6CdxUWKXGNmyd67-tPf_pBUCa-Tq__HfGjCQg2IpjYiKy0TryJMIeMM9j_SoTrcbf_aQ9w/s1600/nav_peripheral_list.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="530" data-original-width="943" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib_nSmS_TfWswVI1kr53r8VoEiaQAGXpx5OmMZbMbyxLsKRVIMWW3u7V2Y0oARBuiPGX5WM6CdxUWKXGNmyd67-tPf_pBUCa-Tq__HfGjCQg2IpjYiKy0TryJMIeMM9j_SoTrcbf_aQ9w/s320/nav_peripheral_list.png" width="320" /></a></div>
<br />
ペリフェラルの電源が入っていれば、リストにペリフェラルのBluetoothのMACアドレスが表示されます。表示されない場合は何処かおかしいです。<br />
もし原因がわからない場合は<a href="https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp">nRF Connect for Mobile</a>のようなアプリでM5Stackに接続できるか確認し、問題を切り分けましょう。<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj49AJ_1g8RkcOeTEOQnNMDSaLUVzTfYpbPX3r1-Ne7SHbi-bo1j5eNZESk3BUF7YnIwKABr31kdtLjchkWyWD5f1V5_M2p5bP0KRViPFKz3cXkDGzHv5LMnFj7deY8a_LGG-sb2dHT-kc/s1600/peripheral_list.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="720" data-original-width="1280" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj49AJ_1g8RkcOeTEOQnNMDSaLUVzTfYpbPX3r1-Ne7SHbi-bo1j5eNZESk3BUF7YnIwKABr31kdtLjchkWyWD5f1V5_M2p5bP0KRViPFKz3cXkDGzHv5LMnFj7deY8a_LGG-sb2dHT-kc/s320/peripheral_list.png" width="320" /></a></div>
<br />
チェックを入れ、トップの画面に戻ると接続されます。<br />
<br />
<br />
<h3>
LEDを取り付けて光らせる</h3>
M5Stackには拡張コネクタが有り、そこにフルカラーLEDを取り付けることで光らせることができます。<br />
<br />
<img aria-label="写真 - 横向き - 2018/06/17 23:15:06 " class="SzDcob" height="177" jsname="uLHQEd" src="https://lh3.googleusercontent.com/aarghXOp4K8VWXYTcmW6T3Vog6Pkf672loiXbDBnp3oj4kzQfl3Lo3GtyUr_udMpJv-6x9PgBhj_32OLZOa39KNfHZTrKXsX59GEqv90Baixbzu6bRBFrtcjs1btkn6I6cw3VcgcYjbFuTU6omDY7JsNutkNWsoYZAvkOYauc4jOGaoOx2Cw4Aom3ORgy-34pl0BT5qKli8ct6zGgrnsptBwK58Fybru_7scx-XQbS5eFxx0q7k51ZmGivEA4JLf8eO3it65Dwz1auAP9uE_nYmbinTn_v9Cyx9PgkweTE2sXSJ6yDSQQrDYRmautBeHIW8xtG-blPwifcZ2w418fYXbRGmaiKJ_Dc7XsMxr_S15kaK0K1Cv_r5Nic4WHShX_oVtQphqboXs27B9XaEXQPBCkJSXImUoK6lNl3g6jDqlLoNP1cVBORUvXeWMDD_3V6Gpb6HaH0-FEu94nSdV2j9cJXclGVtcvVQAb9FqtspAzHQfcr4cFak61duF0X_QZviNeGtTMF6Ku9NXGXcTZn7iRIti1N9dDTQR_FawyUoT3IW-ze6uXSV8Lt0fxSCw6dkAtCU6Ej5OANuzcy7bpcJRvMlhPC9tM3nmPq26=w960-h540-no" style="transform: translate3d(0px, 0px, 0px) rotate(0deg);" width="320" /> <img aria-label="写真 - 横向き - 2018/06/17 23:15:25 " class="SzDcob" height="179" jsname="uLHQEd" src="https://lh3.googleusercontent.com/leHZIu0y5Em7EjBnozYw5yJ9lWEnLJwWgxvDo002o4cedATokfNxGR4SzSzXDvs9lbPNBETNAJvTiOnjWmz7R7j4wx5GYVv97uUpJEUXqrUEt9W0RPW7IEnYAUyd_FCbpssxr27xjRbOposv5fp5bFAyf_WQeTQmH-7l2DYw1LhhzaJhmp-SbjU6S9BvucRrFvzS_cOxFxGWg9C82RhXnxN8IIm3ENm95axAmM74nBp0z43M_f1DRWvVMsXMByNk2Kiyf-GDxGL5AB_Dg1I7zauCH6fgpeqfqa59JoyCKVTy_SMpevpT9OMFByluCLS0wmKhVmwPCm2zijGoX7-Eicp0jHGEFvufE6lvTx5nzav_iJ-2g48M525WqEszTrHg57qux7IY6Usz5RmznTosPZFSCuqdjA1v43lcT06MgSf1pDC9U6O4Av0HizsRPm-uiNUkgCyZDrvT-aKj9P_cznmnUmmEju1yYvH2ZwQb04sjrfJcDMYy1ikPZTzO2xyTp2StaIR0_q8EPCIslN7sEZuutvLJLAlTR1-JI7j4MwFpWOahVG9o8-HcRyO3Tt_80PnMcTbeOedBYeKth_vr0KYH5OgLZV-l0TIc7Mi3=w960-h540-no" width="320" /><br />
<br />
使用しているLEDはOSTBMCZ2C1DというカソードコモンのフルカラーLEDです。<br />
<br />
<ul>
<li><a href="http://www.led-paradise.com/product/1253">RGB FluxLED OSTBMCZ2C1D CathodeCOM</a></li>
</ul>
<br />
配線図は次の通りです。<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAKaB2qlISLSj1Gb_QfqewYK-DSkE7RnIXnGg831Q0MksCp1oKoVhyZw_ADjMgmFSGiez9XhgHY8T8111ttaNssnqyuFgwVPVK2EgfIVgSBbZu5Q600dngDcCDgOekWfbXMvfj72_Q5lg/s1600/M5StackToFullColorLed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="700" data-original-width="670" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAKaB2qlISLSj1Gb_QfqewYK-DSkE7RnIXnGg831Q0MksCp1oKoVhyZw_ADjMgmFSGiez9XhgHY8T8111ttaNssnqyuFgwVPVK2EgfIVgSBbZu5Q600dngDcCDgOekWfbXMvfj72_Q5lg/s400/M5StackToFullColorLed.png" width="382" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
実際に実装したもののは次のとおりです。裏表の配置に気をつけましょう。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a aria-label="写真 - 横向き - 2018/06/17 23:37:17 " class="p137Zd" href="https://photos.google.com/photo/AF1QipNSSupACSLC_Z3z5xqvQavRW9WqTx_PTNDgC3Ub" jsaction="click:eQuaEb;focus:AHmuwe; blur:O22p3e;" tabindex="0"></a><img aria-label="写真 - 横向き - 2018/06/17 23:37:17 " class="SzDcob" height="180" jsname="uLHQEd" src="https://lh3.googleusercontent.com/TlGzc6pCs8lpi02mxHSjew251j4McTQDlJIBP-0EQsuHNkJsBEaqddjj8mwHT7V60CMd9sr2YU0GhjHZtWBTU_Fr4d_XqxTpVRqV5CG9Lu_vR6g7frxphMNN2So3CVqT0lkkI2hx08e5augwBeu6hvuhPXNCs8kMgUUFaD0WXT53K-9jVWgmDaiSYmEKb12TObrgYx-1IYKJiDTY9CH7EeHZkgmotTA3YOrTTkb2fI_9lCfRgxiOPpZQJw9G6RTIk4zq_cLno5orCxxZfMT34cv4O6y1PgcL1kGRbrZ_d0-x8OuBoDtizk5rU9-EATyQO2ewyxrkywORsTWwZTERaC9PiAWI40GZK5_yG5qXeShrCdL7Kg6_yK7X2CI5GDGaAy1iB2KE21uTlViZJnLFqppfuIkVr0b8I090RU67NInAc8G6i0yZqEv4TjW7Bf69c2n16Atjvfg87yHWIPeco7z46RxILmmcxibLvETaQCx37DWawOZq3KUP-dD5_LcnObiEO6U4-bv2B8lb5cq8dKFxkB9BD-hzHJJQJBfNYcxdUxPX2qbG_7FpD3WShf4x5j4tS7KnJbN00A5xYnOXVHGVtAg6kuDCPNXsP_93=w960-h540-no" style="transform: translate3d(0px, 0px, 0px) rotate(0deg);" width="320" /> <img aria-label="写真 - 横向き - 2018/06/17 23:37:40 " class="SzDcob" height="180" jsname="uLHQEd" src="https://lh3.googleusercontent.com/TSQtGG4pbUiL_B0CZR5dseB4-v0NzFAi3ZxtBv3eqn4f1udsTofx9K6BMq4egUKN2JKr_yBiR8ZdBLdhEDmqF8eMO3HU1DU8ODUcF7WGxmC8sg5SLsaVW46WSH7qMbDV3unDQ9u6SccJhOzYfuK8ewLHpQ5GYcarDRse35fET_9lVHIne0bhpV08Xi-bl2c6KKeHqIBqmSijWWMhhVycfABag_CikHwEhQDBkf41rZOUv-2DByndLbuYP5JZVVDJtPDuMZG6XrnEfF1PAwhRD5MPgSe8jaTms0T8YLKQLJJuFIMAbi3G4e7wFBDcYDWIB871HMsEm61qXfTMA0mHCcJ7WmuCS9yDJ9pzsbDWoP2Cza6YsifKjVcAhCXbv5Gba9CDFQVYx0qz85GD9uVuCGmB9K8ejKBi7KvA6Se6awyuJ7NnBvA6HWGZREb_1bgLdDv_f_UAbZpslWaMm7pgfcKoyE5rt1c8iTI7gas9rU4q996KYKLfeOuYPvXma6S6WpnkzRxvoLAYgj-OCNdrjr_N4LK4A-f1lNDjoEtIQq3VIzldNAXhYFMZdC15O_G0XIlYCxtIIwfvq6k0edmKeJ-kArWlENYS0fm-8WCc=w960-h540-no" width="320" /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
M5Stackに繋ぐためのケーブルも作ります。</div>
<div class="separator" style="clear: both; text-align: left;">
フラットケーブルにコネクタをカシメて作ります。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a aria-label="写真 - 横向き - 2018/06/18 0:16:25 " class="p137Zd" href="https://photos.google.com/photo/AF1QipOztk-eMXN6AU77Y3hbrFx9XbYMgHqG4LvRUTlF" jsaction="click:eQuaEb;focus:AHmuwe; blur:O22p3e;" tabindex="0"></a><img aria-label="写真 - 横向き - 2018/06/18 0:16:25 " class="SzDcob" height="180" jsname="uLHQEd" src="https://lh3.googleusercontent.com/F5xl-tKIAPU36lrTiaMQmhXrRL-3y9sw7QSFFK-CskZKYhLw9N1REhB-G8wLe1Rof_gGHFzR9ef3XCYZTlbJx1TCbrwQzJ3W6i96T8OSMEoeNR2BPWiLXGnPrFdipTehPx3ejYSAZ74N-Exv98TYX1IsFFYyAVKU4oCKhO_EJ1YxsuFVblmZFM-oOEp0rqGB6ih7x6DiZ3Qr-BYGM-0Y86gecoPvKsfakw3nZfviM140tZv4U5dqv4NPKAqn1ZGjclXbFADeG84LcVbw5n_t8MulbpzXceRTkkXvYFJSRurH3Pi4mz_duPRmC0usislu9qBZytIxJLr0ZNKfp2omuVB5hMRIYPeh0QXT87o6RO5VdWVqaJUeqTbpwm0uFwOvkTheAnEIApAoZzWZmcAmvY2FFSI3S4XC_QsEWnKlc-yqv6rk1wVmfqUOLloleQL_8jys_x0J2edR_wpdp_TBxvut8WhBOShUfQXZ7M-Oz0UK-KKEvsMYj5BLzK03BdVatNQOdkbCc-lwr59t0lzW64THNeka3HUy1qhNHpSXD0tVhSDzX6937xk4C59A_dCgYTD27V2TVOUKC6E9NTxerVKIcrRsNXbXSKgnCfC6=w454-h255-no" style="transform: translate3d(0px, 0px, 0px) rotate(0deg);" width="320" /> <img aria-label="写真 - 横向き - 2018/06/18 0:10:59 " class="SzDcob" height="180" jsname="uLHQEd" src="https://lh3.googleusercontent.com/UdpFMp29YYsroCchRU5HnOFAWfhMyuk0xdHdJLCa4EkiPcXTNEK6NRLG5pYQsXJbezT1mUT2_tYqcV-ANGqpfBlfChvxOLdKKMsc5TEd0ZIY6dDH04Pi-BYjwz_B0r4f_6tuMCcx4azRK0GdqR34G-ez_R-lDhpS2O00oDgLtVqrg4n-jsQI-ASTaHMu3LLPPxV6s1qG-9IlbIZkCjrL4oaXgq5A4W-aPFcfm2u38IIYMDzKbUBg4gykeWluitbzBhNT0_O9Oh6PH2jJPQkGSYrQBfOCWM7NP3EWAZp4nX5KL1-M2o2wYfKXgdZmMPMXcalYAIWGwyx1gfQrUrSXrzXL4Bhu4cy5Sg5QKPkxKLe_h_3quyhxSxvgAfPH8QQY9SsO2CJNC0Wvamwkdx1w0u9IsB3zVhjWLsZC7YBthAYJlo5QWoHiY6G0KKz0XtMytuk6gY5SchI7F3Otqwn3TJu3H2O3iQya9MDtkIZmm1Oep3f3tYaNQDJJfdcJx4Kxml3vsPc2DeGhSkSk8elKauVZXtME8t2XPXjDy6j0JLmKq63zN9tThVSLKmaNZfmFX3u0wcf1_ljFlCJ377wOyNHTWtsjgUbJEX5p0Zy6=w960-h540-no" width="320" /></div>
<div class="RY3tic" data-latest-bg="https://lh3.googleusercontent.com/F5xl-tKIAPU36lrTiaMQmhXrRL-3y9sw7QSFFK-CskZKYhLw9N1REhB-G8wLe1Rof_gGHFzR9ef3XCYZTlbJx1TCbrwQzJ3W6i96T8OSMEoeNR2BPWiLXGnPrFdipTehPx3ejYSAZ74N-Exv98TYX1IsFFYyAVKU4oCKhO_EJ1YxsuFVblmZFM-oOEp0rqGB6ih7x6DiZ3Qr-BYGM-0Y86gecoPvKsfakw3nZfviM140tZv4U5dqv4NPKAqn1ZGjclXbFADeG84LcVbw5n_t8MulbpzXceRTkkXvYFJSRurH3Pi4mz_duPRmC0usislu9qBZytIxJLr0ZNKfp2omuVB5hMRIYPeh0QXT87o6RO5VdWVqaJUeqTbpwm0uFwOvkTheAnEIApAoZzWZmcAmvY2FFSI3S4XC_QsEWnKlc-yqv6rk1wVmfqUOLloleQL_8jys_x0J2edR_wpdp_TBxvut8WhBOShUfQXZ7M-Oz0UK-KKEvsMYj5BLzK03BdVatNQOdkbCc-lwr59t0lzW64THNeka3HUy1qhNHpSXD0tVhSDzX6937xk4C59A_dCgYTD27V2TVOUKC6E9NTxerVKIcrRsNXbXSKgnCfC6=w454-h255-no" style="background-image: url("https://lh3.googleusercontent.com/F5xl-tKIAPU36lrTiaMQmhXrRL-3y9sw7QSFFK-CskZKYhLw9N1REhB-G8wLe1Rof_gGHFzR9ef3XCYZTlbJx1TCbrwQzJ3W6i96T8OSMEoeNR2BPWiLXGnPrFdipTehPx3ejYSAZ74N-Exv98TYX1IsFFYyAVKU4oCKhO_EJ1YxsuFVblmZFM-oOEp0rqGB6ih7x6DiZ3Qr-BYGM-0Y86gecoPvKsfakw3nZfviM140tZv4U5dqv4NPKAqn1ZGjclXbFADeG84LcVbw5n_t8MulbpzXceRTkkXvYFJSRurH3Pi4mz_duPRmC0usislu9qBZytIxJLr0ZNKfp2omuVB5hMRIYPeh0QXT87o6RO5VdWVqaJUeqTbpwm0uFwOvkTheAnEIApAoZzWZmcAmvY2FFSI3S4XC_QsEWnKlc-yqv6rk1wVmfqUOLloleQL_8jys_x0J2edR_wpdp_TBxvut8WhBOShUfQXZ7M-Oz0UK-KKEvsMYj5BLzK03BdVatNQOdkbCc-lwr59t0lzW64THNeka3HUy1qhNHpSXD0tVhSDzX6937xk4C59A_dCgYTD27V2TVOUKC6E9NTxerVKIcrRsNXbXSKgnCfC6=w454-h255-no"); opacity: 1;">
<div aria-hidden="true" class="eGiHwc">
</div>
<div aria-hidden="true" class="KYCEmd">
</div>
</div>
<br />
動作確認で光らせるには、Edit Statusの編集画面から行えます。<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5au5UQtZgu0o6cI_BiOQ2qUPCVYyNBvo4v_-Zk6NJK4Cbt4BcjnWBV3mpX9dzkFcQ-E58pCmmZeCpj9PePJ72_ja8kGRC7P196Y8T-jgfRabBsTKBZ3gBCsHdEvFVqLqYRIYLBT_2wb4/s1600/test_flash.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="530" data-original-width="943" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5au5UQtZgu0o6cI_BiOQ2qUPCVYyNBvo4v_-Zk6NJK4Cbt4BcjnWBV3mpX9dzkFcQ-E58pCmmZeCpj9PePJ72_ja8kGRC7P196Y8T-jgfRabBsTKBZ3gBCsHdEvFVqLqYRIYLBT_2wb4/s320/test_flash.png" width="320" /></a></div>
<br />
<br />
<h3>
筐体を作る</h3>
3Dプリンターで筐体を作れます。<br />
3DモデルはBlenderで作ったものと、それをSTLにエクスポートしたものがあります。<br />
<br />
<ul>
<li><a href="https://github.com/cattaka/CatbellNotifier/tree/master/body/for_m5stack">BlenderとSTLファイル</a></li>
</ul>
<br />
筆者はReplicator Dualを使っているので、それようにMakerBotで並べて印刷します。丸い小さな円盤はヘルパーディスクと呼ばれる、印刷中に熱収縮で剥がれるのを防止するためのものです。<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBn29eDUaeiAtXGeBItjr2sGlfCwkIi_HBK9Ll_KG2q-YV1RK45EWfXFar5Do5ZlkLKO7JLZ_MNioDWCtcSEQfw3CZsiZUIo0emdfvuYGIqHbLF6n2yqupysCppHV9teNPZ1wyrz93QAc/s1600/makerbot.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="805" data-original-width="1024" height="251" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBn29eDUaeiAtXGeBItjr2sGlfCwkIi_HBK9Ll_KG2q-YV1RK45EWfXFar5Do5ZlkLKO7JLZ_MNioDWCtcSEQfw3CZsiZUIo0emdfvuYGIqHbLF6n2yqupysCppHV9teNPZ1wyrz93QAc/s320/makerbot.png" width="320" /></a></div>
<img aria-label="写真 - 横向き - 2018/05/30 23:48:32 " class="SzDcob" height="180" jsname="uLHQEd" src="https://lh3.googleusercontent.com/MwfRy6zC2Ie8VVBd4Zzw70xGz63Zq2WuvI3YFMo1T--_U7ccI8gM8gg4gImC0yZTWVz0F9_UJJikvp0XKr2W7ATpTBmvuNOuQ8MeYYE2eutj3_Wrm68q4xV5R3-JWLVVJrrOZTtB8PKEDoRoTzlmYZxu_zUihUbzwEIESmGE63df-rnjiqv7hpcXuyTNkL8JdmRa21NG5uQRdPANwyeFEWR9HbeIkrY-6X0P5WdRd00VW_lSfiMYIXGX21SP3BoP2fkNQSAvywMln5T8tTyyO-9mkl3cz6TCnVEp9w8gq3sqgniS0QtTRNgf96XP9KtsoyQUCWl4S5xI-1kFJNn5iZaVrBsghJoG0wxX37xHXHSYv0FAr2W82BNBxSYGWPau5qCJQEJjMdGBhyp-xyVjo8ZV-j2-QBgzkxk4O1qbEVcPqqdAeYwTgyBjWv7GhV2AMtE1N6WJlhxNaQqav0qdeerRrbLJRCE_NXNNNuv18wVnCRebQCXjJfzzmpd9C-tPTdQmer87e-sa7diJ5saErWa_S6VvJ2cSxkXcj317hakZKR-aJ_xv-4KgSFSGzKhYNiD5LN7FnpmumTQ2WWJDFBPnDs9WtGtjTOA9ouW1=w960-h540-no" style="transform: translate3d(0px, 0px, 0px) rotate(0deg);" width="320" /><br />
<br />
印刷が終わって塗装したい場合はヤスリやパテ、サーフェイサーで表面を整えます。<br />
<br />
<img aria-label="写真 - 横向き - 2018/05/19 15:38:54 " class="SzDcob" height="180" jsname="uLHQEd" src="https://lh3.googleusercontent.com/HMcgDnFO0vh1AWxKLBPkZ-tQzVAjvUzWExUcqDG1eJiuBnmF9cD7m_h4OVXNKIixJEf8Zwgv68hAZr45JlBnt4i3m1SeMSmJCbHzwx4GnLlUe-F7cSeUqIUigsrchOebQZeezuonMG2oNTtrHWcw7iWBMthwifRRXgAyiX8DnnaG128n45EmSxov_H3mN31vtEwuc84a9GfF9AASszcDCAe9xaejo3T5mj5PNDnu4Y4bHeUuKPZ1LfkzH32Q9KA498KOD1UsMF48mrb9nOHgDjRLTqh2agFc9z_41babJcmU5JOKCRlyERhRHpzVlzXqKbj5BwFmgXKSlpuNIcV3vGDAcfR-1tZk3x5Qwbfj_TtuTAJ9nuvxauGpry3CatNeeR_atb-QMR2RqITyIToUqptviBUTAmBY9EKjTtOUSkYA72vunkcdj8EoEA4X-Skr7Tn4fA751U5vqIu98UqUb3iti8bQg97oYekv-VLhZ0x2an-tzCQs6UB3T3KZ33zn-LLW6GGOAuWwlhl_aMa42nJG00Xw-5VYWIuf29tSgAmvEo6LkZtF-xM0AKbF0VK8LYEMxvA6a5EjXc0LYa7Wh4JhnRAq5BQkxaHpPrIx=w960-h540-no" style="transform: translate3d(0px, 0px, 0px) rotate(0deg);" width="320" /> <img aria-label="写真 - 横向き - 2018/05/19 15:49:58 " class="SzDcob" height="180" jsname="uLHQEd" src="https://lh3.googleusercontent.com/Pj6vYTtbu2VV_dUm1WISxqkeuV_SFQzwGt_v8I6B0-kdg9X8zHW_iSdnGbx9azvFLLSzJFNZf94JvPIM-uX38jdeAb3kNkumpooTN4FpRW6Hfw3DU3tcZllLg6KU4Nt-SAF2q1MHC1kmhcNSzAg9KBFoNOlCOn92BF39uzx4opyCv_Z0TRkFhb149kZ_aNxixbIUVYQy7WnlvQxlg4GmZ8T9DqkhG_IAZ6QHHmx3TxYfsv-jGoXvno8SCxD_XZxIYljHCEenksY2CM0bksCNjxCAaHU0AQMMZ3Y7mfBkBmWZkpHn4T4iQ1iZMJbe8fm67fLZzADBimd_9sZb_j5vrPlP2QUaT-q7w9gi74MHatJc9RnCC8IsYafb0Xczwyv4c-oZLQEY97ieTDKQDqYO0OXcj_8V9lDZK36HyYklZhwkVVfc-5u2ntrCFQI7YOwFufJfm_QbvM_WNHSQ4ChvGKy3v51ldrvPqW6O2ErXa7o2tOT9KBAONOClMmvwUXDiCoNm5zwvwtVeIK6CwrwmTOfcVNz6M42mW81iU3ZhGXlfHzRe56yFPdo3zlTOPVTL0MoAnFILnWayNDJ4r7vSMPOi3I_ENMj-kQny8uGF=w960-h540-no" style="transform: translate3d(0px, 0px, 0px) rotate(0deg);" width="320" /><br />
<br />
塗装が終わったら組み立てます。底面のネジはそのままだと机を傷つけることがあるのでクッションゴムを付けます。<br />
<br />
<img aria-label="写真 - 横向き - 2018/05/20 23:39:04 " class="SzDcob" height="180" jsname="uLHQEd" src="https://lh3.googleusercontent.com/dxeLRDGXfrx8qSqwXC_6rU3S-maqfl1XmM5YHjs2GDaL82y6uOnETafOz6sM-rH5jJDG4P4uXuYwFBiMvo25qwRLvhP2tkJwNFN-BiE7JYt1dBad2_WuvYLLwQLPePQaJF7KC5gZRKE-_qlPz2_as4VIrofJ9oliFfMSCjfPCoJdbHj9kZk4wQXvRE1Vb0cNjbeE8Gn4GVZfogC8iTv2jBgERDDBbRI8EYQvLUz0uHEesdJ9ftLID38jppLYwIMByjwQMUTRlQ_1WY2QqxhojFl2PihfghKxbFcUN5lRrWyhwdNL78-4Bp2SXijtlvzsZcryTnBB9Z0hdjagbCOMknjBLlSttnKdeB5YRAzQopcGEJjzjW3t4h4BHh_F6aAN8b8Bj7LL0_-YXnQ_175oDbkYOZBCVmd9msKNsqhrWRX53XzbPSDRmk3DcylRJLs6suu40Qqnh8OFGQa-UluXB_cHdMdcLsqleTNdcfdy98ybol10Gy_6JtnW0DUDxN7qFJcScJDYp-wqvK7yo-zMu3HZeBng4JUczxGoUrfSAdweJlvye6c1q0cyWvqVCUt6mSFGJAlwyB7zx2dUVxJfzxVg-GrewbFb9pRnTkIA=w960-h540-no" style="transform: translate3d(0px, 0px, 0px) rotate(0deg);" width="320" /> <img aria-label="写真 - 横向き - 2018/05/20 23:47:37 " class="SzDcob" height="180" jsname="uLHQEd" src="https://lh3.googleusercontent.com/1Is8r9AEs5WJCeVF2Uoo25Zb3deer8B5dslDeBOAlTY3-G2f_PsMXfUvmalVX-FC1u9V0OdvsbGxe1B2nz-POKkoAhJBIxpTPIZRYwdRA7sJWcTBFX0g4G_SodCRnNdxD1rknhetoMLLocfZNqGml5VhQO6XAgAr7NYZ1W3Qyq-yrfam5G1fnO8B4SneDHsj7LFrtwgU0-8GPhEjRMV_u7e8OAVc70OUVtshidvc6-DX-zH3aG79m15eRSfnzzU7uF6GFjYbSOxCqobaCrptBFJvEj0LtknkEWYU8phk8UQQaslI4UgJWcCWYYSnmfIGHx0n7_K0IWehnbPRYuUbucymX0USduv37VGQdXTDAQL8c9wJ-nDeQ87MZ1dYoyjaiuVmsEtIUYTNun7aGg61-QGYuN0mus2AvqCC7JW1NGDyTS_GDrq5cDvqq-s7OudzDHAzFkwFQhNBEP04EPm7b2yyYJxTDs6fq488U9l_MEYEZ2s2-BAoxfbGos2yBKpMbzOGF6DDDnX4azF0aF5Ut-2qVIDbqJTHaO_tD9Kmi5wdvyn3WYjAc6Tb9rycDjlFz_EnoCwhY1G1OPhSgAd8vCkEchN2laK4GyuQBQjV=w960-h540-no" width="320" /><br />
<br />
<img aria-label="写真 - 横向き - 2018/05/20 23:47:50 " class="SzDcob" height="180" jsname="uLHQEd" src="https://lh3.googleusercontent.com/tWSA1XLZEYlvnO2gOVrH9Xf_43f1zrD-cCqB7-JkD-UVmDtdpAmwxeD0-94vCqyXxvKItcQCoeCT7ByC926z-_eQQBdsnoOxZHPJBY9aeLGvPljrqH3_0ZGtX7H3Gf4gO9-Ik1uX0ElKPKi4f2yRQOgxDZELwUoIGs8zk_wnCzECW_yKGOIbkUzRvisfo7QtYPihug9rJKrDmAAPXin3xidDmRyzd_ExTCi_nfh4qaFimmgkZWM25T5JNBL4WUOD_2SDxEwyI1lmC6AX4BFBhv0DKDrNH5SG3hSi8RxTVwyDIs5mYhXsizVuzUsJ4lwgCRIaQs2D0R1IQ5zNzcqXDuXOOe1RFVDJSXbEcsVyrQUiDENrW1wfGiqT5m-Y4FwgqmJ4DEHjGsKD-AsupN2WfDO5ywtkhEYgQsZpIm6bQT0babIdxz2EOvptyPbjihti53FoNcL1wNw_FHD8ovjdvdOVg0q6qsrQWbwUnt-BrXGcADHgTzagUHkp1BzcD21h9XUTb62ZOF73U570OF2Ap4EVcZ1DrvFuKSsihFU6t1jXbuj4ivelLRgx4uA4i7cpryTOjnU_YLSlb8Jm43_BjcILqrH_BdKraqF88TUX=w960-h540-no" width="320" /> <img aria-label="写真 - 横向き - 2018/05/20 23:52:41 " class="SzDcob" height="180" jsname="uLHQEd" src="https://lh3.googleusercontent.com/mvu7E_IvnHjaFygUThlxEFpeholXFzcMKZjxiXRqj1llrxijCukpmrorr8no0M_IQ4_PyvXvkMkhuUxGpyiZ3V9MStXIAk32t4i30ih2B5O3HpTGM6ZMKlhfy3yx-UJEijw4dUqMWb3lFdGWVroF4Z7oRoQ0gLypErCYBZ2KvEwRW0lXsG8y2kfzRjYNtOcAxQE7C3yLkRdUhZq1pFIP0W3Rea4vYjshME3t6SzUcMvHG9LwoM4vBGSkON20qcf-LXdNCWom4KYUfF1fGm0PlrCpfmUEHf_mm1ziV5h8RTIGVDBVXiTCNzSrT84Sw50G8WForDGkBZvp4n5UP8Xy_zJdBXxHfhwEczvL52PPXV5Y2xAG9Yt5tteZJWF6NX8x19hdp5haTdvIBSbTplPFp4Wkk0bbHTJMiVTPxCzUgqaHANiUV8QMj2yxVZkDcyQttIatDcGomp_8wwx-_-FDznx23Ty7TTUoOvGNr3bJPBnMMCUlRrg4dr9DeZFvRM4jM59f4L0DpVXiks_RRQ17_s7K1wqHLGvW6dONk4MJFUq-WQCG9IX8jJckXPHtWg8W0eCVCI5RvOwL_kENsydQlWED9HUKNwwxumIQgM0a=w960-h540-no" width="320" /><br />
<br />
最後に透明な樹脂で作った可愛いゴーファーのフィギュアを乗せます。<br />
<br />
<img aria-label="写真 - 横向き - 2018/05/20 23:55:21 " class="SzDcob" height="180" jsname="uLHQEd" src="https://lh3.googleusercontent.com/xTEqOGW7K-QBw7sMupf6oGUB6wX1zw0Es2828yq91xBsKu3eJT5BKcC01tMNwNrTA8c9n7t1qXtd2ijgHZPzCG7ZQIvcCmV-zMqSe9icGim1g03PAHcpRW-6AT5iLW8f497AhtfjsPZOk9xm4FuqU7h9D_hsxYTgefW7-0Sbdma_e4Jg6U7BFK8W6Mv68k4Sa2TYsb-ym4nJJpmyxpmaDKOOQoGPOyB47ASLe48FiHeuOkp8GGoVrCew8Uqx9b1M90sznj4iwpE7Sny0O1w8Pgnr5Hn5XaP2MmOPtXLPyTF52bJtumJw3sqb_lW4wyQy0blqSjDL1SpxagQcfy2mYpjvmU4nRlkukp5QIYom8EluF7mZXULE6Y9wkHTugGKAeTJ8Jah6QmayxzyAq5wQKDhB0pQzmAEZAFhU-DdYnUh8hjPv0HvziOLTSFyzYdkXyPZCZfR6Lhd0zVI06_5zrWYq8poI2ZwnYvx8IFJDl6Ibo-Croqw7F5yKqhEr0Gl6X8A5MzuRullZQIULRewLoAuwNK6cfG-ILdHRH9EM4tn9XA2X9fCckxvYk3q8W317ZY2fjClDfua4YwMD4b6rZXTIByVAYPA3tc3cE9ek=w960-h540-no" width="320" /> <img aria-label="写真 - 横向き - 2018/05/20 23:56:29 " class="SzDcob" height="180" jsname="uLHQEd" src="https://lh3.googleusercontent.com/dc_3JhuVhpgRnRhIOXtEPgIJhtdJDOx4aQJxJz7TnsvaX5NgTiViy9G6ET3i2K0I8hMOp--J3enuzhhyxVNmTms7pEl8Jgf096B7jLtkmJhxDoIVup8HvNWN6qvkaEcyGlMJf4Cw6egOtv_eEFAaQQrgqClXef3pKTKoOGBe3W0mbyTIUbQPAcNYJK9ogXhJpc842ze66nKLoHXp0SyW-4ZKnDWPw6xkZKjUGhfGzZOTxV15cfOgKh6W55o79MSYGU-m0u_vK9-X3sZdFFMvzEADevTaq1VNN0f2sJAywmn4AjAplA_IQ3HWKkB9aQAV8pl6PYUv6_XcP-ySUdiycd_Bu1jutQP2jPz56bfF8hdPupmFYFWiUI8DpKu-oUgq_S5w8KIN-mwtqOl0WsFo1dDerVEn7U2ZE-Ib1qpliJDHIW5cmQpiJNV8V9GURhBTMlYGkVhlMtGbYwKo5mnh-VB8xceqzrX2l9PdpuQb5-3NRpy5MUv8fHfRi6Jmmeu24daC-65QPAgaQc5dFnJWOyXvijkgcw8pNv4lRefny6U1CCi4LIhdVZyWHCnN0EfZzDPvVNASX3_IRv8l27t3pnKoOOhf_Oh2UOLwmr-m=w960-h540-no" width="320" /><br />
<br />
<br />
<h3>
おわりに</h3>
通知をM5Stackに表示するペリフェラルを作りました。筐体は無くてもM5Stackだけでも動作させることができるため、電源さえ繋げられれば複数のM5Stackを接続して設置もできます。開発を楽しくする小物としていかがでしょうか。<br />
<br /></div>
@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-82975583933670303522018-06-04T01:18:00.000+09:002018-06-10T11:29:40.884+09:00CIの通知に便利なCatbell Notifierを作りました<h3>
モチベーション</h3>
最近のソフトウェア開発ではビルドやテストコードを自動で実行してチェックするCI(Continuous Integration)サービスを使用することが多くなりました。多くのGitHubのようなソースコードのホスティングサービスからもCIサービスが利用できるようになっています。<br />
<br />
たとえばGitHubでのCIのチェック結果は各pull-requestに表示されます。<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoaHID6zUwKwv8aGYIs0_P0ThDK9oPDYyUmpf48RlWQAtnim-Jr18oBfTybR7kJS7sr-22sPWzF5rZ9w3wyHzpQ2_-2wl1Ondek6s0slJJq5HG7TZff5tmDYNvVJ2EWrt0xXQeqixtgt8/s1600/github-check.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="231" data-original-width="777" height="95" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoaHID6zUwKwv8aGYIs0_P0ThDK9oPDYyUmpf48RlWQAtnim-Jr18oBfTybR7kJS7sr-22sPWzF5rZ9w3wyHzpQ2_-2wl1Ondek6s0slJJq5HG7TZff5tmDYNvVJ2EWrt0xXQeqixtgt8/s320/github-check.png" width="320" /></a><br />
このチェック結果はpull-requestの画面に表示される以外にも、<br />
Slackのような外部のサービスに連携することで、<br />
スマホのようなデバイスにも通知することができます。<br />
<div>
<br /></div>
<div>
スマホへの通知も便利ですが、数が多くなるとそもそも見なくなってしまうため、</div>
これらの通知がリアルタイムで反映され、表示されるものが欲しくなりました。<br />
また机に置ける小さなディスプレイもペリフェラルとして欲しいです。<br />
<br />
<br />
<h3>
作るもの</h3>
WebhookのURLにアクセスすると、リアルタイムにそれが更新されるデバイスを作ります。デバイスにはAndroid Things(通常のAndroidでも可)を使用します。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil-eCcqx5i_x7wo6Yqx-0sN34zPkRwMyJAmjuYY8wQSUwctIA9oh8c9ch0eu-VRIAIhoGNZLKHXXCGiTUU1ema8l3gCeFdhmjwJFu2TfMLKPpNGAVfgKZUj37jVtqwRpGb_RjSWCRYwR8/s1600/IMAG0505.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="540" data-original-width="960" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil-eCcqx5i_x7wo6Yqx-0sN34zPkRwMyJAmjuYY8wQSUwctIA9oh8c9ch0eu-VRIAIhoGNZLKHXXCGiTUU1ema8l3gCeFdhmjwJFu2TfMLKPpNGAVfgKZUj37jVtqwRpGb_RjSWCRYwR8/s320/IMAG0505.jpg" width="320" /></a><br />
<br />
Androidアプリには筆者が作ったCatbell Notifierというアプリを使用します。<br />
<br />
<ul>
<li><a href="https://github.com/cattaka/CatbellNotifier">CatbellNotifier Project site</a></li>
<li><a href="https://github.com/cattaka/CatbellNotifier/releases">APKのダウンロード</a></li>
</ul>
モチベーションの項で言及した「机に置ける小さなディスプレイもペリフェラル」の作り方については、別の記事にて紹介します。<br />
<br />
<h3>
Catbell Notifierの仕組み</h3>
Webhookのアクセスからのリアルタイムな反映はFirebase Cloud Firestoreを使うことで実現します。AndroidアプリがFirestoreをオブザーブし、WebhookがFirestoreを更新します。具体的な流れは次のようになります。<br />
<br />
<ol>
<li>CIサービスがWebhookにアクセスする</li>
<li>Google Cloud FunctionsにデプロイされたWebhookがFirebase Cloud Firestoreのデータを更新する</li>
<li>Firebase Cloud Firestoreへのデータの更新がAndroidアプリに同期される</li>
<li>Androidアプリが画面の更新やペリフェラルへ通知する</li>
<li>ペリフェラルが液晶やLEDを光らせて知らせる</li>
</ol>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqSXgkM9shCzZgVk4tvxnxZiCBPzvkBePMaGtzHgwdRNO0Gf5w5aP3_xmjjYIGjlVMHwrEvDqVwJz2SIR_XtGLBvJLX_ohAm27BE7QqsLr4Tej36j7TPj0DjJGT4_vyjHfV_sEZxxvM4o/s1600/architecture.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="720" data-original-width="960" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqSXgkM9shCzZgVk4tvxnxZiCBPzvkBePMaGtzHgwdRNO0Gf5w5aP3_xmjjYIGjlVMHwrEvDqVwJz2SIR_XtGLBvJLX_ohAm27BE7QqsLr4Tej36j7TPj0DjJGT4_vyjHfV_sEZxxvM4o/s320/architecture.png" width="320" /></a><br />
<br />
<h3>
道具</h3>
<ul>
<li>Androidデバイス</li>
<ul>
<li>Rasbberry PI 3か、Lolipop(Android 5.0)以降のAndroidデバイス</li>
<ul>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2FRASPBERRY-PI-Raspberry-Pi-Model-%25E6%25AD%25A3%25E8%25A6%258F%25E4%25BB%25A3%25E7%2590%2586%25E5%25BA%2597%25E5%2593%2581%2Fdp%2FB07BZT67JM" rel="nofollow" target="_blank">Raspberry Pi 3 Model B+</a></li>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2FRaspberry-Pi%25E7%2594%25A8%25E9%259B%25BB%25E6%25BA%2590%25E3%2582%25BB%25E3%2583%2583%25E3%2583%2588-5V-3-0A-%25EF%25BC%258DPi3%25E3%2583%2595%25E3%2583%25AB%25E8%25B2%25A0%25E8%258D%25B7%25E6%25A4%259C%25E8%25A8%25BC%25E6%25B8%2588%2Fdp%2FB01N8ZIJL8" rel="nofollow" target="_blank">Raspberry Pi用電源セット(5V 3.0A)</a></li>
</ul>
</ul>
<li>あると便利</li>
<ul>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2Fcocopar-3-5inch-display12-pi%25E7%2594%25A83-5%25E3%2582%25A4%25E3%2583%25B3%25E3%2583%2581%25E3%2582%25BF%25E3%2583%2583%25E3%2583%2581%25E3%2583%2591%25E3%2583%258D%25E3%2583%25AB-%25E3%2583%2587%25E3%2582%25A3%25E3%2582%25B9%25E3%2583%2597%25E3%2583%25AC%25E3%2582%25A4%25E3%2582%25B1%25E3%2583%25BC%25E3%2582%25B9%25E4%25BB%2598%25E3%2581%258D%2Fdp%2FB017SHHLRC" rel="nofollow" target="_blank">Raspberry pi用3.5インチディスプレイ</a></li>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2FLogicool-%25E3%2583%25AD%25E3%2582%25B8%25E3%2582%25AF%25E3%2583%25BC%25E3%2583%25AB-%25E3%2583%25AF%25E3%2582%25A4%25E3%2583%25A4%25E3%2583%25AC%25E3%2582%25B9-%25E3%2583%259F%25E3%2583%258B%25E3%2583%259E%25E3%2582%25A6%25E3%2582%25B9-M187WH%2Fdp%2FB0079RLYLQ" rel="nofollow" target="_blank">小さいワイヤレスマウス</a></li>
</ul>
</ul>
<div>
<br /></div>
<h3>
Catbell Notifierのインストールと設定</h3>
Android Thingsが動作するRasbberry PI 3か、Lolipop(Android 5.0)以降のデバイスを準備します。<br />
GitHubのreleasesからAPKをダウンロードし、adbコマンドなどでインストールします。<br />
<ul>
<li><a href="https://github.com/cattaka/CatbellNotifier/releases">APKのダウンロード</a></li>
</ul>
インストールが終わればCatbell Notifierを起動します。<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrUXgDsKehyOE2wXoBM3eTMr2I42LT8kD9UDIgtFVAAt-CSLbpHGdN45cnc_AxKVEthQoCTbyrjBa0-Mp9eOLI6QND8vCwy6J3psfk8k7yK2d1lWDxc4lZA3rL5-XZUEUTR1t91CoLEl0/s1600/device-2018-06-04-003505.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="720" data-original-width="1280" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrUXgDsKehyOE2wXoBM3eTMr2I42LT8kD9UDIgtFVAAt-CSLbpHGdN45cnc_AxKVEthQoCTbyrjBa0-Mp9eOLI6QND8vCwy6J3psfk8k7yK2d1lWDxc4lZA3rL5-XZUEUTR1t91CoLEl0/s320/device-2018-06-04-003505.png" width="320" /></a></div>
<br />
<br />
起動したらサインアップします。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVY80TWwRSM1RwYBkWKM1k0oqNCj9BZYmiCXYrjEd2cuYnQt2jfcuf300dt27J9IHfn-7vQ_-yzEjHYkKDzpjWeJqbeNdAm-wmh2B4QMF2_mVPMJr-oA_oVQfcbxYZ1Z0duk7Kf62U5WM/s1600/device-2018-06-03-191815.png" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVY80TWwRSM1RwYBkWKM1k0oqNCj9BZYmiCXYrjEd2cuYnQt2jfcuf300dt27J9IHfn-7vQ_-yzEjHYkKDzpjWeJqbeNdAm-wmh2B4QMF2_mVPMJr-oA_oVQfcbxYZ1Z0duk7Kf62U5WM/s320/device-2018-06-03-191815.png" width="320" /></a><br />
<br />
最初は何もないため、まずtopicを作成します。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgQ5WFOycgZwRtNcx24dcYdrB64WOdVgmluiEn416-B4ACLx7jPLhE-VgfhjGCmCLLOypNtIAffhM9LTKUSBQbg6jo5vQzPeKGVkIlHsfzdJugp4Cg1AVRK_0Qo5pPEgoY2j2iyEcHcb8/s1600/device-2018-06-03-193039.png" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgQ5WFOycgZwRtNcx24dcYdrB64WOdVgmluiEn416-B4ACLx7jPLhE-VgfhjGCmCLLOypNtIAffhM9LTKUSBQbg6jo5vQzPeKGVkIlHsfzdJugp4Cg1AVRK_0Qo5pPEgoY2j2iyEcHcb8/s320/device-2018-06-03-193039.png" width="320" /></a><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYm6fVsdhDW-NyFyhKFQlAsVeODfuP6oR7GX4mfupDSEkmNapAVBO3MTLpC_1Y1xo8bSE4C9-Y1iFJ3be6Pb8E_XW-ke2E8wv-Mtldu46_xg_-QjMiS8rbQkW44XzNdSdZHxMCwvCFWro/s1600/device-2018-06-03-193139.png" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYm6fVsdhDW-NyFyhKFQlAsVeODfuP6oR7GX4mfupDSEkmNapAVBO3MTLpC_1Y1xo8bSE4C9-Y1iFJ3be6Pb8E_XW-ke2E8wv-Mtldu46_xg_-QjMiS8rbQkW44XzNdSdZHxMCwvCFWro/s320/device-2018-06-03-193139.png" width="320" /></a><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1yz-SVCfc_JtCBmohEJMDPl5YxBbqIJ7nEf0fwFTuwyOtN0igmIxV4nU6Bd2zxLBxR5erQtKQOXOtosG7IRj9Y-R4Hc3FSvvDj_xgoI4gLeVFf-ts8OYgc2j5K6Z3X5TTr047WHXFtsk/s1600/device-2018-06-03-193257.png" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1yz-SVCfc_JtCBmohEJMDPl5YxBbqIJ7nEf0fwFTuwyOtN0igmIxV4nU6Bd2zxLBxR5erQtKQOXOtosG7IRj9Y-R4Hc3FSvvDj_xgoI4gLeVFf-ts8OYgc2j5K6Z3X5TTr047WHXFtsk/s320/device-2018-06-03-193257.png" width="320" /></a><br />
<br />
<div>
topicにはGitHubのリポジトリ名を指定すると良いでしょう。</div>
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ0Z4IRb7r8c0qtdWpzQ_KcM5Yhlud6sFsfCuGFWw-lKOn3p0IAMWtQklqYNl4wxMPOea-VsemMhKXhr_CyYE5UIhSz-eG27YHHexWiZOf3dzwq3nPzrggaOgczG3v7UDdKlVtXt3uh_k/s1600/device-2018-06-03-193408.png" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ0Z4IRb7r8c0qtdWpzQ_KcM5Yhlud6sFsfCuGFWw-lKOn3p0IAMWtQklqYNl4wxMPOea-VsemMhKXhr_CyYE5UIhSz-eG27YHHexWiZOf3dzwq3nPzrggaOgczG3v7UDdKlVtXt3uh_k/s320/device-2018-06-03-193408.png" width="320" /></a><br />
<br />
<h3>
Webhookを確認する</h3>
Webhook Settingsを確認します。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidG5oogisYu5IZtz9OnV458tlyBJTRBZl5_BldbpImi4nl6w7PFc75rtMTDVWpsKjBsAHwlmebqXJBV-sReEa0GRJbmcfnKQGH6oQ12NJyPdTSghNwCw5lPqV3d73cNIDV6f4ah6CCBv8/s1600/device-2018-06-03-193451.png" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidG5oogisYu5IZtz9OnV458tlyBJTRBZl5_BldbpImi4nl6w7PFc75rtMTDVWpsKjBsAHwlmebqXJBV-sReEa0GRJbmcfnKQGH6oQ12NJyPdTSghNwCw5lPqV3d73cNIDV6f4ah6CCBv8/s320/device-2018-06-03-193451.png" width="320" /></a><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1Obj0JNhClqMyXfLwO-75yi2p3U9EWK-AuOCXNbAKcIK4uMVfVVjmr_bC0D4Tt21MwbRayoBbrsIirKGyRKwXJxctI0i1HM-xXrV5WiZqCAMdQGkfdplS0h8ii2OAGnGB8_iE9oCOP-Q/s1600/device-2018-06-03-195130.png" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1Obj0JNhClqMyXfLwO-75yi2p3U9EWK-AuOCXNbAKcIK4uMVfVVjmr_bC0D4Tt21MwbRayoBbrsIirKGyRKwXJxctI0i1HM-xXrV5WiZqCAMdQGkfdplS0h8ii2OAGnGB8_iE9oCOP-Q/s320/device-2018-06-03-195130.png" width="320" /></a><br />
<br />
この画面にはWebhookにアクセスするための情報が表示されています。notify_v1とnotify_v2の2つが表示されていますが、まずはnotify_v1の動作確認をしましょう。<br />
curlコマンドなどで表示されているURLに、token、topic、item、statusを付加してアクセスします。<br />
<br />
<ul>
<li>token : 認証のためのトークンです。</li>
<li>topic : 自分で作成したものの名前を指定します。</li>
<li>item : ブランチの名前のような表示したい名前を指定します。</li>
<li>state : Statusに表示されているものを指定します。これは自分で編集できます。</li>
</ul>
<br />
具体的なcurlコマンドを使ったときの例は次のようになります。<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
$ curl "https://us-central1-catbell-notifier.cloudfunctions.net/notify?token=<表示されているToken>&topic=CatbellNotifier&state=running&item=test_branch"</blockquote>
<blockquote class="tr_bq">
{"success":true,"topic":"CatbellNotifier","item":"test_branch","state":"running"}</blockquote>
</blockquote>
レスポンスのsuccessがtrueならば成功です。<br />
最初の画面に戻ると項目が追加されていることが確認できます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha8HT-Nti7fNdMzlTzevpE9ttwfszbDwd7JFaNLBcyIW03NieFpC4ElB9Muw8AfIjkn08zUdIZGuFDiRJuFrdiHHQcFmVSP-4wL9LCtjJ4v63HjsUIm1j_Apecp-W3B3onYN0VUDlm-RQ/s1600/device-2018-06-03-201941.png" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha8HT-Nti7fNdMzlTzevpE9ttwfszbDwd7JFaNLBcyIW03NieFpC4ElB9Muw8AfIjkn08zUdIZGuFDiRJuFrdiHHQcFmVSP-4wL9LCtjJ4v63HjsUIm1j_Apecp-W3B3onYN0VUDlm-RQ/s320/device-2018-06-03-201941.png" width="320" /></a><br />
<br />
<h3>
Webhookを各サービスに対応させる</h3>
前述のnotify_v1はtoken、topic、item、stateを一つのURLにしてアクセスしました。<br />
GitHubやBitriseといったサービスのOutgoing Webhookでは、itemやstateはHTTP通信のPOSTとして送られてきます。<br />
<br />
<ul>
<li>参考情報</li>
<ul>
<li><a href="https://devcenter.bitrise.io/api/outgoing-webhooks/">BitriseのOutgoing webhookの仕様</a></li>
<li><a href="https://developer.github.com/v3/activity/events/types/#statusevent">GitHubのstatus eventの仕様</a></li>
</ul>
</ul>
このため、notify_v1のWebhookはこれらのサービスに対して直接使用することができません。この問題はnotify_v2のWebhookを使うことで解決できます。<br />
Catbell NotifierにはこれらのHTTP通信の内容から、itemやstateを取り出す仕組みがあります。これはナビゲーションドロワーのServicesから確認できます。GitHubやBitriseはプリセットされています。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiktJldYi3mA4ttOvxX6ss4odcw00btI92k2mYob1f_Olrvz2e_yyCDYMbjlMshOWEq1DsS48_GDpYIhSJ5AVm0tkG3v2a4-Q97bXaJ3HZnYOvnITq0KBhrK6yUfcds9iha1m7IJBEdlvU/s1600/device-2018-06-03-203608.png" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiktJldYi3mA4ttOvxX6ss4odcw00btI92k2mYob1f_Olrvz2e_yyCDYMbjlMshOWEq1DsS48_GDpYIhSJ5AVm0tkG3v2a4-Q97bXaJ3HZnYOvnITq0KBhrK6yUfcds9iha1m7IJBEdlvU/s320/device-2018-06-03-203608.png" width="320" /></a><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzaBfmVDzNDD5PbD3PLYtm0-2qSQB2TmlEh58Libuj7kSmtCau-lKM31A8f4CFRPjxCjUH1VNchDcF4S5-uAM0kSSLfNH5p9cSdyItCVoCvLh83bfULAisGRRdkk1OPRPkJcybEd41jeE/s1600/device-2018-06-04-202152.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzaBfmVDzNDD5PbD3PLYtm0-2qSQB2TmlEh58Libuj7kSmtCau-lKM31A8f4CFRPjxCjUH1VNchDcF4S5-uAM0kSSLfNH5p9cSdyItCVoCvLh83bfULAisGRRdkk1OPRPkJcybEd41jeE/s320/device-2018-06-04-202152.png" width="320" /></a><br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
たとえばGitHubでは次のように指定されています。<br />
<span style="color: #e06666;">追記:2018-06-04時点でこの指定に誤りがあったため、v0.7.1で修正しました</span><br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0K7AjzO5ak_XuiVkA3JdhO0ytqMy7AEjC7HlZKUuDDGvpNt-sg2XILUMOJI9AgQa-JsYRUbx2hjuf5mmBD-gih9is9A-aFqLjY9bsl0ZeS1jiKasJc0oRVI9c41Ez0Cuay7HXY0KPl-8/s1600/device-2018-06-04-202617.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0K7AjzO5ak_XuiVkA3JdhO0ytqMy7AEjC7HlZKUuDDGvpNt-sg2XILUMOJI9AgQa-JsYRUbx2hjuf5mmBD-gih9is9A-aFqLjY9bsl0ZeS1jiKasJc0oRVI9c41Ez0Cuay7HXY0KPl-8/s320/device-2018-06-04-202617.png" width="320" /></a></div>
<br />
<h3>
GitHubにWebhookを設定する</h3>
notify_v2のWebhookをGitHubに設定しましょう。<br />
設定は次の通りです。<br />
<br />
<ul>
<li>PayLoad URL</li>
<ul>
<li>https://us-central1-catbell-notifier.cloudfunctions.net/notify_v2?token=<自分のトークン>&service=GitHub&topic=<作成したtopic></li>
</ul>
<li>Content type</li>
<ul>
<li>application/jsonにする</li>
</ul>
<li>Event</li>
<ul>
<li>statusのみにする</li>
</ul>
</ul>
<div>
<br /></div>
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihB1rk7u3VmZfj0B60ielLlqRMc4w8d-pjjY6xKIkTCrYiPRu8IP1XDYN2tpqQ40XZYxS3Y5e3KWay-fZsuD99JrQcuYWV7Xl5ZDYUkeX_SpEadu_oyVW-U7WC7kIjiN8unwnD6LGLjCo/s1600/GithubWebhook_2.png" imageanchor="1"><img border="0" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihB1rk7u3VmZfj0B60ielLlqRMc4w8d-pjjY6xKIkTCrYiPRu8IP1XDYN2tpqQ40XZYxS3Y5e3KWay-fZsuD99JrQcuYWV7Xl5ZDYUkeX_SpEadu_oyVW-U7WC7kIjiN8unwnD6LGLjCo/s320/GithubWebhook_2.png" width="320" /></a><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpOatr3fkpqkzfPqolTHgvTLbTSFZs9R_fCeH16yspI4jJJtCzQtgmQES9XKFbvhyphenhyphenoYfRzXGQSI8DeKNvabUj3CJFWD8Ly5XMHegA9uVBSyS9kGjNIdmx77wKizqE23Ox6j0D57eMcU_4/s1600/GithubWebhook_3.png" imageanchor="1"><img border="0" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpOatr3fkpqkzfPqolTHgvTLbTSFZs9R_fCeH16yspI4jJJtCzQtgmQES9XKFbvhyphenhyphenoYfRzXGQSI8DeKNvabUj3CJFWD8Ly5XMHegA9uVBSyS9kGjNIdmx77wKizqE23Ox6j0D57eMcU_4/s320/GithubWebhook_3.png" width="320" /></a><br />
<br />
設定が終われば、何かブランチをPushしましょう。<br />
例えば"add_info_webhook_v2"というブランチをpushすると、画面に次のように追加されます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS11v_Ff0uiA3v8AIeoUMZN9jjDnUN85cGhSiVJ8wRwWDEEuJusXNrLahEiXZqG4FjD9xqEQV_BUae2ZpnqABXs1utc20LX7cBhCieVbmGyNgNxMaXjtBxQ-5VnmEgOaVa6aso8_qdCMo/s1600/GithubWebhook_4.png" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS11v_Ff0uiA3v8AIeoUMZN9jjDnUN85cGhSiVJ8wRwWDEEuJusXNrLahEiXZqG4FjD9xqEQV_BUae2ZpnqABXs1utc20LX7cBhCieVbmGyNgNxMaXjtBxQ-5VnmEgOaVa6aso8_qdCMo/s320/GithubWebhook_4.png" width="320" /></a><br />
<br />
<h3>
おわりに</h3>
複数のリポジトリに跨った開発をしていると、どのリポジトリの何が最新であるか、それが素早く把握したいときがあります。紹介したCatbell Notifierを使えばそれの見える化をできます。見える化して楽しいチーム開発ができればと思います。<br />
また、今回は触れませんでしたが、ソフトウェア開発に置けるCIに限らず、他の用途にも使えますので、ご興味のある方は他の用途も試してみてください。<br />
<br />
<br />@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-22698883333649381172018-05-24T22:38:00.000+09:002018-06-10T11:17:24.089+09:003Dプリンターを使ってゴーファーピアスを作る<h2>
<span style="font-size: small;">作るもの</span></h2>
この写真のようなゴーファーのピアスを作ります。本当はちゃんとした金属で作りたいのですが難しいため、3Dプリンターを使ってABS樹脂で印刷し、メッキ風の塗料を使って金属風に仕上げます。<br />
<b><br /></b>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ3oicksK77LNOo8VEbb98cICWMBRkI8PVw51gk0dT4EjG8_MqR79r0mmR0QkSTDIG1-0YJxBaVAbQfzsU-SCmMSuKTq492Vnfn9deLBfwt24VVH6b_3bcyER9FVvTOjGZVY4yHXVLrs8/s1600/IMAG0452.jpg" imageanchor="1"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ3oicksK77LNOo8VEbb98cICWMBRkI8PVw51gk0dT4EjG8_MqR79r0mmR0QkSTDIG1-0YJxBaVAbQfzsU-SCmMSuKTq492Vnfn9deLBfwt24VVH6b_3bcyER9FVvTOjGZVY4yHXVLrs8/s400/IMAG0452.jpg" width="400" /></a><br />
<b><br /></b>
<br />
<span style="font-size: small;"><br /></span>
<br />
<h2>
必要なもの</h2>
<ul>
<li>道具</li>
<ul>
<li>3Dプリンター(筆者が使っているのもの)</li>
<ul>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2FQIDI%25E6%258A%2580%25E8%25A1%25933D%25E3%2583%2597%25E3%2583%25AA%25E3%2583%25B3%25E3%2582%25BF%25E3%2583%25BC-ABS-PLA-1-75mm-%25E3%2583%2587%25E3%2583%25A5%25E3%2582%25A2%25E3%2583%25AB%25E6%258A%25BC%25E5%2587%25BA%2Fdp%2FB01CRNV038" rel="nofollow" target="_blank">QIDI技術3Dプリンター</a><img alt="" height="1" src="//i.moshimo.com/af/i/impression?a_id=1033447&p_id=170&pc_id=185&pl_id=4062" style="border: 0px;" width="1" /></li>
</ul>
<li>リューター</li>
<ul>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2FDremel-%25E3%2583%2589%25E3%2583%25AC%25E3%2583%25A1%25E3%2583%25AB-%25E3%2582%25B3%25E3%2583%25BC%25E3%2583%2589%25E3%2583%25AC%25E3%2582%25B9%25E3%2583%259F%25E3%2583%258B%25E3%2583%25AB%25E3%2583%25BC%25E3%2582%25BF%25E3%2583%25BC-MICRO-%25E3%2583%259E%25E3%2582%25A4%25E3%2582%25AF%25E3%2583%25AD%2Fdp%2FB00OAXPP8U" rel="nofollow" target="_blank">コードレスミニルーター</a></li>
</ul>
<li>研磨用ビット</li>
<ul>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2FJINTONG-%25E3%2583%2580%25E3%2582%25A4%25E3%2583%25A4%25E3%2583%25A2%25E3%2583%25B3%25E3%2583%2589%25E3%2583%2590%25E3%2583%25BC-3mm%25EF%25BC%25881-%25E7%25A0%2594%25E7%25A3%25A8%25E4%25BB%2595%25E4%25B8%258A%25E3%2581%2592%25E7%2594%25A8-%25E3%2583%2588%25E3%2583%25B3%25E3%2582%25AC%25E3%2583%25AA%25E5%259E%258B%2Fdp%2FB01MCV6YIL" rel="nofollow" target="_blank">研磨用ダイヤモンドバー 50本セット</a><img alt="" height="1" src="//i.moshimo.com/af/i/impression?a_id=1033447&p_id=170&pc_id=185&pl_id=4062" style="border: 0px;" width="1" /></li>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2F%25EF%25BC%2588Island-Puppy%25EF%25BC%2589-%25E3%2583%258A%25E3%2582%25A4%25E3%2583%25AD%25E3%2583%25B3-%25E3%2583%25AB%25E3%2583%25BC%25E3%2582%25BF%25E3%2583%25BC-%25E5%2590%25845%25E6%259C%25AC20%25E6%259C%25AC%25E3%2582%25BB%25E3%2583%2583%25E3%2583%2588%2Fdp%2FB071L7MFK1" rel="nofollow" target="_blank">ナイロン 繊維 バフ研磨剤</a><img alt="" height="1" src="//i.moshimo.com/af/i/impression?a_id=1033447&p_id=170&pc_id=185&pl_id=4062" style="border: 0px;" width="1" /></li>
</ul>
<li>ドライブース代わりの食器乾燥機</li>
<ul>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2F%25E5%25B1%25B1%25E5%2596%2584-YAMAZEN-%25E9%25A3%259F%25E5%2599%25A8%25E4%25B9%25BE%25E7%2587%25A5%25E6%25A9%259F-120%25E5%2588%2586%25E3%2582%25BF%25E3%2582%25A4%25E3%2583%259E%25E3%2583%25BC%25E4%25BB%2598%25E3%2581%258D-YDA-500%2Fdp%2FB01294UYNM" rel="nofollow" target="_blank">山善(YAMAZEN) 食器乾燥機 YDA-500(W)</a><img alt="" height="1" src="//i.moshimo.com/af/i/impression?a_id=1033447&p_id=170&pc_id=185&pl_id=4062" style="border: 0px;" width="1" /></li>
</ul>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2FGSI-%25E3%2582%25AF%25E3%2583%25AC%25E3%2582%25AA%25E3%2582%25B9-Creos-GT34-Mr-%25E3%2583%258D%25E3%2582%25B3%25E3%2581%25AE%25E6%2589%258BII%2Fdp%2FB000CENHMW" rel="nofollow" target="_blank">Mr.ネコの手</a></li>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2FGSI-%25E3%2582%25AF%25E3%2583%25AC%25E3%2582%25AA%25E3%2582%25B9-Creos-%25EF%25BC%25A7%25EF%25BC%25B489-%25E3%2583%258D%25E3%2582%25B3%25E3%2581%25AE%25E6%2589%258B%25E3%2582%25B9%25E3%2583%2586%25E3%2583%25BC%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%25B3%2Fdp%2FB00W4TCWQA" rel="nofollow" target="_blank">ネコの手ステーション</a><img alt="" height="1" src="//i.moshimo.com/af/i/impression?a_id=1033447&p_id=170&pc_id=185&pl_id=4062" style="border: 0px;" width="1" /></li>
</ul>
<li>塗料や消耗品</li>
<ul>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2F%25E3%2582%25B5%25E3%2583%25B3%25E3%2583%2589%25E3%2583%259A%25E3%2583%25BC%25E3%2583%2591%25E3%2583%25BC-%25E7%25B4%2599%25E3%2582%2584%25E3%2581%2599%25E3%2582%258A-%25E3%2580%2590-%25E7%25B4%25B0%25E7%259B%25AE%25E3%2582%25BB%25E3%2583%2583%25E3%2583%2588-%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25B9%25E3%2583%2581%25E3%2583%2583%25E3%2582%25AF%25E3%2582%2584%25E9%2587%2591%25E5%25B1%259E%25E3%2581%25AE%25E4%25B8%258B%25E5%259C%25B0%25E4%25BB%2595%25E4%25B8%258A%25E3%2581%2592%25E3%2581%25AB%25E6%259C%2580%25E9%2581%25A9%25E3%2581%25A7%25E3%2581%2599%25E3%2580%2582%2Fdp%2FB01IFC64WC" rel="nofollow" target="_blank">タミヤサンドペーパー(180番〜1000番)</a><img alt="" height="1" src="//i.moshimo.com/af/i/impression?a_id=1033447&p_id=170&pc_id=185&pl_id=4062" style="border: 0px;" width="1" /></li>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2F%25E3%2582%25BF%25E3%2583%259F%25E3%2583%25A4-TAMIYA-300087137-%25E3%2582%25BF%25E3%2583%259F%25E3%2583%25A4%25E3%2582%25BB%25E3%2583%25A1%25E3%2583%25B3%25E3%2583%2588-%25E3%2580%259087137%25E3%2580%2591%2Fdp%2FB008DNN2EC" rel="nofollow" target="_blank">タミヤセメント ABS樹脂用</a></li>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2FGSI-%25E3%2582%25AF%25E3%2583%25AC%25E3%2582%25AA%25E3%2582%25B9-Creos-P119-Mr-%25E6%25BA%25B6%25E3%2581%258D%25E3%2583%2591%25E3%2583%2586%2Fdp%2FB00124SJS8" rel="nofollow" target="_blank">溶きパテ</a></li>
<li>パテ</li>
<ul>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2F%25E3%2582%25BF%25E3%2583%259F%25E3%2583%25A4-%25E3%2583%25A1%25E3%2582%25A4%25E3%2582%25AF%25E3%2582%25A2%25E3%2583%2583%25E3%2583%2597%25E6%259D%2590-%25E3%2583%259D%25E3%2583%25AA%25E3%2582%25A8%25E3%2582%25B9%25E3%2583%2586%25E3%2583%25AB%25E3%2583%2591%25E3%2583%2586-40g-87097%2Fdp%2FB00OC0LZ30" rel="nofollow" target="_blank">タミヤのポリエステルパテ</a></li>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2F%25E3%2583%2597%25E3%2583%25A9%25E3%2583%25A2%25E3%2583%2587%25E3%2583%25AB-%25E3%2582%25BF%25E3%2583%259F%25E3%2583%25A4-ITEM-87053-%25E3%2582%25BF%25E3%2583%259F%25E3%2583%25A4%25E3%2583%2591%25E3%2583%2586%25EF%25BC%2588%25E3%2583%2599%25E3%2583%25BC%25E3%2582%25B7%25E3%2583%2583%25E3%2582%25AF%25E3%2582%25BF%25E3%2582%25A4%25E3%2583%2597%25EF%25BC%2589%2Fdp%2FB000BMYWYW" rel="nofollow" target="_blank">タミヤのラッカーパテ</a></li>
</ul>
<li>サーフェイサー</li>
<ul>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2F%25E4%25BA%25BA%25E5%25BD%25A2%25E3%2581%25AE%25E4%25B8%25B8%25E5%25AF%258C-GSI%25E3%2582%25AF%25E3%2583%25AC%25E3%2582%25AA%25E3%2582%25B9-Mr-HOBBY-%25E4%25B8%258B%25E5%259C%25B0%25E5%25A1%2597%25E8%25A3%2585%25E6%259D%2590-Mr-%25E3%2582%25B5%25E3%2583%25BC%25E3%2583%2595%25E3%2582%25A7%25E3%2582%25A4%25E3%2582%25B5%25E3%2583%25BC500-100ml%25E5%2585%25A5%25E3%2582%258A%2Fdp%2FB00DJPCD6W" rel="nofollow" target="_blank">サーフェイサー500</a></li>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2FGSI%25E3%2582%25AF%25E3%2583%25AC%25E3%2582%25AA%25E3%2582%25B9-Mr-%25E3%2582%25B5%25E3%2583%25BC%25E3%2583%2595%25E3%2582%25A7%25E3%2583%25BC%25E3%2582%25B5%25E3%2583%25BC-170ml-%25E3%2583%259B%25E3%2583%2593%25E3%2583%25BC%25E7%2594%25A8%25E4%25BB%2595%25E4%25B8%258A%25E6%259D%2590-B519%2Fdp%2FB00124OI24" rel="nofollow" target="_blank">サーフェーサー 1000</a></li>
</ul>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2FSOFT99-%25E3%2582%25BD%25E3%2583%2595%25E3%2583%258899-%25E3%2582%25B3%25E3%2583%25B3%25E3%2583%2591%25E3%2582%25A6%25E3%2583%25B3%25E3%2583%2589%25E3%2583%2588%25E3%2583%25A9%25E3%2582%25A4%25E3%2582%25A2%25E3%2583%25AB%25E3%2582%25BB%25E3%2583%2583%25E3%2583%2588-25gx3%25E7%25A8%25AE-09192%2Fdp%2FB004X3GJ1Y" rel="nofollow" target="_blank">コンパウンドトライアルセット 25gx3種</a></li>
<li>メッキ風の塗料</li>
<ul>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2F%25E6%259F%2593%25E3%2582%2581Q%25E3%2583%2586%25E3%2582%25AF%25E3%2583%258E%25E3%2583%25AD%25E3%2582%25B8%25E3%2582%25A3-%25E6%259F%2593%25E3%2582%2581Q-%25E3%2583%25A1%25E3%2583%2583%25E3%2582%25AD%25E6%2584%259F%25E8%25A6%259A-%25E3%2582%25B4%25E3%2583%25BC%25E3%2583%25AB%25E3%2583%2589-312g%2Fdp%2FB002DEHRBG" rel="nofollow" target="_blank">メッキ感覚 ゴールド</a></li>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2F%25E6%259F%2593%25E3%2582%2581Q%25E3%2583%2586%25E3%2582%25AF%25E3%2583%258E%25E3%2583%25AD%25E3%2582%25B8%25E3%2582%25A3-%25E6%259F%2593%25E3%2582%2581Q-%25E3%2583%25A1%25E3%2583%2583%25E3%2582%25AD%25E6%2584%259F%25E8%25A6%259A-%25E3%2582%25B7%25E3%2583%25AB%25E3%2583%2590%25E3%2583%25BC-312g%2Fdp%2FB002DER3F6" rel="nofollow" target="_blank">メッキ感覚 シルバー</a></li>
</ul>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2FGSI%25E3%2582%25AF%25E3%2583%25AC%25E3%2582%25AA%25E3%2582%25B9-Mr-%25E3%2583%2588%25E3%2583%2583%25E3%2583%2597%25E3%2582%25B3%25E3%2583%25BC%25E3%2583%2588-%25E3%2582%25B9%25E3%2583%2597%25E3%2583%25AC%25E3%2583%25BC-%25E3%2583%259B%25E3%2583%2593%25E3%2583%25BC%25E7%2594%25A8%25E4%25BB%2595%25E4%25B8%258A%25E6%259D%2590-B501%2Fdp%2FB0000WS11S" rel="nofollow" target="_blank">トップコート 光沢 スプレー</a></li>
</ul>
<li>その他</li>
<ul>
<li>金具</li>
<ul>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2F%25E3%2580%2590jewel%25E3%2580%2591%25E3%2583%2592%25E3%2583%25BC%25E3%2583%2588%25E3%2583%25B3-10mm-%25E3%2582%25B7%25E3%2583%25AB%25E3%2583%2590%25E3%2583%25BC-%25E9%258A%2580-%25E7%25B4%2584100%25E5%2580%258B%2Fdp%2FB00P8TDI8Y" rel="nofollow" target="_blank">ヒートン</a></li>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2F%25E7%25B4%2597%25E3%2582%2584%25E5%25B7%25A5%25E6%2588%25BF-%25E3%2583%2581%25E3%2582%25BF%25E3%2583%25B3%25E3%2583%2594%25E3%2582%25A2%25E3%2582%25B9%25E3%2583%2595%25E3%2583%2583%25E3%2582%25AF%25E3%2580%2590%25E3%2582%25AB%25E3%2583%25B3%25E4%25BB%2598%25E3%2581%258DU%25E5%25AD%2597-%25E7%25B4%258411x13mm-%25E3%2580%2591%25E3%2583%2595%25E3%2583%2583%25E3%2582%25AF%25E3%2583%2594%25E3%2582%25A2%25E3%2582%25B9-%25E3%2583%2594%25E3%2582%25A2%25E3%2582%25B9%25E3%2583%2591%25E3%2583%25BC%25E3%2583%2584%2Fdp%2FB01JJ2K72K" rel="nofollow" target="_blank">ピアス用フック</a></li>
<li><a href="https://af.moshimo.com/af/c/click?a_id=1033447&p_id=170&pc_id=185&pl_id=4062&url=https%3A%2F%2Fwww.amazon.co.jp%2F%25E3%2580%2590jewel%25E3%2580%2591%25E3%2582%25B7%25E3%2583%25AB%25E3%2583%2590%25E3%2583%25BC925-%25E3%2583%259E%25E3%2583%25AB%25E3%2582%25AB%25E3%2583%25B3-%25E7%259B%25B4%25E5%25BE%25846mm%25C3%2597%25E5%25A4%25AA%25E3%2581%25951mm-%25E4%25B8%25B8%25E3%2582%25AB%25E3%2583%25B3-%25E3%2582%25A2%25E3%2582%25AF%25E3%2582%25BB%25E3%2582%25B5%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%2591%25E3%2583%25BC%25E3%2583%2584%2Fdp%2FB01M7OQWLK" rel="nofollow" target="_blank">丸カン</a></li>
</ul>
</ul>
</ul>
<h2>
<span style="font-size: small;"><br /></span></h2>
<h2>
<span style="font-size: small;">ゴーファーの紹介</span></h2>
ゴーファー(Gopher)はプログラム言語の1つである<a href="https://golang.org/">Go言語</a>のマスコットキャラクターです。<a href="https://en.wikipedia.org/wiki/Gopher">ゴーファーは実在する動物</a>で、ジリスの一種でもあります。ゴーファーはCreative Commons Attribution 3.0 Unportedのライセンスで公開されています。<br />
<b><br /></b>
<br />
<h2>
<span style="font-size: small;">オリジナルのデータ</span></h2>
teamstickman氏が可愛いゴーファーのモデルを公開しているのでこれをベースにします。筆者は<a href="https://blender.jp/">Blender</a>というツールを使っているので、それで編集します。<br />
<br />
<a href="https://github.com/StickmanVentures/go-gopher-model">https://github.com/StickmanVentures/go-gopher-model</a><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2S14Qi1WpPZfGJFxIAKT8BxO3f3vsXXtP9ZfWhyphenhyphen8fPeTu6DXwrLMnDPo3lnYpcKf9-xMPnXhLiq2Ghk1hLq5FsIrBiGZkg4d_8JYGjK7X8md3bwWLG9hW2yut8hucXLbSOa6RSJgl28U/s1600/Screenshot+from+2018-05-24+21-06-25.png" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2S14Qi1WpPZfGJFxIAKT8BxO3f3vsXXtP9ZfWhyphenhyphen8fPeTu6DXwrLMnDPo3lnYpcKf9-xMPnXhLiq2Ghk1hLq5FsIrBiGZkg4d_8JYGjK7X8md3bwWLG9hW2yut8hucXLbSOa6RSJgl28U/s320/Screenshot+from+2018-05-24+21-06-25.png" width="320" /></a><br />
<b><br /></b>
<br />
<h2>
<span style="font-size: small;"><br /></span></h2>
<h2>
<span style="font-size: small;"><br /></span></h2>
<h2>
<span style="font-size: small;">3Dプリンターで印刷する</span></h2>
<h3>
<span style="font-size: small;">印刷用データにする</span></h3>
オリジナルのサイズだと大きすぎるので高さ2cmくらいになるようにサイズ調整をします。そして、ヒートン(後述の固定するための金具)を打ち込むための穴を開けます。穴の直径は1.5mmにしました。3Dプリンターによっては太くなったり細くなったりするので、その辺りは自分の3Dプリンターの癖に合わせましょう。<br />
<br />
3Dプリンターでそのまま印刷すると、オーバーハングで浮いている部分にサポートを作るのですが、サポートを剥がした部分がガビガビするため、2つに割って印刷します。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ-SBDFPUs1lI6BJxGYeAoo1oTzp0lMV6awFIbJ3qDqJMOTn7JzKtidlknCEC4dxae_eC2nMO2QJ-BMyf5dT7kTfJD411YrnqHEdxqFRJNmAZ9glgN246o52tc1ZqPnoqWPd1dStVUxzE/s1600/Screenshot+from+2018-05-24+21-16-00.png" imageanchor="1"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ-SBDFPUs1lI6BJxGYeAoo1oTzp0lMV6awFIbJ3qDqJMOTn7JzKtidlknCEC4dxae_eC2nMO2QJ-BMyf5dT7kTfJD411YrnqHEdxqFRJNmAZ9glgN246o52tc1ZqPnoqWPd1dStVUxzE/s400/Screenshot+from+2018-05-24+21-16-00.png" width="400" /></a><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibgEbo1LH_G0bOrThaB9XxZHwuag-dZ8OHmv0yf40IvnZmfuFWqcoz0B2QjSk6aoVLMlwXHMgMI4gCT5YmnzmSIDDGVKag67Hfx6HJJzRlplPna94qeunPQwHawMUlXj9e0WSljONfiSU/s1600/IMAG0513.jpg" imageanchor="1"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibgEbo1LH_G0bOrThaB9XxZHwuag-dZ8OHmv0yf40IvnZmfuFWqcoz0B2QjSk6aoVLMlwXHMgMI4gCT5YmnzmSIDDGVKag67Hfx6HJJzRlplPna94qeunPQwHawMUlXj9e0WSljONfiSU/s400/IMAG0513.jpg" width="400" /></a><a aria-label="写真 - 横向き - 2018/05/24 0:13:27 " class="p137Zd" href="https://photos.google.com/photo/AF1QipM7a-FWp21B5h7Qeoud4bsgT2FKfNlPNsyhJnWW" jsaction="click:eQuaEb;focus:AHmuwe; blur:O22p3e;" tabindex="0"></a><a aria-label="写真 - 横向き - 2018/05/24 0:13:27 " class="p137Zd" href="https://photos.google.com/photo/AF1QipM7a-FWp21B5h7Qeoud4bsgT2FKfNlPNsyhJnWW" jsaction="click:eQuaEb;focus:AHmuwe; blur:O22p3e;" tabindex="0"></a><br />
<div class="RY3tic" data-latest-bg="https://lh3.googleusercontent.com/fwotbDkCVf9zfNTsr92jxAO90n9xIfAz9oiLB-NuaEJHeg84E5dH-OKBTV1Ffto3e2wg1ILOXEv9boHjTqA_39yozb1GmhO2jPe8d2kmjI8Dsix_QII1gO7hED-8fpOLSR_XDbBdyAZBiZR7EbUzFN4QYAidCzHssPTPV6IuCb42whKPGjeXQUWnqF4MW8DZhHEfnyj7HOl_IphFXJeZYUZMGzRdGI_CGKG8Jy_mWBrVZ-FBxlalk0to9BrdAddElUcKdaKnGaNnj6uopr_XcopvYl0EYfHXLcsN1Z3z-qQ8oXlCP-tshC52QGtawdK2NSteAT3-rZKX_kfp3aBnW-jgzzX25Qo08BO6YLhG7aahiu9UfAFrQn-owiZnMfyG9HHB_qwMiVaB0y3TUFgPDj0vYRJjUn24Jgc5azR3OKDkBKZrPQLB55b4uR1VmMmY9obINC740WgzBzANdmN6cVFhO0YipmtITYcHoI4xdbWqKu483lpFPnQpmVRQLvf_ew30a7IKiCycLFDo_okB6N5kpempBQ-NftYOL4MArbcdrD0ZF3v60lHFY12ztzZBOUniMtdRkLTtglzaXSmninlzjfex-YYXQsKQvTFn=w454-h255-no" style="background-image: url("https://lh3.googleusercontent.com/fwotbDkCVf9zfNTsr92jxAO90n9xIfAz9oiLB-NuaEJHeg84E5dH-OKBTV1Ffto3e2wg1ILOXEv9boHjTqA_39yozb1GmhO2jPe8d2kmjI8Dsix_QII1gO7hED-8fpOLSR_XDbBdyAZBiZR7EbUzFN4QYAidCzHssPTPV6IuCb42whKPGjeXQUWnqF4MW8DZhHEfnyj7HOl_IphFXJeZYUZMGzRdGI_CGKG8Jy_mWBrVZ-FBxlalk0to9BrdAddElUcKdaKnGaNnj6uopr_XcopvYl0EYfHXLcsN1Z3z-qQ8oXlCP-tshC52QGtawdK2NSteAT3-rZKX_kfp3aBnW-jgzzX25Qo08BO6YLhG7aahiu9UfAFrQn-owiZnMfyG9HHB_qwMiVaB0y3TUFgPDj0vYRJjUn24Jgc5azR3OKDkBKZrPQLB55b4uR1VmMmY9obINC740WgzBzANdmN6cVFhO0YipmtITYcHoI4xdbWqKu483lpFPnQpmVRQLvf_ew30a7IKiCycLFDo_okB6N5kpempBQ-NftYOL4MArbcdrD0ZF3v60lHFY12ztzZBOUniMtdRkLTtglzaXSmninlzjfex-YYXQsKQvTFn=w454-h255-no"); opacity: 1;">
<div aria-hidden="true" class="eGiHwc">
</div>
<div aria-hidden="true" class="KYCEmd">
</div>
</div>
<div class="RY3tic" data-latest-bg="https://lh3.googleusercontent.com/fwotbDkCVf9zfNTsr92jxAO90n9xIfAz9oiLB-NuaEJHeg84E5dH-OKBTV1Ffto3e2wg1ILOXEv9boHjTqA_39yozb1GmhO2jPe8d2kmjI8Dsix_QII1gO7hED-8fpOLSR_XDbBdyAZBiZR7EbUzFN4QYAidCzHssPTPV6IuCb42whKPGjeXQUWnqF4MW8DZhHEfnyj7HOl_IphFXJeZYUZMGzRdGI_CGKG8Jy_mWBrVZ-FBxlalk0to9BrdAddElUcKdaKnGaNnj6uopr_XcopvYl0EYfHXLcsN1Z3z-qQ8oXlCP-tshC52QGtawdK2NSteAT3-rZKX_kfp3aBnW-jgzzX25Qo08BO6YLhG7aahiu9UfAFrQn-owiZnMfyG9HHB_qwMiVaB0y3TUFgPDj0vYRJjUn24Jgc5azR3OKDkBKZrPQLB55b4uR1VmMmY9obINC740WgzBzANdmN6cVFhO0YipmtITYcHoI4xdbWqKu483lpFPnQpmVRQLvf_ew30a7IKiCycLFDo_okB6N5kpempBQ-NftYOL4MArbcdrD0ZF3v60lHFY12ztzZBOUniMtdRkLTtglzaXSmninlzjfex-YYXQsKQvTFn=w454-h255-no" style="background-image: url("https://lh3.googleusercontent.com/fwotbDkCVf9zfNTsr92jxAO90n9xIfAz9oiLB-NuaEJHeg84E5dH-OKBTV1Ffto3e2wg1ILOXEv9boHjTqA_39yozb1GmhO2jPe8d2kmjI8Dsix_QII1gO7hED-8fpOLSR_XDbBdyAZBiZR7EbUzFN4QYAidCzHssPTPV6IuCb42whKPGjeXQUWnqF4MW8DZhHEfnyj7HOl_IphFXJeZYUZMGzRdGI_CGKG8Jy_mWBrVZ-FBxlalk0to9BrdAddElUcKdaKnGaNnj6uopr_XcopvYl0EYfHXLcsN1Z3z-qQ8oXlCP-tshC52QGtawdK2NSteAT3-rZKX_kfp3aBnW-jgzzX25Qo08BO6YLhG7aahiu9UfAFrQn-owiZnMfyG9HHB_qwMiVaB0y3TUFgPDj0vYRJjUn24Jgc5azR3OKDkBKZrPQLB55b4uR1VmMmY9obINC740WgzBzANdmN6cVFhO0YipmtITYcHoI4xdbWqKu483lpFPnQpmVRQLvf_ew30a7IKiCycLFDo_okB6N5kpempBQ-NftYOL4MArbcdrD0ZF3v60lHFY12ztzZBOUniMtdRkLTtglzaXSmninlzjfex-YYXQsKQvTFn=w454-h255-no"); opacity: 1;">
<div aria-hidden="true" class="eGiHwc">
</div>
<div aria-hidden="true" class="KYCEmd">
</div>
</div>
<b><br /></b>
<br />
<h3>
<span style="font-size: small;">接着する</span></h3>
<div>
分離して印刷したものを接着します。筆者はABS樹脂で印刷したので、ABS用の接着剤を使用します。使用する樹脂によっては適切な接着剤を使用しないと容易に剥がれたりするので気をつけましょう。特にABS樹脂は接着剤の相性が大きいので要注意です。</div>
<div>
<b><br /></b></div>
<b><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdlGkgAME2XKQVq-NVGlEUvYEoDYk7MYrusPC8GHheV_yc-VYAyBzQPhJ5S9ltgTWfJA376tc7Hvv2fsWw04T32knaSLyI1Iri9-gS9662kCkuSXU9LLdoLZcFxh2D6pmIrjn1Ov8Si8E/s1600/IMAG0526.jpg" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdlGkgAME2XKQVq-NVGlEUvYEoDYk7MYrusPC8GHheV_yc-VYAyBzQPhJ5S9ltgTWfJA376tc7Hvv2fsWw04T32knaSLyI1Iri9-gS9662kCkuSXU9LLdoLZcFxh2D6pmIrjn1Ov8Si8E/s320/IMAG0526.jpg" width="320" /></a></b><br />
<b><br /></b>
<b><br /></b>
<br />
<h2>
<span style="font-size: small;">表面を整える</span></h2>
印刷して接着して完成といいたいところですが、3Dプリンターで印刷したものは表面が荒いため、いろんな道具を使って表面を整えます。<br />
<b><br /></b>
<br />
<h3>
<span style="font-size: small;">リューターで大まかに均す</span></h3>
<div>
まずはリューターで大まかに表面を削って均します。回転速度が速すぎたり、押し付けるのが強すぎたりすると表面が熱を持って溶けてしまうので、加減をしながら削ります。</div>
<h3>
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNEL-FFVKtFoyU1KBkU0_-ov7rVp2pWWfgYzpE3QvB-QToTk88StfOvhApHpTHn7ihMRQJocg0B1dUnU25sAHa2XJqM5eRTFWTLplFOaRvYJikIFCXYrPANeQpbIO3zgeSdxegkbmlwb4/s1600/IMAG0527.jpg" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNEL-FFVKtFoyU1KBkU0_-ov7rVp2pWWfgYzpE3QvB-QToTk88StfOvhApHpTHn7ihMRQJocg0B1dUnU25sAHa2XJqM5eRTFWTLplFOaRvYJikIFCXYrPANeQpbIO3zgeSdxegkbmlwb4/s320/IMAG0527.jpg" width="320" /></a></span></h3>
<h3>
<div>
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguTJtFzuV40-r9qiLAEyFRorNLDLx8i0wkF_CDlOTpnR_xqoMUq0JXkpcmYx88QaykgycZA0vAk7rPH-HMfP0LWdSkyUN-8zM-fMVOgbBqHi3ldwmbodaC1HQjcz1Nint1_JXQJBoT3Pw/s1600/IMAG0447.jpg" imageanchor="1"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguTJtFzuV40-r9qiLAEyFRorNLDLx8i0wkF_CDlOTpnR_xqoMUq0JXkpcmYx88QaykgycZA0vAk7rPH-HMfP0LWdSkyUN-8zM-fMVOgbBqHi3ldwmbodaC1HQjcz1Nint1_JXQJBoT3Pw/s400/IMAG0447.jpg" width="400" /></a></span></div>
</h3>
<h3>
<span style="font-size: small;">サンドペーパーで更に均す</span></h3>
<span style="font-size: small;">リューターでだいたい成らせたら、180〜320番くらいのサンドペーパーで表面を更に均します。このタイミングでは320番より大きな番手は不要です</span><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwcdkmPHVYlTjQw2vzv-7wI5v-WPGAD7KJD-2H16Q3BlCqkeSsSYk59YoOOBuGc1Gt2yxqVek1zkRRi1v6qN-6cN-yds8Z_cf1eWDM4cTSWTlVWe4Rd-CID4yMrnu-ts-vfLjmd_Km6KQ/s1600/IMAG0530.jpg" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwcdkmPHVYlTjQw2vzv-7wI5v-WPGAD7KJD-2H16Q3BlCqkeSsSYk59YoOOBuGc1Gt2yxqVek1zkRRi1v6qN-6cN-yds8Z_cf1eWDM4cTSWTlVWe4Rd-CID4yMrnu-ts-vfLjmd_Km6KQ/s320/IMAG0530.jpg" width="320" /></a><span style="font-size: small;"><br /></span><br />
<br />
<h3>
<span style="font-size: small;">溶きパテを使う</span></h3>
<span style="font-size: small;">3Dプリンターで印刷したものは微妙に隙間が空いていたりするので、その隙間を溶きパテで埋めます。溶きパテはちゃんと掻き混ぜた後、筆で塗ります。</span><br />
<span style="font-size: small;">溶きパテが乾いたらサンドペーパーで磨いて更に均します。</span><br />
<br />
サーフェイサーで表面を確認する<br />
320番くらいのサンドペーパーで一通り綺麗になったら500番のサーフェイサーを吹きます。灰色のサーフェイサーだと、表面の具合がとてもわかりやすくなります。<br />
乾燥させて、表面に荒いところがあるなら前の工程に戻ります。<br />
問題がなさそうならサンドペーパーの番手と、サーフェイサーの番手を上げてきます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUrfNIplO0_alDLkSfX9C1MT6iCPhgIxgSOlQGJ0zI_BtxuSF35iNaGFCqaHBbvTbWMkecqCESrSKZybRy9YwFhCE5TSWBdVOWE3hG7u4bBVxKZVL5RmTTQB_j4zTA7753QWWVkfhYJs4/s1600/IMAG0529.jpg" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUrfNIplO0_alDLkSfX9C1MT6iCPhgIxgSOlQGJ0zI_BtxuSF35iNaGFCqaHBbvTbWMkecqCESrSKZybRy9YwFhCE5TSWBdVOWE3hG7u4bBVxKZVL5RmTTQB_j4zTA7753QWWVkfhYJs4/s320/IMAG0529.jpg" width="320" /></a><br />
<br />
<br />
<h3>
コンパウンドで磨く</h3>
2000番のサンドペーパーまで磨いた後はコンパウンドで更に磨きます。コンパウンドはメーカーによって細かさが異なるのですが、99工房の極細ならツヤがでるまでできます。<br />
リューターでフェルトバフにコンパウンドを付けて磨くこともできますが、バフの種類によっては削れ過ぎたり、熱で溶けたりするので気をつけてください。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOXEphBuCBaRa6hFuAJhvD1rJCBGyj4bM7xbrelUgEQK9TeNs6Tap9B-IfLypOko_fNraRAMH9KXvwYcECpcRVFrz2Q1YcI3LLBA2Bru2Q8f7H2QPv1ZhSvmGMru3hSza27ykvSgzBQGI/s1600/IMAG0531.jpg" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOXEphBuCBaRa6hFuAJhvD1rJCBGyj4bM7xbrelUgEQK9TeNs6Tap9B-IfLypOko_fNraRAMH9KXvwYcECpcRVFrz2Q1YcI3LLBA2Bru2Q8f7H2QPv1ZhSvmGMru3hSza27ykvSgzBQGI/s320/IMAG0531.jpg" width="320" /></a><br />
<br />
<h2>
塗装する</h2>
表面が仕上がったら塗装しましょう。<br />
筆者が持っているゴールドやシルバーの塗料は、Mr.Colorや染めQのものになります。<br />
2社の違いは筆者の感覚は次のとおりです。<br />
<br />
<ul>
<li>Mr.Color</li>
<ul>
<li>表面処理をちゃんとしないと艶が出ない</li>
<li>塗膜が強い</li>
</ul>
<li>染めQのメッキ感覚</li>
<ul>
<li>2000番くらいで磨いておけば艶がでる</li>
<li>塗膜が厚く柔らかい</li>
<li>乾燥はドライブースで2〜3日おいたほうが良い</li>
</ul>
</ul>
<br />
他のメーカーからも出ているのでいろいろ試してみると良いでしょう。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOLtFKBvQFvQkQhjeUd9PtXreq4ne2jIYd1S32HekEr7I9J37KM6yTVLryWvS_zDMCpMmwJql8YVmtJl1M_cWyKHPyw94p3u3kyL5iHX8DBZWMvFmGOWNEXk4s6iirJmBB3kF3H0hrFc0/s1600/IMAG0532.jpg" imageanchor="1"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOLtFKBvQFvQkQhjeUd9PtXreq4ne2jIYd1S32HekEr7I9J37KM6yTVLryWvS_zDMCpMmwJql8YVmtJl1M_cWyKHPyw94p3u3kyL5iHX8DBZWMvFmGOWNEXk4s6iirJmBB3kF3H0hrFc0/s320/IMAG0532.jpg" width="320" /></a><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQvXiZmvg4rO25jKiG8pl_OG-X95uoX7_k9SqRwVOieNlxiEDa0J9B7Ht3PjFWY07ZSglDAvrrFljqaY37IfATguNxcprkI4I7vCEbn6Ev34zPlyDCSs0K9sQ5ei_9yahTykw5FnGpow/s1600/IMAG0458.jpg" imageanchor="1"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitQvXiZmvg4rO25jKiG8pl_OG-X95uoX7_k9SqRwVOieNlxiEDa0J9B7Ht3PjFWY07ZSglDAvrrFljqaY37IfATguNxcprkI4I7vCEbn6Ev34zPlyDCSs0K9sQ5ei_9yahTykw5FnGpow/s400/IMAG0458.jpg" width="400" /></a><br />
<br />
2つ注意点があります。<br />
1つめは乾燥にドライブースを使う場合、メッキ系の塗料は最初から熱を加えると歪んだり気泡が発生します。最初の数時間は自然乾燥させて、その後、熱を加えるようにしましょう。<br />
2つめは乾燥の具合がわかりにくいため、触って指紋がついたりすると悲しいので、乾燥具合を確かめるために、確認用に別のものを一緒に塗装しましょう(写真右の円盤)。<br />
<br />
塗料が十分に乾燥したらトップコートを仕上げに吹きます。<br />
トップコートは無い方が艶が綺麗なのですが、アクセサリーとして使用することを考えると、表面の保護のため必要です。特に染めQのメッキ感覚の塗料は塗膜が弱いのでそのままでは軽く爪が当たるだけでも傷が入ります。<br />
トップコートは水性のものを使用しましょう。メッキ風の塗料にラッカー系のトップコートを使用すると最悪溶けて大変なことになります。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5wBf5J34NE3IKXphEic_HoyLoCP5ehE9Gr11f0aG-GQgvaRWyf-ae0nUlzrPewqZviN7AkNJ7WioItNazQPzfG74zbyDhmGnLqT7Fh9FjJ6O62CqQSd_sg31jVbizv5OuanMOSqjTPUY/s1600/IMAG0533.jpg" imageanchor="1"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5wBf5J34NE3IKXphEic_HoyLoCP5ehE9Gr11f0aG-GQgvaRWyf-ae0nUlzrPewqZviN7AkNJ7WioItNazQPzfG74zbyDhmGnLqT7Fh9FjJ6O62CqQSd_sg31jVbizv5OuanMOSqjTPUY/s320/IMAG0533.jpg" width="180" /></a><br />
<br />
<h2>
金具を取り付ける</h2>
最後にアクセサリーとして使うために金具を取り付けます。<br />
ゴーファー側にヒートンを打ち込みます。そしてC環を挟んでピンに繋ぎます。このときにC環は無くてもピンに取り付けられるのですが、C環が無いとピアスとして揺れないので必ず挟むようにしましょう。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2fRZigMOg05FzadrLbVhWQF-c1XnMqPMXKh5LwGbFSz5fQ7F9PKFA3yK4Zj5M-B4I4h6WtCNfzlmSm_a1IQjO8aJWVIwPFyCkCJKimGPeqDHJMrVNGGsk8tZTy_2aYpZwVx5GU7zmGYs/s1600/IMAG0534.jpg" imageanchor="1"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2fRZigMOg05FzadrLbVhWQF-c1XnMqPMXKh5LwGbFSz5fQ7F9PKFA3yK4Zj5M-B4I4h6WtCNfzlmSm_a1IQjO8aJWVIwPFyCkCJKimGPeqDHJMrVNGGsk8tZTy_2aYpZwVx5GU7zmGYs/s400/IMAG0534.jpg" width="400" /></a><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqxtcC-BY9946XeIwGHuJ19eyPAw7gj8AktKOLBHRWymv3peHv9hEzswfwGfyave-jZlt9FNnCuTYrTIGmEl021NVzqtKN88DTr5qByWFBJPaJIIaRDAGkALafVNAE1_mpNaCeHcEeJRA/s1600/IMAG0484.jpg" imageanchor="1"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqxtcC-BY9946XeIwGHuJ19eyPAw7gj8AktKOLBHRWymv3peHv9hEzswfwGfyave-jZlt9FNnCuTYrTIGmEl021NVzqtKN88DTr5qByWFBJPaJIIaRDAGkALafVNAE1_mpNaCeHcEeJRA/s400/IMAG0484.jpg" width="400" /></a><br />
<br />
<h2>
完成</h2>
金具の取り付けができれば完成です。純粋な金属には及ばないものの、樹脂製で軽くて綺麗な可愛いゴーファーができあがりました。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicnJH471hlRU4DEHe3iVFcw3p6eT7QIkD7mPdRsbG7q6zvLbZ1KZ0KAudhJGG3kH1eDtmwUDdthP6SuljKC9tQ_z6dqWQxWl1TKwuIaSYeItKtmjMV9_OoCSmS9dO_7ynE3afnskF2JsU/s1600/IMAG0511.jpg" imageanchor="1"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicnJH471hlRU4DEHe3iVFcw3p6eT7QIkD7mPdRsbG7q6zvLbZ1KZ0KAudhJGG3kH1eDtmwUDdthP6SuljKC9tQ_z6dqWQxWl1TKwuIaSYeItKtmjMV9_OoCSmS9dO_7ynE3afnskF2JsU/s400/IMAG0511.jpg" width="400" /></a><br />
<br />@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-30417665460911217922017-06-25T15:56:00.003+09:002017-06-26T12:13:38.720+09:00ペルチェ素子で自作ドリンククーラーを作った<h2>
はじめに</h2>
温度を制御して見たかったのと、仕事中によく飲むアイスの缶のボトルコーヒーが温くなるのが嫌なので、ドリンククーラーを作った。<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnFP9BcSC4J_GozPjHNyDZk8Nlg5t9s5GhsjtnSvyTsuNeO190w5CitA7D4aG9yKv8buP-mciVzkmUKGuPluy3Shhrh_JMInTr5kQ5f-i3skeLJ7gWZrpq04Wrw_rs9ivFA6FCa5rEoNk/s1600/cameringo_20170625_145646.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnFP9BcSC4J_GozPjHNyDZk8Nlg5t9s5GhsjtnSvyTsuNeO190w5CitA7D4aG9yKv8buP-mciVzkmUKGuPluy3Shhrh_JMInTr5kQ5f-i3skeLJ7gWZrpq04Wrw_rs9ivFA6FCa5rEoNk/s320/cameringo_20170625_145646.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h2>
アプローチ</h2>
ペルチェ素子の片面に放熱用のヒートシンク、片面にアルミ板でドリンクホルダーみたいなのを付ければ行けるんじゃなかろうかという雑な発想を元に開発した。<br />
<br />
<h2>
使った部品</h2>
<br />
<ul>
<li>ペルチェ素子 8Aタイプ(40x40mm) TEC1-12708</li>
<ul>
<li>電流流すと温度が移動するやつ</li>
<li><a href="http://akizukidenshi.com/catalog/g/gI-00486/">http://akizukidenshi.com/catalog/g/gI-00486/</a></li>
</ul>
<li>65W級スイッチングACアダプター12V5A GF65I-US1250</li>
<ul>
<li>秋月で売ってる容量が大きいACアダプター(これ以上は電源モジュールになる)</li>
<li><a href="http://akizukidenshi.com/catalog/g/gM-00510/">http://akizukidenshi.com/catalog/g/gM-00510/</a></li>
</ul>
<li>DC1V~15V 最大8A可変スイッチング電源キット(降圧) SI-8010Y使用</li>
<ul>
<li>出力の調節用</li>
<li><a href="http://akizukidenshi.com/catalog/g/gK-06969/">http://akizukidenshi.com/catalog/g/gK-06969/</a></li>
</ul>
<li>アイネックス Socket AM4対応 92mmファン CC-04</li>
<ul>
<li>放熱用</li>
<li><a href="https://goo.gl/etJ3kh">https://goo.gl/etJ3kh</a></li>
</ul>
</ul>
<br />
<h2>
筐体を作る</h2>
FreeCADで設計して3Dプリンターで印刷した。<br />
ドリンクホルダー部分は保温のために軽く中空にしてある。<br />
制御ユニットは作業しやすいように嵌め込み式で外れるようになっている。構造上、ペルチェ素子周辺で結露して水滴が発生しても、制御ユニットの中に入らないようにしている。また熱が発生する部分なので空気穴を開けてある(オーバーヒートしそうならファンを設置するつもりだった)。<br />
ドリンクホルダー内の冷却部分は、0.5mmのアルミ板をカッターで斬り出して折り曲げた。手を切らないようにヤスリでエッジの処理もしている。<br />
CPUクーラーに固定用の部品が付属していたので、CPUクーラーの固定にはそれを使うようにした。地味に重たいので強度不足にならないように周辺は厚くしている。<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijxFa14114nH0LQhIwAz5x__UhiCNI1BoZvnLn7l1uqQPC7i3OJ4KgBbaRqMcsCUeNTLRdSJO6se9HUm_af4qaMttlOXmYBHPzvMhG2v2zPPlHszWCEz2-3gEVFe2eR8-YT5jLS9zH1l8/s1600/Screenshot+from+2017-06-25+15-12-46.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijxFa14114nH0LQhIwAz5x__UhiCNI1BoZvnLn7l1uqQPC7i3OJ4KgBbaRqMcsCUeNTLRdSJO6se9HUm_af4qaMttlOXmYBHPzvMhG2v2zPPlHszWCEz2-3gEVFe2eR8-YT5jLS9zH1l8/s400/Screenshot+from+2017-06-25+15-12-46.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXOtDquiJJsde7EMF2WQiRPfFpCKcgQjodqAUNy0_oYQFw-gStHnGgm5wCpmaigJuczDPUI6OR_AAzuocQoa1pKiNiZ_VL4MeZZgN7EDcTjOSrUCQ_I9d48V02uTgVHa2DE0al4MKiHPk/s1600/cameringo_20170625_150034.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXOtDquiJJsde7EMF2WQiRPfFpCKcgQjodqAUNy0_oYQFw-gStHnGgm5wCpmaigJuczDPUI6OR_AAzuocQoa1pKiNiZ_VL4MeZZgN7EDcTjOSrUCQ_I9d48V02uTgVHa2DE0al4MKiHPk/s320/cameringo_20170625_150034.jpg" width="320" /></a></div>
<br />
<h2>
制御ユニット</h2>
制御ユニットの中には可変スイッチング電源キット(写真左)と、ACアダプタのコネクタを刺すための基盤(写真右)が入っている。<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ-PsmuqOTMs9s1-UlhC-K1zMngn0RWDIotzcDE_f1z-0rgE-Vn7WnMGBNz_GGx_FHK0r8QwG_-YJofSqfO7_krJo1DEbYqXE9Hf44FRNffzTKasOby_E716zcigEMOUsltoA72YKwkl8/s1600/cameringo_20170625_145955.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ-PsmuqOTMs9s1-UlhC-K1zMngn0RWDIotzcDE_f1z-0rgE-Vn7WnMGBNz_GGx_FHK0r8QwG_-YJofSqfO7_krJo1DEbYqXE9Hf44FRNffzTKasOby_E716zcigEMOUsltoA72YKwkl8/s320/cameringo_20170625_145955.jpg" width="320" /></a></div>
<br />
<br />
使用したペルチェ素子の抵抗は1.4〜1.6Ωなので、直接12Vを食わせると8.57A(≒12/1.4)くらいなのでACアダプターの容量オーバーになる。なので可変スイッチング電源キットを噛ませて電圧を下げるようにしている。<br />
CPUファンは右の基盤から電源を取っているが、そのままではファンの回転数が高すぎて少々うるさいため、トランジスタと可変抵抗を挟んで電流量を調節している。トランジスタも地味に発熱するので小さいヒートシンクを括りつけている。<br />
<br />
<h2>
使った感想</h2>
ペットボトルを突っ込んで使ってみた感じ、室温よりかは冷えているが、キンキンに冷えるには程遠い。<br />
<br />
<h2>
考察</h2>
<ul>
<li>CPUファンはもともと100W級の冷却用なので、そのまま使うとファンがオーバースペックでうるさい。静かなものに交換すると良さそう。</li>
<li>ACアダプターの容量の都合でペルチェ素子には結局9Vほどに落として供給している。</li>
<li>いまいち冷えないのはドリンクホルダー部の断熱が雑というのが大きいと思われる。</li>
</ul>
<div>
<br /></div>
<h2>
おわりに</h2>
<div>
正直、使い物になるのかというと微妙な結果に終わった。でもそのうち動植物の育成用の箱とか作ってみたいなと思っているので、そのときのこのノウハウが引き継げたら良いと思う。</div>
<div>
<br /></div>
@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-20621022752680968222016-10-01T16:46:00.000+09:002016-10-01T16:46:33.543+09:00ノートPCをG-Tune i4600に買い換えたノートPCを<a href="http://www.g-tune.jp/note_model/i4600/">G-Tune i4600</a>に買い換えた。G-TuneはマウスコンピューターのゲーミングPCのブランドです。ThinkPad X220を長らく愛用していたけど、今時のPCゲームをやってみたいのと、TensorFlowとか触ってみたいのでGPUが載ったPCが欲しくなったのが理由です。<br />
<img height="239" src="https://lh3.googleusercontent.com/rXM_M3B26Zsp7mkH_ZtDu4VkUry79_nta9w3gRp5Lt4J5bdZukdz2I6SI8yG7XKW6V8l3yuWQlKfnyXflUHyUxiy-iG6Ocj1fYAMhaN3oU_f5d2sSsVYjnyKGSxLgqyUvoLN0Df-GMxOl2uQKGu9Yuni3lSih-VesYPgYBpMNeXL7GKXO0KzoKLslYdinkQiiNwQJdO8NVFueS23ELHhnooANsKI9ySIq4Kzr-fWa_MO7KqTF0TYBSBN81qMq5g9h3OLNJGkhAOPXASC1c8NdqyYUhfrIfyYDP59RS-_ImQMheQpTQrCCgRgW-7HMhOCp-lTM_wjvQg0C5WyoRBqZ3Zw5SnKQCG-lPzwC_vleknsu72BqdWysjhUKNjHMLof0ghobZl8Zx9qvzUaFXnm0uulSn4NTKri8Ek6bYv56XXDwgSkPm43WPeBwqbpMk9ZyXawdORxZrai8vt_HpaIR9-6M0CJJ3PGHq47vpMln8YElKV1BIAihTnnrzXmn5oE1RnJqDcdbEGt3URhvonGPddPw47oMVnGjWxN1YwO0wFinWTIhR3UJiEgLwXQ7SVE7TAATLotigdWK6LMQ1kdRB0bmwyPyWx8FAo0TQMwoiVA-HIJ=w1288-h963-no" width="320" /><img height="239" src="https://lh3.googleusercontent.com/3ihbcQAt5h9aKU3pITBl_KgQ_uvz2dGimFqquVBjAMpKElIMlMCn84kA9_vf5YVGd0BBz50_BfxaeovJNZWYGa42qtDDMWOFWyJjMgrlSEE3MeAcv8vcs6HoFrQvSiXrZUiIqv8rfrKS8J6ivEWuLOgG9qjuvzcsJpEdvGi2W0QodAgwn7hSZRxLG9oMyT-JONKS_Cs_giuYE8jL-MniQiX6O7PV0oaRtAjCNlTelcJT_LjVVLqAqkOFMUYANQo0M6jtpKO8jaSk3w5LiAwg03DQjTYrbumQJsxZtLomX9C6cojs5n2FQy9147tDwBhcJomPehSQQd6Slp5DWiayhenk2YkzYyUxvEBFWhJCpQfNuP7uHww2zlwRg25UcB72TAV04alMFvaZccEbGmU1FyuQ4jFvoNzvnFQjt7b1x7brN9cOB5tIcQvbqDnT83oafkyEaLmBqPA7l5X0mtzPNCp4eWain1f7XMGcTVbTGjvQZuRvaomXu06lTVW3wwbvDH5SpcqtNqIIAfCKv5SLFH95AP1nnxtvLUrVCQNkWgTAMs6tCdG54Kgcvj6TRHBZdL-o_kfGdozpeXvaRo01ux0IfcFuAU5_hFdZF2oVZTiHN0eS=w1288-h963-no" width="320" /><br />
<br />
<h3>
買い替え動機</h3>
個人持ちのPCは10年近くThinkPadを使っていた。LinuxとWindowsのデュアルブートでPCゲームをするときだけWindowsを使う運用だった。当初はそのままThinkPadシリーズにしようかと思っていた。でもGPUが載ったモデルはお値段が跳ね上がるのと、7列キーボード+トラックポイントに拘りがあったけど、今はラインナップから消えてるから、トラックポイントに未練が残りつつも諦めた。MacBookも考えたけど仕事で使ってるし、Macに拘りは無いので辞めた。最近の開発ツールが軒並みOS Xに移行してるのが引っかかるけど割り切った。<br />
<br />
個人的に日常的に持ち歩くことはないので重量は2.0〜2.5kgなら許容範囲、大きさは一般的なビジネスバッグに入れば良いので14〜15inchで探した。大抵のゲーミングPCのブランドはそもそもノートPCが無かったり、あってもフルサイズで大きいけど、G-Tuneだけ14inchの2kgそこそこのモデルがあった。<a href="http://thehikaku.net/pc/mouse/16nextgear-note-i4600.html">the比較のレビュー</a>を見るとメモリスロット、M.2 SSD、2.5inch HDDのスロットがあるので将来的にちょっと増やしたいと思えば増やせそう(もちろん中身を開けることになるので自己責任だが)。というわけでこれに決めた。<br />
<br />
もちろん不安な点は何個かある。なんだかんだで丈夫で品質の良いといわれるThinkPadシリーズを使っていたので、そのつもりで使ったら耐えられない「かも」しれない。あとThinkPadは保守マニュアルや液晶パネル、キーボードなどの諸々の部品が手に入ったが、部品単品で手に入れるのはできなさそう。<br />
<br />
購入時に店員さんにLinuxを使っている話をしたら、OSの入れ替えはサポート対象外であることだけじゃなく、ハードウェアの保証も全てなくなるとの説明を受けた。まぁしょうがない、、、か。<br />
<h3>
購入して実際触ってみた感想</h3>
スペック的には申し分ない。AndroidStudioのビルドも早いし、今時のPCゲームもサクサク動く。発熱もゴツいヒートシンクと2つのファンを使っているというだけあって、ちゃんと排熱されている。キーボードの一部キーが横に長いので打ちにくいかもという懸念があったが僕は問題なかった。樹脂製の筐体だが強度が心配という感じはない。USB、USB type-c、HDMI、MiniDisplayPortとか、必要なポートは一通りあるので問題なさそう。<br />
個人的に良くないと思っているところもある。液晶の発色が全体的に淡くガンマ値を調整しないとWebサイトの文字が読みづらかった。<br />
タッチパッドが若干左にオフセットしていて、親指でスペースを押した拍子にタップと誤認されることがある。ただ、これはキーボードのタイプ中のタップを回避するユーティリティで解決した。<br />
本体は2kgそこそこだがACアダプタが<a href="http://thehikaku.net/pc/mouse/16nextgear-note-i4600.html">771g</a>と結構重い(150Wとかちょっとした電源ユニットだから当然っちゃ当然)。<br />
<h3>
おわりに</h3>
<div>
ゲーミングPCって開発者にとって地味にバランスが良いんじゃないかなと思った。</div>
<div>
<br /></div>
@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-22755515097235120142014-08-24T07:09:00.000+09:002014-08-24T07:09:48.745+09:00BL600のVirtual Serial Portを動かすBL600でSPPのようなシリアル通信ができないかとさがしていたところ、公式サイトでVirtual Serial Port (vSP) Bridge and Command Modes Demonstrationというデモがあったので、同じ物を作ってみました。<br />
<br />
<ul>
<li><a href="http://www.lairdtech.com/Support-Center/Technical-Library/Videos/VSP-Bridge-Command/#.U_kJw3VJXUY">Virtual Serial Port (vSP) Bridge and Command Modes Demonstration</a></li>
</ul>
<div>
BL600のソフトウェア部分はファームウェアとSmartBasicの2段構えになっていて、古いバージョンのファームウェア(1.3.57未満)でvSPを使う場合は専用のSmartBasicのコード(upass.vsp.sb)を使う必要がありました。新しいファームウェア(1.3.57以降)ではファームウェア側にその機能が取り込まれており、ジャンパ線を繋ぐだけで利用可能になります。</div>
<div>
<br /></div>
<div>
公式のデモ動画にSIO_7とVCCを繋ぐと、特に何もせずvSPとして動作してくれました。デモ動画では開発キットで通信していましたが、今回は手持ちのBL600にUSBシリアルを接続し、配線を同じにしたものを使用しました。Nexus4にはLaird BL600 Serial(<a href="https://play.google.com/store/apps/details?id=com.lairdtech.bl600serial">Google Playからダウンロード</a>)をインストールしました。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-xWqyRAVMAq4/U_kJC-pZZSI/AAAAAAAAI3M/50mBjb-1Qxc/s1600/%5BUNSET%5D" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-xWqyRAVMAq4/U_kJC-pZZSI/AAAAAAAAI3M/50mBjb-1Qxc/s1600/%5BUNSET%5D" height="240" width="320" /></a></div>
PC側はUwTerminal(BL600の開発用ツール)を起動し、USBシリアル側を開いています。 Nexus4側はアプリでConnectを押してBL600と接続しています。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-tMFGEJvVgaE/U_kJGjcl5MI/AAAAAAAAI3k/M9QyckvQ0uk/s1600/%5BUNSET%5D" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-tMFGEJvVgaE/U_kJGjcl5MI/AAAAAAAAI3k/M9QyckvQ0uk/s1600/%5BUNSET%5D" height="240" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-6QmLXIH5rxI/U_kJH-xMWnI/AAAAAAAAI3s/KuG99NAdQs4/s1600/%5BUNSET%5D" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-6QmLXIH5rxI/U_kJH-xMWnI/AAAAAAAAI3s/KuG99NAdQs4/s1600/%5BUNSET%5D" height="240" width="320" /></a></div>
<div>
PCとNexus4の間で、BL600を経由したvSPでメッセージのやりとりができました。PC側は今回はUwTerminalを使用しましたが、Linuxで一般的なcuコマンドなどでも通信できます。</div>
<div>
<br /></div>
<div>
気になった点として通信速度があると思います。正直なところ遅いです。メッセージがやり取りができる程度だと考えたほうが良いでしょう。</div>
<div>
ボーレートが標準で9600となっていますが、これはAT+CFGコマンドで変更が可能です。ただ大きい数字にするとデータ化けが発生していました。</div>
<div>
<br /></div>
<div>
Android側のサンプルアプリであるLaird BL600 SerialはiOS版もありますので、iOSから同様の通信もできると思います。</div>
<div>
<br /></div>
<div>
BLEで通信する場合、GATT上で大抵のことは事足りるのでユースケースとしては疑問が残るところもありますが、シーケンシャルな通信が必要な処理や、既存の低速な有線シリアル通信を置き換えることには使えるかもしれません。</div>
<div>
<br /></div>
@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-20782337807263591112014-03-16T01:42:00.001+09:002014-03-16T01:54:22.132+09:00BLE600でビーコンを手ハンダで作る<div class="separator" style="clear: both; text-align: left;">
BL600というBLEモジュールを入手したので、BLEで何か作れないか試行錯誤している今日このごろです。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
BLE600は技術基準適合証明が通っているので日本国内でも安心して使用できるBLEモジュールです。BLE600自体は非常に小さいモジュールで、裏の端子も0.8mmピッチと小さくなっています。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-lbKPPdnh6Ko/UyR3F05_FlI/AAAAAAAAIXY/jOalShGpw9I/s1600/%255BUNSET%255D" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-lbKPPdnh6Ko/UyR3F05_FlI/AAAAAAAAIXY/jOalShGpw9I/s1600/%255BUNSET%255D" height="240" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
この小さいモジュールを無理やりブレークアウトしてビーコンを作ります。まず、適当なユニバーサル基板を準備します。小さい部品なのでフラックスは必須です。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-fPCY5riDN6E/UyR20n5beFI/AAAAAAAAIWg/N6CYbCeJBNY/s1600/%255BUNSET%255D" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-fPCY5riDN6E/UyR20n5beFI/AAAAAAAAIWg/N6CYbCeJBNY/s1600/%255BUNSET%255D" height="240" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
ユニバーサル基板を適当に斬って、モジュールを押し込む穴を作ります。モジュールには端子にハンダを塗布します。ハンダの塗布にはこの動画(<a href="http://www.youtube.com/watch?v=c_Qt5CtUlqY">How to Solder QFN MLF chips...</a>)の3:40辺りの方法を使いました。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-xvNtinyW34s/UyR276q484I/AAAAAAAAIW4/U-RCSCxD1XU/s1600/%255BUNSET%255D" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-xvNtinyW34s/UyR276q484I/AAAAAAAAIW4/U-RCSCxD1XU/s1600/%255BUNSET%255D" height="240" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
動作確認に最低限必要な端子を半田付けします。細めのスズメッキ線をピンセットで押さえながらハンダゴテを軽く当てると溶接されます。この時にハンダゴテを当て過ぎると端子がモゲるので当てる時間は必要最低限にします。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-UT7nAJhwz4A/UySFdGxbi0I/AAAAAAAAIYc/CYRpU6VuHmQ/s1600/%255BUNSET%255D" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-UT7nAJhwz4A/UySFdGxbi0I/AAAAAAAAIYc/CYRpU6VuHmQ/s1600/%255BUNSET%255D" height="240" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
ハンダゴテで炙りすぎてモゲた例。一つ駄目にしました、、、orz</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-JUm_RzurWh8/UyR2vQFrnMI/AAAAAAAAIWI/sX_CedL9sEw/s1600/%255BUNSET%255D" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-JUm_RzurWh8/UyR2vQFrnMI/AAAAAAAAIWI/sX_CedL9sEw/s1600/%255BUNSET%255D" height="240" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
USBシリアルを繋いで動作確認をします。BL600の場合は専用ツールのUWTerminalで通信できるかを確認します。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-MkXucJSCl7E/UyR2wwWONfI/AAAAAAAAIWQ/H4mkhBQcGSc/s1600/%255BUNSET%255D" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-MkXucJSCl7E/UyR2wwWONfI/AAAAAAAAIWQ/H4mkhBQcGSc/s1600/%255BUNSET%255D" height="240" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
問題がなければ電池ホルダーや電源スイッチ、nAutoRun用のDIPスイッチを取り付けます。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-sqYEjZ5GdS8/UyR2ybLtA9I/AAAAAAAAIWY/FJsRI4mbSJ4/s1600/%255BUNSET%255D" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-sqYEjZ5GdS8/UyR2ybLtA9I/AAAAAAAAIWY/FJsRI4mbSJ4/s1600/%255BUNSET%255D" height="240" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
裏の配線は触るとポロッと行くことがあるのでグルーガンで固めます。グルーガンはダイソーのものを使用しました。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-Y6L7aHLmbkk/UyR_nv6H8lI/AAAAAAAAIYE/fcJVKi26R_k/s1600/%25E5%2590%258D%25E7%25A7%25B0%25E6%259C%25AA%25E8%25A8%25AD%25E5%25AE%259A.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-Y6L7aHLmbkk/UyR_nv6H8lI/AAAAAAAAIYE/fcJVKi26R_k/s1600/%25E5%2590%258D%25E7%25A7%25B0%25E6%259C%25AA%25E8%25A8%25AD%25E5%25AE%259A.png" height="307" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
このままでは何なので3Dプリンターで箱を作ります。不恰好だけど今回はただの箱にしました。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-w-817y2rFoA/UyR25y3GR4I/AAAAAAAAIWw/Sldnd3jaolk/s1600/%255BUNSET%255D" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-w-817y2rFoA/UyR25y3GR4I/AAAAAAAAIWw/Sldnd3jaolk/s1600/%255BUNSET%255D" height="240" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
印刷が終わったら中に押し込みます。寸法を測って専用に作った箱なのでピッタリ収まります。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-2yyM412Z2TQ/UyR292rI32I/AAAAAAAAIXA/-dXOYgQ8Y8Y/s1600/%255BUNSET%255D" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-2yyM412Z2TQ/UyR292rI32I/AAAAAAAAIXA/-dXOYgQ8Y8Y/s1600/%255BUNSET%255D" height="240" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
蓋を閉じて完成です。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
ぶっちゃけていうと汎用のタグを使ったほうが早いし安いので意味的なものはあんまり無いですが、今回ここまで作れたので、次からはセンサー的なものを載せたものを作りたいと思います。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
ちなみに今回は自力でブレークアウトしましたが、半田付けに自身が無い人は頑張らなくても、@ksksue 氏が<a href="http://www.physicaloid.com/wiki/doku.php?id=hardware:bl600breakout">BL600 Breakout Board</a>を頒布されているので、そちらを使えば余計な苦労をしなくても済みます。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-brSg_R16eO4/UyR3Afogw0I/AAAAAAAAIXI/hj_S6x5kZwU/s1600/%255BUNSET%255D" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-brSg_R16eO4/UyR3Afogw0I/AAAAAAAAIXI/hj_S6x5kZwU/s1600/%255BUNSET%255D" height="240" width="320" /></a></div>
並べると一目瞭然ですが、明らかに手ハンダの方が大変です、、<br />
<div>
<br /></div>
<div>
<br /></div>
@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-78268621054816850692014-01-14T00:02:00.001+09:002014-01-14T00:02:35.928+09:00PocketDuinoで温度湿度計を作ってみたAndroidの標準の温度センサーは実質的に端末の温度がとれてしまうので、センサーを外にだして温度と湿度を取れるようにできたらと思っていたところ、PocketDuinoを頂いたので温度湿度計を作ってみた。<br />
<br />
<br />
PocketDuinoは@ksksue氏が制作したAndroidのUSBポートに直接差し込むことのできるArduino Pro Mini互換のボードです。(<a href="http://www.physicaloid.com/product/pocketduino/">PocketDuino公式サイト</a>)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUcdN2Yo2RXBbAPtqQX3HJLlCkGD2Z4-hLv0gIZlYIVcY4Z-vo1xvAFjQ-P-2Wkg3YN5Ul39P_2OhRavQC6CnurnoWaUxjdRoFxsAzuFuVlXMnNqwqTyR4TjrAEV__OLnysA5nwLO-umo/s1600/PC010062.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUcdN2Yo2RXBbAPtqQX3HJLlCkGD2Z4-hLv0gIZlYIVcY4Z-vo1xvAFjQ-P-2Wkg3YN5Ul39P_2OhRavQC6CnurnoWaUxjdRoFxsAzuFuVlXMnNqwqTyR4TjrAEV__OLnysA5nwLO-umo/s320/PC010062.JPG" width="320" /></a> </div>
パッケージにスマートフォンにサクッと刺せそうなイラストが描かれています。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXK7XzGslJQn7Y33dy1TRngkGssJMjdOg99CutbB6zP0DSye8JjfQOwKvt91mVJPil7SMs-L323IicTHYsynMjbEO_aaiLMzde19bXR9QFbOOdorpnLqTlusPB-dIzo1NICFZXGWh0cBM/s1600/PC010066.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXK7XzGslJQn7Y33dy1TRngkGssJMjdOg99CutbB6zP0DSye8JjfQOwKvt91mVJPil7SMs-L323IicTHYsynMjbEO_aaiLMzde19bXR9QFbOOdorpnLqTlusPB-dIzo1NICFZXGWh0cBM/s320/PC010066.JPG" width="320" /></a></div>
外観はArduino Pro miniの上にUSBコネクタがそのままついたような形になっています。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfOT9PZujzx8W9GNiNnUJA_LFlE1lg-bv2GsujKQIft134FpyN6lygB8QsvdFm-o72Yp8B7up-WrDMbvJPfgeubCW6FzDx0ptO193oUaMtK4bEncPpjvMODqvbLYlQJLSCiNLAQa5rV6g/s1600/PC010067.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfOT9PZujzx8W9GNiNnUJA_LFlE1lg-bv2GsujKQIft134FpyN6lygB8QsvdFm-o72Yp8B7up-WrDMbvJPfgeubCW6FzDx0ptO193oUaMtK4bEncPpjvMODqvbLYlQJLSCiNLAQa5rV6g/s320/PC010067.JPG" width="320" /></a></div>
裏面は何も無く、配線用のホールだけとスッキリしています。<br />
<br />
<br />
そのままでは遊びにくいのでDIPピンをつけました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMBVw4U2iYqz4aDt_1zluJyzyVaf3fO_N_-uSpNUuuP7YD6Sk2dORPntx98Vc5cP8B8pe2hDd8LsZ7XorQSL921fBYE7L54nyR_MCaMXWfL-P7TLYYPrK4U6BogSXQTUyi8SoHmzknJfA/s1600/P1130071.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMBVw4U2iYqz4aDt_1zluJyzyVaf3fO_N_-uSpNUuuP7YD6Sk2dORPntx98Vc5cP8B8pe2hDd8LsZ7XorQSL921fBYE7L54nyR_MCaMXWfL-P7TLYYPrK4U6BogSXQTUyi8SoHmzknJfA/s320/P1130071.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd08FsTTrRQvbkwdFkYd7LgzJKDoQ8Gy9Zdjsll_i9jLJdg4h95UWJoxvwxHJyIEE9red2D7vjGW_ijBaq_9tkwuc_PpP9fVkoHqk3-Earo0kpQj6_wpLWJV5_rqECmN2G6BXCgS_8-Jg/s1600/P1130073.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd08FsTTrRQvbkwdFkYd7LgzJKDoQ8Gy9Zdjsll_i9jLJdg4h95UWJoxvwxHJyIEE9red2D7vjGW_ijBaq_9tkwuc_PpP9fVkoHqk3-Earo0kpQj6_wpLWJV5_rqECmN2G6BXCgS_8-Jg/s320/P1130073.JPG" width="320" /></a></div>
これでいろんな物を繋げることができます。<br />
<br />
<br />
取り付けたDIPにGrove系の温度湿度計を繋げたいので接続用の中継基板を作ります。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeMVZVqJvIsZV1Yfo_Wq3QmkScIVJERURh4mhxuoSGeKoRbtx4PApGGoovu3Iq2garaBz4dERTqus4f4Edy1lL1Ur18jU_bYX9NgOcvwUwowHOcPqkljMp9uOJV3jR09JtQwyg_7Hboxs/s1600/P1130074.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeMVZVqJvIsZV1Yfo_Wq3QmkScIVJERURh4mhxuoSGeKoRbtx4PApGGoovu3Iq2garaBz4dERTqus4f4Edy1lL1Ur18jU_bYX9NgOcvwUwowHOcPqkljMp9uOJV3jR09JtQwyg_7Hboxs/s320/P1130074.JPG" width="320" /></a></div>
紙エポキシのユニバーサル基板から作ります。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRpOz7vCtk4q7wXr6D3JfMyiemjM5jsX3jNXGgcKRB03Fj6nwQiov-0OAvoL15AFoRmo_m5_O85kiyNhRvgxEx2GbVTsjR4MYIcMJEoeN4Rf0i1lt9xj4Gwsz1d5wTXiYr8WdZfiU1ofo/s1600/P1130075.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRpOz7vCtk4q7wXr6D3JfMyiemjM5jsX3jNXGgcKRB03Fj6nwQiov-0OAvoL15AFoRmo_m5_O85kiyNhRvgxEx2GbVTsjR4MYIcMJEoeN4Rf0i1lt9xj4Gwsz1d5wTXiYr8WdZfiU1ofo/s320/P1130075.JPG" width="320" /></a></div>
紙エポキシは柔らかいので金鋏で簡単に切れます。大きさを合わせて切断します。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7l8xm3DhFjPMWMyxSVAxz2hu4ZHa-tJvVuXAdrVQQwe3HIuOmnZlVnZ_A1Ld7Eou7zVb8CRHIpe3uZWbRoopBhnLSF4rDE4NXbjGFYQxp6mf29YlNfUvfhQIcqp1xyhh3qio9CutajiA/s1600/P1120076.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7l8xm3DhFjPMWMyxSVAxz2hu4ZHa-tJvVuXAdrVQQwe3HIuOmnZlVnZ_A1Ld7Eou7zVb8CRHIpe3uZWbRoopBhnLSF4rDE4NXbjGFYQxp6mf29YlNfUvfhQIcqp1xyhh3qio9CutajiA/s320/P1120076.JPG" width="320" /></a></div>
メスのDIPピンのコネクタと、Grove用のコネクタを繋ぐためのDIPピンを取り付けます。今回使用した温度湿度センサーはSeed Studioの<a href="http://www.seeedstudio.com/wiki/Grove_-_Temperature_and_Humidity_Sensor_Pro">Temperature and Humidity Sensor Pro</a>です。VCCとGNDはそのままArduinoのVCCとGNDに結線し、今回は信号線をD3ピンに接続しています。(実はA0やD2といった別のピンに繋ぐとデータ化けが発生しました。)<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKA7xenAN497DAexBtD5_Y-4JDssvGFL8NnpjJW7lKux12x2FqMv0gGqjY79wDu-GQxEJLptdI9upEi8u30Qx7jCb6WkXgeHVAQnAx_f1pLpou93ZauOnLwQIiXWy2aVGvBNmWU7nGcy0/s1600/P1120078.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKA7xenAN497DAexBtD5_Y-4JDssvGFL8NnpjJW7lKux12x2FqMv0gGqjY79wDu-GQxEJLptdI9upEi8u30Qx7jCb6WkXgeHVAQnAx_f1pLpou93ZauOnLwQIiXWy2aVGvBNmWU7nGcy0/s320/P1120078.JPG" width="320" /></a></div>
Grove用のコネクタの片方を雌のDIPピンにしていたので、それを接続します。写真ではわかりにくいですが、引っ張っても抜けないように画像の赤と白のコードの辺りにワイヤーロックをしています。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilSY9QBaOS74vqD6vLUbcCyzZYP8J3Koicp75bEqJ6cRdqeD2KPygrp1FKVH0Uz2lzg5JhBaDVn5sq7EJxApBzGS0AES90nteIKBEdmvh9OQGGbQXZmb9_5FMPxqrQaCsOjIPywFDqC4o/s1600/P1120079.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilSY9QBaOS74vqD6vLUbcCyzZYP8J3Koicp75bEqJ6cRdqeD2KPygrp1FKVH0Uz2lzg5JhBaDVn5sq7EJxApBzGS0AES90nteIKBEdmvh9OQGGbQXZmb9_5FMPxqrQaCsOjIPywFDqC4o/s320/P1120079.JPG" width="320" /></a></div>
Grove用のコネクタのもう片方を温度湿度計に接続します。<br />
<br />
PocketDuinoに<a href="https://github.com/cattaka/adkworks/tree/master/HumiTempForPocketDuino/misc/arduino/HumiTemp">スケッチ</a>を焼き、Android側も<a href="https://github.com/cattaka/adkworks/tree/master/HumiTempForPocketDuino">専用アプリ</a>をインストールした後、PocketDuinoを接続します。(<a href="https://github.com/cattaka/adkworks/tree/master/HumiTempForPocketDuino">スケッチとAndroidのソースはこちら</a>)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS9IcIjQaDrV1ownv7OZkQeM1olnlDqALIv14LSd3dWxhNG_FzHAZW9aZB2FbEC5wFlDxfdiHZ-hcdoBOHcaXa7VZMGF92RKVzLcy0JxAv-t9KREZj-ZsTYSOHWYA6LwmDK9ymM2hgKDQ/s1600/P1120081.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS9IcIjQaDrV1ownv7OZkQeM1olnlDqALIv14LSd3dWxhNG_FzHAZW9aZB2FbEC5wFlDxfdiHZ-hcdoBOHcaXa7VZMGF92RKVzLcy0JxAv-t9KREZj-ZsTYSOHWYA6LwmDK9ymM2hgKDQ/s320/P1120081.JPG" width="320" /></a></div>
PocketDuinoの電源が入って青いLEDが点いているのがわかります。アプリ側も温度と湿度が取得できて画面に表示できています。<br />
<br />
<br />
流石に基板剥き出しでは何なので、外装を作ります。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKmNv8uKXAYt7cPBdDpCXNgDnQkQX8Wvl92Wyoe1yeuJBIa3a8dswjSCMn-mzPNHmc2wCr3QHWJBG94U_AhTBgD5QN79g26AB9O4-I_n3onLPUJyuaEECnzgBeXsajNZ3_KeBvuw4QPX4/s1600/freecad_humitemp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKmNv8uKXAYt7cPBdDpCXNgDnQkQX8Wvl92Wyoe1yeuJBIa3a8dswjSCMn-mzPNHmc2wCr3QHWJBG94U_AhTBgD5QN79g26AB9O4-I_n3onLPUJyuaEECnzgBeXsajNZ3_KeBvuw4QPX4/s320/freecad_humitemp.png" width="320" /></a></div>
基板の寸法を測って収まる箱を作ります。デザインは適当で少々無骨ですが今回は気にしません。(<a href="https://github.com/cattaka/adkworks/tree/master/HumiTempForPocketDuino/misc/freecad">FreeCADの3Dモデルデータはこちら</a>)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga3Y6OgG7IoVLPdmZb3BtzYrpjjKWZ9kksbBabdF54QZ5lUDajUbgG0FkSxYjlbW5g3uZOmLyx3S5xjGYjfsHQT3koL1IK5D9_cxjSYLrtJkwyRrE9Ew0G6YSgVD0paiTBmUzKkXfAFng/s1600/P1130082.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga3Y6OgG7IoVLPdmZb3BtzYrpjjKWZ9kksbBabdF54QZ5lUDajUbgG0FkSxYjlbW5g3uZOmLyx3S5xjGYjfsHQT3koL1IK5D9_cxjSYLrtJkwyRrE9Ew0G6YSgVD0paiTBmUzKkXfAFng/s320/P1130082.JPG" width="320" /></a></div>
3Dプリンターで印刷します。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQb5HIY-gTSCqo_RAK3WXag8j1leH8XmxZCXkuLDPjPC95oWYHQK9wYXgJepQ12sL-cY0ES913G7JWao8_l8kpC_fU778jrybpvIivPGawAT_pmEAGCOOGhQYPMdzXVydw7xn-4xd0ppU/s1600/P1130083.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQb5HIY-gTSCqo_RAK3WXag8j1leH8XmxZCXkuLDPjPC95oWYHQK9wYXgJepQ12sL-cY0ES913G7JWao8_l8kpC_fU778jrybpvIivPGawAT_pmEAGCOOGhQYPMdzXVydw7xn-4xd0ppU/s320/P1130083.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
印刷し終わったら部品が収まるか確認します。問題がなければ部品を納めて蓋をします。今回は背面の4箇所をネジ止めできるようにしているのでタッピンビスでサクッと閉めます。</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTRcCPnmQMi594Mt1MP-NhY4Oq0nqe3x2w01yE1qr7qO1vTnn6KANpXAJMJNmzGskKixI1y7-VXjSq3hdM-QX7rHp-ih4bKcxfXUM2-tbIVzFr72l4rDzUDoytht5WLk_scZcxNgRv438/s1600/P1130085.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTRcCPnmQMi594Mt1MP-NhY4Oq0nqe3x2w01yE1qr7qO1vTnn6KANpXAJMJNmzGskKixI1y7-VXjSq3hdM-QX7rHp-ih4bKcxfXUM2-tbIVzFr72l4rDzUDoytht5WLk_scZcxNgRv438/s320/P1130085.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidPTOvleuyv_Y7-8S_6dxwf1kq52at5YxTG7mkoUpcGR7hcBvhqH_KUrrO3VLVElwOgBYlgYYnRwRD-LKNEVvyuSX8HYZcGxEFoI7SsOGhv2UzbHLLwKgs_-8HPk5OZEM4U_bv3nHEMs8/s1600/P1130086.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidPTOvleuyv_Y7-8S_6dxwf1kq52at5YxTG7mkoUpcGR7hcBvhqH_KUrrO3VLVElwOgBYlgYYnRwRD-LKNEVvyuSX8HYZcGxEFoI7SsOGhv2UzbHLLwKgs_-8HPk5OZEM4U_bv3nHEMs8/s320/P1130086.JPG" width="320" /></a></div>
箱からはMicroUSBの端子が出ているのと、センサー部が外気に触れるように窓があります。<br />
<br />
<br />
以上でPocketDuinoを使って温度湿度センサができました。USBの端子をUSB Host APIに対応している最近の端末に挿せば温度と湿度が測定できます。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnBy3_8iHADUTsL_ypCo5EXGCcLxVNbmDEhLC5RRrkHdr5KliE4eIrf0Ehubrx1OgTByU3BJDXXR7J8XMpoMJWti_QjaexiqphO04ZdPe7yIAPNTMK7B2aDgWBzU3lA3mFJQcPOGJSOG8/s1600/P1130084.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnBy3_8iHADUTsL_ypCo5EXGCcLxVNbmDEhLC5RRrkHdr5KliE4eIrf0Ehubrx1OgTByU3BJDXXR7J8XMpoMJWti_QjaexiqphO04ZdPe7yIAPNTMK7B2aDgWBzU3lA3mFJQcPOGJSOG8/s320/P1130084.JPG" width="320" /></a></div>
実際に作ってみて意外に大きいと感じました。挿しっぱなしにすることは出来無さそうですが、たまに指して測定という用途には使えるかも知れません。ただ、外装をジャケット型にすれば挿しっぱなしも可能だと思います。<br />
<br />
今回はAndroid側のソフトやスケッチについては特に触れませんでしたが、なんだかんだで、プログラムの実装も大変でした。それでも個人ででもこういったデバイスが作れる時代になったのでモノ作らーとしては嬉しい限りです。<br />
<br />@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-55867197989826599472013-12-21T13:24:00.002+09:002013-12-21T13:24:30.426+09:00フォクすけ人形の制作風景<div class="separator" style="clear: both; text-align: left;">
データから印刷するまでの流れです。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpflO5_72WCot7pFPHIsQirptuMu9p7MRN5pj6CXg4avmrf6pM6SIiV2MIAdx0-uyvhf0vhIBwMmyg207D1DYEOBPraLi0yM67ss3wlr6yXTXj0nJG7iGi5gAK73b6uxwg5YiFkfq-45A/s1600/001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="168" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpflO5_72WCot7pFPHIsQirptuMu9p7MRN5pj6CXg4avmrf6pM6SIiV2MIAdx0-uyvhf0vhIBwMmyg207D1DYEOBPraLi0yM67ss3wlr6yXTXj0nJG7iGi5gAK73b6uxwg5YiFkfq-45A/s320/001.png" width="320" /></a></div>
写真をBlenderという3DCGソフトの背景に設定します。正面や上からなども併せて貼ります。<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ1oxmjO3wq7uyVXZCZspliE_kd7Z3-DWbUQgypgrQl4LeZJdtg6axJtPuK2e2V9HCDaZFaMw2A0cW1SJfW1Wzpub1OQA9hL-LGNt-8TUb-aAFoQRIpb-twwbnzgq5rMAEEt4Q4KwhYmc/s1600/003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ1oxmjO3wq7uyVXZCZspliE_kd7Z3-DWbUQgypgrQl4LeZJdtg6axJtPuK2e2V9HCDaZFaMw2A0cW1SJfW1Wzpub1OQA9hL-LGNt-8TUb-aAFoQRIpb-twwbnzgq5rMAEEt4Q4KwhYmc/s320/003.png" width="320" /></a></div>
それを見ながらモデルデータを作ります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDLL_ggWOh9Uipg2RklY1sTmihoMaAiIxjjRvXDBX5YPmmf6g5uqHQ-AHle0u4WqX-dozx6Uu9Ky9YsAdRcH9HJ88PlJ3Kv1V5pfk3I0sQ6TWw0NyNlwfq5r3GhQ6iDAFmW6bXL3DCtRM/s1600/004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDLL_ggWOh9Uipg2RklY1sTmihoMaAiIxjjRvXDBX5YPmmf6g5uqHQ-AHle0u4WqX-dozx6Uu9Ky9YsAdRcH9HJ88PlJ3Kv1V5pfk3I0sQ6TWw0NyNlwfq5r3GhQ6iDAFmW6bXL3DCtRM/s320/004.png" width="320" /></a></div>
印刷用に整えます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSPTzUPceXO9XThtIR2F8TeWtM8SDhh67VJAoPOB-BR24R8z_62hzYmsStPtMm7HQj2AIrxePdq5HOlcc6a30XfbkQM8l2pWZw7tUsd8_Xns6tYvS_rQlsG-bMqyLgDiFIzJEq3xB8bPA/s1600/005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSPTzUPceXO9XThtIR2F8TeWtM8SDhh67VJAoPOB-BR24R8z_62hzYmsStPtMm7HQj2AIrxePdq5HOlcc6a30XfbkQM8l2pWZw7tUsd8_Xns6tYvS_rQlsG-bMqyLgDiFIzJEq3xB8bPA/s320/005.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
印刷データへの変換ツールに喰わせます。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/J63e6WRlgfY?feature=player_embedded' frameborder='0'></iframe></div>
印刷します。途中省略してるけど、2時間くらいかけて印刷して組み上がるまでの動画です。<br />
<br />
<br />@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-34043568625425984442013-11-04T20:02:00.001+09:002013-11-04T20:02:45.519+09:00Maker Faire Tokyo 2013に出展してました夏のYamaguchi Mini Maker Faireに続き、11月3日〜4日のMaker Faire Tokyo 2013に出展しました。今回は一人での出展でしたので自分が作ったものを全面に並べました。(知人と一緒にやろうと思ったのですが、それぞれが自分のブースを持ってたのでそれぞれ自分の戦いをしてました)。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-R-BAhGPMeRk/Undr_Pi3PjI/AAAAAAAAH6U/2hbDcSDSqUA/s1600/IMG_20131103_120145.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-R-BAhGPMeRk/Undr_Pi3PjI/AAAAAAAAH6U/2hbDcSDSqUA/s320/IMG_20131103_120145.jpg" width="320" /></a></div>
今回は前回出展していた画像認識で自動走行するロボットと猫型ロボットに加え、新作のフォクすけロボットとフォクすけ人形を展示しました。<br />
<br />
<br />
フォクすけロボの作成工程については以前の記事(<a href="http://wscat.blogspot.jp/2013/10/blog-post.html">1</a>、<a href="http://wscat.blogspot.jp/2013/11/2.html">2</a>)の通りで3Dプリンタでフルスクラッチで作成しました。顔認識で人を見つけると手を振るようにしていたので見に来てくれた方々に可愛がって貰えました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-z08hkLpjUp8/UndrySSU6II/AAAAAAAAH50/ItccjA7mRWs/s1600/IMG_20131104_112303.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-z08hkLpjUp8/UndrySSU6II/AAAAAAAAH50/ItccjA7mRWs/s320/IMG_20131104_112303.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-RT0XugC7ZCI/UndtiXV3SMI/AAAAAAAAH-A/Ke5BtazcfWE/s1600/VID_20131104_150726.mp4" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="179" src="http://1.bp.blogspot.com/-RT0XugC7ZCI/UndtiXV3SMI/AAAAAAAAH-A/Ke5BtazcfWE/s320/VID_20131104_150726.mp4" width="320" /></a></div>
このロボットは両手両足、首、尻尾、両耳が動きます。特に両耳は重用なのでかなり頑張りました。また展示では伝えきれなかったのですが、外部から繋がってるケーブルは電源とHDMIケーブルのみなので、内臓バッテリーに繋げばスタンドアロンでの動作も可能です。<br />
反省点としては見栄えを良くしすぎたためか既製品と間違われたり、巧妙に作りすぎたためか目に仕込んだWebカメラに気づいて貰えないことがありました。次の展示の際はもう少しお客さんにわかるようにしたいです。<br />
他には以前から問題になっていた顔認識などの画像認識が会場の照明に影響を受けていたことが今回は顕著にでてしまい、経験上もっとも悪かった感じがしました。フォクすけロボに仕込んだWebカメラは汎用のものの皮を剥いで基板のみ埋め込んだのですが、目の部分のカバーやWebカメラ自体に安いものを使ったのが原因のようなので今後調整します。<br />
<br />
<br />
フォクすけロボの展示に合わせてフォクすけ人形も展示しました。3Dプリンターで印刷、パテ埋め、サーフェイサーで表面を整えるなど、製作途中のものが残っていたので製作工程として並べました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-LmgQKUICXdE/UndsYpPGpBI/AAAAAAAAH7U/kuxb8E_zec0/s1600/IMG_20131104_112258.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://1.bp.blogspot.com/-LmgQKUICXdE/UndsYpPGpBI/AAAAAAAAH7U/kuxb8E_zec0/s320/IMG_20131104_112258.jpg" width="320" /></a></div>
見に来てくれた方や他のMakerやプレスの方に「手順を踏んで一から作ってるのは珍しい」といってくれた方が何名かいらっしゃったのでこちらもまずまずかなと感じました。<br />
<br />
<br />
実際に作って、出展して、お客さんや他のMakerさんと話をしているといろいろと勉強になります。実のところそれらの話から触発されて2つほど次に作りたいネタが浮かんできたので次はそれを作って行きたいと思います。<br />
<br />
最後にMaker Faire Tokyo 2013の出展者、参加者、そして運営のスタッフの方々お疲れ様でした。今後もモノ創らーとして活動して面白いものを創っていきたいと思うのでこれからも宜しくおねがいします。<br />
<br />@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-34461134015205950592013-11-01T00:32:00.001+09:002013-11-01T00:32:56.260+09:00フォクすけロボ開発進捗報告2以前より作成していたフォクすけロボが遂に完成しました。制御系機器やバッテリーが内部に収められるので、外からケーブルを繋ぐこともなく動作させることができます。ソフトウェアにはOpenCVを使って顔認識をしていて、人を見つけると振り向いて手を振るなど比較的高度なこともやっています。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-Q1f1JExqC0g/UmDNtdWy46I/AAAAAAAAHzc/6wTOlkSa3aI/s1600/13+-+1" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-Q1f1JExqC0g/UmDNtdWy46I/AAAAAAAAHzc/6wTOlkSa3aI/s320/13+-+1" width="320" /></a></div>
外観ですが以前作成したフォクすけ人形と比べると圧倒的に大きいです。多少バランスは変更しているものの、3Dモデルの原型は同じものなのでそのまま大きくなります。これができるのも3Dプリンターだからだと思います。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-wPtAolEkPpg/Ulp_uhILEMI/AAAAAAAAHvA/MUiIh2-oy-I/s1600/IMG_20131013_200723.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://3.bp.blogspot.com/-wPtAolEkPpg/Ulp_uhILEMI/AAAAAAAAHvA/MUiIh2-oy-I/s320/IMG_20131013_200723.jpg" width="320" /></a></div>
最終的に部品点数はそれなりの数になりました。これらに制御系機器とサーボモーターを組み合わせて最終的な形になります。<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-_xk8Mrb0RLQ/UlqjQrKe2XI/AAAAAAAAHww/DrsL5ONbikE/s1600/IMG_20131013_223927.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-_xk8Mrb0RLQ/UlqjQrKe2XI/AAAAAAAAHww/DrsL5ONbikE/s320/IMG_20131013_223927.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
制御系の中枢であるAndroid StickとArduino Nanoは頭部に埋め込むので、両手足や尻尾、電力系の10本のケーブルを胴体側へ通しています。これは筐体の設計のときから考慮していて首の部分に必要な隙間を空けています。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-iP4cwC65WTg/UlqjZe4PbhI/AAAAAAAAHxQ/XqTM4KcT7TU/s1600/IMG_20131013_224000.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://3.bp.blogspot.com/-iP4cwC65WTg/UlqjZe4PbhI/AAAAAAAAHxQ/XqTM4KcT7TU/s320/IMG_20131013_224000.jpg" width="320" /></a></div>
<br />
胸部にはバッテリーと両手足のサーボモーターが、尻尾には予備のバッテリーが収められるようになっているので、中はケーブルでいっぱいです。でも胴体の内部に駆動する部品はないのでとりあえず押し込んでおけば大丈夫です。もし少しでも動くものがあるとケーブルを巻き込んで切れることがあるので、その場合は巻き込まれないように保護するか設計の見直しが必要になります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-m4wZsmzRm60/UnJzUZ_QugI/AAAAAAAAH20/S9GjPaqEIVA/s1600/IMG_20131024_232530.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://1.bp.blogspot.com/-m4wZsmzRm60/UnJzUZ_QugI/AAAAAAAAH20/S9GjPaqEIVA/s320/IMG_20131024_232530.jpg" width="320" /></a></div>
<br />
画像認識や顔認識で動かしたかったので目にはWebカメラが仕込まれています。市販のWebカメラを分解して嵌め込んでいます。流石にそのままでは見た目が悪いので上からカバーをつけます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-FzUNsRuU3Ew/UnJzLzXKhsI/AAAAAAAAH2c/CBYCRMN4Y_I/s1600/IMG_20131030_002102.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="240" src="http://3.bp.blogspot.com/-FzUNsRuU3Ew/UnJzLzXKhsI/AAAAAAAAH2c/CBYCRMN4Y_I/s320/IMG_20131030_002102.jpg" width="320" /></a></div>
<br />
忘れがちなのが梱包材です。イベントの出展にあたって輸送中の破損は付き物です。東急ハンズでスチロールブロックを買ってきて、フォクすけロボが収まるように電熱線で切って梱包材を作りました。スチロールブロックは加工もしやすく入手が容易なので非常に便利です。<br />
<br />
このフォクすけロボはMaker Faire Tokyo 2013に出展予定で、それ以降も関連するイベントがあれば展示に出していきたいと思いますので、イベントの会場で見かけたら是非顔を覗きこんで見てください。巧く行けば顔認識して手を振ってくれると思います。<br />
<br />@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-6972962910988464142013-10-08T00:37:00.002+09:002013-10-08T00:37:32.326+09:00フォクすけロボ開発進捗報告フォクすけ人形を作ってます。そのモデルを使ってロボットを作ろうとしています。このフォクすけロボはMaker Faire Tokyo 2013に出展する予定です。<br />
<br />
<h2>
筐体の作成</h2>
FreeCADとBlenderと使って3Dデータを作成し、それを3Dプリンターで印刷して作ります。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-a8MoNJRDpaI/UlLNv3ZWwgI/AAAAAAAAHnI/oe5Ulc--cPM/s1600/freecat_foxkeh.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="244" src="http://3.bp.blogspot.com/-a8MoNJRDpaI/UlLNv3ZWwgI/AAAAAAAAHnI/oe5Ulc--cPM/s320/freecat_foxkeh.png" width="320" /></a></div>
内部にモバイルブースターやサーボモーター、制御ユニットが収められるように注意して設計します。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-r2uOWHtmc6o/Uj8L2mWoiLI/AAAAAAAAHe8/w-aTl0gugB0/s1600/IMG_20130905_175309.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://3.bp.blogspot.com/-r2uOWHtmc6o/Uj8L2mWoiLI/AAAAAAAAHe8/w-aTl0gugB0/s320/IMG_20130905_175309.jpg" width="320" /></a></div>
印刷するとこんな感じになりました。実際に形にしてみると意外に大きいです。 ちなみに全部合わせると20〜30cmで、普通に印刷するとかなり時間が掛かる(数十時間)ので、印刷精度と引換に高速印刷をしているため外観が荒いです。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-AFKt5kRTuWM/Uj8LykQ6GuI/AAAAAAAAHes/1BjoMvaW-RM/s1600/IMG_20130904_012134.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://4.bp.blogspot.com/-AFKt5kRTuWM/Uj8LykQ6GuI/AAAAAAAAHes/1BjoMvaW-RM/s320/IMG_20130904_012134.jpg" width="320" /></a></div>
首と尻尾は2軸の関節にしたかったので少し手がこんでいます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-0NP_l-bT4ME/Uk8D86WzUrI/AAAAAAAAHmg/_fi71Us0ATg/s1600/IMG_20131005_030610.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-0NP_l-bT4ME/Uk8D86WzUrI/AAAAAAAAHmg/_fi71Us0ATg/s320/IMG_20131005_030610.jpg" width="320" /></a></div>
ABS樹脂は元々塗装と相性が悪いので、サーフェーサーで表面を整えます。<br />
高速印刷のため目が荒いので、一緒にパテ埋めもしています。<br />
<br />
塗装はこれから行います。<br />
<br />
<h2>
制御系回路</h2>
画像認識で動くようにしたいので、少し性能の高いものを使います。<br />
<ul>
<li>Android Stick(MK808)</li>
<ul>
<li>Android4.1</li>
<li>USB Host API</li>
<li>Physicaloid Library</li>
</ul>
<li>Arduino nano</li>
</ul>
今回はAndroid4.1が動くAndroid Stickを使用しました。これなら顔認識や簡単なタグ認識程度ならこなしてくれます。手足のサーボモーターはArduino nanoを用いて動かします。AndroidとArduinoの接続には@ksksue 氏作の Physicaloid Libraryを使う予定です(プロトタイプはFTDriverを使っています)。<br />
<br />
基本的にAndroidとArduinoはサーボモーターの制御しかしないので、電子回路は単純なものをユニバーサル基板で作成します。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-VziMvzZB_NY/UlLQ93QnRLI/AAAAAAAAHns/staWjhU342s/s1600/circuit_foxkeh.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="308" src="http://1.bp.blogspot.com/-VziMvzZB_NY/UlLQ93QnRLI/AAAAAAAAHns/staWjhU342s/s320/circuit_foxkeh.png" width="320" /></a></div>
LibreOffice Drawでわかる程度にざっと書いて作成します。Arduino Nanoを載せる基板とサーボモーター用の中継基板の2つにわかれています。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-bPk9v4OL0fE/UlLRhDBYmPI/AAAAAAAAHoQ/PkUBCGrqLIA/s1600/circuit_foxkeh2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="http://3.bp.blogspot.com/-bPk9v4OL0fE/UlLRhDBYmPI/AAAAAAAAHoQ/PkUBCGrqLIA/s320/circuit_foxkeh2.png" width="320" /></a></div>
Android Stick、Arduino Nano、制御用基板をひと通り繋ぐとこうなります。Android StickとArduino Nanoは頭部に、サーボーモーター用の中継基板は胸部に搭載する予定です。<br />
<br />
<h2>
プログラム</h2>
筐体や制御系ができてもそれらを制御するのはプログラムです。いきなり本番のプログラムを作るのは難しいので試験用プログラムを作成します。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-xLXL4Dg7oG0/UlLSsIi2q5I/AAAAAAAAHo8/Un3D7uX2Q1c/s1600/protopg_foxkeh.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-xLXL4Dg7oG0/UlLSsIi2q5I/AAAAAAAAHo8/Un3D7uX2Q1c/s320/protopg_foxkeh.jpg" width="320" /></a></div>
この試験用プログラムはAndroidアプリです。首、両手足、尻尾、耳の全てを動かすことができます。<br />
<br />
<h2>
今後の予定</h2>
<div>
筐体がまだサーフェイサーを吹いただけで灰色なので、目立つ凹みをパテで修正した後、塗装します(完全に綺麗にするのは期間的に厳しそうだけど、、)。</div>
<div>
OpenCVとそのFaceDetectorを使って顔認識やタグ認識で動くプログラムをAndroidアプリで作成する予定です。また、リモートコントロールの機能をHTML5で実装してみたいと思っています。</div>
<div>
Maker Faire Tokyo 2013まで1ヶ月を切りましたのでどうにかして完成までこぎつけます。参加される方は是非ブースまでお越しください。</div>
<div>
<br /></div>
<div>
<br /></div>
@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-35150212355856952662013-09-23T21:44:00.002+09:002013-09-23T21:44:41.701+09:003Dプリンターでフォクすけフィギュア作り<div class="separator" style="clear: both; text-align: left;">
とあるキャンペーンの懸賞になっていたフォクすけのぬいぐるみが欲しかったけど当選しなかったので3Dプリンターもあることなので作ることにしました。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://3.bp.blogspot.com/-h3DMjhDdDpg/UkAqlwfU2PI/AAAAAAAAHh8/ru9VFd7-jrI/s1600/IMG_20130615_143009.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://3.bp.blogspot.com/-h3DMjhDdDpg/UkAqlwfU2PI/AAAAAAAAHh8/ru9VFd7-jrI/s320/IMG_20130615_143009.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
知人は当選してぬいぐるみを持っていたので写真を何枚か撮らせてもらいました。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://2.bp.blogspot.com/-F05QIOFuNBg/UkApAnFPQ1I/AAAAAAAAHhk/3mHEncR5wOk/s1600/blender_foxkeh.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="215" src="http://2.bp.blogspot.com/-F05QIOFuNBg/UkApAnFPQ1I/AAAAAAAAHhk/3mHEncR5wOk/s320/blender_foxkeh.png" width="320" /></a></div>
<br />
写真を元に3Dモデルを起こします。僕が使い慣れているツールはBlenderなので、それで3Dモデルを起こします。<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://4.bp.blogspot.com/-EMIEIImB2mk/UkApAsqPQ_I/AAAAAAAAHho/_GPnApsXY0M/s1600/foxkeh_kisslicer.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="282" src="http://4.bp.blogspot.com/-EMIEIImB2mk/UkApAsqPQ_I/AAAAAAAAHho/_GPnApsXY0M/s320/foxkeh_kisslicer.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
次に印刷しやすいように分割し、印刷用データの生成ツールに食わせます。僕の使っている3DプリンターはBlade-1と呼ばれるもので、印刷用データはKisslicerというツールで3Dモデル(STL形式)から変換して作成します。<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://2.bp.blogspot.com/-e0Nl5qlOzgk/Uege_UaZ7oI/AAAAAAAAHJA/kXNuiOu8mZs/s1600/IMG_20130719_015832.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-e0Nl5qlOzgk/Uege_UaZ7oI/AAAAAAAAHJA/kXNuiOu8mZs/s320/IMG_20130719_015832.jpg" width="320" /></a></div>
<br />
印刷したものは3Dプリンター特有のギザギザができるので磨きます。<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://1.bp.blogspot.com/-P0pXY6HKXho/UegfDYnGYFI/AAAAAAAAHJI/TaP_Ocg1KkE/s1600/IMG_20130719_015720.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://1.bp.blogspot.com/-P0pXY6HKXho/UegfDYnGYFI/AAAAAAAAHJI/TaP_Ocg1KkE/s320/IMG_20130719_015720.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
磨くだけでは綺麗にならなかったのでパテ埋めしています。</div>
<div style="text-align: left;">
<br /></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: left;">
<a href="http://1.bp.blogspot.com/-wNqOBfLQb4Y/UfT39UVzobI/AAAAAAAAHLw/yn01JwauuGU/s1600/IMG_20130728_195209.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="240" src="http://1.bp.blogspot.com/-wNqOBfLQb4Y/UfT39UVzobI/AAAAAAAAHLw/yn01JwauuGU/s320/IMG_20130728_195209.jpg" width="320" /></a><a href="http://1.bp.blogspot.com/-wNqOBfLQb4Y/UfT39UVzobI/AAAAAAAAHLw/yn01JwauuGU/s1600/IMG_20130728_195209.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
パテ埋めして磨くのが終わったらサーフェーサーで表面を整えます。</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://2.bp.blogspot.com/-2LOMwYnh0dg/UGnClREnHcI/AAAAAAAACdw/tDuRFxSAefU/s1600/DSC_0276.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-2LOMwYnh0dg/UGnClREnHcI/AAAAAAAACdw/tDuRFxSAefU/s320/DSC_0276.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
そのまま塗装しても良いのですがある程度の数が作れるようにシリコンゴムで型取りして型を作ります。</div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="http://4.bp.blogspot.com/-Lp8xsm2dDfI/UegkHUhb0eI/AAAAAAAAHJo/X82f7-96078/s1600/IMG_20130719_022116.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://4.bp.blogspot.com/-Lp8xsm2dDfI/UegkHUhb0eI/AAAAAAAAHJo/X82f7-96078/s320/IMG_20130719_022116.jpg" width="320" /></a></div>
<br />
型ができたら樹脂を流しこんで整形します。僕はホビーキャストという2液式のウレタン樹脂を使用しました。<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://3.bp.blogspot.com/-aO9KgbdryQg/UegfHtKVmOI/AAAAAAAAHJQ/vNQQBUwASfM/s1600/IMG_20130719_015620.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://3.bp.blogspot.com/-aO9KgbdryQg/UegfHtKVmOI/AAAAAAAAHJQ/vNQQBUwASfM/s320/IMG_20130719_015620.jpg" width="320" /></a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
成形後は型の合わせ目が残ったりするのでヤスリで表面を整えます。</div>
<div style="text-align: left;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://3.bp.blogspot.com/-jfAq7puer2k/UegdmzjyIiI/AAAAAAAAHIo/gYL-SbJl7ag/s1600/IMG_20130719_015323.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://3.bp.blogspot.com/-jfAq7puer2k/UegdmzjyIiI/AAAAAAAAHIo/gYL-SbJl7ag/s320/IMG_20130719_015323.jpg" width="320" /></a></div>
<br />
ラッカースプレーとエナメル塗料で着色します。塗料によって塗る順番を間違えると既に塗ったところが溶けて大変なことになるので注意します(以前やらかしました)。<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://1.bp.blogspot.com/-nwMG6qkgR4Y/UdrOeVfunfI/AAAAAAAAHHo/zS8Hl3xNJaE/s1600/P7080005.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://1.bp.blogspot.com/-nwMG6qkgR4Y/UdrOeVfunfI/AAAAAAAAHHo/zS8Hl3xNJaE/s320/P7080005.JPG" width="320" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="http://2.bp.blogspot.com/-JBCsCtzLaHY/Uegmak5BHVI/AAAAAAAAHKA/6DANW0SKIP4/s1600/IMG_20130719_023018.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-JBCsCtzLaHY/Uegmak5BHVI/AAAAAAAAHKA/6DANW0SKIP4/s320/IMG_20130719_023018.jpg" width="320" /></a></div>
<br />
完成です。大きいのを1体と小さいのを4体作りました。ヌイグルミからは若干雰囲気は変わってますが可愛くできたと思います。<br />
<br />
実際にひと通り自分でやってみるといろいろ勉強になりました。<br />
データの作成時に耳を薄くしすぎて穴が開いたり割れたりしたので3Dプリンターの性能や樹脂の強度の考慮が必要でした。型取りはオーバーハングがあると樹脂の気泡が抜けなくなるので方向にかなり神経質になりました。塗料の取り扱いも慣れていなくて、厚塗りしすぎてムラがでたり、マスキングに失敗したりしました。<br />
<br />
印刷と型取りと複製は結構大変だったので専門業者さんに依頼した方が良いのかなと思いました。このフィギュアは割と好評だったので頃合いを見て量産したいと思います。<br />
<br />
<br />
<div>
<br /></div>
@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-30308363826305727682013-08-17T13:37:00.000+09:002013-08-17T13:51:10.798+09:00ADKで温度湿度記録装置AndroidとArduinoで温度と湿度を記録するだけのものを作って見ました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-ixd63jN0Zoo/Ug76BaxNg8I/AAAAAAAAHZU/qXWK3gv45iY/s1600/IMG_20130817_004143.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="240" src="http://1.bp.blogspot.com/-ixd63jN0Zoo/Ug76BaxNg8I/AAAAAAAAHZU/qXWK3gv45iY/s320/IMG_20130817_004143.jpg" width="320" /></a></div>
<br />
中の構造は面倒なことはしておらずシンプルです。Groveの<a href="http://www.seeedstudio.com/wiki/Grove_-_Temperature_and_Humidity_Sensor_Pro">温度湿度センサ</a>をArduinoに接続し、それをAndroid側で受け取り、ひたすらSqliteDatabaseに記録しています。<br />
使っているArduinoはHarpy nanoと呼ばれる互換ボードです。モノ的には<a href="http://arduino.cc/en/Main/ArduinoBoardProMini">Arduion Pro mini</a>と<a href="http://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-for-arduino-pro-mini">USB Host Shield</a>の組み合わせと同等らしいです。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-_6tSLZtleH0/Ug76IHV0bZI/AAAAAAAAHZk/Q6XoAnNdCLY/s1600/IMG_20130815_155326.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://4.bp.blogspot.com/-_6tSLZtleH0/Ug76IHV0bZI/AAAAAAAAHZk/Q6XoAnNdCLY/s320/IMG_20130815_155326.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-wK7hDC9lM94/Ug76MXMZcEI/AAAAAAAAHZs/S4kbKSbc9U0/s1600/IMG_20130815_155357.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://1.bp.blogspot.com/-wK7hDC9lM94/Ug76MXMZcEI/AAAAAAAAHZs/S4kbKSbc9U0/s320/IMG_20130815_155357.jpg" width="320" /></a></div>
通信方法はADKを使うかUSB Host APIを使うかBluetoothを使うか悩んだのですか、<br />
動かしっぱなしにする都合上、電源の供給ができないと困るのでADKにしました。<br />
<br />
<ul>
<li>ADK : Arduino→Androidへの電源の供給ができる。Arduinoに電源を繋ぐ。</li>
<li>USB Host API : Android→Arduinoへ電源供給するため、Androidに給電できない。</li>
<li>Bluetooth : それぞれ電源が必要になる。</li>
</ul>
<br />
<br />
プログラムのソースコードはこちらで公開しています。Arduino側のコードは1のプログラム本体のプロジェクトの中にあります。<br />
<br />
<ol>
<li>プログラム本体 <a href="https://github.com/cattaka/adkworks/tree/master/HumiTemp">https://github.com/cattaka/adkworks/tree/master/HumiTemp</a></li>
<li>通信用サービスLib <a href="https://github.com/cattaka/LibGeppa">https://github.com/cattaka/LibGeppa</a> </li>
</ol>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-Hsl77ddCCJk/Ug76EPErNhI/AAAAAAAAHZc/Y58Y0f5ZSX8/s1600/IMG_20130815_155447.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://3.bp.blogspot.com/-Hsl77ddCCJk/Ug76EPErNhI/AAAAAAAAHZc/Y58Y0f5ZSX8/s320/IMG_20130815_155447.jpg" width="320" /></a></div>
<br />
<br />@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0tag:blogger.com,1999:blog-8710323190194624484.post-58426662836813668262013-08-12T01:07:00.000+09:002013-08-17T13:51:51.108+09:00Yamaguchi Mini Maker Faireに出展してました以前からいろんなイベントに参加していて、その中でもMaker Faireに出展したいと思っていたので、今回遂に出展してきました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-xPTnae4qq4s/UgdqlK-azjI/AAAAAAAAHSE/6rGBZjN9cfU/s1600/P8100007.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-xPTnae4qq4s/UgdqlK-azjI/AAAAAAAAHSE/6rGBZjN9cfU/s320/P8100007.JPG" width="320" /></a></div>
<br />
<br />
基本的に自分が出展したかったので粗方は自分でやるとして<br />
ついでに職場の同僚の3人をひっ捕まえて4人で参加しました。<br />
<br />
グループ名はメンバーの一番若い人から「モバコン」という名前を貰い、それで出展しました。<br />
自分が出展した作品は2つあります。<br />
1つ目は画像認識で自動走行するロボットです。このロボットはキャタピラとその上にGalaxy Nexusを搭載しています。Galaxy Nexusにはカメラに鏡を取り付けて前方が撮影できるようになっています。そしてカメラの画像から目的のもの(下の画像では猫の写真)を自動で追尾するようになっています。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-TG8m6IMr_C0/Ugdq_wjvSfI/AAAAAAAAHTw/2G6beX4IomA/s1600/P8110019.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-TG8m6IMr_C0/Ugdq_wjvSfI/AAAAAAAAHTw/2G6beX4IomA/s320/P8110019.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-Xu55dDVk65g/Uge171hC5wI/AAAAAAAAHX0/Yopyebq5Pro/s1600/VID_20130811_173257.mp4" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="179" src="http://2.bp.blogspot.com/-Xu55dDVk65g/Uge171hC5wI/AAAAAAAAHX0/Yopyebq5Pro/s320/VID_20130811_173257.mp4" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br />
2つ目は以前、関西オープンフォーラムにも出展していた猫型ロボットです。こちらは本体はArduinoとBluetoothモジュールを搭載し、Androidデバイスから遠隔操作するようになっています。今回の展示ではAndroidデバイスで顔認識アプリを動作させ、人の顔を見つけるとそちらに振り向き、手を振るという展示を行なっていました。丁度ブースが入り口の近くだったので入ってきた人に片っ端から手を振って、お客さんの黄色い声援を沢山受けていました。<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-fka3c3Bsv6Q/UgdrGYWDXeI/AAAAAAAAHUA/Tp658SZYbys/s1600/P8110021.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-fka3c3Bsv6Q/UgdrGYWDXeI/AAAAAAAAHUA/Tp658SZYbys/s320/P8110021.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-A9YhxqQ8uG0/Uge1bwOuHDI/AAAAAAAAHXY/_E_mF1ZcYXg/s1600/VID_20130811_173517.mp4" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="179" src="http://2.bp.blogspot.com/-A9YhxqQ8uG0/Uge1bwOuHDI/AAAAAAAAHXY/_E_mF1ZcYXg/s320/VID_20130811_173517.mp4" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br />
他のメンバーはAndroid+Arduinoで遠隔操作のできるラジコンや、ヘリウムのバルーンをつけると飛行船になるユニット(未完)を展示していました。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-CabqC7WndHU/UgdrOytMaPI/AAAAAAAAHUg/OcEVbgM5eQk/s1600/P8110025.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://3.bp.blogspot.com/-CabqC7WndHU/UgdrOytMaPI/AAAAAAAAHUg/OcEVbgM5eQk/s320/P8110025.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-WcvXt92tvbM/UgdqlDIe5-I/AAAAAAAAHSI/sYBtwVs1Pwc/s1600/P8100009.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://3.bp.blogspot.com/-WcvXt92tvbM/UgdqlDIe5-I/AAAAAAAAHSI/sYBtwVs1Pwc/s320/P8100009.JPG" width="320" /></a></div>
<br />
<br />
<br />
<br />
実は1つ目の画像認識で自動走行するロボットはかなり汎用的に作っていて、別のAndroidデバイスから操作するといったラジコンにもなります。そして隣のブースでは大きな遠隔操作のロボットが動いていたので対抗して走らせました。そして撮れた写真がこれです。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-DtCPuT7qy_4/UgdsZpuMCUI/AAAAAAAAHWg/1UG-4Fo50mE/s1600/IMG_20130811_132214.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://4.bp.blogspot.com/-DtCPuT7qy_4/UgdsZpuMCUI/AAAAAAAAHWg/1UG-4Fo50mE/s320/IMG_20130811_132214.jpg" width="240" /></a></div>
タイトル:「見つめ合う2台」。この写真、個人的に今回の出展のベストショットです。<br />
<br />
今回の出展でお客さんがどういったもの面白いと思うかや、他の出展者から技術的に何が使えるか、別業種の人がどういったものを求めているかがわかりました。<br />
次に出展するときはそれらを踏まえてプログラムと造形をもっと洗練したものを出したいと思います。<br />
<br />
<br />
<br />
<br />@cattaka_nethttp://www.blogger.com/profile/17244246242737459417noreply@blogger.com0