آموزش ESP32 36/55 - بازی حدس زدن عدد | کیت یادگیری IoT ESP32 سان فاوندر

آموزش ESP32 36/55 - بازی حدس زدن عدد | کیت یادگیری IoT ESP32 سان فاوندر

در این آموزش، ما یک بازی سرگرم‌کننده حدس عدد را با استفاده از میکروکنترلر ESP32 همراه با یک کنترل از راه دور مادون قرمز و یک نمایشگر LCD ایجاد خواهیم کرد. بازیکن سعی خواهد کرد یک عدد تصادفی بین ۰ تا ۹۹ را حدس بزند، در حالی که بازی نکاتی درباره اینکه آیا حدس بیش از حد بالا یا پایین است، ارائه می‌دهد. از طریق این پروژه، شما خواهید آموخت که چگونه از گیرنده مادون قرمز استفاده کنید، مقادیر را روی LCD نمایش دهید و ورودی کاربر را از یک کنترل از راه دور مدیریت کنید. می‌توانید برای وضوح بیشتر به ویدیو مراجعه کنید (در ویدیو در ۰۰:۰۰).

ESP32_36_guessing_numbe-1
ESP32_36_guessing_numbe-2

توضیح سخت‌افزار

اجزاء اصلی استفاده شده در این پروژه شامل میکروکنترلر ESP32، یک کنترل از راه دور مادون قرمز، یک گیرنده مادون قرمز و یک نمایشگر LCD است. ESP32 به عنوان واحد پردازش اصلی عمل کرده و قادر به انجام ارتباط بی‌سیم است که آن را به گزینه‌ای چندمنظوره برای پروژه‌های IoT تبدیل می‌کند. کنترل از راه دور مادون قرمز به کاربران اجازه می‌دهد حدس‌های خود را بدون نیاز به تعامل فیزیکی با برد وارد کنند، در حالی که LCD وضعیت بازی و پیام‌ها را نمایش می‌دهد.

گیرنده‌ی مادون قرمز سیگنال‌هایی را از کنترل از راه دور شناسایی کرده و آن‌ها را برای استفاده در بازی رمزگشایی می‌کند. هر بار فشار دادن دکمه بر روی کنترل از راه دور به یک مقدار خاص مرتبط است که ESP32 می‌تواند آن را تفسیر کند. نمایشگر LCD یک رابط بصری برای کاربر فراهم می‌کند که دامنه‌ی حدس فعلی و درستی حدس را نشان می‌دهد.

جزئیات برگه داده

سازنده سان فاندرد
شماره قطعه ESP32
ولتاژ منطقی/ورودی-خروجی ۳.۳ ولت
ولتاژ تغذیه ۵ ولت (از طریق USB)
جریان خروجی (برای هر کانال) ۱۲ میلی‌آمپر (حداکثر)
راهنمایی فرکانس PWM 1 کیلوهرتز
آستانه‌های منطقی ورودی ۰.۳ * Vcc تا ۰.۷ * Vcc
افت ولتاژ / RDS(on)/ اشباع ۰.۲ ولت
محدودیت‌های حرارتی دمای عملیاتی: -۴۰ تا ۸۵ درجه سانتی‌گراد
بسته ماجیول WROOM-32
یادداشت‌ها / واریانت‌ها از Wi-Fi و بلوتوث پشتیبانی می‌کند

  • اطمینان حاصل کنید که تمام اجزا برای ۳.۳ ولت و ۵ ولت در صورت لزوم برآورد شده‌اند.
  • از مقاومت‌های کششی مناسب برای گیرنده IR استفاده کنید تا از سیگنال‌های ورودی شناور جلوگیری شود.
  • در نظر داشته باشید که در صورت کار کردن با حداکثر جریان خروجی برای مدت طولانی، از یک هیت سینک استفاده کنید.
  • هنگام استفاده از PWM، فرکانسی در حدود ۱ کیلوهرتز را برای عملکرد بهینه حفظ کنید.
  • با سیم‌کشی احتیاط کنید؛ اطمینان حاصل کنید که اتصالات محکم هستند تا از بروز خرابی‌های متناوب جلوگیری شود.

دستورالعمل های سیم کشی

ESP32_36_guessing_number_wiring

برای راه‌اندازی سیم‌کشی بازی حدس عدد، با اتصال گیرنده مادون قرمز شروع کنید. سیم قرمز را از پایه راست گیرنده به منبع تغذیه ۳.۳ ولت بر روی ESP32 وصل کنید. سیم سیاه باید به زمین متصل شود، در حالی که پایه چپ گیرنده مادون قرمز به پایه متصل می‌شود.14بر روی ESP32.

ESP32_36_نقشه_حدس_عدد

بعد، نمایشگر LCD را سیم‌کشی کنید. پایه VCC LCD را به منبع ۵ ولت بر روی ESP32 و پایه زمین را به زمین متصل کنید. پایه‌های SDA و SCL LCD باید به پایه‌های متصل شوند.21و22به ترتیب. اطمینان حاصل کنید که دو فضای خالی بین اتصالات SDA و SCL وجود دارد تا از تعارض پایه‌ها جلوگیری شود. در نهایت، قبل از روشن کردن برد، حتماً هرگونه پوشش پلاستیکی از باتری را بردارید.

نمونه‌های شِفر (کود) و راهنما

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

#include 
#include 
#include 
#include 

const uint16_t IR_RECEIVE_PIN = 14;
IRrecv irrecv(IR_RECEIVE_PIN);
decode_results results;

در این بخش، کتابخانه‌هایی برای مدیریت عملکرد LCD و گیرنده IR را شامل می‌کنیم. پایه مربوط به گیرنده مادون قرمز تعریف شده است14و ما نمونه‌هایی از اشیای لازم برای مدیریت ورودی و خروجی ایجاد می‌کنیم.

void setup() {
  lcd.init();
  lcd.backlight();
  Serial.begin(9600);
  irrecv.enableIRIn();
  initNewValue();
}

این قطعه شِفر (کود) تابع راه‌اندازی را نشان می‌دهد که در آن ما LCD را راه‌اندازی کرده، ارتباط سریال را آغاز کرده و گیرنده IR را فعال می‌کنیم. تابعinitNewValue()به تولید یک عدد تصادفی جدید برای حدس بازیکن فراخوانی می‌شود.

bool detectPoint() {
  if (count > pointValue) {
    if (count < upper) upper = count;
  } else if (count < pointValue) {
    if (count > lower) lower = count;
  } else if (count == pointValue) {
    count = 0;
    return 1;
  }
  count = 0;
  return 0;
}

این تابع حدس بازیکن را با شماره تصادفی ایجاد شده بررسی می‌کند و حدهای بالا و پایین را به‌طور مربوطه تنظیم می‌کند. اگر حدس درست باشد، شمارش را بازنشانی کرده و true را بازمی‌گرداند.

شِفر (کود) کامل در زیر مقاله برای مرجع شما بارگذاری شده است.

نمایشگاه / چه انتظاری داشته باشید

وقتی همه چیز متصل شد و شِفر (کود) بارگذاری شد، بازی از شما می‌خواهد که هر شماره‌ای را روی کنترل از راه دور فشار دهید. سپس بازی بازخوردی در مورد حدس‌های شما ارائه می‌دهد و دامنه اعداد ممکن را به‌روزرسانی می‌کند تا زمانی که شماره هدف را به‌درستی حدس بزنید. اگر دکمه POWER را فشار دهید، بازی ریست می‌شود و دوباره آغاز می‌شود (در ویدیو در ۰۲:۳۰).

اشتباهات رایج شامل اطمینان از این است که گیرنده مادون قرمز به درستی تنظیم شده و تمام اتصالات ایمن هستند. اگر بازی پاسخ نداد، منبع تغذیه را بررسی کنید و اطمینان حاصل کنید که برد و پورت صحیح در محیط Arduino IDE انتخاب شده‌اند.

زمان‌بندی ویدیو

  • ۰۰:۰۰ شروع
  • معرفی پروژه بازی ۲:۱۷
  • ۴:۳۷ سیم‌کشی
  • شِفر (کود) آردوینو توضیح داده شده ۶:۱۵
  • انتخاب برد ESP32 و پورت COM در محیط Arduino IDE در :32
  • شانزده: شانزده بازی حدس عدد را بازی می‌کنم

تصاویر

ESP32_36_guessing_number_schematic
ESP32_36_guessing_number_schematic
ESP32_36_guessing_number_wiring
ESP32_36_guessing_number_wiring
ESP32_36_guessing_numbe-1
ESP32_36_guessing_numbe-1
ESP32_36_guessing_numbe-2
ESP32_36_guessing_numbe-2
837-ESP32 Tutorial 36/55- Arduino code for guessing number
زبان: C++
کپی شد!

فایل‌ها📁

هیچ فایلی موجود نیست.