こんにちは。プログラミング クラブ ネットワーク : PCN の 原です。

先日、私が主宰者のひとりである「PCN」が、サンフランシスコで開催された「Maker Faire Bay Area 2017」に参加しました。そこで、何とIchigoJamはRed Ribbonを受賞することができました! リボンは、参加したメイカーの中でも特に創意工夫を発揮した人を讃えるもので、赤色のそれは教育の要素が認められる出展作品に贈られます。

PCNのIchigoJamブース(左)と、体験中の女の子(右)

アメリカにおいて、IchigoJamのコンセプト とPCNのビジョン「すべての子供にプログラミングを学ぶ機会」が認められたことは大変うれしいです。会場でIchigoJamを笑顔で楽しんでくれた子供達と大人の方々、そして影で支えてくれた関係者の皆様に感謝いたします。

Maker Faire 2017 Bay Areaの様子は、PCNを共に運営している友人のブログで詳しくレポートされていますので、是非みてください! - create every day - 福野泰介の一日一創
- 松田さんブログ

友達になったPokittoの展示

会場内で動いてた巨大昆虫(乗れます!)

今回は、前回の「挑戦してみよう」の答え合わせをやりながら、よりプログラミングらしい仕事をIchigoJamにさせてみましょう。

前回の復習 : Lチカ

まずは前回の復習から。Lチカは、LEDをチカッと光らせる事でしたね。

LEDはIchigoJamについている赤い色の小型ランプの事です。本体の電源を入れて LED1 という指示で光り、 LED0 で消えました。続けてやってみると…早く光すぎて、目では追えないぐらいでしたね。

LED1:LED0

そこで WAIT という指示を使って、LEDを光らせた後、少しIchigoJamに仕事を待ってもらってからLEDを消すようにしました。これで「チカッ」と目で見える速度で、1回光って消えます。これでLチカ1回分が完成です!(ちなみに、前回の内容をやってみてくれた方から、「チカッ」というより「チッカッ」だというご意見をいただきました。ちょっとゆっくり過ぎたでしょうか?)

LED1:WAIT180:LED0

これらをカトラリーカードで行うと、このようになりました。IchigoJamが手元にない人は、カードをダウンロードし、印刷して楽しみましょう。

上 : カトラリーカードでLチカ(表)、下 : カトラリーカードでLチカ(裏)

楽しんで理解するには、体験が一番。カードを使うと、頭で考えるだけではなく、視覚や手を使うのでオススメです。

「挑戦してみよう」を 考える

「挑戦してみよう」のテーマは、「LEDを2回チカチカと光ったり消えたり繰り返すプログラムを考えてみよう(目で見える速さで)」でした。

先程復習したとおり、Lチカ1回は 「LED1:WAIT180:LED0」でできました。チカチカだから2回繰り返せばOKですかね。やってみましょう。(ここからチカっとするように、WAIT180をWAIT60に変えて進めます)

LED1:WAIT180:LED0

あれれ、ずっと点きっぱなしに見えませんか?カードで確認してみましょう。

上 : カトラリーカードでLチカ(表) Lチカ1回が2回、下 : カトラリーカードでLチカ(表) Lチカ2回がちゃんとできた

じーっと眺めてみますと、なんとなく足りなさそうなものが、見えてきました。どうやら、1回目の「けして:LED0」の後に「まって:WAIT60」がないので、消えた後、すぐに点いてしまっているようです。このカードを裏返したら、最終的にプログラムはこうなりました。

LED1:WAIT60:LED0:WAITカード版

LED1:WAIT60:LED0:WAITプログラム版

うまく行きましたね。こちらが、前回の答えになります。なお、WAITの後の数字は、チカチカと点滅していればなんでもOKです。

このようにIchigoJamを持っている人も、カードを使いながら同時にプログラムを書いて実行すると、より理解が深まるのでオススメですよ。

もっとプログラムらしく書こう

これまでの応用をすると、Lチカを10回、20回光らせる事もできますね。書いてみると

LED1:WAIT60:LED0:WAIT60:LED1…プログラム版

こんなに長く書いても4回チカっとするだけ。もうわけが分からなくなります。こんな状態では、やりたいことを正しくコンピューターに伝えるのは不可能です。もっと綺麗に書く方法をさぐりましょう。

実はLチカを1回するプログラムは、次のようにも書けます。

LED1:WAIT60:LED0 行番号付き

以前との違いは、複数の行に分かれたことと、各行の頭に数字があることです。IchigoJamは、行の最初を数字で(=行番号で)始めて指示を書きenter/returnキーで行を入力し終わると、すぐに動作を開始しないで一行毎に指示を記憶してくれます。

記憶してくれるだけで動作はしないの?と思うかもしれませんが、記憶したものを動作させる指示があります。何もないところで RUN と入力して、 enter/returnキーを押しましょう。

LED1:WAIT60:LED0 行番号付き+RUN

Lチカが行われましたか?このように、行番号で始める方法でも同じ動作を行わせることができました。

もっといろんな動作を試してみましょう。Lチカを2回する場合は、次のようにも書けます。一行でまとめて書くよりも、少しスッキリ書けましたね。全部入力したら、RUN と入力して動作させましょう。

LED1:WAIT60:LED0 x 2回 行番号付き

ずーっとLEDをチカチカさせよう

では次は…、ずーっとLチカさせる方法をやってみましょう。ずーっと、ってどれぐらいかといえば、Ichigojamを動かす電気がなくなるまで、無限回数ってことです。えー、またぐちゃぐちゃになるの?と思うかもしれませんが、うまい方法があります。

LED1:WAIT60 無限回

10行と、20行の内容は、これまでと同じですね。ポイントは30行目にある GOTO 10 です。これは 「10行 へ ゆけ」 という指示です。これを使うことで、10, 20, 30と動作した後に、また10, 20, 30…と永遠に繰り返しを行ってくれるという状態を作っています。ちゃんと無限回動作してくれていますか?

そう、キーボードを押しても反応せずに、Lチカが続いていれば成功です。

IchigoJamは無限回動作しろと言われると、本当に電気が続く限り動作します。やめてほしいときには、キーボードのESCを押しましょう。Break in… というメッセージが表示された後に、操作が出来るようになりましたね。

なお、一度記憶させたプログラムは LIST と入力することで再度内容をみることができます。また行番号の小さい数字から大きい数字の順番に並び替えられて、小さいものから動作していくという点もポイント。後から 15 PRINT “OFF” と書いて、10行 と 20行の間に別の動作を入れることも可能です。

挑戦してみよう

・音をならす BEEP 命令を使って、ずーっと音を鳴らし続けるプログラムを作ってみましょう

まとめ

・行番号から入力を始めると、IchigoJamは行を丸ごと記憶してくれる
・記憶したプログラムは RUN で動作できる
・記憶したプログラムをみるには LIST を使う
・プログラムの動作を途中で止めたいときには、キーボードの ESC を押す

挑戦してみよう (前回の答えの例)

・LEDを2回チカチカと光ったり消えたり繰り返すプログラムを考えてみよう(目で見える速さで)

LED1:WAIT60:LED0:WAITカード版

LED1:WAIT60:LED0:WAITプログラム版

著者紹介

原 秀一(はら ひでかず)
サーバー・ネットワークが得意なWebシステム系のITプロフェッショナル。福井工業高等専門学校 電子情報工学科、福井大学 情報工学科を卒業。学生時代はプログラミングから逃げ腰だったが、クラウド時代になり35歳から本格的にプログラミングを再開。IchigoJam等を用いたプログラミングを広める団体PCN(プログラミング クラブ ネットワーク)を友人と共に主宰し、主にアフリカ担当としても活動中。