micro:bitで高さを測る

micro:bitで高さを測る

先日ピョンキーを使って高さを測るプログラムを作りましたが、今回はmicro:bitで同じことをやってみました

【既存の教科でプログラミング27】三角関数で高さを測る(ピョンキー)
iPadアプリのピョンキーを使った高さを測るプログラムです。ピョンキーだとiPadの傾きの値が取得できるので、三角関数を使えば高さが求められます 試しに自宅の天井の高さを測ってみましたが、実測データとほぼ同じ結果がでました あらかじめ、対象...

iPadに比べてmicro:bitは軽くて小さいので、LEGOを使って固定することにしました。「高さ測定マシーン」です

 micro:bitで高さを測る

角度の調整部分はLEGO WeDoのパーツを使用

micro:bitで高さを測る

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]
タイトルとURLをコピーしました