ゲーム - 脱出¶
このゲームは「脱出」と呼ばれています。 プレイヤーの目的は、MPU6050センサーを傾けてLEDマトリックス上でピクセルを動かし、マトリックスの境界にある開口部(出口)を通過させることです。
必要なコンポーネント
このプロジェクトでは、以下のコンポーネントが必要です。
一式を購入するのが便利です。こちらがリンクです:
名称 |
このキットのアイテム数 |
リンク |
---|---|---|
Elite Explorer Kit |
300+ |
以下のリンクから個別に購入することもできます。
コンポーネント紹介 |
購入リンク |
---|---|
- |
|
- |
配線図
回路図
コード
注釈
ファイル
11_escape_square.ino
は、パスelite-explorer-kit-main\fun_project\11_escape_square
で直接開けます。または、このコードをArduino IDEにコピーしてください。
注釈
ライブラリをインストールするには、Arduinoライブラリマネージャーで 「Adafruit MPU6050」 を検索し、インストールしてください。
どのように動作するのか?
コードの詳細な説明はこちらです:
ライブラリのインポートとグローバル変数:
LEDマトリックス、Wire(I2C通信用)、MPU6050(モーションセンサー)、および
Adafruit_Sensor
ライブラリをインポートします。 MPU6050とLEDマトリックスオブジェクトを初期化します。 pixelXやpixelY(ピクセルの位置)、gapStartやside(ギャップの開始位置とその側面)、level(ゲームの難易度レベル)などのグローバル変数を定義します。setup()
:LEDマトリックスを初期化し、ギャップ付きのマトリックスを描きます。 シリアル通信を初期化し、MPU6050センサーが正しく起動しているか確認し、加速度範囲を2gに設定します。
loop()
:MPU6050センサーの読み取りに基づいてピクセルの位置を定期的に更新します。 ギャップの位置を定期的に移動させます。 新しいピクセルのレイアウトを読み込み、LEDマトリックスにレンダリングします。 ピクセルがギャップを通過したかどうかを確認します。 通過した場合、成功を表示するために1.5秒間遅延させ、ゲームの難易度を上げ、ピクセルの位置をリセットします。
その他の関数:
drawSquareWithGap()
:8x8の境界を描き、その中にギャップを作成します。createGap()
:指定された側に長さ2のギャップを作成します。moveGap()
:現在の側面とgapStartに基づいてギャップの位置を移動させ、必要に応じて側面を変更します。movePixelBasedOnMPU()
:MPU6050から加速度データを読み取ります。加速度データに基づいてピクセルの位置を移動させます(ピクセルが境界外や壁に当たった場合はリセット)。resetPixel()
:ピクセルの位置をマトリックスの中心にリセットします。checkPixelPosition()
:ピクセルがギャップ上にあるかどうかを確認します。もしそうなら、ゲームの難易度レベルを上げ、パスフラグをtrueに設定します。