「マイコンを使ってゲームを作ろう!」シリーズの第3回では、RL78/G23 Fast Prototyping Board (FPB)を使って「スロットマシーン」を作成してみます。
まだ開発環境の準備がお済みでない方は、下記ブログもご参照下さい。【マイコン初心者必見】RL78で開発を始めよう!①。
仕様
今回作成する「スロットマシーン」は、7SEG LEDの各桁に対応するスイッチをタイミングよく押し、数字を揃えるゲームです。1桁ずつスイッチを押していき、表示が揃うと圧電ブザーから音が鳴ります。実際に動作させたときの画像を①、②に示します。
7SEG LEDの数字は一定周期で変化しています(図1)
図1
スイッチを押していき、最終的に3桁揃うと圧電ブザーから音が鳴ります(図2)
図2
ハードウェア設計
ハードウェア設計で使用した部材を紹介します。
- RL78/G23 FPB
- Micro USB Type-B ケーブル
- ブレッドボード
- ジャンプワイヤ
- ピンソケット (FHU-1x42SG)
- 3桁7SEG LED (OSL30561-IRA)
- タクトスイッチ×3
- 圧電ブザー (PKM13EPYH4000-A0)
- トランジスタアレイ ソース型 (M54564P)
- トランジスタアレイ シンク型 (TBD62084APG)
- 抵抗(470Ω × 8、10kΩ × 3、1kΩ × 1)
下記の回路を、ブレッドボード上に配線しました。(図3)
図3
7SEG LEDの点灯方式
今回は、7SEG LEDをダイナミック点灯方式で表示させています。ダイナミック点灯方式とは図4(B)のように、複数の表示をとても短い間隔で高速に点灯させる方式のことです。プログラムでは、複数の表示を順番に切り替えて点灯させるよう制御していますが、人間の目には切り替えが高速なため、同時に表示されているように見えます。この方式のメリットは必要なマイコンのIO端子数が少なくて済む点です。3桁の7SEG LED表示では、スタティック点灯方式(図4(A))の場合27本必要ですが、ダイナミック点灯方式の場合11本になります。また、桁数を増やす場合でもCOM端子1本分を増やすだけでよいので、使用できるIO端子数が限られるマイコンにおいて、ダイナミック点灯方式は非常に便利です。
図4
ソフトウェア設計
今回は、統合開発環境CS+を用いてプログラムを作成しました。 インストールがまだという方は、次のブログを見ながら、開発環境をインストールしてみましょう。
統合開発環境ブログ:【マイコン初心者必見】 RL78で開発を始めよう!①
CS+を開き、下の画像(図5)の赤枠の箇所をクリックするとコード生成ツール (Smart Configurator)を起動できます。Smart Configuratorを使用することで、簡単に各周辺機能の初期設定関数を生成できるので、是非活用してみてください。
図5
Smart Configuratorの使い方については下記ユーザーガイドをご参照ください。
RL78 スマート・コンフィグレータ ユーザーガイド:CS+編 .
私が作成した「スロットマシーン」のプログラムはこちらからダウンロードできます。
実際にプログラムを動作させて、「スロットマシーン」で遊んでみましょう。
RL78 FPBを使用した他のゲーム作成についても、下記ブログで紹介しています、是非チェックしてみてください。