micro:bitで矩形波を出力してみる(その1:MakeCodeエディター)

折角オシロスコープを買ったので、
micro:bit矩形波を出力してみましょう。
stacked-tip.hateblo.jp

micro:bitは組込み現場で役に立つの?
もう少し具体的に言うと、
少なくともミリ秒(ms)レベルの制御をmicro:bitは可能なのか?
という検証も兼ねています。

まずはブロックでプログラミングをしてみました。
f:id:stacked-tip:20190928212539p:plain:w400
100ms周期でP0ピンをパタパタしているので、5Hzの矩形波が出力されているはずです。

結果はこちら。
f:id:stacked-tip:20190928205740j:plain:w400
f:id:stacked-tip:20190928205811j:plain:w400

立ち上がり後は102msの間隔で、まぁそんなものなのかな、という感じですが、
立ち下がり後は126msの間隔で、既に26%のずれ…これはいけませんネ。

続いてこちらのプログラミング。
f:id:stacked-tip:20190928212648p:plain:w400
0.5ms周期のパタパタなので、プログラミング上では1kHzの矩形波…ですが。

f:id:stacked-tip:20190928210403j:plain:w400
f:id:stacked-tip:20190928210601j:plain:w400

立ち上がり後は6msって、これがmicro:bitの限界なのかな(少なくともブロックプログラミングでは)。
立ち下がり後は30ms?メインループ終了後になんか重い処理が入っているのでしょうか。
そう言えば、最初の5Hzの時も、立ち下がり後に26msの遅延がありましたね。
ここにきっと何かの制御が入っているのでしょう。

というわけで、少なくともブロックプログラミングでmicro:bitを制御するのでは、
組込み現場では使い物にならなそうだということが分かりました。

シリアル通信(UART)をする程度なら使えるのかも知れませんね、今回は試していませんけど。


続き
今度はPythonエディターでやってみました。
stacked-tip.hateblo.jp