MESHアプリに標準で搭載されているタイマーブロックの「待つ」機能では、分と秒で待ち時間を設定するようになっているため、1秒未満の待ち時間を設定することができません。
その代わり、MESH SDKを使うと、ミリ秒単位で設定できるタイマーを作ることが可能です。
ミリ秒単位の待ち時間を設定できるタイマーの例
ここでは、あらかじめ作成されたカスタムブロックをインポートして使えるようにするための方法を説明します。プログラミング不要なので、お気軽にお試しください。
大まかな流れ
1.ブラウザで「MESH SDK」にログインして、カスタムブロック「タイマー(ミリ秒単位)」をインポートする 2.MESHアプリでアカウントにログインし、カスタムブロックを追加する 3.キャンバス上で「タイマー(ミリ秒単位)」を使う |
1.ブラウザで「MESH SDK」にログインして、カスタムブロック「タイマー(ミリ秒単位)」をインポートする
このステップでは、あらかじめ作成された「タイマー(ミリ秒単位)」のブロックをMESH SDKでインポートして、MESHアプリから読み込めるようにするための準備を行います。
1-1. MESH SDKのページにアクセスして、ログインします。
MESH SDK https://meshprj.com/sdk-jp/
以下のページの「MESH SDKを使う」をクリックします。
MESHアカウントをお持ちの方はサインインします。
アカウントをお持ち出ない方は「Create New Account」からアカウントを作成してください。
1-2. サインインしたら、カスタムブロックの管理画面で「Create New Block」の「+」ボタンをクリックします。
1-3. 編集画面の「Import」をクリックします。
1-4. インポート用のコードをコピーして貼り付けます。
「タイマー(ミリ秒単位)」のインポート用コード
{"formatVersion":"1.0","tagData":{"name":"タイマー(ミリ秒単位)","icon":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAAXNSR0IArs4c6QAACK9JREFUeF7tXfdrFE0YfmONHQsSOwoKtoAESyygqCiICIpRkERR7IrxL7H3hg30B7FhQ8WCGBMQBYmxK2pQY1fs7eNZvjnm5mbv9m6n7OoMSMzdzjszz/O2nZ19k1dVVfWHXLOGQJ4jwBr23sAJAnr16mV3Jv/Y6Hfu3HEE2OTcEWATfSJyBDgCLCNgeXhnAY4AywhYHt5ZgCPAMgKWh3cW4AiwjIDl4Z0FOAIsI2B5eGcBjgDLCFge3lmAI8AyApaHdxbgCAiHwIoVK5IELF++PJxAw71jbQErV66kP39SzxLEiYTIE/Djxw9au3atp5cisKL2M+X1u27x4sXUqFEjwzqefrjIEnD16lW6ePFiWveSLQFM2JAhQ6i4uDgSRESOgFu3btGJEyek4IS1AFHoyJEjacCAAVaJiBQBfhoNhPr06UPjxo1LAStIED516hTdvHnTF2ibMSMSBGSj9WHV1Y9kkAuSTTfrBKxZs4Z+/vyZsu5ly5ZRvXr1tOEhI6JBgwa0dOlSbWPKBFslQJZG9u7dm8aPH28EhDNnztCNGzeSxsrLy6Py8nIj42MQawTIwM9V62FFaLloL+4jMBe+mSTBCgEyt5NrIAwShIOos8wl5TqnIOOxa4wTECS/z2YBqgjAmKKsoUOH0uDBg7OZTtbXGidAJWAy0MJqrer5ZWLEKAHi4hDs4G/DNNWAyWJCWFLTrc8YAefOnaPr168n5jJw4EAaPnx4GOy9vqoJgMzKykq6fPlyYm79+/enMWPGhJ6r1TRUB1C6CNApVyTBiAUcPXqU7t27lxhbpUnrIlYkoVu3bjR58mTlVmCEAB4k1Tm2TgJWrVpFv3//1qI4xtLQjx8/0tatW7UtQicBohXMnj2bWrVqpdQKtFuASYCAjEr3ZiIWGCVgwoQJpPotTN0EP3r0iA4ePKjNgo0SoFo7TWioOIbqNWglYNu2bfThwwdt2mODgObNm9PcuXOVxQGtBOh2DzYIUB1njBEwbNgwGjRokDLNYYJMkHzt2jU6f/68Fks2RsCcOXOoZcuWsSTg06dPtHnz5ngToDp4mbQAnYHYmAU4AuTGb52AdEdRcvFXJohWOYZVAsS9llwAF/uoBIeXzSuKyjGMETBv3jxq1qxZEl6qtV91isgm+1cE4dGjR1NhYWGKkqskAQSDaNWtpqaGTp48Ge8sSJd2qgZbJm/16tX069ev+BGwfv16+vbtm5aJmwBelurieDuOuatqWmPAy5cvac+ePX8VAVOnTqXOnTurwl//yTjex8+aNYtat26tbPImBGEzEZuKrKnMgCBTqwWId5BxjAO695q0E3Do0CF6+PChNg3SbQU8AZ06daKSkhKlQ2onQLQC1UFMKRqCsHXr1tH379+1Ko9xAuLkhnS7HyMxQJbKqT6aosMKxOPzKo5RyuZpxAJkwXjatGnUsWNHHdiFlimmzzqt1hgBccqITLgepiVGCaioqKArV64kaajqvDqs+ovg4zVWvM6qqxklQGYFOs07W9BsvCVjnICokmADfKNZkKiNthYsswqbc7FiAbLUlH02c+ZMatOmTbbeI6fr3717Rzt27EjpazIuWSXAzx3hBW28sqqziXv8bCyT4Ft1QTy4fk/FmjZtSvPnz1fKw6ZNm+jz589SmabBjwwBmMjevXuprq7OF+yFCxdSfn5+TmR8/fqVNmzY4Nu3bdu2VFZWlpPssJ2su6AgwVm8pqCggEaNGkX4KWvPnz8nvBSIn5maDa3n5xQ5AjC5169f065duzJhF+r7GTNmUPv27UPJUNE5kgSwhfHlylQsFjKWLFlCDRs2VCUutJxIE8CvDiVtEED5/fkgq8fzBwRylKKJYosNAX7gvXnzht6+fet9jefNpu4hVJEZewJUAWFLjiPAFvL/j+sI4AjA/QJ/r7F//37v3iRIIahnz55Rhw4dEtIQs+7fv089e/ZMKr32+PFj6tq1a+K6yBPw4sULL5/HudKglVVQGmHixIkpuo3HjHw5Mpza27JlS1LNOjylYycftm/fTjiYG4QAXrZYgQt39OzMqjiHyBMgLgaoIqOZPn06tWvXTupAxEWyi2SfHzt2jFCYaefOnQlynj596h2YwjvCIABaPHbsWKpfv750PJyeQMoMclHuBsfusZcFhUHWhiOajHjMAZnZokWLPFmRJ0BcMTIegMWarMBeNgTIyEF/kAvwQMCIESO8l/T8ivnx492+fdsrPMtfK86H/z12BASJmUEJwNuPFy5ckIoEgLwLgkxorVh7GqemUQOPAQ55kMt+P378uKflIiHMQiJPAO+CioqKPG3M1IISwOTADd29e9cDCScisDEoErBv3z4vFolWgCJUvHUwArB5yDYAFyxYkBTcMT/UokP96sgTAJBQcQUvSNTW1iZhH8Ql8B3SEcNfh+Le+CcGYVl/piCiBeAIO2IDa3jQxA4mo0+TJk28O/RYECBqPNLF3bt3+5YMyMYCTp8+TdXV1SnEYjPw/fv33uc4kg4L8Is3fJYjuiD0x1yxwcgHYnyO3yNNADILVRtnBw4coCdPnqSAyMhiP9mYzH3AleC7vn37epmQ2PBkDUWd/GKAX5CHNcAqIk2AmIKi3AGK/WXb8AQMb7qj4BL/tv7GjRu9myTk6Jnck5+7Q6qKE+DpCEB55LNnzyZZAIoA9uvXL9oEMKARAw4fPkyvXr1KYN+iRQtC+YNMDTuoX758IRwthyvxa0H8e5C+zAXhWtRHQtxCoMZTt9LSUk9E7NNQdi+Qqcg2syAExEyujIGCO2Pk/qxlGoMBClfVuHFjL61FGopdWezUonXv3p0mTZrk/R8uDsGZyY20C8qk3Sq/h89nqSP+lkCPHj0Ciz9y5Ag9ePDAA1UWhHlBILpLly40ZcoU72NHQGCY018IYLFndOnSpaQbMbFX7PaCFOETWTHOAixTk0KA5fn8s8PnVVVVpf5Jun8WDvML/w9smHebirv59gAAAABJRU5ErkJggg==","description":"タイマーブロックの「待つ」をミリ秒単位で指定できるようにしたものです。","functions":[{"id":"function_0","name":"待つ","connector":{"inputs":[{"label":""}],"outputs":[{"label":""}]},"properties":[{"name":"時間(ミリ秒)※1秒=1000","referenceName":"waitTime","type":"number","defaultValue":"200"}],"extension":{"initialize":"","receive":"","execute":"async function wait() {\n await new Promise(resolve => setTimeout(resolve,properties.waitTime));\n return ;\n}\n\nwait().then(function() {\n\tcallbackSuccess( {\n\t\tresultType : \"continue\"\n\t} );\n});\n\nreturn {\n resultType : \"pause\"\n};","result":""}}]}}
※ 上記コードのコピーがうまくいかない方は、以下のテキストファイルを開いてコピーしてから貼り付けてください。
コピーしたインポート用コードを以下のエリアに貼り付けます。
貼り付けたら「Load JSON」をクリックします。
以下のような表示が出た場合は「OK」を押してください。
1-5. 正しく読み込まれると、以下のような画面になります。「Save *」をクリックしてください。
1-6. 正しく保存されると「Save *」から「Save」に表記が変わります。 保存された後は、右上の「×」ボタンをクリックして編集画面を閉じてください。
1-7. カスタムブロックの一覧にインポートしたブロックが追加されます。ここでMESH SDK画面での作業は完了です。
2.MESHアプリでアカウントにログインし、カスタムブロックを追加する
ここからは、MESHアプリで操作を行います。
2-1. MESHアプリのキャンバス画面右上のメニューから「アカウント」を選択します。
2-2. 「MESH SDK」で使用したものと同じアカウントでログインします。
2-3. サインインすると、右側のブロックリストの一番下に「カスタム」が表示されます。「[+]追加」を選択します。
2-4. 「MESH SDK」でインポートしておいた「タイマー(ミリ秒単位)」が表示されるので選択します。
2-5. 以下のように追加されれば、使える状態になっています。
3.キャンバス上で「タイマー(ミリ秒単位)」を使う
カスタムブロックを読み込んだ後は、他のブロックと同じように使うことができます。
3-1. キャンバス上に読み込んだ「タイマー(ミリ秒単位)」をドラッグ&ドロップします。
3-2. タイマーの待ち時間をミリ秒単位で設定します。
※MESHアプリの動作スピードにより、あまり短い時間を設定しても差がでない場合があります。
3-3. レシピを作成します。
例えば、GPIOの電源出力をオンにしてから0.2秒でオフにするといった、1秒未満の待ち時間でタイマーを動作させることが可能です。
もっと詳しく知りたい方は
MESH SDKのリファレンスマニュアルをご参照ください。
https://meshprj.com/sdk/doc/ja/
書籍「MESHをはじめよう」でもMESH SDKの詳細を解説しています。
https://www.oreilly.co.jp/books/9784873118536/