こんにちは、寺尾です。
魂はラスベガスにいるのでまで12月6日ですね。
enebular Advent Calendar 6日目です。
enebularで加速度センサーの可視化をしようと取り組んだ話です。
MakerFaire 深圳でつくったもの
11月のMakerFaire 深圳に、日本Geek中文学会という団体で出展して、魔棍(mogun)という、中国語の四声をテストするデバイスを作りました。
中国語には4声という独特のイントネーションがあります。しかし、日本語をあやつる私たち日本人は、こういったイントネーションがとても苦手なのです。なので、発音は覚えられても、この四声は直ぐに忘れてしまいます。そのためには、良く聞いて、たくさん発音するのが王道なのですが、まず最初に覚えるときは、手を使ってモーションで覚える方が身につきやすいと言う結果が、僕の所属する日本Geek中国語講座でのノウハウとしてあります。
であれば、この手のモーションを取れば試験をするためのデバイスが作れるのでは無いかと思い立ち、作ったのがこちらです。
デバイスとしていろいろと課題はあるものの、それはまた別の機会に書くとして、これを開発する時に、四声に対応するためのモーションを実際に振ってみてどんな加速度が出るのかを見ながら判定するのですが、それがとてもとても分かりづらい。面倒くさい。
振ってはシリアルコンソールを見てエクセルに貼り付け、振ってはシリアルコンソールをみてエクセルに貼り付け、そして、そこからルールを導き出して、それなりに判定できる判定ルーチンを作るんです。
コーディングだけで言えばそこまで面倒では無いですが、とにかくサンプルデータを取るのが面倒。それに、シリアルコンソールを見るためにはUSBケーブルを繋ぎっぱなしにしないといけないので、振りにくさもありますし、実際にケーブルが繋がっていないときと振り方も違ってくると思います。
ということで、次はSDカードに書き込もうと思ったのですが、振ってはカードを抜き出して、Macに繋いで、開いて。。。と言う作業は、シリアルコンソールよりも面倒な作業になってしまいました汗
前置きが長くなりましたが、やっぱり、無線で飛ばしたいよねということで、MQTTで飛ばして見たいと思います。
が最初に断っておきますが、作業時間の関係でまだ完成してません。自分の実力の低さが残念でなりませんが、僕にはもう少し時間が必要でした。ということで、今回はコンセプトだけです。
構成
構成を考えたときに、0.1秒単位のデータを取るので、遅延の無いローカルにある方が好ましいため、enebuular editorを使う事にしました。
こうすれば、ローカルでグラフ化できて、生データも無線で繋がるはずです。
M5Stackをネットワークに接続
M5Stackは、Wifiに対応しているので、Wifiに繋ぎます。標準のライブラリでサクッと繋がりました。
enebular editorの用意
あらかじめ enebular editor を用意して、フローを用意します。MQTTブローカーを配置するだけで基本的には終わりです。(のはずです)
M5Stack から送信
M5Stack からセンサーデータを読み取って、MQTTで送るところです。
このあたりから、敗色濃厚なのですが、まず、魔棍(mogun)を作ったのはM5Stack Fireを使いました。これは、MPU6050というセンサーが載っていました。
しかし、Fireは家においてきたため、先日深圳で買ったばかりのGrayを使って実践しようとしたのですが、こちらはMPU9250というセンサーを使ってます。なれた方なら、ちょっと書き直せば動くのかも知れませんが、僕レベルだと結構一大事です。とはいえ、時間がかかりながらも、センサーデータは読み出せました。
次に送信です。MQTTで接続するわけですが、これがどうにも繋がらずタイムオーバーです。
データの保存とグラフ化
残念ながらここは手つかず。次回に回します。
おわりに
とにかく教訓は、「余裕を持って検証して記事を書こう」です。ホント完成せず申し訳ない。と言う事で、追って続編を書かせて貰います。
今回はセンサーデータの取り出しと可視化をテーマにしました。今後いろいろ作って見るときに、大事だなーと思うんです。センサーデータを取り出すのは、こうやると楽だよっていう方法があれば、ぜひ教えていただけるとありがたいです。