Index

5-3. Routine 5-3. Routine

Routineとは

まずRoutineとは、「決まった手順」のことです。

例えば、「モーニング・ルーティン」は、朝起きたらやる「決まった手順」です。

  1.  起きる
  2.  歯磨き
  3.  朝食
  4.  着替える

 

同じように、Routineモジュールは、設定した時間でデジタル出力を切り替えることで、決まった手順を順番に実行することができます。

時間で切り替わる

RoutineモジュールVIVIWARE Cell Message Board(以降、Message Board Cell)を使って、文字を順番に表示してみます。

プログラムはこのように作ります。

これは、Buttonを押している間、以下の手順ををくりかえし実行するプログラムです。

  1.  「HELLO」を1秒 表示
  2.  「VIVITA」を2秒 表示
  3.  「JAPAN」を0.5秒 表示
  4.  ボタンが押されていればくりかえし(1.に戻る)

 

また、Routineモジュール内のLoopのスイッチをOnにすると、設定した手順をくりかえすことができます。

Runtrueが入っていれば、最後の手順が実行されたあと、手順 1. から同じことをくりかえします。

Activateだけにデジタル信号をつなぐと・・・?

ここでは、ActivateだけでなくOn/OffにもRoutineモジュールをつないでいます。

On/Offに繋がないと、どうなるのでしょうか?

 

Routineモジュールで設定された手順をすべて実行しても、一番最後の信号(ここでは手順 3. )の時間に関係なく、文字がずっと表示され続けます。

Activateは切り替える役割を果たしますが、「文字を消す」という動作は実行できないからです。

 

そこで、最後の手順が実行されたあとに文字を消すために、Message BoardモジュールActivateと、On/Offの両方に信号を入れています。

こうすることで、手順がすべて実行されるとOn/Offfalseになるので、Message Board  Cellに文字を消すことができます。

応用:時間を刻む

Routineモジュールで時間を刻んでみましょう。

1秒ごとに信号を出す(パルス)プログラムを作り、その信号をCountモジュールで数えます。

これで時間を刻むことができました。

応用:タイマー

時間を刻むプラグラムをさらに応用してみましょう。

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

SwitchモジュールのスイッチがOnのとき、カウントダウンします。

SwitchモジュールのスイッチがOffのときは、数えた数(Countモジュールの一番下に表示された数をリセットします。

 

Countモジュールがカウントアップをしているので、Calculateモジュールで引き算をすることでカウントダウンに変えています。

Message Board Cellに数を表示して、タイマーの完成です!

おまけ

このままだと、目で見ないと0秒になったことが分からないので、音を鳴らすようにします。

時間が0秒になったことをCompareモジュールで判定して、Sound Playerモジュールに信号を送り、音を鳴らします。

 

これで便利なタイマーができました。

今回はシンプルな120秒(2分)のタイマーですが、時間を変えてみたり、他のときにも音を鳴らしてみたり、色々と改造して便利な機能をつけてみてください!

Routineとは

まずRoutineとは、「決まった手順」のことです。

例えば、「モーニング・ルーティン」は、朝起きたらやる「決まった手順」です。

  1.  起きる
  2.  歯磨き
  3.  朝食
  4.  着替える

 

同じように、Routineモジュールは、設定した時間でデジタル出力を切り替えることで、決まった手順を順番に実行することができます。

時間で切り替わる

RoutineモジュールVIVIWARE Cell Message Board(以降、Message Board Cell)を使って、文字を順番に表示してみます。

プログラムはこのように作ります。

これは、Buttonを押している間、以下の手順ををくりかえし実行するプログラムです。

  1.  「HELLO」を1秒 表示
  2.  「VIVITA」を2秒 表示
  3.  「JAPAN」を0.5秒 表示
  4.  ボタンが押されていればくりかえし(1.に戻る)

 

また、Routineモジュール内のLoopのスイッチをOnにすると、設定した手順をくりかえすことができます。

Runtrueが入っていれば、最後の手順が実行されたあと、手順 1. から同じことをくりかえします。

Activateだけにデジタル信号をつなぐと・・・?

ここでは、ActivateだけでなくOn/OffにもRoutineモジュールをつないでいます。

On/Offに繋がないと、どうなるのでしょうか?

 

Routineモジュールで設定された手順をすべて実行しても、一番最後の信号(ここでは手順 3. )の時間に関係なく、文字がずっと表示され続けます。

Activateは切り替える役割を果たしますが、「文字を消す」という動作は実行できないからです。

 

そこで、最後の手順が実行されたあとに文字を消すために、Message BoardモジュールActivateと、On/Offの両方に信号を入れています。

こうすることで、手順がすべて実行されるとOn/Offfalseになるので、Message Board  Cellに文字を消すことができます。

応用:時間を刻む

Routineモジュールで時間を刻んでみましょう。

1秒ごとに信号を出す(パルス)プログラムを作り、その信号をCountモジュールで数えます。

これで時間を刻むことができました。

応用:タイマー

時間を刻むプラグラムをさらに応用してみましょう。

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

SwitchモジュールのスイッチがOnのとき、カウントダウンします。

SwitchモジュールのスイッチがOffのときは、数えた数(Countモジュールの一番下に表示された数をリセットします。

 

Countモジュールがカウントアップをしているので、Calculateモジュールで引き算をすることでカウントダウンに変えています。

Message Board Cellに数を表示して、タイマーの完成です!

おまけ

このままだと、目で見ないと0秒になったことが分からないので、音を鳴らすようにします。

時間が0秒になったことをCompareモジュールで判定して、Sound Playerモジュールに信号を送り、音を鳴らします。

 

これで便利なタイマーができました。

今回はシンプルな120秒(2分)のタイマーですが、時間を変えてみたり、他のときにも音を鳴らしてみたり、色々と改造して便利な機能をつけてみてください!

share
close

Share