پروژه ماتریس LED RGB ESP32-S3 6 - بازی Cible

پروژه ماتریس LED RGB ESP32-S3 6 - بازی Cible

پروژه 6 - بازی هدف (تخت را کج کنید تا دایره را بزنید)

پروژه ۶ آخرین و تعاملی‌ترین پروژه در این سری ماتریس LED RGB ESP32-S3 است. با استفاده از حساس(حس کننده) حرکتی QMI8658C روی برد، شما برد را کج می‌کنید تا یک نقطه را درون ماتریس ۸×۸ حرکت دهید. یک "منطقه هدف" دایره‌ای در وسط نمایشگر قرار دارد. وقتی نقطه شما به دایره برخورد کند، رنگ تغییر می‌کند و (در صورت تمایل) یک زنگ هشدار به صدا در می‌آید. این یک بازی ساده اما به طرز شگفت‌آوری سرگرم‌کننده برای تعادل/هماهنگی ایجاد می‌کند.

تمام شش پروژه در یک ویدیو یوتیوب (که در این صفحه جاسازی شده است) نمایش داده شده‌اند. شِفر (کود) کامل بازی به‌طور خودکار زیر این مقاله بارگذاری می‌شود و واصل‌های خرید وابسته برای ماجیول در زیر بخش شِفر (کود) ظاهر می‌شوند.

مروری بر ماجیول ماتریس LED RGB ESP32-S3

این ماجیول شامل:

  • میکروکنترلر ESP32-S3(Wi-Fi + BLE)
  • ماتریس LED RGB ۸×۸(۶۴ LED قابل آدرس‌دهی)
  • شتاب‌سنج QMI8658Cبرای حس کردن زاویه و انحراف
  • یواس‌بی-Cپورت برای قدرت و برنامه‌نویسی
  • راه‌اندازی مجدد / بازنشانیدکمه‌ها
  • موجودپایه‌های GPIOبرای افزودنی‌هایی مانند زنگ‌ها یا حسگرها

برای این بازی، شتاب‌سنج ضروری است - به طور مداوم شیب X/Y را گزارش می‌کند و به نقطه اجازه می‌دهد تا نرم و بدون مشکل بر اساس زاویه تخته حرکت کند. بخش ویدیویی این پروژه به وضوح نشان می‌دهد که چگونه نقطه به آرامی حرکت می‌کند و واکنش نشان می‌دهد زمانی که ماجیول را به چپ/راست/جلو/عقب مایل می‌کنید.:contentReference[oaicite:0]{index=0}

پروژه‌های پوشش داده شده در ویدیو (زمان‌های مشخص)

  • ۰۰:۰۰- مقدمه
  • ۰۰:۰۲- نصب بردهای ESP32
  • ۰۳:۳۲- نصب کتابخانه‌ها
  • ۰۵:۳۲- پروژه ۱: نقطه متحرک
  • ۱۱:۱۱- پروژه ۲: پیمایش متن
  • ۱۲:۵۹- پروژه 3: متن HTTP
  • ۱۶:۴۱- پروژه ۴: نقطه کج
  • ۱۸:۵۵پروژه ۵: فلش بالا
  • ۲۰:۰۲-پروژه ۶: بازی هدف (این پروژه)

این بخش از ویدیو همزمان حرکت نقطه و منطق تشخیص دایره را نشان می‌دهد و درک رفتار مختصات را آسان‌تر می‌کند.:contentReference[oaicite:1]{index=1}

نصب بردهای ESP32 در محیط Arduino IDE

اگر پروژه‌های قبلی را قبلاً انجام داده‌اید، نصب تخته انجام شده است. در غیر این صورت مراحل زیر را دنبال کنید:

  1. File > Preferences→ آدرس برد ESP32 را اضافه کنید.
  2. Tools > Board > Boards Manager…→ نصب "ESP32".
  3. کارت ESP32-S3 را انتخاب کنید زیرTools > Board.
  4. پورت COM صحیح را انتخاب کنید زیرTools > Port.

نصب کتابخانه‌های مورد نیاز

این بازی از:

  • Adafruit NeoMatrix
  • Adafruit NeoPixel
  • Adafruit GFX
  • QMI8658(حساس(حس کننده) حرکتی)

آنها را از طریق نصب کنید:

  1. Sketch > Include Library > Manage Libraries…
  2. جستجو:نئو ماتریکس→ نصب
  3. نصب وابستگی‌ها (GFX+نیوپیکسل)
  4. جستجو و نصبQMI8658

طرز کار بازی هدف

شتاب‌سنج QMI8658C مقادیر کج‌شدگی X و Y را ارائه می‌دهد. این مقادیر به مختصات LED (۰-۷ در هر دو جهت) نگاشته شده‌اند. نقطه شما بر اساس زاویه برد، در ماتریس حرکت می‌کند.

یک دایره (یا حلقه) بر روی نمایشگر به عنوان "منطقه هدف" ترسیم شده است. هر زمان که نقطه با دایره همپوشانی داشته باشد، شما یک "ضربه" برنده می‌شوید. در آن لحظه:

  • رنگ هدف تغییر می‌کند (تصادفی یا از قبل تعیین‌شده)
  • یک زنگ اختیاری بیپ می‌زند (در صورت اتصال)

از آنجایی که ماتریس کوچک است، دایره با استفاده از یک بررسی ساده شعاع ترسیم می‌شود. بازی به طور مداوم اجرا می‌شود، بنابراین می‌توانید به جلو و عقب مایل شوید تا به طور مکرر دایره را ضربه بزنید.

پروژه ۶ - تنظیمات شِفر (کود) (بازی هدف)

در زیر تنظیمات اصلی قابل تنظیم توسط کاربر که در بالای طرح قرار دارند آورده شده است. شِفر (کود) کامل به طور خودکار در زیر این مقاله گنجانده شده است.

پیکربندی ماتریس


// Matrix configuration
const int MATRIX_PIN    = 14;
const int MATRIX_WIDTH  = 8;
const int MATRIX_HEIGHT = 8;

ماتریس RGB به GPIO 14 متصل است - این را تغییر ندهید.

درخشندگی


uint8_t matrixBrightness = 40;   // 0–255

برای استفاده در داخل ساختمان، ۳۰-۶۰ ایده‌آل است.

رنگ نقطه


// Dot color (R, G, B)
uint8_t dotRed   = 255;
uint8_t dotGreen = 255;
uint8_t dotBlue  = 255;

این نقطه‌ای است که با کج کردن تخته جابه‌جا می‌کنید.

رنگ دایره (تصادفی یا ثابت)


// Circle (target) color
uint8_t circleRed   = 0;
uint8_t circleGreen = 0;
uint8_t circleBlue  = 255;

// If true, choose a new random color each time the dot hits
bool randomCircleColor = true;

تنظیمrandomCircleColor = false;اگر شما یک رنگ ثابت می‌خواهید.

شعاع دایره


// Target size (radius)
int targetRadius = 3;   // 3 fits well on 8×8 matrix

شعاع‌های بزرگ‌تر بازی را آسان‌تر می‌کنند؛ در حالی که شعاع‌های کوچک‌تر آن را سخت‌تر می‌کنند.

حساسیت کج شدن


// Sensitivity of tilt mapping
float tiltScale = 4.0f;   // increase = faster movement across screen

اگر نقطه خیلی سریع حرکت کند یا بپرد، این عدد را کاهش دهید.

تنظیمات بوق (اختیاری)


// Buzzer pin (optional)
int buzzerPin = 6;      // connect buzzer + to pin 6, – to GND
bool useBuzzer = true;  // set false to disable sound

اگر یک زنگ وصل نکنید، به سادگی تنظیم کنیدuseBuzzer = false;

خلاصه

پروژه ۶ همه چیزهایی که از پروژه‌های قبلی آموخته شده را ترکیب می‌کند: طراحی ماتریسی، ورودی شتاب‌سنج، کنترل رنگ، نرم کردن حرکت و صدای اختیاری. کج کردن بورد نقطه را حرکت می‌دهد و ضربه به دایره، رنگ آن را تغییر می‌دهد و (اختیاری) یک بیپ ایجاد می‌کند. این یک نمایش سرگرم‌کننده از حساس(حس کننده) حرکت در یک نمایشگر RGB جمع و جور است.

شِفر (کود) کامل "بازی هدف" به طور خودکار زیر این مقاله نمایش داده می‌شود. شما همچنین می‌توانید بخش پروژه 6 این ویدئو را تماشا کنید تا ببینید نقطه چگونه حرکت می‌کند و چطور برخوردها شناسایی می‌شوند. اگر می‌خواهید بازی خود را بسازید، واصل‌های وابسته برای خرید ماجیول LED ماتریس RGB ESP32-S3 در زیر بخش شِفر (کود) ظاهر می‌شوند.

تصاویر

ESP32 S3 Matrix
ESP32 S3 Matrix
ESP32 S3 Matrix  pin out
ESP32 S3 Matrix pin out
ESP32-S3_RGB_8x8_matrix-3
ESP32-S3_RGB_8x8_matrix-3
ESP32 S3 Matrix displaying rainbow heart 3
ESP32 S3 Matrix displaying rainbow heart 3
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix-2
ESP32-S3_RGB_8x8_matrix-2
804-ESP32-S3 RGB LED Matrix Project 6 - Cible game
زبان: C++
کپی شد!

مواردی که ممکن است به آن‌ها نیاز داشته باشید

منابع و مراجع

فایل‌ها📁

فایل فریزینگ