ボタンを2つ用意する

旗をボタンで上げられたら、ボタンで下げたいものです。

ボタンを2つ追加して、上げるボタン、下げるボタンにしてみましょう。

ボタンの追加

UIボタンは2つ以上増やせます。

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

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

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

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

半角英数で、適当な名前をつけます。旗を下げるボタンを作るので「flagdown」にします。

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

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

それでは、これが押されていたら旗を下げるようにしましょう。

ループでの確認

最終的なプログラムはこのようになります。

<!-- 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="UIButton" id="=ug=$DV-jzFr2PH9Q@`4">flagdown</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>
    <variable type="iothomekit" id="hion2sTZs?@3_c=KyM[5">iothomekit</variable>
  </variables>
  <block type="obniz_connect" id="HDp1mlcGAj5s`;!=llnb" x="135" y="63">
    <field name="obniz" id="X2:3=S(hsdv0mk{aavHW" variabletype="obniz">obniz</field>
    <value name="obniz_id">
      <shadow type="text" id="5TP31WDvYyD%Gwf+wL1.">
        <field name="TEXT">OBNIZ_ID_HERE</field>
      </shadow>
    </value>
    <next>
      <block type="obniz_ui_button" id="^(|7r(!*^4c-^bw)p5z}">
        <field name="button" id="80uQ37Yg!_RM@zbm[`cF" variabletype="UIButton">button</field>
        <value name="text">
          <shadow type="text" id="Jn2s4Gj4kW1^`E/G+eVm">
            <field name="TEXT">あげる</field>
          </shadow>
        </value>
        <next>
          <block type="obniz_ui_button" id="p*#sxyGkUa*~DU)OsI$f">
            <field name="button" id="=ug=$DV-jzFr2PH9Q@`4" variabletype="UIButton">flagdown</field>
            <value name="text">
              <shadow type="text" id="/Mi?fu{%V8L2%{~2?L.}">
                <field name="TEXT">さげる</field>
              </shadow>
            </value>
            <next>
              <block type="obniz_parts_iothomekit_wired" id="lCCqbv}35^vCE+iF(FBu">
                <field name="obniz" id="X2:3=S(hsdv0mk{aavHW" variabletype="obniz">obniz</field>
                <field name="IoTHomeKit" id="hion2sTZs?@3_c=KyM[5" variabletype="iothomekit">iothomekit</field>
                <next>
                  <block type="obniz_util_repeat" id="@z_O1F`ymhWnHUw$zLQI">
                    <statement name="DO">
                      <block type="controls_if" id="m?i:%NagP%kg:v/t|a?h">
                        <mutation elseif="1"></mutation>
                        <value name="IF0">
                          <shadow type="logic_boolean" id="V!K_}YIt~iYoGYkM(x:t">
                            <field name="BOOL">TRUE</field>
                          </shadow>
                          <block type="obniz_ui_button_click" id="zCEi|m@@HOTGU7YEcAgx">
                            <field name="button" id="80uQ37Yg!_RM@zbm[`cF" variabletype="UIButton">button</field>
                          </block>
                        </value>
                        <statement name="DO0">
                          <block type="obniz_parts_iothomekit_flag" id="4g$n8/:v{iRBcrqb;hc$">
                            <field name="IoTHomeKit" id="hion2sTZs?@3_c=KyM[5" variabletype="iothomekit">iothomekit</field>
                            <field name="flag">up</field>
                          </block>
                        </statement>
                        <value name="IF1">
                          <block type="obniz_ui_button_click" id="3^[xgc_)ApFo/@_7[Ans">
                            <field name="button" id="=ug=$DV-jzFr2PH9Q@`4" variabletype="UIButton">flagdown</field>
                          </block>
                        </value>
                        <statement name="DO1">
                          <block type="obniz_parts_iothomekit_flag" id="abS.p7$6_@aTwvb9R$8H">
                            <field name="IoTHomeKit" id="hion2sTZs?@3_c=KyM[5" variabletype="iothomekit">iothomekit</field>
                            <field name="flag">down</field>
                          </block>
                        </statement>
                      </block>
                    </statement>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </next>
      </block>
    </next>
  </block>
</xml>

ボタンを2つ作ってループでずっとボタンがクリックされたかを「もしも」ブロックで確認します。

button ボタンがクリックされたら旗を揚げるようにします。

そして flagdown ボタンがクリックされたときには逆に旗を下げるようにします。

これを実行してボタンを押すことでこのように旗の上げ下げができるようになります!



Next : Use a distance sensor

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