いうタイトルで展示してきました。熱も冷めやらぬうちにハードウェアの解説を行いたいと思います。認識やゲームに関してはid:hecomiの記事をご参考ください。tips.hecomi.comwww.youtube.comボタンガジェット今回のHWの一番大きなポイントとしてリアルなボタンを押すと機体から弾がビュンビュンと振動とともに出るところです。Pj.で行ったゲームと現実の融合というコンセプトを継承することができました。vine.co仕組みこれはTWE-LiteというZigBeeに対応した無線マイコンモジュール(東京コスモス電機さん開発)を利用しています。IoTなどの分野で大活躍しそうなモジュールです。2.4GHz帯で特別な免許もいらず日本では技適も通ってるので安心して利用できます。id:kssaoさんの投稿で知りました。qiita.com使ったTWE-Lite製品を参考に挙げておきます。このUSBドングルは親機専用として非常に便利です。DIP用書き込み基板でも代用できますが、持ち運びや見栄えなどが良いので1個あると便利です。その他この商品を含むブログを見るこちらは書き込みに利用します。今回はDIP版のTWE-Liteを買いましたが、ピンヘッダの足をつけていません。その他この商品を含むブログを見るあとはボタンウィジェットに1個ずつこれが入ってます。その他この商品を含むブログを見るいろんな使い方が載っています。TWE-Liteについてまとめて一気に勉強したい人は情報がまとまっているのでオススメです。緑のLEDが常灯していてボタンを押すと黄色いLEDと振動アクチュエータも電圧がかかって動作します。ボタンのイベント検知はDI1とDI2をを利用しています。特徴的なのはDI2にはDI1を反転した値をTC7S04Fというインバータを利用して入力しているところです。ボタン1つで2ポートを利用している理由は、TWE-Liteは間欠モードという省電力モードでは立ち上がりor立ち下がりしか検知できないためです。DIP)は立ち下がり設計とのことです。今回のゲームではボタンのPushDown/Upが取りたかったのでDI1とそれを反転したDI2を利用することで解決しました。Buttonガジェットの中にはスペースがほとんどないので苦労しましたが、便利な商品を見つけてなんとか乗り切りました。シール基板は特に面白く、ピッチ変換をしたりGNDなどに使うラインのタイプがあったりします。切り取って普通の基板に接着剤でくっつくのでとても便利でした。ハンダもつきます!また基板はハサミでちょきちょきと切れるので使い勝手がかなり良かったです。マルツパーツで手に入ります。店舗とオンラインストア、どちらでも入手できます。1.7.1を使ってます。赤色の部分が変更した値です。#1'の0x00000010はADCを利用しない場合に設定するとAD1~4の配線を省略できます。#2'でDI1とDI2でプルアップ停止にして電流を節約します。(N)他の項目は下記を参考にしてみてください。構成としてはボタンガジェットにあるTWE-Liteの子機とゲームを動かすMacにトコスティック(親機)を挿し、Macで動いているUnityで親機からくるシリアルデータを読み取っています。そのときid:hecomiにリリースしたコードはgithubにあげてあります。github.comシリアルデータの読み込みとイベント発火はSerialHandlerクラスで行っています。ここでは簡単に読み込みとイベント発火の部分を説明します。スレッドでのデータ読み込みUpdateでは60fpsしか出ないので、スレッドを動かしてmessageQueue_に対して高速にデータを格納していきます。私の環境ではThread.Sleepがないとloopが高速に回りすぎてUnityがクラッシュしてしまいました。下のRead_関数がThreadクラスに渡している関数になります。}}格納したデータの利用スレッド内で格納したデータはUpdate内でコピーし、そのコピーしたデータをイベントとして発火します。}}イベント(定義)C#ではeventという便利な仕組みがあります。これを公開用に定義しておきます。{};イベント(受信)あとは上の公開されたイベントを登録することでポーリングすることなく、イベントをコールバック形式で受信することができます。onSwitchOff;}3DモデルボタンとTWE-Liteなどを格納するケースとそのケースに付ける擬似レゴの3Dモデルです。Faireから早速活用出来ました。3Dプリンターの強みだと改めて感じました。一度モデルが完成してしまえば見栄えが良くまったく同じものを多く作ることができるのでMakerのみなさんにはやはりおすすめしたいですね。クリアちなみに今回本物のレゴを使わなかった理由は2つです。上から見た時(ユーザー目線)、下から打ち上げているプロジェクターの光がレゴをほとんど透過しないため暗い部屋では真っ暗に見えてしまった。そのため3Dプリンターで作った密度の粗いレゴを利用し、見た目が光る(下からの光が透ける)ようにした接地面から2段目より上のレゴは認識できないという技術的制約があるため、取付部を設けて機体のカスタマイズ方法を限定させた。裏側も工夫しています。擬似レゴを使ったため素材の密度が粗く、認識に使う赤外線カメラの赤外線の反射率が悪化しました。そこで薄いプラ版をレゴ裏面に貼ることで反射率を稼ぐことにしました。下が蓋みたいになるので、結果的に段を重ねるような遊び方を子供に抑えさせることが出来ました。本当はあまり制約は与えたくはないんですけどね。つけ心地もイマイチだったのでレゴに頼らない形状なども引き続き検討していきたいです。真面目に検討しなかった結果、ボタン電池を30分に1回は交換するレベルでした。振動アクチュエータが電池をかなり食ってるのは分かっていますが、ちゃんと計測して最低起動電圧は次回までに正しく調査しようと思っています。やりマイコン類を入れましたが、小型化とショート防止などのために専用基板を次回は起こしたいと思っています。Studioなど自分のスキルアップ&経験値アップのためこれもマストで行いたいですね。今回のデモ筐体は時間もなかったため、カラーアングルをただ組み立てただけ、投影面もアクリル板にトレーシングペーパーを貼っただけど、かなりお粗末な見た目でした。持ち運びも難しいためデモを外でするにも一苦労です。今度は専用の組み立て式の筐体で見た目も綺麗な筐体に仕上げたいです。今回本当はプッシュボタン以外に切り替え式のスイッチ(上の写真に載ってます)も作っていたのですが、うまい使い方が考えきれずお蔵入りとなりました。ボタン以外のも分かりやすいインタフェースは多いのでこの辺り遊び方含めてもっとアイデアを出していきたいです。無線通信TWE-Liteは2.4GHzですが、当日の会場では無線が混みあいすぎて想定以上にイベントをドロップしました。この距離でも繋がらない、、。http://t.co/Mn1FavTnI3"会場を訪れた方にも、赤外線を使った方が良いというコメントが多くもらいました。これは確かにそうで、次回に出す機会があれば、赤外線を使ってイベントの通知やウィジェットのトラッキングを行いたいと思っています。この辺り技術的に面白そうなネタを温めているので近いうちに記事を書きたいと思っています。動いていなさそうです。月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。