このブログを検索

2016年5月26日木曜日

Scratch2.0 オフラインエディタとNekoboard(Picoboard)についての問題点(その2)

オリジナル
前の記事でScratch2.0のオフラインエディタのバグの話を書いたが、とりあえずの回避方法を書いておく。
といってもそれほど特別なことではなく、センサーの数値を利用する方法。

たとえば、nekoboard(picoboard)の抵抗値ポートA~Dは、抵抗値無限大(つまりポートがつながっていない)の場合に100、抵抗値ゼロ(ショート状態)で0の値を吐く。
代替案
そこで、右図のオリジナルのような「Aがつながれた」を、代替案のように「抵抗Aセンサーの値が0になった」と読み替えてスクリプトを組むことで、とりあえずポートの状態を読むことが出来る。

なお、代替案ではセンサーの値が5以下と設定しているが、理屈上は1以下でいい。これはリード線の持つ抵抗値や、ちょっとしたノイズの飛び込みに備えて変動マージンをみている。

同じ理由で、センサーの値が100、あるいは0をポートがつながっていない状態、ショートしている状態と単純に考えて、等号(=)でつなぐことはおすすめしない。
ほんのちょっとしたノイズで読み出し数値は暴れるので、95以上でつながっていない状態、5以下でショート状態などと余裕を持って設定する方がいい。

残念ながらこの方法ではボタンの挙動だけは拾うことが出来ないので完全な解決策ではないが、お困りの方の参考になれば。