マイクロビットのコンパス機能と磁石を使ってマジックにチャレンジしてみましょう。
予め磁石を2つ用意しAとBと分かるようにします。次にマイクロビットのコンパス機能を使い最初にAボタンにAの磁石をくっつけ、BボタンにBの磁石をくっつけて、ボタンを押すとAとBがそれぞれ表示されます。次にAボタンにBの磁石を、BボタンにA磁石を入れ替えることで、LEDに表示される文字は当初のAとBが反転します。ただし他の人に見せるなら磁石のことは黙って、指などの合図で切り替わったように見せるとマジックと思われます。もう少し工夫するのであれば、磁石を指に両面テープで固定して相手から見えないようにすれば、なお驚かれるかもしれません。
下記URLの動画を参考にしてください。
種明かしはこれから入力していくコードの中に隠されています。マイクロビットが磁石のSとN極を読み込んでAとBを表示するので、種明かしをしらない人にとったらAとBが入れ替わる現象がトリックに映るでしょう。
マイクロビットと、指に隠れるサイズの磁石が有れば理想ですが、磁石を付箋紙か何かで隠して、あとは言葉巧みに磁石とばれなければOKです。
種明かしのコーディングする前に、ボタンAを押すと「A」が表示され、ボタンBを押すと「B」と表示されるように、ボタンが正しく動作するようにする必要があります。
磁石のプラスとマイナスを検出するのにマイクロビットのコンパス機能を使います。このコンパスは地球の磁場を検出することができので、磁石を検出することもできるのです。設定としてmagneticとset force toブロックを使って磁力の大きさを変数として指定します。
これで、マイクロビットの近くの磁力を測定することができるようになりました。磁石があると大きな値を示すので100と設定します。
磁石にはSとN極があります。マイクロビットでは上でも記載しているように、磁場を検出する機能があるので、ソース上でA又はBの一方を(100)、もう一方を(-100)の値にすることで、SとN極を判別することができます。ここでは磁場の強度が100であるかどうかだけを確認するので、SかNかは問いません。Mathブロックからabsolute ofを選択して、数字の値だけを習得するようにします。
以下のコードでは、磁場強度の絶対値が100を超えているかどうかをチェックし、その結果をisSwitchedという新しい変数に保存します。
<pそのため、以下のコードでは、磁界強度の読み取り値の絶対値が100以上であるかどうかを確認し、その確認結果をisswitchedという新しい変数に保存します。 <a=”” href=”https://osoyoo.com/wp-content/uploads/2018/09/4-3.png”>
上で作成したプログラムは近くに磁石があるかどうかを一回だけ確認します。そこでforeverをソースに含めることで、常に磁石があるかどうかを確認するようになります。またプログラムの起動時にisSwitchedがfalseに設定されていることを確認する必要があります。
変数isSwitchedの値をチェックすることにより、磁石のSとN極を読みとります。あとはマジックのAとBボタンの入れ替わりの仕組みを組み込めば完成です。if then elseの各ブロックに、isSwitchedが等しい、等しくない場合の動作を組み込むことで、AとBボタンが入れ替わるように制御します。
プログラム全体のリンク:https://makecode.microbit.org/_Lc4b87PtL9ih
誰かにマジックを披露するまえの下準備は完了しましたが、それだけでは不十分なので、何回かは事前に練習してみてください。例えば、自分自身がマジックを実行するときは磁石を使ってAとBが切り替わることを披露した上で、相手には磁石の代替品(磁場が発生しない)で実行させるや、指さきに磁石を固定して人に見えないようにしてAとBの表示ラベルを共通で使うなど工夫を凝らしてみてください。
マイクロビットは電子部品であり、実行する際はコンパス機能を確認の上実行してください。もし忘れて実行した場合、マジックが失敗するかもしれません。 calibrated
このプロジェクトは、BrianとJasmine Norman、別名@MicroMonstersUKによって提供されております。より多くのサンプルはYouTubeのMicroMonstersで確認することができます。MicroMonsters
</pそのため、以下のコードでは、磁界強度の読み取り値の絶対値が100以上であるかどうかを確認し、その確認結果をisswitchedという新しい変数に保存します。
DownLoad Url osoyoo.com