クリエイター手抜きプロジェクト[605]IoT HaloCode編 キッチンタイマーを作る(1)/古籏一浩

投稿:  著者:  読了時間:7分(本文:約3,000文字)



今回は、makeblock社から販売されているHaloCodeを使って、簡単なタイマーを作ります。ここで作成するのは、よくあるキッチンタイマーです。

HaloCodeは円形で、円周にそってLEDが12個配置されており、タイマーにはもってこいです。最初にLEDを全部点灯させておき、5秒ごとに消灯していけば、1分のタイマーができあがります。消灯間隔を15秒にすれば、3分のタイマーになります。





まずは、1秒ごとにLEDを消していくプログラムを作成します。HaloCodeの中央にあるボタンが押されたらLEDを全部点灯し、そこから1秒ごとにカウントダウンしていきます。

最初にボタンが押されたらタイマーの処理を開始するようにします。これはイベントのカテゴリにある「ボタンが押されたとき」のブロックを配置します。

次にLEDを全点灯させるので、LEDライトのカテゴリから「すべてのLEDを( )色で点灯する」ブロックを、「ボタンが押されたとき」のブロックにくっつけます(以後同じ)。

( )の部分をクリックすると、LEDに表示する色を指定できます。次に制御のカテゴリにある「(1)秒待つ」ブロックを配置します。これで1秒待つことになります。1秒待ったらLEDを1つ消します。LEDライトのカテゴリにある「LED(1)を消灯する」ブロックを配置します。

あとは「(1)秒待つ」ブロックと、「LED(1)を消灯する」ブロックを11個、
合計12個配置します。配置したら「LED(1)を消灯する」の1の数字を、上か
ら順番に1から12まで変えていきます。タブキーを使えばどんどんとフォーカ
スが移動するので修正も楽になります。

LEDの数値は1時の方向が1で、その次が2になります。一番上は12になります。つまり、アナログ時計の文字盤の数値と同じということです。

ブロックが組み上がったら、プログラムをHaloCodeにアップロードします。画面左側のデバイスタブ内で、アップロードモード切り替えを「オン」にしてから「アップロード」ボタンをクリックします。

なお、HaloCodeの電源が入っていなかったり、接続されていない場合は、アップロードできません。HaloCodeに接続した電池ボックスの電源が、ONになっているか確認してください。また、充電用のUSBケーブルは使えませんので、USBケーブルもデータ通信用のものかどうか確認してみてください。

無事にアップロードが終わったら、HaloCdoeの中央のボタンを押してみましょう。LEDが全部点灯してから、1秒ごとにLEDが消えていきます。今回のタイマーは12秒ですが、「(1)秒待つ」ブロックの数値を5にすれば1分タイマーになりますし、15にすれば3分タイマーになります。

ただ、12個のブロックの数値を全部変えるのは面倒です。そこで、プログラムらしく変数を使って、修正が簡単にできるようにしてみます。

プログラムを改良する前に、以下の2つのブロック以外は消去しておいてください。
「ボタンが押されたとき」
「すべてのLEDを( )色で点灯する」

まず、変数のカテゴリにある「変数を作る」ボタンをクリックします。ここでは変数名をposにします(LEDの点灯位置を示すPositionのposです)。種類は「すべてのスプライト用」を選択します。

変数が作成されると、変数のカテゴリ内にブロックが追加されます。この中から「[pos]を0にする」ブロックを「すべてのLEDを( )色で点灯する」の下に配置します。

次に12回繰り返す(LEDの数だけ)ので、制御のカテゴリにある「(10)回繰り返す」ブロックを配置します。LEDは12個なので10を12に変更し、ブロックの数値を「(12)回繰り返す」のように変更します。

次に、消灯する位置を順番に変えていくので、変数posの値を増やします。変数のカテゴリにある「[pos]を(1)ずつ変える」ブロックを「(12)回繰り返す」ブロックの中に入れます。次に制御のカテゴリにある「(1)秒待つ」ブロック、LEDライトのカテゴリにある「LED(1)を消灯する」ブロックを配置します。

変数のカテゴリをクリックすると、(pos)というブロックが上にあります。このブロックをつかんで「LED(1)を消灯する」の(1)のところに重ねます。すると「LED(pos)を消灯する」に変わります。

これでタイマーができあがりです。プログラムをアップロードして動作を確認しましょう。最初に作成したプログラムと同じように、LEDが1秒ごとに消灯していけば問題ありません。

もし、タイマーを1分にしたい場合は、「(1)秒待つ」ブロックの1を5にするだけです。3分にしたい場合は15にするだけです。1カ所の変更で済むので楽になりました。プログラムは工夫次第で難しくもなりますし、簡単にもなります。


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/

先週、「スタートゥインクルプリキュア」が最終回でした。最初からエンディングが分かっちゃう感じだったけど、予想通りのいい最終回。「スタートゥインクルプリキュア」は地球人、宇宙人ごちゃまぜで多様性の極み。容姿も言葉も文明も文化も何もかも違うものを、よく描いたなあという感じでした。ただ、主役が最初に出てきた時に、珍しく孤独っぽい感じだったのが最後まで印象的でした。

・みんなのobniz入門
https://www.amazon.co.jp/dp/4865942165/

・InDesign自動化サンプルプログラム逆引きリファレンス上/下
https://www.amazon.co.jp/dp/4844396846/
https://www.amazon.co.jp/dp/4844396854/

・創って学ぼうプログラミング
https://news.mynavi.jp/series/makeprogram

・みんなのIchigoLatte入門 JavaScriptで楽しむゲーム作りと電子工作
https://www.amazon.co.jp/dp/4865940936
[正誤表]
http://www.openspc2.org/book/error/ichigoLatte/

・After Effects自動化サンプルプログラム 上巻、下巻
https://www.amazon.co.jp/dp/4844397591
https://www.amazon.co.jp/dp/4844397605

・IchigoLatteでIoT体験
https://www.amazon.co.jp/dp/B06X3X1CHP
http://digiconcart.com/dccartstore/cart/info/2561/218591

・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/

・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/

・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/

・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/

・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/