端子の動作


マイクロビット(基板)の端には電気信号を直接観測できる端子(金色のランドパタン)が用意されていることが他にない特徴だ。

しかも、マイクロビットの開発環境(=プログラムを作り、動作を観測し、基板にプログラムを書き込むアプリ)にも、簡単に取り扱うしかけ(=関数)が用意されている。

そこで、まずは、その動作を観測してみたい!

fig.1 P0立ち上がり時間の観察。横軸は、時間[100[ns/div],、縦軸は、電圧1[V/div]
fig.1 P0立ち上がり時間の観察。横軸は、時間[100[ns/div],、縦軸は、電圧1[V/div]

この上に端子P0の電圧を観測した図を掲載する(端子名のPは、ポート/port「信号の出入口」というようなこと)。信号の立ち上がり(振幅が電圧の20%から80%になる)時間がだいたい40[ns]であることが見える。このように信号波形を見るものをかつて発振器で掃引していたことにちなみオシロ・スコープと呼ぶ。

このような信号は、MakeCode (MS社)を用いれば、次のようなプログラムで発生させることができる。

fig.2 方形波をP0から出力するプログラム例
fig.2 方形波をP0から出力するプログラムのMakeCodeによる記述例

茶色の積み木に表示される「デジタルで」とは、論理値をポート0から出力していることを示す。

  • 「1」は、論理値が「真(英語でtrue)」、電圧値は、電源電圧よりちょっと低い
  • 「0」は、論理値が「偽(英語でfalse)」、電圧値は、0Vよりちょっと高い

電源電圧は、

  • USBケーブルで5Vを供給するときは、3.3V、
  • 電池で動かす場合は、3[V]からじょじょに1.7[V]まで低くなっていく。
fig.3 方形波生成プログラムの動作状況観測
fig.3 方形波生成プログラムの動作状況観測

プログラムfig.2の作り出す波形の一周期は、126[ms]となったが、プログラムに記述された停止時間は100[ms]である。その差分の時間がその他積み木(コマンド)の処理時間と推定される。その他コマンドの動作状況はわからないが、当面は、

  • 「1、0」論理出力に各2[ms]、
  • 「ずっと」ループに22[ms]

とみなしておこう。

つぎに、論理入力に対する応答性も観測しておきたい。そのための信号源としては、

fig.4 論理ポートの応答性観測用の信号源プログラム
fig.4 論理ポートの応答性観測用の信号源プログラム

「0」の出力の後にも「一時停止」100[ms]を置く。「ずっと」ループの処理時間(推定値)より十分長く保つことで読みこぼさないようにするためである。

fig.5 論理ポートの応答性観測用の検出部プログラム
fig.5 論理ポートの応答性観測用の検出部プログラム

あらかじめ、信号源P0から検出ポートP2へ結線しておく。「ずっと」ループを用いて、検出ポートの論理を見て、それが1なら出力ポートP1に論理1を出し、そうでなければ論理0を出すというプログラムである。その結果の波形を下に示す。

fig.6 ポート応答性の観測
fig.6 ポート応答性の観測 青が信号源、赤が応答波形。遅延時間は6, 12, 18[ms]とばらつく

上段の赤線が応答波形である。信号源に対して6, 12, 18[ms]などとばらついて観測された。

 

以上の実験から

(1)読みこぼしのない応答を得るには、ポートへの

  • 入力信号周波数が5[Hz]程度まで

としておくことが良さそうである。


(2)応答時間は、

  • 応答時間は、6, 12, 18[ms]などとばらつく

ようなので、厳密なシーケンス(順序)を組むのは難しそうであるが、ゲームを作るうえでは面白い特徴となるのかもしれない。

 

(3)MakeCode(MS)の簡単に応用ができるという特徴を利用していきたい。上記の実験のように、

  • 信号源と検出部を同時に動かすプログラムを簡単につくれる。

(4)【注意事項】例えば、P0を出力ポートとしたら、P0は読まないほうが良いようだ。

 

(5)積み木(関数)の処理時間の見積もり(上記観測からの想像値ですが)

  • 一時停止:16[ms]
  • デジタル出力:2[ms]
  • ずっとループ:22[ms]

───本項は、ここまででおしまい 2021/05/25───

 

■このページでは「デジタルで出力」の積み木(関数)の動作を観察してみたが、茶色の積み木の仲間には、「アナログ出力」と書かれたものもあるので、次のページではそれを観察してみよう!

デジタルとアナログの出力関数
▲ここをたたいて、「アナログ出力」の動作を観察しに行こう!
コメント: 0