پروژه ماتریس LED RGB ESP32-S3 4 - نقطه کج

پروژه ماتریس LED RGB ESP32-S3 4 - نقطه کج

پروژه ۴ - نقطه کج (حرکت نقطه با کج کردن ماتریس LED RGB ESP32-S3)

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

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

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

این پروژه از ماجیول ماتریس LED RGB ESP32-S3 استفاده می‌کند که شامل:

  • میکروکنترلر ESP32-S3با Wi-Fi و بلوتوث
  • ماتریس LED RGB ۸×۸(64 لامپ LED با آدرس‌دهی جداگانه)
  • شتاب سنج QMI8658Cدر پشت برای تشخیص زاویه و حرکت
  • پورت USBبرای برنامه‌نویسی و قدرت
  • دکمه‌های راه‌اندازی / بازنشانی
  • پایه‌های GPIO قابل استفادهبرای توسعه آینده

حساس(حس کننده) QMI8658C می‌خواندایکس,Y, andزمقادیر شتاب و جهت‌گیری، اجازه می‌دهد نقطه به بالا/پایین/چپ/راست حرکت کند بر اساس اینکه برد چگونه متمایل است.:contentReference[oaicite:0]{index=0}

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

  • ۰۰:۰۰- مقدمه
  • 02:01- نصب بوردهای ESP32
  • ۰۳:۳۲- نصب کتابخانه‌ها
  • ۰۵:۳۲- پروژه ۱: نقطه متحرک
  • ۱۱:۱۱- پروژه ۲: اسکرول متن
  • ۱۲:۵۹پروژه ۳: متن 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 Library
  • QMI8658حساس(حس کننده) حرکتی

آنها را در مدیریت کتابخانه نصب کنید:

  1. باز کنSketch > Include Library > Manage Libraries….
  2. جستجو برایآداگفٹ نیوماتریکس→ نصب کنید.
  3. اجازه نصب خودکار دهیدادافروت جی‌اف‌ایکسوآدافروت نئوپیکسل.
  4. جستجو برایQMI8658توسط نویسنده فهرست شده خود → نصب.:contentReference[oaicite:2]{index=2}

چگونه پروژه ۴ کار می‌کند

حساس(حس کننده) QMI8658C به‌طور مداوم داده‌های شتاب را در طول محورهای X، Y و Z فراهم می‌کند. برای این پروژه، ما فقط از محورهای X و Y برای تصمیم‌گیری استفاده می‌کنیم:

  • چقدر باید نقطه را به سمت چپ یا راست (محور X) جابجا کنیم؟
  • چقدر باید نقطه را بالا یا پایین ببریم (محور Y)

مقدارهای حساس(حس کننده) در یک دامنه مختصاتی از 0 تا 7 (برای ماتریس LED 8×8) نگاشت شده‌اند. موقعیت نقطه بارها در هر ثانیه به‌روزرسانی می‌شود و اثر لغزش ملایمی را هنگام کج کردن ماجیول ایجاد می‌کند.:contentReference[oaicite:3]{index=3}

پروژه ۴ - تنظیمات شِفر (کود) (نقطه مایل)

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

پایه و اندازه ماتریس


// 8×8 RGB matrix configuration
const int MATRIX_PIN    = 14;   // fixed pin for this board
const int MATRIX_WIDTH  = 8;
const int MATRIX_HEIGHT = 8;

ترک کنیدMATRIX_PINدر14این به طور مستقیم به ماتریس onboard متصل است.

روشنایی


// Overall brightness (0–255)
uint8_t matrixBrightness = 40;

در صورت نیاز افزایش دهید، اما از روشنایی بسیار زیاد هنگام مشاهده نزدیک خودداری کنید.

رنگ نقطه


// Dot color (R, G, B)
uint8_t dotRed   = 0;
uint8_t dotGreen = 200;   // light green (default)
uint8_t dotBlue  = 0;

این مقادیر را تغییر دهید تا هر رنگی ایجاد کنید. مثال‌ها:

  • قرمز(255, 0, 0)
  • زرد:(255, 255, 0)
  • سفید:(255, 255, 255)

حساسیت به حرکت

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


// How aggressively tilt affects movement
float sensitivity = 4.0f;   // larger = faster movement across screen

اگر نقطه خیلی آرام حرکت کند → مقدار را افزایش دهید. اگر نقطه خیلی ناگهانی حرکت کند → آن را کاهش دهید.

سرعت به‌روزرسانی (نرخ تجدید)

شما می‌توانید یک تأخیر کوچک بین بروزرسانی‌ها اضافه کنید تا حرکت را روان‌تر کنید:


// Delay between position updates (ms)
int refreshDelayMs = 20;   // lower = smoother and faster response

مقادیر بین 10-30 میلی‌ثانیه بسیار پاسخگو به نظر می‌رسند.

خلاصه

پروژه 4 شتاب‌سنج داخلی QMI8658C ESP32-S3 را به کار می‌گیرد و به شما اجازه می‌دهد که ماتریس LED را با حرکات فیزیکی کنترل کنید. یک مایل کوچک از برد، نقطه را به همان سمت حرکت می‌دهد و این پروژه را به سنگ بنایی مناسب برای پروژه‌های پیشرفته‌تر "فلش بالا" و "بازی هدف" تبدیل می‌کند.

اسکچ کامل Tilt Dot پایین این مقاله (به طور خودکار) بارگذاری شده است. برای درک بهتر، ویدیو نمایش شیب را تماشا کنید، جایی که می‌توانید ببینید نقطه چطور به نرمی حرکت می‌کند در حالی که تخته چرخانده می‌شود. واصل‌هایی برای خرید ماجیول ماتریس 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
ESP32 S3 Matrix displaying rainbow heart
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix-2
ESP32-S3_RGB_8x8_matrix-2
802-ESP32-S3 RGB LED Matrix Project 4 - Tilt dot
زبان: C++
کپی شد!

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

منابع و مراجع

فایل‌ها📁

فایل فریزینگ