0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ESP32】16x2 LCDでドリフトを楽しむ!Wokwiで作るレトロレーシングゲーム

0
Posted at

はじめに

こんにちは、@amekusa03です。

今回は、ESP32と16x2行のキャラクターLCDを使って、ブラウザ上のシミュレーター「Wokwi」で遊べるレトロなレーシングゲームを作成しました。

「たった2行の画面でレースゲーム?」と思われるかもしれませんが、速度に応じた遠心力の計算など、意外と熱い駆け引きが楽しめるように設計しています。

作ったもの

ESP32 Racing Game for Wokwi

16x2 LCDの限られた表示領域で、障害物(ガードレール)を避けながら1.5km先のゴールを目指すゲームです。

Screenshot from 2026-03-23 08-07-16.png

特徴

  • 16x2 LCD: キャラクタディスプレイならではの制約の中で表現。
  • 物理演算: コーナーでの「ドリフト」挙動を実装。
  • コース自動生成: 直線やカーブがランダムに現れます。
  • Wokwi対応: ブラウザ上ですぐにシミュレーション可能。

ハードウェア構成

Wokwiシミュレータ上で以下の構成を想定しています。

  • MCU: ESP32 Development Board
  • Display: 16x2 I2C Character LCD (Address: 0x27)
  • Input: 2x3 マトリックスキーパッド

ピンアサイン

デバイス ピン ESP32 GPIO
I2C LCD SDA GPIO 21
SCL GPIO 22
Keypad Row 0-1 GPIO 12, 13
Col 0-2 GPIO 33, 25, 26

ゲームの仕組みとこだわり

仕様書 (spec.md) に基づいて実装したゲームロジックのポイントを紹介します。

1. ゲームループ設計

ゲーム全体は 100ms (10FPS) 周期のステートマシンで動作させています。
LCDの書き換え速度やキースキャンの応答性を考慮し、このレートに設定しました。

  • STATE_IDLE: 待機・デモ画面
  • STATE_COUNTDOWN: スタート前のカウントダウン
  • STATE_GAME: メインゲームループ
  • STATE_GAMEOVER / STATE_GOAL: 終了判定

2. 「コーナリング」の物理計算

このゲームの最大のこだわりはコーナリング時の挙動です。
単に左右キーで曲がるだけではなく、速度超過でカーブに進入すると遠心力で外側に流される仕様にしました。

  • 最高速度: 180.0 km/h
  • コーナリング条件: 速度 > 60.0 km/h

カーブ走行時、以下の式で外側への力が働きます(100ms毎)

Corner = (Speed - 60.0) \times 0.02

例えば最高速(180km/h)でカーブに突っ込むと、2.4 ユニット分外側に流されます。車の最大移動幅が 15.0 程度なので、これは致命的です。
プレイヤーは 「アクセルを抜いて減速」するか、「早めにイン側へハンドルを切る」 というリアルな運転操作を求められます。

3. LCDへの描画

16x2の文字しか出せない画面で状況を伝えるため、カスタムキャラクターを活用しています。

  • /\: 直線のガードレール
  • ( | | ): カーブのガードレール
  • : プレイヤーの車
    車の位置は内部的には 0.0 ~ 15.0 の float で管理しており、これを四捨五入してLCDの16マスのどこに表示するかを決定しています。これにより、アナログな挙動とデジタルな表示を橋渡ししています。

4.操作方法

マトリックスキーパッドの5つのボタンを使用します。

  • 青 (8): アクセル
  • 赤 (4) / 黒 (6): 左右ハンドル
  • 緑 (7) / 黄 (9): ハンドル + アクセル同時押し
  • 壁(ガードレール)に接触すると速度ペナルティを受け、速度が 1.0 km/h を下回るとクラッシュ(ゲームオーバー)となります。
    (PCのテンキーではありません)

まとめ

ESP32とLCDという基本的なパーツの組み合わせでも、内部ロジックを工夫することでアクション性のあるゲームを作ることができました。 Wokwiを使えば、物理的な配線をすることなくブラウザだけで・安全に・どこでも開発ができるので、皆さんもぜひオリジナルの電子工作ゲームを作ってみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?