プロジェクト16 タイムボム
1. 説明
このプロジェクトでは、面白いタイムボムゲームを体験することができます。
このプロジェクトでは、ドットマトリクスがタイムボムを表し、デジタルチューブが残り時間を表示します。ボタンは爆弾の操作だけでなく、時間設定も可能です。カウントダウンを設定して爆弾を制御し、カウントダウン終了時に爆発します。それに加えて、ブザーが警報として採用されています。
いずれにせよ、複数のセンサーを使ったプログラミングにより、論理的思考の総合力を高めることができます。
2. フローチャート

3. 配線図

4. テストコード
2つの基本ブロックをドラッグします。

ボタンのピンを「入力(input)」に設定します。

「Matrix」から「init matrix display」ブロックを追加し、ピンCSをIO15に設定します。続いて、「brightness」ブロックを値3で追加し、「variable」ブロック(変数タイプをint、名前をitem、初期値を0に設定)を追加します。

「Matrix」から「fill color」ブロックをドラッグし、「black」(すべてのLEDを消灯して前の表示をクリア)を選択します。次に、「display image」ブロックを追加してスマイルフェイスを定義します。最後に、表示を更新するためのリフレッシュブロックを置きます。

「if」ブロックをドラッグし、条件欄に「interface IO33 button was be pushed?」を入力します。「then」の後に「variable mode」ブロックを追加し、名前をitem、モードを「++」に設定します。

ステップ5の操作を繰り返しますが、インターフェースをIO32に、モードを「–」に設定します。

「if」ブロックをドラッグし、ピンIO26が押されたかを判定します。この「if」内に「repeat」ブロックを追加し、条件を「item = 0」に設定します。
「repeat until」ループ内に「variable mode」ブロックを置き、「item」を「–」に設定します。次に、「Digital tube」から「TM1650 display」ブロックをドラッグし、表示文字列を「variable item」ブロックに設定します。続けて、「buzzer output」ブロックを追加し、ピンIO27の出力をHIGHに設定し、0.5秒の遅延を入れます。最後に同じ操作を繰り返しますが、出力をLOWに設定します。

もう一つループコードをプログラムし、条件を「interface IO25 button was be pushed?」に設定します。このループ内で実行される処理は以下の通りです。「TM1650 display」ブロックを置き、表示文字列を「variable item」ブロックに設定します。次にステップ4を繰り返しますが、ここでは画像を泣いている顔に設定します。

「if then」ブロックをドラッグし、空欄に条件「item > 9999」を入力します。この条件ブロック内に「set item variable by 0」という文を追加します。

「Digital tube」から「TM1650 display」ブロックをドラッグし、表示文字列を「variable item」に設定します。同様に、0.2秒の遅延を忘れずに入れます。

完成コード:

5. テスト結果
配線を接続しコードをアップロードした後、青ボタンで時間を増やし、緑ボタンで減らし、赤ボタンでリセットします。黄色ボタンを押すとカウントダウンが始まります。カウントダウン終了時に爆弾が爆発します。