
先日ピョンキーを使って高さを測るプログラムを作りましたが、今回は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]




