注釈

こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。

参加する理由は?

  • エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。

  • 学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。

  • 独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。

  • 特別割引:最新製品の独占割引をお楽しみください。

  • 祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。

👉 私たちと一緒に探索し、創造する準備はできていますか?[ ここ]をクリックして今すぐ参加しましょう!

ゲーム - ポン

これは、OLEDディスプレイとArduinoボードを使用して設計されたシンプルなポンゲームです。 ポンゲームでは、プレイヤーはコンピュータと対戦し、垂直なパドルを操作して跳ね返るボールを跳ね返します。 目標は、ボールを自分のパドルの端を越えさせないようにすることで、さもなければ相手に得点されます。

ゲームのメカニズムは以下のパーツに分けられます:

  1. ボールの動き - ボールは現在の方向に沿って設定された速度で動きます。ボールがパドルに衝突するたびに、その速度が増加し、ゲームがより難しくなります。

  2. パドルの動き - ボールの動きをブロックするために使用されるパドルは、上または下に動かすことができます。プレイヤーはボタンを使用して自分のパドルを操作し、コンピュータのパドルは自動的にボールの位置に従います。

  3. スコアリング - ボールが画面の左または右端を越えるたびに、対応するプレイヤーまたはCPUが得点します。

必要なコンポーネント

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

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

名称

このキットのアイテム数

リンク

Elite Explorer Kit

300+

Elite Explorer Kit

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

コンポーネント紹介

購入リンク

Arduino Uno R4 WiFi

-

ブレッドボード

購入

ジャンパーワイヤー

購入

抵抗器

購入

OLEDディスプレイモジュール

購入

ボタン

購入

電源モジュール

-

配線図

../_images/12_pong_bb.png

回路図

../_images/12_pong_schematic.png

コード

注釈

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

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

注釈

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

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

プログラムの構造は以下の5つの部分に分けられます:

  1. 必要なライブラリのインポート - OLEDスクリーンの制御とボタン入力の読み取りに使用されます。

  2. 定数とグローバル変数の定義:

    OLEDスクリーンの幅と高さの定義。 ボタンとOLEDリセットピンの定義。 ボールとパドルの位置、速度、サイズ、方向。 プレイヤーとCPUのスコア。

  3. 初期化:

    シリアル通信、OLEDスクリーンを初期化し、初期インターフェースを表示します。 ボタンを入力として設定し、プルアップ抵抗器を接続します。 プレイングフィールドを描きます。

  4. メインループ:

    ボタンの状態を読み取ります。 設定されたリフレッシュレートに基づいてボールを動かします。 ボールとパドルまたは壁との衝突を検出し、ボールの方向と速度をそれに応じて調整します。 得点イベントに基づいてスクリーン上のスコアを更新します。 パドルの位置をリフレッシュします。

  5. 追加の関数:

    crossesPlayerPaddlecrossesCpuPaddle - ボールがプレイヤーのパドルまたはCPUのパドルと衝突するかどうかを検出するために使用されます。

    drawCourt - OLEDスクリーン上にプレイングフィールドを描きます。

    displayScore - 画面上にプレイヤーとCPUのスコアを表示します。