obniz(オブナイズ)は、センサーやモーターなどの電子部品を、インターネット上でかんたんに操作できるようにするシステムで、obniz OS(オブナイズ オーエス)、obniz Board(オブナイズ ボード)、obniz Cloud(オブナイズ クラウド)で構成
されている。obniz OSが搭載
されているマイコンボードobniz Boardに接続した電子部品は、インターネット上のobniz OSを経由してパソコンやスマートフォンから遠隔操作
ができる。これを使うと、IoT(Internet of Things、モノのインターネット)がかんたんにできるんだ。
『子供の科学』本誌では、obnizを使って家をスマートホーム(いろいろなものをインターネットにつないで遠隔操作できる家)にするための装置
をつくる連載
をしてきたよ。今回からは「スタプロ」のWeb連載として、引き続きスマートホームを実現する装置をつくっていくぞ。
これまでの連載は「obnizでつくろうスマートホーム!」旧サイトで公開しているよ。これまでにつくった装置のつくり方を解説しているので、まだ見たことがない人は見てみてね。Web連載は、本誌の連載の続きになっているので、基本的なことがわからなくなったら、本誌のバックナンバーを振り返ろう。
この連載では、「KoKa obnizスマートホームキット」が必要なので、持っていない人は「KoKa Shop!」で手に入れよう。プログラミングはスマートフォンを使うよ。親子でいっしょに取り組んでみてね。
前回は、スマートフォンでスイッチをONにする装置をつくったね。でも、ボタンを押したとき、モーターが同じ方向にしか回らないから、スイッチをONにしかできなかった。せっかくなら、スイッチを押すごとに、ON、OFFどちらにも切り替えられたらかっこいいよね! 今回は、前回のプログラムをバージョンアップしていくよ!
1 スイッチをOFFにするしくみを考える
スマートフォンの画面に表示された「スイッチ」ボタンをタップすると、サーボモーターが時計回りに回り、もう一度タップすると今度は反時計回りに回るようにしていくよ。そうすれば、スイッチをON、OFFどちらにも変えることができるね。
プログラミングはどのようにしたらいいだろう? 前回のプログラムの一部をいっしょに見てみよう。
「スイッチ」ボタンをタップしたら、サーボモーターが90°に回転するようになっているね。このままだと、90°になったら、何度ボタンをタップしても動かないよ。
もし、「サーボモーターが0°のとき」ボタンをタップしたら、サーボモーターが90°になり、逆に「サーボモーターが90°のとき」ボタンをタップしたら、サーボモーターが0°になるようにプログラミングできたら、うまくいきそうだよね。つまり、プログラムに「サーボモーターの状態
」を覚えておいてもらえばいいということだ。
こんなとき、プログラミングでは「変数」を使うんだ。
2 変数ってなに?
変数は「数」という字がついているから、数字だと思うかもしれないね。でも実際
は数字ではなくて、プログラム上で使う箱のようなものなんだ。その箱の中には、数字や文字を入れることができるよ。ただ、箱の中に何を入れるのかについてはルールがあるから、なんでも入れていいわけではないんだ。
また、箱には名前をつけることができる。今回つくるプログラムでは、箱(変数)に「サーボモーターの状態」という名前をつけているよ。その箱に数字を入れていくというプログラムをつくるよ。今はよくわからなくても、手を動かすうちにわかってくるから大丈夫! さっそくプログラミングしていこう!
3 OFFにするプログラムをつくる
それでは、スイッチをOFFにするためのプログラムをつくっていこう。
① 下の画像のようにブロックを組んでみよう。ここまでは前回と同じだから、忘れてしまった人は前回の記事を見てみてね!
② ツールボックスの三本線のアイコンをタップし、「変数の作成」をタップしよう。変数の名前を入力する画面がでてくるよ。“サーボモーターの状態”と入力して、「OK」をタップしよう。すると、変数のブロックが新しく表示されるよ。
③ 新しく表示された変数のブロックで「“サーボモーターの状態”に“ ”をセットする」をタップして、「“button”を“スイッチ”で作る」ブロックの下につなげよう。
④ ツールボックスの電卓
のアイコンをタップして、一番上にある数字のブロックを取り出し、「“サーボモーターの状態”に“ ”をセットする」ブロックの“ ”の中に入れよう。数字は0のままで大丈夫だよ。
⑤ ツールボックスの矢印が円を描
いているアイコンをタップして「ずっと実行」ブロックを取り出し、「“サーボモーターの状態”に“0”をセットする」ブロックの下につなげよう。
⑥ 2本の矢印が描かれたアイコンをタップして「もしも“true”実行」ブロックを取り出し、「ずっと実行」ブロックの中に入れる。また「“ ”かつ“ ”」ブロックも取り出し、「もしも“true”実行」ブロックの“true”の中に入れよう。
⑦ 再び2本の矢印が描かれたアイコンをタップして「“10” “=” “10”」ブロックを取り出し、「“ ”かつ“ ”」ブロックの左側に入れよう。また、三本線のアイコンをタップして「サーボモーターの状態」ブロックを取り出し、「“10” “=” “10”」ブロックの左側に入れよう。右側の“10”は“0”に変更しよう。間の“=”はそのままで大丈夫だよ。
⑧ 次に、人差し指のアイコンをタップし、「“button”がクリックされた」ブロックを取り出して、「“ ”かつ“ ”」ブロックの右側に入れよう。
⑨ バイクのアイコンをタップして、「“servomotor”の角度を“0”度に設定する」ブロックを取り出し、「もしも~実行」ブロックの中に入れよう。
⑩ 三本線のアイコンをタップし、「“サーボモーターの状態”に“ ”をセットする」ブロックを取り出し、「“servomotor”の角度を“0”度に設定する」ブロックの下につけよう。
ツールボックスの電卓のアイコンをタップして、一番上にある数字のブロックを取り出し、「“サーボモーターの状態”に“ ”をセットする」ブロックの“ ”の中に入れよう。数字は“1”に変更してね。
⑪ ツールボックスの矢印が円を描いているアイコンをタップして、「“500”ms 待つ」ブロックを取り出し、「“サーボモーターの状態”に“1”をセットする」ブロックの下につなげよう。“500”をタップし、“1000”に書きかえよう。
⑫ 下の画像を参考に、続きのブロックを組んでみよう! これまで組んできたものと似ているけれど、「“サーボモーターの状態”に“ ”をセットする」ブロックに入れている数字と、サーボモーターの角度が違うよ。
これでプログラムは完成だよ。
4 変数の流れを見てみよう!
完成したプログラムを見ながら、変数の流れをチェックしてみよう。
まず、「ずっと~実行」ブロックのプログラムが始まる前に、「サーボモーターの状態」という名前の箱(変数)を用意し、その中に0を入れた。この「箱を用意すること」を「変数の宣言
」と呼び、「その中に初めて何かを入れること」を「初期化」と呼ぶよ。
この後からは、箱に入っている数字によってプログラムの動作が変化するよ。
最初は、箱の中にはもちろん0が入ったままだね。このときボタンをタップすると、上にある「もしも~実行」ブロックのプログラムが動き出すよ。サーボモーターが回転して0°になったら、箱の中の数字が0から1へ入れかわるんだ。
箱の中に1が入っているときにボタンをタップすると、下の「もしも~実行」プログラムが動き出す。サーボモーターが90°になったら、箱の中の数字が1から0へ入れかわるよ。この後はボタンをタップするごとに箱の中の数字が0になったり1になったりを繰り返すんだ。
サーボモーターの角度を直接
プログラムが覚えるわけではないけれど、0°になったら箱に1、90°になったら箱に0を入れることで、ちがう動きをさせることもかんたんにできるんだよ。
5 装置を使ってみよう!
まずは装置をスイッチに取り付けよう。テープなどを使ってしっかり固定してね。サーボモーターの貼り付け位置やテープでの固定方法を工夫して、押しやすさを調整してみてね。サーボホーンの大きさとスイッチのサイズが合わなかったり、スイッチが固かったりすると難
しいかもしれないので、いろいろなスイッチでためしてみてほしい。
電池ボックスをONにして、プログラムを実行してみよう。スマートフォンの画面に表示された「スイッチ」ボタンをタップすると、スイッチを押すことができる。もう一度「スイッチ」ボタンをタップすると、サーボモーターが逆方向に回転してスイッチを押すことができるね。これで、スイッチから離
れていても、スイッチのON、OFFをスマートフォンからかんたんに操作することができるよ!
どこのスイッチでも遊べるけれど、台所やお風呂、洗面所などの水回りは危険なので、設置しないでね。
装置を使うのをやめるときは、プログラム画面の右上にある「終了」をタップし、電池ボックスの電源を切ろう。長時間電源をONにしていると、obniz Boardとセンサーが熱くなっていることがあるから、しばらくして熱くなくなってからさわるようにしてね。
スイッチのオンオフだけじゃなくくて、ちがう使い方もできるかもしれないね。キミのアイディアも付け加えて、より便利な装置にしてみよう。
次回も、「おうちを便利にする装置」をつくっていくよ。お楽しみに!
(文/トボリ 写真/青柳敏史 イラスト/新保基恵)