LEDドットスクリーンを使って「おみくじ」を作る

Sphero BOLT(スフィロボルト)には縦横8個ずつ、合計64個のLEDから成るドットスクリーン(四角い画面)が内蔵されています。このスクリーンにはLEDを使って、様々な模様やアニメーションに加え、自分でオリジナルの模様やアニメーションを作って表示することができます。このドットスクリーンによって、プログラミングで表現できることがグッと広がりました。ここでは、タブレットにダウンロードした無料アプリ「Sphero Edu」(無料)を使います。

今回はLEDドットスクリーンを使ったプログラムの入門として、「おみくじプログラム」を作ってみましょう。

スフィロBOLTの写真
スフィロBOLTの写真

ドットスクリーンの使い方

「おみくじ」を作る前に、まずはドットスクリーンでサンプルのアニメーションを表示してみましょう。最初に「色とサウンド」のメニューから「マトリクスアニメーション」ブロックを選んでプログラム開始ブロックの下につけます。次に「マトリクスアニメーション」ブロックの黒い四角の部分をタップしてみましょう。


すると「マイアニメーション」と、「Spheroアニメーション」というサンプルのアニメーションが表示されます。そこで「Spheroアニメーション」の中にあるアニメーションのアイコンをどれか一つ選んでタップしてから、右上のチェックマークを押してください。


それでは早速スタートボタンを押して、プログラムをスフィロに転送して動かしてみましょう。

自分の選んだアニメーションがSphero BOLTのドットスクリーンに表示されましたか?

では、いよいよ次は自分の好きなアニメーションを作って表示してみます。今回はおみくじを作ることを目的としているので「大吉」という文字のアニメーションを作ってみようと思います。「大吉」は一度に表示するのが難しいので、「大」と「吉」の文字に分けて、「大」・「吉」と交互に表示されるアニメーションを作ります。もう一度「マトリクスアニメーション」のアニメーションの部分をタップしてください。今度は左上の「+」マークを最初にタップしてください。


すると画面上に縦8×横8に並んだ合計64個の黒い丸マークが現れます。これがアニメーションの作成画面で、SpheroBOLTのドットスクリーンに対応しています。下のカラーパレットから赤をタップして、ドットスクリーン上に大吉の「大」という文字を描きます。指を画面の上でスライドさせていくと簡単に描くことができます。まずは、下の画面を参考に描いてみてください。

「大」の完成
「大」の完成

「大」が描けたら、次に「吉」の文字を作ります。まず右下にある「+」マークをタップしてください。すると、また黒い画面になりましたね。


ここで、右側にある矢印をタップしてみてください。すると、さっき作った「大」が再び表示されます。このように「+」を押すと、一つのアニメーションの中に画面を増やすことができます。さあ、この2つ目の画面に「吉」の文字を作りましょう。できたら右上のチェックマークをタップします。これで、画面が一つずつ保存されます。


それでは「スタート」ボタンを押してアニメーションの動きを確かめてみましょう。

どうですか? すごいスピードで「大」「吉」の文字が交互に表示されていますね。この文字のスピードだと早くて読むことができません。そこで文字が読めるように、ゆっくりと文字が変わるようにしたいと思います。では、もう一度マトリックスアニメーションの「大吉」をタップしてください。次に画面の上の方にある、スフィロがぴょんと飛び跳ねているようなマークをタップします。


すると画面の上の方に左右に動く調整のようなマークが出てきます。これをタップすると縦に動くバーが表示されます。このバーは文字の切り替わりの速さを調整することができます。例えば、このバーを上に動かすと、「大」と「吉」の文字が速く切り替わり、下に下げるとゆっくり切り替わります。切り替わる時間がバーの右に表示されていますね。今回はバーを一番下までさげて、1fpsにしてみましょう。これで1秒に一回文字が切り替わります。ではスタートを押して試してみましょう。


では、「大吉」と同様に「吉」と「凶」のアニメーションも作ってみましょう。どちらも1文字なので動きはありませんから簡単ですね。


おみくじをプログラミングしてみよう!

それでは、これらの3つの文字を使って、「おみくじ」をプログラミングしてみましょう。ここでは、Sphero BOLTを手の上に置いて、もう片方の手でぽんとたたくと、おみくじがスタートし、「大吉」・「吉」・「凶」のどれかがランダムに表示されるように設計します。
はじめにスタートを押したときに、スフィロのドットスクリーンをタブレットの方に自動で向くようにします。動作メニューから「コンパスを調整」ブロックを「プログラム開始」ブロックにつけます。「コンパスを調整」ブロックはSphero BOLTならではのブロックです。このブロックをつけると正面合わせ(AIM)が自動で行われ、タブレットの方を向いてくれる便利なブロックですね。


次にイベントメニューから「衝突時」のブロックをおきます。これは手の上に置かれたSphero BOLTを片方の手でぽんと叩くと、その衝撃でおみくじがスタートするようにするためです。まず、変数メニューの「変数を作成」から「n」という変数を作ります。数字を選びましょう。なぜ「変数」?と疑問がわくかもしれませんが、この変数が、今回作った3つの文字と結びつきます。


そして「nを0にセット」ブロックを「衝突時」ブロックとつけましょう。


次に演算子メニューから「ランダム」ブロックを「0」の部分に入れます。ランダムブロックは次のようにセットします。


このようにすると変数「n」にランダムな整数1~3がセットされます。次にコントロールメニューから「if(「もし」という意味)」ブロックをもってきてつけます。


もし「n」に「1」が入っていたら、大吉と表示するというようにします。「if」ブロックの「true」というところに、コンパレーターメニューから「イコール(===)」ブロックを入れます。


次のように、左側の「0」に変数「n」を、右側の「0」に「1」を入力します。そして「マトリクスアニメーション」ブロックの「大吉」をセットしましょう。もうわかりましたね。変数が「1」の時に「大吉」が表示されるということです。


これで「大吉」の部分は完成です。これを繰り返して、nに「2」が入っていたら吉、nに「3」が入っていたら凶というようにセットします。これは同じ作業の繰り返しですから、こんな時に便利なコピー機能を使ってみましょう。ifブロックの上に指を長い時間おいておくと、メニューが表示されて「複製(コピー)」が出てくるのでタップします。すると「大吉」を表示するプログラムがコピーされます。


便利ですね。これを使って、一部を変えることで「吉」「凶」もプログラミングしてみましょう。


さて、組み終わったら、早速動かしてみましょう。

いかがでしたか?おみくじがうまくできましたね。でも、何かさみしい感じですね。そこで、今作ったものに音や新たなアニメーションを加えたのが次のプログラムです。


これを動かしてみると…

おみくじを振っているときのドキドキ感や、出たときの感情の盛り上がりなどがアニメーションや音で表現でき、もう一度振ってみたくなるようになりましたね。ここからは、皆さんのアイデア次第です。表示される文字を増やしたり、色を変えたり、試してみましょう。

【プログラム】自分のSphero Eduに下記の「おみくじ」のプログラムをコピーしてダウンロードしましょう。さぁ、みんなで遊んでみよう!

https://edu.sphero.com/remixes/4106818