ورکشاپ آموزشی - آیسی مدار
رفتن به محتوا

کیبورد میان‌بر لمسی و بلوتوثی با برد ESP32

ابزار و گجت
۰ نظر
۶۱ نفر
کد ۴۴۷۷

همیشه دوست داشتی یه کیبورد میان‌بر خفن شبیه استریم‌دک (Stream Deck) داشته باشی تا با یه لمس، نرم‌افزارها رو باز کنی یا کلیدهای ترکیبی رو خیلی سریع اجرا کنی؟ تو این آموزش قراره دقیقا همین کار رو انجام بدیم! با ترکیب یه برد قدرتمند و یه صفحه نمایش لمسی، می‌تونی یه ماکرو کیپد بلوتوثی و کاملا شخصی‌سازی‌شده برای خودت بسازی که هم سرعت کارت رو بالا ببره و هم ظاهر جذابی روی میزت داشته باشه.

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

برای ساخت این ماکرو کیپد جذاب، فقط کافیه یه نمایشگر رو به مغز متفکر پروژه‌مون وصل کنیم و کدهای لازم رو روش بریزیم. پس ابزارها و قطعات رو آماده کن تا با هم قدم‌به‌قدم پیش بریم و این گجت لمسی فوق‌العاده رو بسازیم!

قطعات موردنیاز

  • برد توسعه ESP32-WROOM-32 مدل 38 پین
  • نمایشگر TFT مدل ILI9488 مجهز به کنترلر لمسی XPT2046
  • برد مدار چاپی (PCB) اختصاصی برای اتصال راحت‌تر قطعات (اختیاری)
  • هویه و سیم‌لحیم
  • سیم‌لخت‌کن (در صورت استفاده از سیم‌کشی دستی)
  • سیم‌چین
مرحله ۱

آشنایی با قابلیت‌های ماکرو کیپد

قبل از اینکه دست به هویه بشیم، خوبه بدونی دقیقا قراره چی بسازیم. این گجت در واقع یه کنترل پنل لمسیه که می‌تونی دکمه‌های مختلفی روش تعریف کنی. مثلا می‌تونی یه دکمه برای قطع کردن میکروفون، یکی برای باز کردن نرم‌افزار ادیت و یکی دیگه برای کپی و پیست کردن سریع بسازی. حالا که می‌دونی چه دستگاه خفنی قراره روی میزت بشینه، بریم سراغ جمع‌وجور کردن قطعات!

مرحله ۲

تهیه قطعات مورد نیاز

اگه تو وسایل الکترونیکیت یه برد ESP32 و یه نمایشگر ILI9488 داری که عالیه، اگر نه، می‌تونی خیلی راحت اونا رو از فروشگاه‌های قطعات الکترونیک تهیه کنی. ما تو این پروژه از یه برد ESP32-WROOM-32D مدل 38 پین و نمایشگر ILI9488 استفاده کردیم. یه برد PCB اختصاصی هم طراحی شده که اتصال این دوتا رو خیلی تمیز و راحت می‌کنه، اما داشتنش اجباری نیست و می‌تونی با سیم‌کشی دستی هم کار رو پیش ببری.

نکته خیلی مهم: حتما دقت کن که نمایشگر ILI9488 که می‌خری، از نوع لمسی (Touch) باشه، چون مدل‌های بدون تاچ هم تو بازار هست!

با آماده کردن این قطعات اصلی، آماده‌ایم تا بریم سراغ بخش جذاب سخت‌افزار.

مرحله ۳

سیم‌کشی و اتصال نمایشگر به برد ESP32

شاید اولش دیدن این همه پین و سیم یه کم ترسناک به نظر برسه، اما اصلا جای نگرانی نیست. اتصالات خیلی سرراست و مشخص هستن. برای وصل کردن نمایشگر لمسی به ESP32 چند تا راه داری. می‌تونی از بردبورد (Breadboard)، بردهای سوراخ‌دار (Protoboard) یا همون مدار چاپی اختصاصی که گفتیم استفاده کنی.

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

حواست باشه که این نمایشگر با ولتاژ 3.3 ولت کار می‌کنه و اگه اونو به 5 ولت وصل کنی، قطعا می‌سوزه! اتصالات به این شکل هستن: پایه VCC به 3.3 ولت، پایه GND به GND، پایه CS به GPIO15، پایه RESET به GPIO4، پایه DC/RS به GPIO2، پایه SDI(MOSI) و T_DIN به GPIO23، پایه SCK و T_CLK به GPIO18، پایه ال‌ای‌دی به GPIO32، پایه T_CS به GPIO21، پایه T_DO به GPIO19 و پایه T_IRQ به GPIO27.

پایه SDO(MISO) تو این نمایشگر استفاده نمی‌شه، پس طبیعیه که یه پین روی ماژول نمایشگر بدون اتصال باقی بمونه. اگه از PCB مخصوص استفاده کنی، کار لحیم‌کاریت خیلی سریع‌تر و تمیزتر می‌شه.

مرحله ۴

نصب فریم‌ور با ابزار تحت وب (روش پیشنهادی)

برای ریختن نرم‌افزار روی برد دو تا راه داری. یا می‌تونی همه چیز رو دستی از طریق نرم‌افزار آردوینو نصب کنی، یا از ابزار نصب‌کننده تحت وب استفاده کنی که خیلی کار رو راحت‌تر می‌کنه.

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

  • ابزار تحت وب مربوط به پروژه رو باز کن.
  • گزینه ESP32 DevKitC رو انتخاب کن.
  • روی دکمه Connect کلیک کن.

یه پنجره پاپ‌آپ باز می‌شه و ازت می‌خواد به پورت سریال متصل بشی. بردی که ساختی رو با کابل به کامپیوتر وصل کن تا یه پورت جدید تو لیست نشون داده بشه.

  • پورت برد رو انتخاب کن و Connect رو بزن.
  • بعد از اتصال، روی Install کلیک کن.

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

  • روی دکمه Install کلیک کن تا پروسه شروع بشه.

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

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

مرحله ۵

روش دستی: نصب کتابخانه‌های پیش‌نیاز در آردوینو IDE

نصب هسته ESP32 در محیط آردوینو

اگه تصمیم گرفتی کدها رو دستی آپلود کنی، اول باید هسته ESP32 رو روی آردوینو نصب کنی. برو تو مسیر Preferences، تو بخش Additional Board Managers URLs لینک مربوط به بردهای ESP32 رو قرار بده و OK رو بزن. بعدش برو به Tools و Board Manager رو باز کن. کلمه ESP32 رو سرچ کن و آخرین نسخه‌اش رو نصب کن.

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

این پروژه به چند تا کتابخونه نیاز داره. سه تاش رو می‌تونی مستقیم از خود آردوینو بگیری. از منوی Sketch برو به Include Library و Manage Libraries رو باز کن.

حالا این کتابخونه‌ها رو سرچ و نصب کن:

  • TFT_eSPI
  • ArduinoJson

برای کتابخونه‌های مربوط به تاچ و کنترل سیستم، باید فایل ZIP اونا رو دانلود کنی. روند همشون هم یکیه. فایل‌های ZIP رو که دانلود کردی، تو آردوینو از مسیر Sketch <- Include Library گزینه Add .ZIP library رو انتخاب کن و دونه دونه اضافه‌شون کن. یه راه دیگه هم اینه که دستی اکسترکت کنی و بریزی تو پوشه libraries آردوینو تو سیستم خودت.

  • کتابخانه کنترلر لمسی متناسب با پروژه
  • کتابخانه‌های ارتباطی سیستم

یادت نره همیشه آخرین نسخه پایدار کتابخونه‌ها رو استفاده کنی تا موقع کامپایل به ارور نخوری.

مرحله ۶

پیکربندی تنظیمات نمایشگر TFT

قبل از اینکه بخوای کدهای اصلی رو آپلود کنی، باید یه ویرایش کوچیک رو فایل user_setup.h مربوط به کتابخونه TFT_eSPI انجام بدی. این فایل تو پوشه کتابخونه‌های آردوینو (معمولا تو پوشه Documents) قرار داره.

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

برای اینکه کارت راحت‌تر بشه، معمولا کنار سورس کدهای پروژه یه پوشه وجود داره که فایل‌های تنظیمات آماده توش هست. کافیه فایل ESP32_Dev_Kit_V1_ILI9488_Resistive.h رو کپی کنی و ببری تو پوشه اصلی کتابخونه TFT_eSPI. فقط قبلش فایل User_Setup.h اصلی رو به User_Setup.old تغییر نام بده تا اگه مشکلی پیش اومد، نسخه اصلی رو داشته باشی.

حالا اسم فایلی که کپی کردی رو دقیقا بذار User_Setup.h (حروف بزرگ و کوچیک مهمه!) و ذخیره‌اش کن.

مرحله ۷

آپلود اطلاعات روی حافظه برد و پروگرام کردن

ابزار آپلود دیتای ESP

این پروژه برای ذخیره تصاویر و تنظیمات از حافظه فلش برد (سیستم فایل SPIFFS) استفاده می‌کنه. قبل از آپلود کد اصلی، باید این دیتاها رو بفرستی روی برد. برای این کار به ابزار ESP32 Sketch Data Upload نیاز داری. این ابزار رو باید دانلود کنی و طبق این مراحل نصبش کنی:

  • فایل فشرده ابزار رو دانلود کن.
  • تو مسیر پوشه آردوینو خودت، یه پوشه به اسم tools بساز (اگه از قبل نیست).
  • فایل‌ها رو تو این پوشه اکسترکت کن (مسیر نهایی باید به این شکل باشه: Arduino/tools/ESP32FS/tool/esp32fs.jar).
  • نرم‌افزار آردوینو رو ببند و دوباره باز کن.

(اگه مک داری، باید تو پوشه Documents/Arduino این پوشه رو بسازی و فایل‌ها رو اونجا بذاری).

فایل کدهای اصلی

فایل فشرده سورس کد پروژه رو باز کن و اسم پوشه‌اش رو به صورت ساده و بدون کاراکتر اضافه تغییر بده. حالا فایل ino اصلی رو تو آردوینو باز کن. می‌بینی که چند تا تب دیگه شامل فایل‌های هدر (.h) هم کنارش باز می‌شه. اصلا نیازی نیست به این فایل‌های هدر دست بزنی یا تغییری توشون ایجاد کنی.

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

تنظیمات اتصال وای‌فای

برو تو پوشه پروژه، وارد پوشه data و بعد config شو. اونجا فایل wificonfig.json رو باز کن. تو این فایل می‌تونی نام کاربری و رمز وای‌فای خودت رو وارد کنی تا برد به شبکه‌ات وصل بشه و بتونی بعدا تنظیمات رو از طریق مرورگر تغییر بدی.

  • به جای YOUR_WIFI_SSID اسم شبکه وای‌فای خودت رو بنویس.
  • به جای YOUR_WIFI_PASSWORD رمز وای‌فای رو وارد کن.

آپلود دیتا روی حافظه

حالا قبل از آپلود، باید نوع پارتیشن‌بندی حافظه رو مشخص کنی.

  • از منوی Tools برد ESP32 Dev Module رو انتخاب کن.
  • تو همون منو، بخش Partition Scheme رو روی گزینه No OTA (2MB APP/ 2MB SPIFFS) تنظیم کن.
  • برد رو با کابل وصل کن.
  • روی Tools کلیک کن و ESP Sketch Data Upload رو بزن.

یه نکته کلیدی: اگه موقع آپلود دیتا به ارور خوردی، احتمالا پنجره Serial Monitor تو آردوینو باز مونده. ببندش و دوباره امتحان کن!

آپلود برنامه روی ESP32

بعد از اینکه آپلود دیتا با موفقیت تموم شد، دیگه کاری نمونده جز آپلود خود کد اصلی. تنظیمات رو تغییر نده و خیلی راحت دکمه Upload تو آردوینو رو بزن. چون حجم کدها زیاده، این مرحله ممکنه یکم طول بکشه، پس صبور باش.

مرحله ۸

پرینت سه‌بعدی قاب مخصوص (اختیاری)

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

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

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

مرحله ۹

اولین راه‌اندازی و کالیبره کردن صفحه لمسی

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

فایل کالیبراسیون تو حافظه داخلی ESP ذخیره می‌شه. یعنی اگه بعدا دوباره فایل‌های پوشه data رو آپلود کنی، این تنظیمات پاک می‌شه و دستگاه دوباره ازت می‌خواد کالیبره‌اش کنی.

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

به محض اینکه صفحه اصلی لود می‌شه، بلوتوث دستگاه هم روشن می‌شه. حالا می‌تونی بری تو تنظیمات کامپیوترت و لیست بلوتوث‌ها رو رفرش کنی.

اسم دستگاه تو لیست بلوتوث پیدا می‌شه و می‌تونی بهش متصل بشی. برای تست ارتباط، برو تو منوی موسیقی و دکمه Mute (بی‌صدا) رو بزن ببین صدا تو سیستم قطع می‌شه یا نه!

مرحله ۱۰

شخصی‌سازی دکمه‌ها و منوها

جذاب‌ترین بخش کار دقیقا همین‌جاست! این دستگاه در واقع یه وب‌سایت کوچیک رو روی خودش هاست می‌کنه که از طریق اون می‌تونی کل منوها، دکمه‌ها، آیکون‌ها و رنگ‌ها رو به سلیقه خودت تنظیم کنی.

برای ورود به پنل تنظیمات، دکمه پایین سمت راست صفحه لمسی رو بزن تا وارد Settings بشی، بعد دکمه WiFi (بالا سمت چپ) رو لمس کن. حالا کافیه مرورگر کامپیوترت رو باز کنی و وارد آدرس لوکال دستگاه بشی. تو این پنل می‌تونی هر تغییری که دوست داری اعمال کنی و از ماژولی که با دستای خودت ساختی، نهایت استفاده رو ببری.

مرحله ۱۱

عیب‌یابی مدار و سخن پایانی

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

یه مورد دیگه که ممکنه پیش بیاد، آپدیت شدن کتابخونه‌های هسته ESP32 یا نمایشگره که ممکنه با نسخه‌های قدیمی‌تر کد تداخل داشته باشه. پس همیشه مطمئن شو که نسخه‌های سازگار رو نصب کردی.

  • آیا اتصالات رو لحیم کردی یا روی بردبورد بستی؟
  • کدوم پایه رو ممکنه اشتباه وصل کرده باشی؟
  • نسخه کتابخونه TFT تو آردوینو آپدیت هست؟

دمت گرم که تا آخر این آموزش با ما همراه بودی! ساختن گجت‌های خفنی که بتونن سرعت کار کردن با کامپیوتر رو بالا ببرن، همیشه حس خیلی خوبی می‌ده. تیم آیسی‌مدار همیشه دنبال ایده‌های جدید و جذاب می‌گرده.

اگه این ماکرو کیپد بلوتوثی رو ساختی، حتما با دکمه‌ها و آیکون‌های شخصی‌سازی‌شده‌ات یه عکس خفن بگیر و تو شبکه‌های اجتماعی برای ما بفرست تا از دیدن خلاقیتت کیف کنیم. برو بساز و از نتیجه کارت لذت ببر!

فایل‌های پیوست

JSON package_esp32_index.json
ZIP ESP32_TFT_Combiner-master.zip
ZIP ESP32-BLE-Keyboard-master.zip

تو میتونی اولین سازنده باشی!

اگه پروژه رو ساختی به اشتراک بزار و اعتبار هدیه بگیر

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

آموزش‌های مشابه

گفتگو‌های کاربران

هنوز نظری ثبت نشده؛ تو شروع کن!