既存のToy-Conを拡張してみたくて
ちょっとまたニンテンドーラボで遊びたくなってしまった今日この頃。
自分で何か作るってのはなぜこんなにおもしろいのか。
今度新しいキットも出るようで、こちらもちょいと気になります。
今回は、バラエティキットに入ってくるリモコンカーToy-Conをベースで遊びました。
犬のロボ
というわけで、箱のコードを覚えてそれを探す、というToy-Conを作ってみました。
動いているところだけの動画だと何やっているかわかりにくいので、今回の動画は説明もいろいろ付けてみました。
覚えた箱を見つける犬型ロボを作ってみた件#NintendoLabo #ニンテンドーラボ #ラボ作品 pic.twitter.com/Xcn2dgpZsG
— 模索する俺たち (@mo3ore) July 29, 2018
動画の編集もおもしろかった。
中身
そんなわけで今回のToy-Conの中身ですけど、まず犬-Conです。
これは犬…なのか……?
と疑問が出ますが、制作者本人が言っているんだから間違いない。犬である。
なぜ犬なのかというと、警察犬が匂いを手掛かりにものを見つける、っていうのをイメージして作ったためです。
今回はどちらかというと嗅覚ではなくて視覚ですけど。
あと、コントローラーの方ですけど、プリンタで印刷して切り抜いて作りました。
ボタンは「再起動」と「開始」の2つで、あとはIRカメラの映像とか、ステータスの表示をします。
漢字使いまくりました。
インターフェースがゴツいシステムが好きなのだ。
そして、認識するのはこの箱です。
IRカメラは、カメラにすごく接近していれば何かしら反応するんですけど、少し離れているものを認識させたいときは反射シートの類が必要です。
私は100円ショップで自転車に貼る用の反射シートを買って使ってみましたけど、いい感じに反応するかどうかは製品によるかと思うので、箱とか作る前にあらかじめ試してみましょう。
そんなわけで、反射シールを使って箱にコードというかマークをつけておいて、これで認識させます。
どういうコードにしようか悩んだんですけど、試してみたら例えば「L」のように貼った場合、「■」のように認識されるみたいでした。
(ひとつながりになっていると、それら全体が含まれる長方形になる)
つまり、「L」のように貼っても「T」のように貼っても「■」みたいになる。
というわけで、以下の8パターンに対応するようにしました。
下の横棒は、犬-Conがこのコードの位置を把握して、いいところまで近づくためのバーです。
プログラム的には「スポイト」を左右に置いて、バーが右スポイトにかかったら、右に寄りすぎているので左にちょっと動いて、左スポイトが反応したら右へ。そして左右のスポイト両方が同時に反応したらちょうどよい距離間なのでストップ、という感じにしました。
で、距離感が良くなったら、あとは単純に上の3つの点があるかどうか、というのを3つのスポイトでそれぞれ判定すればOK。
あとは、3つのカウンタを用意しておいて、スポイトの結果をカウンタに入力しておくことで目標を覚えておきます。
覚えたものは、コントローラーの上に目標パターンとして表示してみました。
あとは、探すときもだいたい同じような動きをして、「AND」と「NOT」でもって、覚えた目標と今見えているコードについて、各3点のオンオフがすべて一致しているのかどうかを判断するという感じです。
プログラム的には最初はわりと綺麗だったんですけど、最後にコントローラーに表示するものを配置していったら(画面左側)、最初に作っていたロジックと重なってきたりしてゴチャゴチャしちゃいました。
どうしてもこまごましたの作ろうとすると線が多くなっちゃうんですよね。
もうちょい綺麗に置いていきたい。
まとめ
そんなわけで、自分で動いていくようなToy-Conができました。
キットに入っているToy-Con使うとこれまたいろいろと幅が広がりますね。
おわり。
コメント