ゲーム - 脱出

このゲームは「脱出」と呼ばれています。 プレイヤーの目的は、MPU6050センサーを傾けてLEDマトリックス上でピクセルを動かし、マトリックスの境界にある開口部(出口)を通過させることです。

必要なコンポーネント

このプロジェクトでは、以下のコンポーネントが必要です。

一式を購入するのが便利です。こちらがリンクです:

名称

このキットのアイテム数

リンク

Elite Explorer Kit

300+

Elite Explorer Kit

以下のリンクから個別に購入することもできます。

コンポーネント紹介

購入リンク

Arduino Uno R4 WiFi

-

ジャンパーワイヤー

BUY

GY-87 IMUモジュール

-

配線図

../_images/11_escape_bb.png

回路図

../_images/11_escape_schematic.png

コード

注釈

  • ファイル 11_escape_square.ino は、パス elite-explorer-kit-main\fun_project\11_escape_square で直接開けます。

  • または、このコードをArduino IDEにコピーしてください。

注釈

ライブラリをインストールするには、Arduinoライブラリマネージャーで 「Adafruit MPU6050」 を検索し、インストールしてください。

どのように動作するのか?

コードの詳細な説明はこちらです:

  1. ライブラリのインポートとグローバル変数:

    LEDマトリックス、Wire(I2C通信用)、MPU6050(モーションセンサー)、および Adafruit_Sensor ライブラリをインポートします。 MPU6050とLEDマトリックスオブジェクトを初期化します。 pixelXやpixelY(ピクセルの位置)、gapStartやside(ギャップの開始位置とその側面)、level(ゲームの難易度レベル)などのグローバル変数を定義します。

  2. setup()

    LEDマトリックスを初期化し、ギャップ付きのマトリックスを描きます。 シリアル通信を初期化し、MPU6050センサーが正しく起動しているか確認し、加速度範囲を2gに設定します。

  3. loop()

    MPU6050センサーの読み取りに基づいてピクセルの位置を定期的に更新します。 ギャップの位置を定期的に移動させます。 新しいピクセルのレイアウトを読み込み、LEDマトリックスにレンダリングします。 ピクセルがギャップを通過したかどうかを確認します。 通過した場合、成功を表示するために1.5秒間遅延させ、ゲームの難易度を上げ、ピクセルの位置をリセットします。

  4. その他の関数:

    • drawSquareWithGap():8x8の境界を描き、その中にギャップを作成します。

    • createGap():指定された側に長さ2のギャップを作成します。

    • moveGap():現在の側面とgapStartに基づいてギャップの位置を移動させ、必要に応じて側面を変更します。

    • movePixelBasedOnMPU():MPU6050から加速度データを読み取ります。加速度データに基づいてピクセルの位置を移動させます(ピクセルが境界外や壁に当たった場合はリセット)。

    • resetPixel():ピクセルの位置をマトリックスの中心にリセットします。

    • checkPixelPosition():ピクセルがギャップ上にあるかどうかを確認します。もしそうなら、ゲームの難易度レベルを上げ、パスフラグをtrueに設定します。