先日ピョンキーを使って高さを測るプログラムを作りましたが、今回はmicro:bitで同じことをやってみました
【既存の教科でプログラミング27】三角関数で高さを測る(ピョンキー)
iPadアプリのピョンキーを使った高さを測るプログラムです。ピョンキーだとiPadの傾きの値が取得できるので、三角関数を使えば高さが求められます 試しに自宅の天井の高さを測ってみましたが、実測データとほぼ同じ結果がでました あらかじめ、対象...
iPadに比べてmicro:bitは軽くて小さいので、LEGOを使って固定することにしました。「高さ測定マシーン」です
角度の調整部分はLEGO WeDoのパーツを使用
JavaScriptブロックエディターには三角関数がないようなので、Pythonを使いました
プログラムはこんな感じです。Aボタンを押せば角度を表示、Bボタンで高さを測定します
from microbit import * from math import * desk_height = 72 # 机の高さ(cm) distance = 368 # 対象物までの距離(cm) while True: x = accelerometer.get_x() / 1024 y = accelerometer.get_y() / 1024 z = accelerometer.get_z() / 1024 pitch = abs(atan2(-y, sqrt(x*x + z*z))) # 0〜pi/2 if button_a.is_pressed(): # 角度を表示する # 角度を出力 if pitch > 0: degree = 180 / (pi / pitch) else: degree = 0 display.show(str(degree)) if button_b.is_pressed(): # 高さを表示する height = tan(pitch) * distance display.show(str(height + desk_height))
ピッチの計算はこちらを参考にしました
python – micro:bit how to calculate pitch in range -Pi to Pi – Stack Overflow
ボタンを押す動きで角度がガクッと変わってしまったりと、測定はなかなか難しいです。もうちょっとしっかりmicro:bitが固定できるようにした方がいいかもしれません
一応、高さが測定できたのでよしとしましょう(^^;
[PR]