ボタンを追加してラジコンにする

ただ前に進むだけでは退屈です。
ボタンを増やして回転なども出来るようにして、遠隔ラジコンにしちゃいましょう。

ボタンの追加

UIボタンは2つ以上増やせます。押したらバックするバックボタンを作ってみましょう。

ただ、2つ以上あるボタンをどうやって区別するのでしょうか。
ボタン1とかボタン2とか?

ブロックプログラムではボタン1つ1つに名前をつけて、名前で区別します。
ボタンを名前付きで作って、押されているかどうかの確認も「ボタン○○は押されてる?」というチェックをします。

ボタンの増やし方は簡単です。UIから「UIButtonの追加」を押します。

すると名前を聞かれます。
ボタンを作るよりも先に、ボタンにつけるための名前を設定することになります。(ボタンは変数として管理されるので、変数の名前を決めることになります。)

半角英数で、適当な名前をつけます。前に進むの逆でバックしたいので、「backbutton」という名前にします。それでOKを押します。

OKを押しても画面上は何も変わりません。ただ、使える名前を増やしただけです。

しかし、「buttonを"text"で作る」をもう1つブロックプログラムに入れて、その"button"というところを選ぶとさっき作った"backbutton"というのがでてきますので、これを選ぶことでこのボタンは"backbutton"という名前で作られます。

それでは、これが押されていたらバックするようにしましょう。

ループにある「もしも」の条件を増やすことができます。
もしもの左下にプラスボタンがあります。これを押すことでもう1つ別の条件を追加できます。

ここにUIから「buttonが押されている」をもう1つ持ってきて追加します。
そして、"button"を選んで"backbutton"に変えます。
この中に「キット」から「airobotkitを動かす」を持ってきて、動く方向を"前へ"でなく、"後ろへ"に切り替えます。

これで"button"が押されていた時に実行したいブロック と "backbutton"が押されていた時に実行したいブロック と どっちも押されてなかった時に実行したいブロック の3つを用意することができました。このようになります

実行すればこのようにボタンが2つ出てきます。
そして、すすむ を押せばロボットは進みますし、もどる を押せばバックすると思います。

ボタン4つ

回転もできるようにしましょう。
同じやりかたであと2つボタンを追加します。
そして、それぞれ押された時に回転するようにします。
「キット」には「airobotkitが右へ向く」という回転させるためのブロックがあります。
ボタンが押されたらこれを使って回転するようにしてみましょう。

完成した前後ろ左右回転もできるラジコンプログラムはこのようになります。

<!-- 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="136" y="171">
    <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_ui_button" id="t}@u;.=bM)6,N)j}ki4S">
        <field name="button" id="80uQ37Yg!_RM@zbm[`cF" variabletype="UIButton">button</field>
        <value name="text">
          <shadow type="text" id="g57s3SjWs[b]]60wJgGk">
            <field name="TEXT">すすむ</field>
          </shadow>
        </value>
        <next>
          <block type="obniz_ui_button" id="67yj]U1r`QJT[X=OrlGo">
            <field name="button" id="#7$4fAkr(P%;.%JaKIy`" variabletype="UIButton">backbutton</field>
            <value name="text">
              <shadow type="text" id="itx$C/*1(}Bn`lbA3SF2">
                <field name="TEXT">もどる</field>
              </shadow>
            </value>
            <next>
              <block type="obniz_ui_button" id="CGBnSvHE^-bGXLz#LjJh">
                <field name="button" id="akidXEU*0XQ}VT^!o6Sp" variabletype="UIButton">rightbutton</field>
                <value name="text">
                  <shadow type="text" id="mi7BYKS:ZR)UF/rudB*k">
                    <field name="TEXT">右回転</field>
                  </shadow>
                </value>
                <next>
                  <block type="obniz_ui_button" id="GWp5$H](-b=Vs%hi$B#_">
                    <field name="button" id="KBvD*sLV+fD7(ieEkq5x" variabletype="UIButton">leftbutton</field>
                    <value name="text">
                      <shadow type="text" id="K*~}5XYcH.6=_l(HZOk1">
                        <field name="TEXT">左回転</field>
                      </shadow>
                    </value>
                    <next>
                      <block type="obniz_parts_airobotkit_wired" id="Z|2}f3PXkYzz)24$KZ.9">
                        <field name="obniz" id="X2:3=S(hsdv0mk{aavHW" variabletype="obniz">obniz</field>
                        <field name="AIRobotKit" id="Jk=/mw~HxfZs@VDVmFYY" variabletype="airobotkit">airobotkit</field>
                        <next>
                          <block type="obniz_util_repeat" id="9lu9Z1ZCks18R6J`^jq{">
                            <statement name="DO">
                              <block type="controls_if" id="!/V})r$xUelMg[uMK;8V">
                                <mutation elseif="3" else="1"></mutation>
                                <value name="IF0">
                                  <shadow type="logic_boolean" id="~/Y]V0sB63NH2A2~}:!]">
                                    <field name="BOOL">TRUE</field>
                                  </shadow>
                                  <block type="obniz_ui_button_touch" id="*U%m1n}Yr,`jJJAz1--E">
                                    <field name="button" id="80uQ37Yg!_RM@zbm[`cF" variabletype="UIButton">button</field>
                                  </block>
                                </value>
                                <statement name="DO0">
                                  <block type="obniz_parts_airobotkit_move" id="AZaTXh2n)kwU4AN:A,MZ">
                                    <field name="AIRobotKit" id="Jk=/mw~HxfZs@VDVmFYY" variabletype="airobotkit">airobotkit</field>
                                    <field name="flag">forward</field>
                                  </block>
                                </statement>
                                <value name="IF1">
                                  <block type="obniz_ui_button_touch" id="XZ98/BaiTd[3++!X13IV">
                                    <field name="button" id="#7$4fAkr(P%;.%JaKIy`" variabletype="UIButton">backbutton</field>
                                  </block>
                                </value>
                                <statement name="DO1">
                                  <block type="obniz_parts_airobotkit_move" id="YmqKU^F8fy,R6u=jPe*N">
                                    <field name="AIRobotKit" id="Jk=/mw~HxfZs@VDVmFYY" variabletype="airobotkit">airobotkit</field>
                                    <field name="flag">back</field>
                                  </block>
                                </statement>
                                <value name="IF2">
                                  <block type="obniz_ui_button_touch" id="^ZquM-yLCcOC^iW)O)@r">
                                    <field name="button" id="KBvD*sLV+fD7(ieEkq5x" variabletype="UIButton">leftbutton</field>
                                  </block>
                                </value>
                                <statement name="DO2">
                                  <block type="obniz_parts_airobotkit_turn" id="7|YXKR(Vv?}0n=sU!v*.">
                                    <field name="AIRobotKit" id="Jk=/mw~HxfZs@VDVmFYY" variabletype="airobotkit">airobotkit</field>
                                    <field name="flag">left</field>
                                  </block>
                                </statement>
                                <value name="IF3">
                                  <block type="obniz_ui_button_touch" id="NkLwa;2A^brZM@,P/B({">
                                    <field name="button" id="akidXEU*0XQ}VT^!o6Sp" variabletype="UIButton">rightbutton</field>
                                  </block>
                                </value>
                                <statement name="DO3">
                                  <block type="obniz_parts_airobotkit_turn" id="1!dh+o40!@+^R(g1@!eF">
                                    <field name="AIRobotKit" id="Jk=/mw~HxfZs@VDVmFYY" variabletype="airobotkit">airobotkit</field>
                                    <field name="flag">right</field>
                                  </block>
                                </statement>
                                <statement name="ELSE">
                                  <block type="obniz_parts_airobotkit_stop" id="GX@x*CB7znMZ;)MLNky]">
                                    <field name="AIRobotKit" id="Jk=/mw~HxfZs@VDVmFYY" variabletype="airobotkit">airobotkit</field>
                                  </block>
                                </statement>
                              </block>
                            </statement>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </next>
      </block>
    </next>
  </block>
</xml>

プログラムしている動画も用意していますので、ブロックの場所ややり方を確認したい場合は見てみて下さい。

このプログラムを実行すると画面に4つのボタンが出てきます。

押すことでロボットを遠隔操作してみましょう!



Next : Talk

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