ブロックをずっと動かすには

ブロックプログラムは上から下に1つずつ実行されていきます。

ということは、一番下まで行くと終わってしまいます。

今回は終わらせずにずっとプログラムを動かす方法を紹介します。

ずっと動くと何がいいのか。

例えば、ボタンが押されるまで待ったり、カメラに人間が映るまで待ったりなど、何かを「待つ」ときにループを使います。
つまり、「ループを使って起きるまでずっと繰り返しチェックする」ということになります。

繰り返し

ブロックの中には「画面に文字を出す」など何かをするブロックの他に、ブロックの動きを決めるためのブロックがあります。「ループ」もその1つです。

「ループ」にあるブロックはブロックの中にブロックを入れることができます。

入れたらどうなるかというと、入れたブロックも同じように上から実行されますが、一番下まで行くとまたループの上まで戻ってもう一度実行されます。

前回まで作っていたobnizにつないだあとにコンソールに文字が出るブロックにループを入れてみましょう。

ループの中を見るといくつかのループがあります。今回は「ずっと 実行」と書かれているものを使います。
これが中に入れたブロックを繰り返しずっと実行するというブロックです。

これをobnizにつながったあとに入れて、その中にコンソールに文字を表示するものを入れてみます。
こうすれば、ずっと画面に文字が出続けます。

<!-- Block Program Example -->
<xml xmlns="http://www.w3.org/1999/xhtml">
  <variables>
    <variable type="obniz" id="X2:3=S(hsdv0mk{aavHW">obniz</variable>
    <variable type="UIButton" id="80uQ37Yg!_RM@zbm[`cF">button</variable>
    <variable type="UIButton" id="#7$4fAkr(P%;.%JaKIy`">backbutton</variable>
    <variable type="UIButton" id="akidXEU*0XQ}VT^!o6Sp">rightbutton</variable>
    <variable type="UIButton" id="KBvD*sLV+fD7(ieEkq5x">leftbutton</variable>
    <variable type="" id="hpvY$6K[tgY$$/L_8%xc">count</variable>
    <variable type="dcmotor" id="V?6USN(jVhQ,P{82]/*M">dcmotor</variable>
    <variable type="airobotkit" id="Jk=/mw~HxfZs@VDVmFYY">airobotkit</variable>
    <variable type="led" id="!MAt1@Dsy)#f.p,K@;=%">led</variable>
  </variables>
  <block type="obniz_connect" id="Z8!^LPO*[5?q{e*57()u" x="154" y="225">
    <field name="obniz" id="X2:3=S(hsdv0mk{aavHW" variabletype="obniz">obniz</field>
    <value name="obniz_id">
      <shadow type="text" id="XmI_$os3vVOeQ~scg106">
        <field name="TEXT">OBNIZ_ID_HERE</field>
      </shadow>
    </value>
    <next>
      <block type="obniz_util_repeat" id="p0}Pg~s6Ds*c4`8cB]0`">
        <statement name="DO">
          <block type="obniz_debug_text" id="e+()Yb@2p51R(`z-n?)x">
            <value name="text">
              <shadow type="text" id="1dT(c-7Cr9sl;{nI,z9J">
                <field name="TEXT">つながった</field>
              </shadow>
            </value>
          </block>
        </statement>
      </block>
    </next>
  </block>
</xml>

そして、実行するとこの下にある画像のようにobnizにつながったあとプログラムの画面上に”つながった”という文字が大量に表示されると思います。

これで、プログラムを終わらせずにずっと動かすことに成功しました!

ループの種類

「ループ」の中には 「ずっと実行」以外にもブロックがあります。例えば、これはある回数だけループするというブロックです。10なら10回だけ実行します

このループはある条件が揃ってるときだけループするというブロックです。

そして、こちらはループではないのですが、ある時間だけ待つブロックになります。
ループというのはずっと繰り返すことになるので、スマホやPCにとってとても負担が大きいのです。
何もしない時間を与えて休ませることでバッテリーの消費を防ぐことができます。
待ち時間が入ってもよいのであれば、このブロックを繰り返しの中に入れるとバッテリーにとって良いです。



Next : Integrate with UI Button

You will Get in Few Days

Circuit for Starter “obniz Board” is available on Amazon and other online stores.
You can get it at below

Our products and resellers

Forum

Visit our developer’s forum to discuss and discover technologies.

Forum

Contact

Feel free to contact out support and technical team.

Contact us