ロゴ ロゴ

見せられるレベルになったテトリスを紹介します

はじめに

 大学の課題に追われながら過ごしていたら、いつの間にか前回のブログから二か月経っていたUmiです。

 今回は、ESP32を使用して作ったテトリスの紹介をしていきたいと思います。前回のブログには完成したらブログで紹介すると言いましたが、大学の課題により進行速度が亀の歩みになっているので、一応見せられるレベルになったテトリスとこれからどのように改良していくかの展望を書いていきたいと思います。

使用している部品

・ESP32-DevKitC-32E ESP32-WROOM-32E開発ボード

・ブレッドボード 6穴版

・ジャンプワイヤ―(オス-オス)

・カーボン抵抗1/4W10kΩ

・0.96インチ128×64ドット有機ELディスプレイ(OLED)白色

・2軸ジョイスティックモジュール

・タクトスイッチ12mm グレー

・タクトスイッチ(緑色)

 全部秋月の通販で買いました。

電子回路の全体像

 まず、作った電子回路の全体像を紹介します。

左下がテトリス操作のためのジョイスティック、タクトスイッチを配置したコントローラー部分、右下が有機ELディスプレイを使ったゲーム本編をうつすディスプレイ部分、上がマイコンによるゲームの処理部分になっています。

 ブレッドボードに仮配線してるので、ジャンプワイヤでごちゃごちゃしてますが、まあ動きますし大丈夫ですよね。

テトリス

 本題のテトリス本編の画面について説明します。

 まず、緑枠で囲われているのが、テトリス操作画面本体でジョイスティックによりテトリスのブロック(画面だと凸型のブロック)を左右に移動させることやタクトスイッチによってブロックを回転させることが出来ます。また、操作しているブロックの下にある真ん中に穴の空いたブロックはブロックの落下予測地点(ゴーストと言います)で何も操作しないとその場所に落ちていきます。

 次に、青枠で囲われているのが、操作しているブロックが落ちた後、次に操作するブロックの形(ネクストと言います)です。とりあえず、5個先まで描画しました。

 次に、赤枠で囲われているのが、ホールドと言われている物でタクトスイッチを押すと今操作しているブロックの入れ替わり操作することが出来ます(この場合、凸型のブロックが赤枠に入り元々赤枠に入っていたS型のブロックが緑枠に入ります)。

 最後に、黄枠で囲われているのが、スコアです。上からそれぞれ同時に一列、二列、三列、四列消しの回数になっていて、テトリスでは基本的に四列消しはテトリスと言われます。下の写真は実際に三列消しを行ったものです。

何を改良・追加していくか

 これからの予定は決まっていて、ディスプレイを有機ELディスプレイ(OLED)からLEDドットマトリクスに変えることです。LEDドットマトリクスって何だよとなる人もいるかもしれないので、身近な例を挙げると電車の電光掲示板が分かりやすいかもしれません。

 ドットマトリクスは、LEDを配列的に並べたもので、秋月などの店には8×8や16×16などの物があります。ドットマトリクスの特徴は、入力電気信号が普通より少なく済むという物があります。例えば、16×16のLEDを制御するには、普通16×16=256個の入力が必要ですが、ドットマトリクスを使えば32個の入力だけで済みます。細かい説明は、調べればすぐに出ると思うので気になる方は調べてみてください。

 しかし、マイコンとしては32個の入力でも少し多いので、シフトレジスタというものを使って解決しようと思っています。シフトレジスタを使うとどうなるか簡単に説明すると、マイコンの2、3ピンを使うだけで大量の入力を行うことが出来ます。なので、これを使い32個もの入力を行おうとしているわけです。

最後に

 課題のせい(課題を早く終わらせられない自分のせい)で全く進められてませんが、今年中にはディスプレイをドットマトリクスに変えたいと思ってます。まあ、無理でしょうけど。

 それはそれとして、三か月以上ブログを書かないなんてことにならず、今はとりあえずホッとしてます。でも最初は、一か月に一個と思っていたのにまさか二か月間隔になるとは……

 何はともあれ、ここまでブログを見てくださった方ありがとうございます。アクションゲームも並列して作成しているので、もし見せられるレベルになったらブログを書こうと思うので、その時はまた見てくれると嬉しいです。

蛇足

 今回もいらない蛇足な話を書いていきたいと思います。最近、ハマっているゲームがあるので、それを紹介していきたいと思います。課題に追われてるのにゲームなんてしてる暇なんてないだろと思うかもしれませんが、息抜きしないと精神的にきついので大目に見てください。

・The Witness

オープンワールドのパズルゲーム。ワールドの各地にパズルが置かれており、それぞれにルールが異なっていたり、様々なルールが複合されているパズルが存在しており、最初から自分で解いていないとルールが分からず解けないなんて状況になったりします。パズルの難易度は難しすぎず、それでいて簡単すぎない、諦めなければ絶対に解ける難易度でとてもちょうど良いと感じました。今は、クリア一歩手前のところまで来ていて12月中にはエンディングに行けそうです。また、色々な隠し要素もあるらしいので、クリアしたらチャレンジしようと思ってます。

コメント入力

関連サイト