距離センサーを使う

このキットには距離センサーがついています。
ミリメートルレベルで、障害物があるかどうかを検出できます。

これを使うことで、人がいるかどうかの検知などに利用できます。
今回は近くにあれば旗を揚げるという簡単なプログラムをしてみましょう。

距離センサ

距離センサーはホームキットの前にある黒い目のようなものです。
常に前にある物体までの距離を測っています。

その距離を3段階に分けて、今間近にものがあるのか、それとも近くにあるのか、それとも遠くにあるのかを調べられるブロックがこれです。

これともしもブロックを使えば、近くにあるときはこれをして、そうじゃなかったらあれをして というプログラムをすることができます。

プログラム

プログラムはとても簡単です。
obnizに繋がり、iothomekitに接続ブロックをおいたらループします。

ループの中でもしもブロックとさっきの距離を調べるブロックを使って「間近」にものがあるかどうかを調べます。

間近にあれば旗を上げ、そうじゃなければ下げるように設定します。

<!-- 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_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 else="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_parts_iothomekit_proximity" id="_wv#hAcGjht-U@73mzeZ">
                    <field name="IoTHomeKit" id="hion2sTZs?@3_c=KyM[5" variabletype="iothomekit">iothomekit</field>
                    <field name="flag">immidiate</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>
                <statement name="ELSE">
                  <block type="obniz_parts_iothomekit_flag" id="UlC6#cFO+60sgyq5Oceq">
                    <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>
</xml>

このプログラムを実行すればこのように手を近づけると旗が上がって、離すと旗を下げるような動きになります。

発展

ブロックの中には距離をミリメートルの数字として取得できるブロックもあります。

このブロックは今の距離センサーで測った距離の値が数字として入っています。
これと、数字を比べるブロックを使えば自分が好きな距離で反応するようにプログラムすることもできます。

挑戦してみて下さい。



Next : Change text on Web

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