チラシのうら

レゴとか、工作とか。

MESH™ 射的を作った話

最近

MESH™ GPIOタグで、サーボモーターを動かすスキルを身に付けたので、早速レシピを考えてみました。
第1弾は「MESH™射的」です。 f:id:tetunori_lego:20160308194957j:plain

MESH™射的って?

射的の的をMESH™ Moveタグにすることで、的が倒れる時に効果音を鳴らし、さらに、自動的に的を起こすという、画期的なアイディアです!
お一人様での射的練習も、断然楽しくなります!

動作の様子はこちら

レシピ

準備するもの

  • MESH™ Moveタグ、MESH™ GPIOタグ
  • レゴブロック
  • マイクロサーボ(SG92R)
  • ジャンパワイヤ(オス⇔オス) 4本
  • ブレットボード
  • 5V電源(今回はモバイルバッテリーを使用)
  • セロテープ
  • ビニールテープ
  • 接着剤か両面テープ
  • 射的の的(今回は画用紙と爪楊枝で作成) f:id:tetunori_lego:20160308195243j:plain

MESH™キャンバス

ロジックは非常に簡単で、

  1. 倒れたら45度位まで回転 & 効果音
  2. 1秒待って、0度まで、戻る

だけです。 f:id:tetunori_lego:20160309063303p:plain

作り方

  1. まずは、レゴブロックに両面テープでマイクロサーボモーターを取り付けます。しっかり固定されている事を確認してください。 f:id:tetunori_lego:20160308195007j:plain

  2. 次に、ホーン部(回る羽の箇所)にもレゴブロックを貼りつけます。ここは、力がかかる所なので、接着剤か両面テープでガチガチに固めて下さい。 f:id:tetunori_lego:20160308195224j:plain

  3. ホーン部をモーターに取り付けると、このような感じです。 f:id:tetunori_lego:20160308195019j:plain

  4. 今度は、土台を作ります。 的を起こす仕組みのための「穴」をあけておくことが重要なポイントです。 f:id:tetunori_lego:20160308195011j:plain

  5. マイクロサーボモーターの部分と結合します。 ホーン自体が長いため、ホーンが回転できるだけの十分な高さを確保する事が重要です。 今回はレゴブロックでできた黒い箱があったので、そこに取りつける形で実現しました。  f:id:tetunori_lego:20160308195020j:plain

  6. 次にGPIOタグまわりについてです。 写真の様に結線します。 マイクロサーボモーターの電源/GNDは5V電源と、コントロールするためのPWMはGPIOタグと、それぞれ結線します。 f:id:tetunori_lego:20160308195234j:plain

  7. テスト的に「起こし」動作を確認します。 図のように「穴」をすり抜けて、ホーンがあがってくれば成功です! 失敗する場合は各種位置の調整を行って下さい。 f:id:tetunori_lego:20160308195023j:plain

  8. Moveタグにビニールテープなどで的をとりつけた後、セロテープでレゴブロックの台に固定できれば準備はOKです! f:id:tetunori_lego:20160308195003j:plain

  9. 試しにMoveタグに取り付けた的を射ぬいてみましょう。 何度倒れても、立ち上がって来ることが確認できると思います。  今回の的は那須与一をイメージしています。 f:id:tetunori_lego:20160308195000j:plain

  10. 倒れて、起き上がる様を横から見た図です。 快適な射的ライフをお楽しみください。 f:id:tetunori_lego:20160308195038j:plain

感想・考察

  • 今回はタイマーを"1秒"で設定しているが、以後、百msec単位で制御したい場合も出て来るはず。タイマータグ拡張で出来ると嬉しい。直近は、LEDタグの点灯が百msec単位で指定出来るので、代用できて困っていないけど。
  • やっぱり、外部電源は邪魔。GPIOタグ単体で動かせるサーボモーターが欲しい。
  • サーボモーター×レゴはまだまだ可能性大。うちにはパーツが少ないが、テクニック系と組み合わせると、よりシンプルに高度なギミックが構築できそう。
  • 自動で動く様は、もう、ロボット。動かしていると、意志がある様に見えてきて、だんだん愛着がわいてくる。以下の動画を思い出した。MESH™でも作れそうだ。

MESH™ 風鈴を作った話

きっかけはアイディアソン

2014年の夏頃に、Sony MESH™を使ったアイディアソン に参加したのですが、その時のアイディアについては放置していました。

久々の飛び石連休を使って、これを実現してみようと思います。

当時の発表スライド(の一部)

他にも発展アイディア等ありましたが、今回のベースとなる部分だけ。

導入。
夏の暑い日だったので、風鈴とか良くない? f:id:tetunori_lego:20160213092134p:plain

でも、風鈴で知恵袋を検索すると皆さん困っているのが騒音問題。
風鈴の音が嫌いな人だっていますよね。 f:id:tetunori_lego:20160213092138p:plain

そこで、Sony MESH™を使って、風を感じる部分と、音がなる部分を分離して、上記問題を解決しましょう! f:id:tetunori_lego:20160213092141p:plain

これが実現できると、他にもこんな良いことあるよね。 f:id:tetunori_lego:20160213092144p:plain

以上の内容を発表していました。

早速、できました。

MESH™ 風鈴。 f:id:tetunori_lego:20160213092658j:plain

音が鳴っている様子はこちら。
スピーカーMESH™タグなんてのはないので、iPod Touchから直接、音を出しています。

作り方

MESH™ 風鈴HW

準備するのは、下記の材料。

  • MESH™ moveタグ とその箱
  • たこ糸
  • 小さめのヒートン × 3
  • だいたいの家庭に1つはある、ドーナツ状の木材
  • たこ糸が4本通るサイズのビーズ

f:id:tetunori_lego:20160213092230j:plain

ドーナツ状の木材は、良くヤスリがけした後、キリを使って等間隔に穴を開け、そこにヒートンをねじ込みます。 f:id:tetunori_lego:20160213092242j:plain

ねじ込んだものがこちら。 f:id:tetunori_lego:20160213092245j:plain

ヒートンにたこ糸を通して、三本のたこ糸をビーズに通したら外側はほぼ完成です。 f:id:tetunori_lego:20160213092307j:plain

今度は、風を受ける所を作ります。
といっても、MESH™が入っていた箱の蓋と中蓋?を切り取るだけです。 f:id:tetunori_lego:20160213092329j:plain

先ほど切り落とした蓋とMESH™ moveタグをたこ糸とテープを使って繋ぎます。 f:id:tetunori_lego:20160213092337j:plain

MESH™ moveタグの上面にもたこ糸をつけて、先ほどのビーズに通したら完成です!
ここのたこ糸の長さは、上手くmoveタグが風になびいて外側に当たるように微調整してください。 f:id:tetunori_lego:20160213092441j:plain

試しに外に吊るして、家の中で音を出してみましたが、見事に外部の風を感じることができました!
上手く行きすぎてちょっとびっくり。 f:id:tetunori_lego:20160213092558j:plain

MESH™ 風鈴SW

キャンバス側も紹介しておきます。
以下の通りですが、風鈴の音はランダムに複数種鳴るようにしておくと、それっぽいです。 f:id:tetunori_lego:20160213094614p:plain

うちには本物の風鈴が無く(笑)、風鈴の音がとれなかったので、コップを叩いた音を二種頼録音して、それを使っています。

考察・感想

  • 風を使ったアイディアは、風鈴以外でもなんかできそう
  • 風鈴の外観はもっと凝ることが可能。和風・洋風色んなものが作れそう
  • 「振動を検知したら」だと誤検出することもしばしば。加速度の生値取りたいなあ

MESH SDK IRKit tagをインターネット経由でも使えるようにする

Internet経由のIRKit操作にチャレンジ

せっかくソフトウェアタグのソースコードを差分管理できるようになった ので、開発欲がでてきました。

今回は、今まで見て見ぬふりをきめこんでいた、Internet経由のIRKit操作にチャレンジしてみたいと思います。

"Internet経由"を実現するためのAPI

詳しくはIRKitのページに記載があります。

できました

前回までの成果物は"Local", 今回の成果物は"Internet"という名前にしています。
8.png

ソースコードはこちら

詳細ビューも参照下さい。

"Internet"版の使い方

IP Addressの準備

まずは、ローカルなネットワーク環境にて、こちらを参考に、IRKitのIP Addressを準備しておきます。
取得できましたら、IRKit tagのSetup画面にある"IP Address"の値として、入力します。 5.png

IRKitサーバー利用のための登録

Internet経由で自宅のIRKitに接続するためには、IRKitサーバーを利用する必要があり、タグ内にそのトークン情報などを登録する必要があります。
ローカルなネットワーク環境にて、MESH Canvas上でIRKit tagの"Register"コネクタにボタンタグ等を接続し、実行してください。
登録作業自体はこれだけで完了です。
6.png

リモコンコードの学習

MESH Canvas上でIRKit tagの"Learn"コネクタにボタンタグ等を接続し、実行してください。
その後、対象のリモコンコマンドをIRKit本体に向けて発行します。
これでリモコンコードがタグ内に保存されます。

7.png

リモコンコードの発行

ここからは、ローカルなネットワーク環境でなくてもOKです。
MESH Canvas上でIRKit tagの"Send"コネクタにボタンタグ等を接続し、実行してください。
外出先からの指示にもかかわらず、お家のIRKit本体から、リモコンコードが発行されるはずです!
8.png

ただ、困ったことに

iPhoneを持っていないので、3G/LTE経由で動作するのか確認できていないです。 たぶん、動くとは思うのですが…

MESH SDK開発のためのお助けツール

MESH SDKを使ってみた感想

前回の投稿 で、脆弱性対応のため、ソース変更を行いましたが、管理対象の"Export"ソースは、一行テキストなので、修正差分を表示してみると、残念な感じです。 f:id:tetunori_lego:20151116220200j:plain

また、一行テキストのため、他人のソースを参考に開発したい場合でも、一旦"Imoort"が必要になってしまうのはイマイチかなぁと。

ツール、作りました

MESH SDK上でExportした(JSON)テキストをコピペするだけで、下記2種類を得ることができるツールを作ってみました。

  1. 差分管理向けの整形済みテキスト
  2. 一覧性を重視したHTML形式の出力

こちらにupしていますので、いつでもご利用いただけます。  

ソースコードは、下記リポジトリをご参照下さい。

使用イメージ

先日作った、IRKit tagで試してみます。   まずは、Exportしたテキストをコピペして、"Decode and View!"ボタンを押してみてください。   f:id:tetunori_lego:20151116221033j:plain

すると、こんなのとか、 f:id:tetunori_lego:20151116221754j:plain

こんなのとかが、得られます。 f:id:tetunori_lego:20151116221759j:plain

それぞれに付いている、ダウンロードボタンを押すと、テキスト/HTMLファイルとしてダウンロードできます。

これを使うと、差分管理も、いい感じです。  

MESHのSDKでIRKitのソフトウェアタグを作った話

結論から言いますと

成果物はこれ↓です。

MESHがiPod対応してくれたので

iPadが無いわが家では、カラフルな重さの無い文鎮と化していたSony MESH™ですが、最近iPodにも対応してくれたので、気軽に弄ることが出来るようになりました。

また、先日、MESH SDKが限定公開されたので、実装仕様をチェックしたうえで、IRKitのタグを作ることにしました。

できました

f:id:tetunori_lego:20151107091726j:plain 今のところ、ローカルな環境限定ですが、事前にIRKitのIP Addressさえ指定しておけば、任意の赤外線リモコンコードの学習・発行が可能です。

使い方

IP Addressの準備

こちらを参考に、IRKitのIP Addressを準備しておきます。
取得できましたら、IRKit tagのSetup画面にある"IP Address"の値として、入力します。 4.png

リモコンコードの学習

あらかじめ、対象のリモコンコマンドをIRKit本体に向けて発行しておきます。
その後、MESH Canvas上でIRKit tagの"Learn"コネクタにボタンタグ等を接続し、実行してください。
これでリモコンコードがタグ内に保存されます。 2.png

リモコンコードの発行

MESH Canvas上でIRKit tagの"Send"コネクタにボタンタグ等を接続し、実行してください。
IRKit本体から、リモコンコードが発行されたはずです!
3.png

まさかの落とし穴

久しぶりにIRKitについて調べてみたら、なんと脆弱性対応のため、新バージョンのIRKiに対しては、新しいWebAPIに対応する必要があることがわかりました。 

早速対応します。 

要はHTTPのヘッダ部に 

X-Requested-With: curl

を追加するだけで良い  という話ですので、以前のコードに対して、下記のような変更を加えて、動作することを確認できました。
IRKit ver2.0, 3.0両方で動作することを確認済みです。

 

brickpino製作日誌 その6

動作確認の前に

これから何度も抜き差しするかなと考え、レゴブロックと基板/配線をくっつけることにしました。

特に、ピンソケットのプラスチックは(色々な接着剤を試しましたが)完璧にくっつけることができず、結局、ただのボンドを注入して固定することにしました。

後戻りできないため、かなり勇気いりましたが、1日経って確認したら、ひとまずはうまく行ったみたいです。 f:id:tetunori_lego:20150622074307j:plain

動作確認

ダメでした。

PCに接続してもUSBドライバがあたってくれず、Unknown Device表示となります…
(とすると信号品質?)

ジグを外してみたり、直接8pinoのD+D-線とUSBケーブルを繋いでみたり、色々な事を試しましたが、今のままのHW構成だと、何かがお気に召さない様です。
f:id:tetunori_lego:20150622074643j:plain

ここで心折れる

むー。 ハンダからやり直す事を考えると、ちょっとげんなり。
他に優先度高い案件があるので、しばらく時間を置いてから再チャレンジとします…

考察

  • 良く考えたら、8pinoに前もってfirmを焼いておけば良かった。こぼしてしまったミルクを嘆く。
  • やっぱりハンダ付け多用の工作は初心者には難しい。AgIC 粘土版みたいなの出ないかな。
  • 今回は売ってる部品をそのまま駆使して作ったので、大きくなってしまったが、削ったり、工夫すれば、もう少し小さくできると思う。結果、レゴブロック内の円柱を折らなくても良くしたい。
  • 何事も勉強すれば(多少は)上手くなる。
  • 失敗こそ、記録に残すべき。実験ノートじゃ無いけれど。

brickpino製作日誌 その5

今回はジグの話

今までは主にMESHとの接続に関する記載が多かったのですが、やはり普通の工作には、ブレッドボードを使う方が圧倒的に多いと思います。

がしかし、brickpinoの2×5ピン配置だと、普通のブレッドボードにはささりません。
f:id:tetunori_lego:20150619213152j:plain 恐らく、ケーキボード というものでしたら、直接させる(し、レゴ・フレンドリーだ)と思いますが、正式販売はまだの様ですし、何より、早く動作確認したいです。

というわけで

普通のブレッドボードに挿すためのジグを作ることにしました。

材料は、

  1. 2 × 5 ピンソケット
  2. 1 × 5 ピンヘッダ 2個
  3. 8pinoに付いてきた手で折れる基板の寄せ集め

の3つです。

一回戦 → 失敗

まずはピンソケットと基板を着けてから、ピンヘッダを付けてみました。 f:id:tetunori_lego:20150622065959j:plain
1. 裏面。 2. 表面。 3. ピンヘッダは、長さ調節しておきます。 4. 完了

4.の時に、穴同士を繋ぐ事がなかなかうまくできなくて、ちんたらしてたら、ピンソケットの穴にハンダが流れ込んで、ピンがささらなくなりました。
f:id:tetunori_lego:20150622070655j:plain
こんなのばっかり…

二回戦 → 成功

一回戦の失敗を踏まえて、ピンソケット側の足を折り曲げて、ピンヘッダの近くにもっていくことで、成功!
f:id:tetunori_lego:20150622071552j:plain
A. ハンダの量も少なくて済みました。 B. ハンダ付け直後の様子。 C. ピンヘッダの不用部分をカット。

brickpinoとドッキング!

いい感じです。導通確認もOKです。
f:id:tetunori_lego:20150622072140j:plain

環境も出来上がったので、次回はいよいよ、ブレッドボード上で動作確認です!