久々におもちゃを作りました。
思ったより時間がかかりましたが、なんとか完成!
どんなものか、とりあえず動画を見てください!
こちらは、円筒を取り付けた板の上でバランスをとるおもちゃになっています。
micro:bitを2つ使っていて、1つは板の情報収集用、もう1つは表示用。
表示は7セグを使いました。
7セグの使い方はこちら。
板の裏側はこんな感じ。
塩ビキャップを2つ繋げて、板の真ん中あたりに取り付けました。
ビニールひもだけだと動いてしまったので、グルーガンでガチガチに固定しました。
プログラムを作るにあたり、角度の測定を行いました。
久々に分度器をしっかり使いました。
10~90°まで、2種類の方法で測定しました。
こちらは、傾斜(ロール)のブロックを使った場合の角度の測定。
想像以上に、ほぼ設定値通り動いてくれました。
ほんと良く出来てますよね、micro:bit。
こちらは、加速度(X)と角度の関係。
着地時の衝撃を測定しようと加速度を使っていた時に、角度との相関があると気付いたのでデータを取ってみました。
なかなか面白い結果が出たと思います。
作りたいおもちゃの検出したい角度は、14°
傾斜(ロール)を使う場合は「14」、加速度(X)を使う場合は「240」を使うとうまく動作しました。
プログラムの中身はこんな感じです。
こちらが板の取り付ける側。
今回は傾斜(ロール)のブロックを使いました。
傾きは右側と左側があるので、「14」と「-14」の2つ必要ですね。
傾きを検出すると、表示側に信号を送ります。
表示側のプログラム。
基本は100msごとにカウントしたものを表示しています。
傾きが検出されるとデータが送られてくるので、表示を5秒間止めて変数をリセットしています。
表示を止める条件は、2つの変数を使って比較させるようにしています。
もっとうまいやり方があるかもしれませんので、色々と試して頂ければと思います。
このプログラムだと、着地しても5秒後に再スタートするので、延々とトレーニングすることができます!
今日もたっぷりとトレーニングできました。
動作確認中の様子
使う機器は
- micro:bit
- 拡張ボード
- 7セグ
- 電池ボックス
ですね。
工夫次第で色々なおもちゃが作れそうなので、また何か思いついたら作ってみようと思います。