はじめに

エコライトは押しボタンが一つ付いただけの電気スタンドです。
でも、電気屋さんで売っているような普通の電気スタンドとは、ちょっと違います。
一番の違いは、皆さんが自分の手で組み立てたという事ですが、もう一つ違いがあります。
それは、エコライトはパソコンとつなげる事ができるのです。
パソコンとつながる事で、エコライトにいろいろな機能を持たせる事ができます。
世界に一つだけの、あなただけのエコライトを作ってみましょう。

使ってみよう!

エコライトの説明書やSF-07操作説明書を良く読んで、エコライトとパソコンを正しく接続しましょう。
初期設定でパソコンから正しくデータが送られているのを確認したら、メニュー画面から「ドラッグ&ドロッププログラム」を選んでください。
画面左にあるアイコンを並べる事で、エコライトの機能を作っていきます。
まずは、簡単な機能を作ってみましょう。

例題1
普通の電気スタンドを作ってみよう

普通の電気スタンドは、スイッチを押すと点灯し、次にスイッチを押すと消灯する。これを繰り返しています。
SF-07でこの機能を作るのはどうすればいいでしょうか?
少し考えてみましょう。

上の答えと同じようにアイコン命令を並べてみましょう。
そして、プログラム転送、プログラム実行とアイコンをクリックしてみましょう。
次に、エコライト本体のスイッチを押します。すると、LEDが点灯します。もう一度、スイッチを押すとLEDが消灯します。
これで、普通の電気スタンドは完成です。データケーブルを抜いて、電源を入れ直すとすぐに使えます。
でも、これではあまり面白くないですよね?

明るさを自由に選んでみよう

電気スタンドで、電球の明るさを調節する機能の事を「調光機能」と言います。
エコライトにも、調光機能が付いています。ただ、普通の電気スタンドと違うのは、光の強さを自由に設定できるところです。
設定はSF-07を使えば、簡単にできます。
それでは、調光機能付きのエコライトを作ってみましょう。

例題2
スイッチを押すと明るさが20%、50%、100%、0%になるスタンドを作ってみよう。

明るさを設定するためには、「明るさ」アイコンを使いましょう。

調光機能のプログラムはできましたか?
プログラムを転送し、実行してみましょう。
スイッチを押すと、明るさが変化するのが分かりましたか?
LEDを直接見つめると、目に悪いので注意してください。

エコライトには、明るさ指定以外にもう一つ、調光機能があります。
次に、もう一つの調光機能を使ってみましょう。

明るさを自由に選んでみよう2

エコライトの、もうひとつの調光機能とは、指定した明るさへゆっくり明るくなるという機能です。
この、ゆっくり明るくなる調光機能は、普通の電気スタンドではあまり使われていません。
エコライトでは、簡単なプログラムで実現できます。

例題3
スイッチを押すと明るさが20%、50%、100%、0%になるスタンドを作ってみよう。
ただし、明るさの指定は、「だんだん明るく」、「だんだん暗く」命令を使う事。

上のプログラムをエコライトに転送し、実行してみましょう。
スイッチを押すたびに、LEDがゆっくり明るくなるのが分かりましたか?

ここで、プログラムの解説をします。
答えのプログラムで、明るさを指定する命令(1,3,5)をよく見てください。
更新単位がそれぞれの命令で違うのが分かりますか?(命令1は40、命令3は26、命令5は16)
これはどういう事でしょうか?
更新単位とは、LEDの明るさを1%上げるのに約3ミリ秒かかるという事を表します。
つまり命令1の場合、20%の明るさにで40単位ならば、
20(%)×3(ミリ秒)×40(単位)=2400ミリ秒かかるという事です。
これを元に、20%から50%の明るさにするには2400[ミリ秒]÷(30[50%-20%より]×3[ミリ秒])=約26単位
50%から100%の明るさにするには、2400[ミリ秒]÷(50[100%-50%]×3[ミリ秒])=16単位
という設定にしています。
これで、スイッチを押した後の時間をほぼ同じに設定しています。

だんだん明るくする命令の使い方が分かりましたか?
これは、だんだん暗くする命令も同じです。
でも、今のプログラムでは、「だんだん明るく」命令が、いつ終わったか分かりません。
そこで、エコライトでは、命令が終わった事を知らせるための命令を用意しています。
それは、「確認音」という命令です。
次のページでは、確認音命令を使ってみましょう。

エコライトで音を鳴らしてみよう

「確認音」命令とは、エコライトから「ピッ」と音を鳴らす命令です。
まずは使ってみましょう。

例題4
スイッチを押すと確認音を鳴らすスタンドを作ってみよう

このプログラムを実行すると、スイッチを押すとエコライトから「ピッ」と音がします。
この命令をプログラムの節目におく事で、プログラムの進み具合が分かります。

例題5
スイッチを押すと明るさが20%、50%、100%、0%になるスタンドを作ってみよう。
ただし、各命令の終わりが分かるように、確認音命令を使う事。

確認音命令の使い方は分かりましたか?
この命令を使う事で、プログラムの進み具合を音で確認する事ができます。
次は、エコライトをスタンド以外に使う、ちょっと変わった使い方を見てみましょう。

エコライトのちょっと変わった使い方

SF-07には「タイマ」命令というのがあります。
この命令は、指定した時間プログラムを停止する命令です。
タイマの設定時間は、1秒から18時間まであります。
この命令を使って、「ラーメンタイマ」を作ってみましょう。
今回作る「ラーメンタイマ」は3分たったら、音と光で知らせる事にします。

例題6
3分たったら音と光で知らせるラーメンタイマを作ってみよう。

上の答えでは、タイマの時間を3分にしていますが、時間を変える事でいろいろなタイマとして使えます。
また、上の例では音と光は一度しか使いませんが、何度か使う事で、より目立つタイマになります。
いろいろ工夫して使ってみましょう。

ここまでは、明るさを決める時にプログラムを使っていました。
しかし、プログラムでは決まった明るさにしかなりません。
エコライトには、使用時に好きな明るさにす調整するための命令も用意されています。
次は、その命令を使ってみましょう。

明るさを自分で決めてみよう

プログラムで決めた明るさではなく、「もう少し明るく(暗く)したい」という事はあると思います。
スイッチで明るさを調整するための命令が、「タッチ中明るく」という命令です。
この命令を使えば、エコライトを自分の好きな明るさで使う事ができます。

例題7
明るさ20%で点灯後、明るさを調整できるスタンドを作ってみよう。

上のような答えになったでしょうか?
このプログラムを転送した後、一度データケーブルを抜いて、電源を入れ直してみましょう。
まず電源を入れると、LEDが20%の明るさで点灯します。次に、スイッチを押します。普通ならば、すぐに離しますが、そのまま押し続けます。
すると、LEDはだんだん明るくなり、一番明るくなった後で、一瞬消灯した後、また明るくなっていきます。
自分の好きな明るさになった時に、スイッチを離してみましょう。
そうすると、自分の好きな明るさに・・・・、ならないですね?
これはどういう事でしょうか?

エコライトの動作を理解すると、この謎は解けます。
エコライトをスタンドとして使う場合、転送されたプログラムを最初から順番に、0,1,2,3,・・・・と実行していきます。
そして、最後の命令を実行し終わったら、また0番に戻ってしまいます。
上の答えでは、「1」番の命令で、自分の好きな明るさを設定しても、すぐに「0」番の命令に戻るので、明るさが20%になってしまいます。
これを防ぐためには、次のようにプログラムを作ってみましょう。

「タッチ待ち」命令は、スイッチが押されるまで次の命令が実行されません。
2番まで命令を実行した後、0番に戻っても、スイッチが押されるまで次の命令に進まないので、自分で調整した明るさのままになります。
このように、エコライトの動作と各命令の特徴を上手に組み合わせて、プログラムを作っていきましょう。
次は、フローチャート式プログラミングを使ってみましょう。

フローチャート式プログラムを試してみよう

フローチャート式プログラムは、「動作命令」から使いたい命令を選び、「命令追加」をクリックする事で、プログラムを作成します。
動作命令は、アイコン命令と対応しています。(対応表)
このように、アイコン命令とフローチャート式プログラムでは、同じようにプログラムを作る事ができます。
ただし、フローチャート式プログラムにしかない命令があります。
それが、「サブルーチン」命令です。

サブルーチンって何?

サブルーチンとは、プログラミングでよく使われる言葉です。
プログラムの中でよく使われる部分(共通な部分)を分けたプログラムの事をいいます。
例えば、プログラム中で何度も使う部分があるとすれば、それをサブルーチンにします。
すると、プログラムはすっきりして、見やすくなります。
文章ではわかりにくいので、実際の例題とプログラムで確かめてみましょう。

例題8
スイッチを押すと点灯し、もう一度押すと消灯するプログラムをサブルーチンで作ってみましょう。

例題8を参考に、サブルーチンの作り方を解説します。

  1. 「サブルーチンの追加」ボタンをクリックします。
  2. 左下の「編集中のルーチン」が「サブルーチン1」になっているのを確認する。
  3. 通常通りプログラムを作成していく。
  4. サブルーチンの作成が終わったら、「メインルーチン」ボタンをクリックする。
  5. 左下の「編集中のルーチン」が「メインルーチン」になっているのを確認する。
  6. 「動作命令」からサブルーチンを選択する。
  7. 命令追加ボタンをクリックする。
これで、サブルーチンを使う事ができます。
サブルーチンは最大9個作成する事ができます。

これだけでは、サブルーチンの便利さが分からないかもしれません。
そこで、例題81にサブルーチンを2つ追加してみましょう。

例題9
例題8へ次のサブルーチンを追加してみましょう。
スイッチを押すと、明るさ20%で点灯
次にスイッチを押すと、50%で点灯
次にスイッチを押すと、100%で点灯
次にスイッチを押すと、消灯
この動作をサブルーチン2に登録する。

例題9の動作は、例題2と同じです。

例題10
例題9へ次のサブルーチンを追加してみましょう。
スイッチを押すと、明るさ20%で点灯
次にスイッチを押すと、50%で点灯
次にスイッチを押すと、100%で点灯
次にスイッチを押すと、消灯
ただし、明るさの指定は「だんだん明るく」、「だんだん暗く」命令を使う事。
この動作をサブルーチン3に登録する。

例題10の動作は、例題3と同じです。

例題9、10は上手くプログラミングできたでしょうか?
Program(プログラム)にはメインプログラム、サブルーチン1、2、3ができているはずです。
メインプログラムを選択して、サブルーチンをいろいろな順に追加してみましょう。
例えば、サブルーチン2を2個追加してみましょう。
サブルーチン2は8命令ありますが、サブルーチンにしておけば入力は1回で済みます。
また、サブルーチンの順番を入れ替えたり、削除したりするのも簡単です。
このようにサブルーチンを使いこなせば、よりプログラムが楽しくなると思います。

ここまでで、SF-07で、できる事は全て体験してきました。
文字プログラミングの解説はしていませんが、使い方はドラッグ&ドロッププログラムと同じです。
ドラッグ&ドロッププログラム、フローチャート式プログラミング、文字プログラミングとSF-07では、いろいろなプログラミング方法を用意しています。 自分の得意な方法や、理解しやすい方法でプログラムを組みましょう。
次は、これまでの経験を生かして、本格的なプログラミングに挑戦してみましょう。

本格プログラムに挑戦してみよう

本格プログラムと聞くと難しそうですが、ここでは、本職のプログラマがやるようなプログラミングという意味です。
本職のプログラマがプログラムを作る時に、絶対に作るプログラムがあります。それが「繰り返し処理」というものです。
コンピュータは、人間と違って同じ事を何度も繰り返す事は得意です。
プログラムをしていて、同じ命令を何度も繰り返して使っているならば、「繰り返し処理」が使えないか考えてみましょう。

繰り返し命令の使い方の練習として、次のプログラムを組んでみましょう。

例題11
点灯2秒、消灯1秒を10回繰り返すプログラムを組んでみよう。

繰り返し命令の使い方は分かりましたか?
次は、もう少し難しいプログラムを組んでみましょう。

例題12スイッチが押された後、
  1. 明るさが0%から100%に変化する。
  2. 確認音を鳴らす。
  3. 明るさが100%から0%に変化する。
  4. 確認音を鳴らす。
  5. 1から4を5回繰り返す。
  6. 確認音を鳴らす。

上の答えで注意するのは、5番の繰り返し命令の戻り番地が1番になっているところです。
繰り返しの指定には注意してください。

繰り返し命令の使い方は理解できたでしょうか?
本格的なプログラムを組む場合は、必ず使う大事なテクニックです。良く覚えておいてください。
次は、実用的な電気スタンドを作ってみましょう。

実用的な電気スタンドを作ってみよう

「実用的な電気スタンド」とはどのようなものでしょうか?
スイッチを押すと明かりが点き、もう一度押すと明かりが消える、というのが一般的なスタンドだと思います。
これまでの例で、SF-07を使えば一般的なスタンドはすぐに作れると思います。
エコライトには、普通のスタンドにはない調光機能やタイマ機能があります。
この機能を使うと、今までにないような電気スタンドを作り出す事ができます。
それでは、実用的なスタンドを作っていきましょう。

初期設定のスタンドを作ってみよう

初期設定のスタンドとは、エコライトを組み立てた時に初めから組み込まれているスタンドのプログラムです。
このプログラムは、次のような設定になっています。

例題13
下の動作を参考にスタンドを作ってみよう
  1. タッチ待ち
  2. 明るさ2%、更新単位24でだんだん明るく
  3. 確認音
  4. タッチ待ち
  5. 明るさ18%、更新単位8でだんだん明るく
  6. 確認音
  7. タッチ待ち
  8. 明るさ100%、更新単位4でだんだん明るく
  9. 確認音を2回
  10. タッチ待ち
  11. 明るさ0%、更新単位5でだんだん暗く
  12. 確認音

少し長いですが、プログラムに挑戦してみましょう。
明るさや、更新時間に注意してください。

明るさの指定が小さい事に気が付きましたか?
実際の動きでは、明るさ18%は、明るさ100%の半分ぐらいの明るさに感じませんでしたか?
人間の目は、真っ暗からある一定の明るさまでの変化には敏感です。
しかし、ある程度の明るさ以上になると、その変化を感じ取る事ができなくなり、同じ明るさと感じます。
プログラムを作る時は、「明るさ確認」で、明るさを調べてください。

次に、もう少しいろいろな命令を組み合わせたエコライトを作ってみましょう。

実用的なスタンドを作ってみよう2

実用的なスタンドとは?

実用的なスタンドとはどんなものでしょうか?
新しい製品を作る場合に、考える事は

  1. 作りたい製品を考える
  2. 構想を具体化する
  3. 製作に必要な図面を描く
  4. 製作準備
  5. 製作

の様な流れになります。
今から作るスタンドに当てはめてみると、次のようになります。

  1. 作りたい製品を考える
    スタンドをどのように動かすか
  2. 構想を具体化する
    どのようなプログラムを作るか
  3. 製作に必要な図面を描く
    今回はプログラミングだけなので行わない
  4. 製作準備
    プログラミングができるように準備する
  5. 製作
    プログラミングを行う

今から作る実用的なスタンドは、プログラムが中心になるので、図面を描いたりしません。
しかし、本格的なプログラミングを行う場面では、プログラムの図面である「フローチャート」や「UML図」などが使われます。
それでは、順番に考えていきましょう。

1.作りたい製品を考える。
これまでの例題などを参考に、動作を考えましょう。
今回は例として、次のような動作を作ってみます。

例題14

2.構想を具体化する。
上の例を参考に、プログラムの構想を考えます。
上の例をアイコン命令に置き換えて考えると、

スイッチを押す・・・「タッチ待ち」命令
だんだん明るくする・・・「だんだん明るく」命令
確認音を鳴らす・・・「確認音」命令
ゆっくり消灯する・・・「だんだん暗く」命令
1分以上待つ・・・「タイマ」命令

4、5製作準備と製作
コンピュータとエコライトを接続します。(製作準備)
「構想を具体化する」で考えたアイコン命令を使って、実際のプログラムをSF-07で作る。
完成したプログラムをエコライトへ送って、自分の考えた通りの動作かを確認する
上手く動かなかった場合は、自分の構想を正しくプログラムに変換できているかを確認する。
また、プログラムに間違いが無いか、確認する。
全て、自分の考えていた通りの製品ができれば完成です。

「実用的なスタンド」というのは、人によって違うと思います。
例えば、夜に5時間点灯し、昼間は消灯している防犯灯や、朝になると少しずつ明るくなって、気持ちよく目覚める照明など、いろいろ考えられると思います。
どんなものを作るかを考えるのも楽しいと思います。
また、できたプログラムはレポート作成機能を使ってレポートを書くようにしましょう。
レポートには、感想欄があります。ここに、そのプログラムをなぜ作ったのかや、工夫した点を書きましょう。

実用的なスタンドの製作例を通して、製品の構想から製作までを体験してみました。
このように、新しい製品を作るためには、たくさん考える事や製作する事があります。
初めは難しく思えるでしょうが、何度か作っていくうちに作り方の「コツ」というものが分かってきます。
自分の満足のいくスタンドになるまで、がんばって作ってみましょう。

まとめ

これで、SF-07学習ナビは終了です。
「文字プログラミング」の説明はしていませんが、プログラミングのやり方は、アイコン命令と同じです。
SF-07学習ナビの例題を文字プログラミングで、プログラムをするのも良いと思います。

このSF-07学習ナビでは、例題を通してプログラミングの練習から、製品の構想までいろいろな事を体験してきました。
初めてで難しかった事もあるかもしれませんが、例題の答えを見ながらでも、一通り作ってみてください。
自分の手でものを作り出すと言う事は、とても楽しい事です。
そして、自分の作ったものが思い通りに動いた感動は言葉にできません。
エコライトLS-19とエコライト制御ソフトSF-07を通して、皆さんが物作りの楽しさを体験してもらえればと思います。