拡張現実と仮想ゲームは、ゲーム業界の最近のトレンドになっています。キーボード/ジョイスティックとマウスを使ってコンピュータゲームをプレイする時代は遅れています。現在、すべてのゲーム機には、体の動きやジェスチャーを使用してゲームをプレイするのに役立つ仮想コントローラーが付属しています。これにより、ゲームエクスペリエンスが大幅に向上し、ユーザーはゲームへの関与を深めることができます。
このプロジェクトでは、プロジェクトを通して学びながら楽しんでみましょう。ゲームを作成して(はい、ゲームを作成するつもりです)、手の動きを使ってプレイしましょう。Arduinoと加速度計を使用して古典的なピンポンボールゲームを作成しています。
概要:
最近、私たちのような愛好家にたくさんの幸せをもたらしたオープンソースソフトウェアがたくさんありますが、Processingもその1つです。このJAVAベースのアプリケーションを使用すると、独自のソフトウェア(.exe形式)とAndroidアプリケーション(.apkファイル)を構築できます。したがって、このソフトウェアを使用してゲームを構築します。以前は、Arduinoチャットルームの作成にProcessingを使用しました。
ハードウェア部分は、加速度計から入力をフェッチして、コンピューター/ラップトップにシリアルに供給するArduinoで構成されます。
だから買い物に行きましょう!!!!
必要なコンポーネント:
- Arduino(任意のバージョンまたはモデル)
- 加速度計
- 接続線
- 興味(ロルツ)
加速度計とArduinoNano
回路の説明:
Arduinoピンポンボールゲームプロジェクトのサーキットには、複雑な接続は含まれていません。加速度計付きのArduinoNanoを使用しました。ただし、以下に示すように、注意すべき点はほとんどありません。
1.加速度計は5Vを処理できないため、常に加速度計のVccをArduinoの3.3Vピンに接続します。
2.すべての加速度計は、プログラミング中に処理する必要のある重力の影響を受けます(単にフィルターを使用するだけです)。
これを念頭に置いて、加速度計の動作とその使用方法を見てみましょう。
加速度計の動作:
AN加速度計は、そのそれぞれの可変電圧に対する任意の方向の加速度を変換することができる装置です。これは、コンデンサを使用することによって実現されます(画像を参照)。Accelが移動すると、その内部に存在するコンデンサも移動に応じて変化します(画像を参照)。静電容量が変化するため、可変電圧も取得できます。
したがって、前述のように、すべての加速度計は重力効果の問題に悩まされています。センサーがどれほど正確に校正されていても(Appleの電話でさえAccel。)、重力の影響を受けます。この問題のより技術的な説明を以下に示します。
現在、Arduinoでは、シンプルフィルターを使用して重力の影響を減らすことができます。このフィルターは2つの配列で構成され、1つはセンサーからのサンプル値を格納するために使用され、もう1つはサンプル値を並べ替えて最も繰り返される値を見つけるために使用されます。このアルゴリズムをArduinoに実装して、ハードウェアを準備しましょう。
Arduinoのプログラミング:
Arduinoプログラムは以下のコードセクションに記載されています。変更する必要のある重要なデータはありません。ただし、次のことを検討することをお勧めします。
Accelがまだランダムな値を示している場合は、サンプルサイズを増やします。
#define Samplesize 13 // filterSample番号
9600ボーレートで遊んで、ArduinoとProcessing間の通信速度を上げてください。ただし、必ず両方のソフトウェア(プログラム)で変更してください。
void setup(){Serial.begin(9600); }
X軸の私の加速度計は左端に193、右端に280を与え、加速度を測定して値を更新します。
toSend = map(smoothData1、193、280、0、255);
値は、シリアル通信用に1バイトのデータにマップされます。
明確に理解するために、以下のコードのコメントをさらに確認してください。
プログラミング処理:
Processingは、アーティストがグラフィックデザインに使用するオープンソースソフトウェアです。このソフトウェアは、ソフトウェアおよびAndroidアプリケーションの開発に使用されます。開発は非常に簡単で、Android開発IDEと非常によく似ています。そのため、説明を短くしました。
ピンポンゲームの処理コード は次のとおりです。
- ArduinoPingボールゲームの処理コード
それを右クリックし、[名前を付けてリンクを保存]をクリックしてコードファイルをダウンロードします。次に、「処理中」ソフトウェアでファイルを開き、「実行」ボタンをクリックしてゲームをプレイします。*.pdeファイルを開くには、「Processing」ソフトウェアをインストールする必要があります。コメントセクションはクエリ用に開かれており、プログラムのコメントをチェックして理解を深めてください。
以下の行では、処理コードのvoid setup()関数が重要です。これは、どのポートからデータを取得するかを決定するためです。
ポート=新しいSerial(this、Serial.list()、9600); // 9600ボーレートで4番目のポートを読み取ります
ここでは、Arduinoの4番目のポートからデータを読み取りました。
たとえば、COM COM COM COMCOMがある場合
次に、上記のコードはCOMからデータを読み取ります。
テスト:
処理とArduinoのスケッチの準備ができたので、以下のプログラムをArduinoにアップロードし、プログラミングケーブルを介してArduinoをユーザーPCに接続し、処理コードファイル(.pde)を実行してゲームを起動します。それでおしまい!加速度計を動かして、ピンポンゲームをプレイします。ビデオは、完全なプロジェクトをご案内します。
プログラムを理解したら、Arduinoを使用して多くの同様のゲームを作成し、それらをプレイできます。さらに、Y軸とZ軸もゲームに含まれる場合があります。