雑食エンジニアの気まぐれレシピ

日ごろ身に着けた技術や見知った知識などの備忘録的なまとめ.主にRaspberry Piやマイコンを使った電子工作について綴っていく予定.機械学習についても書けるといいな.

MFT2020参加してきました

先日開催されたMakerFaireTokyo2020ですが,今年も参戦してきました.出展したのは↓のロボットです.

Wiiリモコン(Wiiザッパー)で操作できるパンチングロボットです.
実は不具合で足回りが動かなかったんですが,アームだけでも結構子供ウケが良く割と大繁盛でした.
今回はコチラについて書いていきたいと思います.

パンチング機構について

結構いい動きしてたこのアームですが,正体はコレ.

f:id:shikky_lab:20201006003132j:plain
~~~ タピオカ用太ストロー!! ~~~

これを切り開いたものを,下のような巻き取り機構で巻き取っているだけです.
f:id:shikky_lab:20201006003931j:plain
巻き取り機構

巻き取ったものを逆に戻すとストローの円柱形状に戻ろうとして,先の動画のようなパンチができるようになるわけですね.
この機構がなんという名前かは知らないですが,ロボコンなどでは金属メジャーを使用して同じような伸縮機構を作っている例をよく見ますね.ちなみに今回直接参考にさせて頂いたのは下記のライトセーバ ーの動画です.いつ見ても素晴らしい動き.
https://www.nicovideo.jp/watch/sm36051554

Wiiリモコンの処理について

実は知らない方も多いかもしれませんが,Wiiリモコン(初代)はジャイロセンサが搭載されていないため,ヨー角を取得することができません.実際のゲームではセンサーバー(とは名ばかりの赤外線LED)を使ってヨー角を取得しています.第二世代のWiiリモコン(Wiiリモコンプラス)はモーションプラス(=ジャイロセンサ)が搭載されており,今回はこれを使用しました.
ただ,私がずっと使ってきていたWiiリモコンのライブラリの「CWiid」は拡張機能を一つしか認識することができず,モーションプラスとヌンチャクの値を同時に取得することができません.そのため,MFTの五日前に別のライブラリを導入して全てのコードを書き直す羽目になりました.大変でした.
使用したのはxwiimote( https://github.com/dvdhrm/xwiimote )というライブラリです.
※すでにcwiidなどのライブラリはcloseされているので,今wiiリモコンを使用するならxwiimote一択になる気がします.
これは接続したWiiリモコンをファイルディスクリプタ経由でアクセスできるようにしてくれるライブラリで,非常に柔軟で多機能なものとなっています.
cwiidとは根っこから思想が違うため移植は少し大変でしたが,ライブラリ自体の出来は非常に良いのでお勧めです. なお使用方法については http://dvdhrm.github.io/xwiimote/api/modules.html あたりを見つつ,xwiishowというデモアプリのコードを眺めると大体つかめると思います.

おわりに

一応コードはコチラにあるので気になった方はご参照下さい.
https://github.com/shikky-lab/WRIOS2020/tree/master
(MFT前に焦って書いたのでかなり汚いコードになっていますが,xwiimoteへのアクセス周りは参考になるかも?)

なお今回のロボットですが,実は未完成です.
冒頭にも書きましたが,本当は足回りも動かして去年のようにバランスWiiボードで動かす予定でした.
https://www.youtube.com/watch?v=pdHF3dgOES0&feature=youtu.be
まぁ今回はアームがついて重心がずれてしまったので,仮に動かせたとしてもまともには動かなかったと思います.
この辺りをジャイロで補正した完成版をまたUPしたいと思います(去年も同じ事言った気がしますが).

とはいえMFT前に届いた大量の3Dプリンタ改造パーツがあるので,しばらくはそれでいっぱいいっぱいになりそうな予感があります. まぁそれも含めてちょくちょく記事更新していきたいと思います.
それでは.