در این آموزش، ما یاد خواهیم گرفت که چگونه یک جویاستیک XY را با میکروکنترلر ESP32 از شرکت SunFounder ارتباط دهیم، که به ما اجازه میدهد موقعیت آن را تشخیص داده و بر اساس ورودی آن اقدام کنیم. ما همچنین یک زنگ هشدار را ادغام خواهیم کرد که هنگام حرکت جویاستیک به موقعیت خاصی فعال میشود. این ترکیب به ما امکان میدهد پروژههای تعاملی ایجاد کنیم که به ورودی کاربر در زمان واقعی پاسخ دهند.
ESP32-26-xy-joystick-main
جوی استیک XY دو خروجی آنالوگ مرتبط با موقعیتهای X و Y و یک کلید دارد که میتوان آن را فشار داد تا عملی را تحریک کند. با خواندن مقادیر از جوی استیک، میتوانیم عناصر مختلفی را در پروژهمان کنترل کنیم، مانند فعال کردن زنگ یا نمایش مقادیر روی صفحه نمایش. برای درک کامل فرآیند، حتماً ویدیو را برای اطلاعات اضافی بررسی کنید (در ویدیو در :00).
توضیحاتی درباره سختافزار
اجزای اصلی این پروژه شامل میکروکنترلر ESP32، دسته بازی XY و یک زنگ هشدار است. ESP32 یک برد چندمنظوره است که از Wi-Fi و Bluetooth پشتیبانی میکند و آن را برای پروژههای اینترنت اشیاء ایدهآل میسازد. دسته بازی XY شامل دو مقاومت متغیر برای محورها X و Y و یک کلید فشار برای ورودی اضافی است.
نقشه_کنترل_کنندهESP32-26-xy-دیاگرام-جویاستیک
جویاستیک سیگنالهای آنالوگی متناسب با موقعیت خود تولید میکند که توسط پایههای آنالوگ ESP32 خوانده میشوند. دکمه فشار به هنگام فشرده شدن یک سیگنال دیجیتال ارائه میدهد. بوق به یک پایه خروجی دیجیتال در ESP32 متصل است که این امکان را فراهم میآورد تا بر اساس موقعیت جویاستیک فعال یا غیرفعال شود.
جزئیات برگه داده
تولیدکننده
سانفاندر
شماره قطعه
مدول جوی استیک XY
ولتاژ عملیاتی
۳.۳ ولت - ۵ ولت
مقدار مقاومت
۱۰ کیلو اهم (هر محور)
حداکثر جریان
۲۰ میلیآمپر
نوع سوئیچ
دکمه فشاری لحظهای
ابعاد
تقریباً 50 میلیمتر x 50 میلیمتر
اطمینان حاصل کنید که جویاستیک با ۳.۳ ولت تغذیه شده است تا با ESP32 سازگار باشد.
از مقاومتیهای بالا کشیدن برای کلید استفاده کنید تا از ورودیهای معلق جلوگیری شود.
خروجیهای آنالوگ را به پایههای ADC (۳۴ برای X، ۳۵ برای Y) ESP32 متصل کنید.
از یک مکانیزم دیباونس برای سوئیچ استفاده کنید تا از تحریک کاذب جلوگیری شود.
نظارت بر سطوح ولتاژ برای اطمینان از اینکه در محدودههای ایمن عملکرد باقی میمانند.
دستورالعملهای برقکشی
ESP32-26-xy-joystick-wiring
برای اتصال جویاستیک به ESP32، ابتدا پایه زمین جویاستیک را به یک پایه زمین روی ESP32 وصل کنید. سپس، پایه VCC جویاستیک را به پایه 3.3 ولت روی ESP32 متصل کنید. جویاستیک دارای دو پایه خروجی آنالوگ است: خروجی محور X (برچسبگذاری شده به عنوانVRXبه پایه34بر روی ESP32 و خروجی محور Y (نشانهگذاری شده به عنوانVRY) به پایه35.
برای خروجی سوئیچ، پایه سوئیچ را به پایه متصل کنید.33بر روی ESP32. این پایه فشار دکمه را به عنوان ورودی دیجیتال خوانده و مطمئن شوید که اتصالات ایمن هستند تا از بروز مشکلات متناوب جلوگیری شود. اگر سیمکشی شما با ویدیوی (در ویدیو در 02:30) متفاوت است، بر اساس اصول یکسان برای اتصالات آنالوگ و دیجیتال، بهطور مناسب تعدیل کنید.
مثالهای شِفر (کود) و راهنمایی
در شِفر (کود)، ما با تعریف ثوابت برای پایههای جویاستیک شروع میکنیم. شناسههاxAxis,yAxis, andbtnتنظیم شدهاند تا34,35چو، و33، به ترتیب. این کار ارجاع به این پایهها را در سراسر برنامه آسان میکند.
#define xAxis 34
#define yAxis 35
#define btn 33
در setup()در این تابع، ارتباط سری را راهاندازی کرده و حالت پایه دکمه را به ورودی تنظیم میکنیم. این کار ESP32 را برای خواندن دادهها از جویاستیک و ارسال آنها به مانیتور سری آماده میکند.
داخلloop()ما مقادیر آنالوگ برای محورهای X و Y جوی استیک را با استفاده از مطالعه میکنیم.analogRead()و آنها را در ذخیره کنیدxValueوyValue. وضعیت دکمه با استفاده از خوانده میشودdigitalRead()و در آن ذخیره شده استbtnValueدر نهایت، این مقادیر را به نمایشگر سریالی چاپ میکنیم.
void loop() {
int xValue = analogRead(xAxis);
int yValue = analogRead(yAxis);
int btnValue = digitalRead(btn);
Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
delay(300); // Delay between reads
}
این حلقه بهصورت مداوم مقادیر را بهروزرسانی میکند و بازخورد لحظهای در مورد حرکت جویاستیک و فشار دادن دکمهها ارائه میدهد. برای شِفر (کود) کامل، لطفاً به شِفر (کود) کامل بارگذاریشده در زیر مقاله مراجعه کنید.
نمایش / چه انتظاری داشته باشید
زمانی که تنظیمات کامل و شِفر (کود) بارگذاری شد، نمایشگر مسلسل باید مقادیر X و Y را همراه با وضعیت دکمه نمایش دهد. هنگامی که جویاستیک را حرکت میدهید، مقادیر به تناسب تغییر میکنند و موقعیت آن را نشان میدهند. فشار دادن دکمه وضعیت آن را بین بالا و پایین سوئیچ میکند.
دامنههای رایجی شامل سیمکشی نادرست است که میتواند منجر به ورودیهای شناور یا عدم پاسخ از جوی استیک شود. اطمینان حاصل کنید که پایههای صحیح استفاده میشوند و مقاومتهای کششی برای سوئیچ پیادهسازی شدهاند. ویدیو را برای دموهای عملی این رفتارها مشاهده کنید (در ویدیو در ساعت 13:00).
زمانبندی ویدیوها
۰۰:۰۰ شروع
1:47 مقدمهای بر جویاستیک XY
۷:۳۲ اندازهگیری مقادیر جویاستیک
۸:۴۰ توضیحاتی درباره سیمکشی
11:06 شِفر (کود) آردوینو برای جویاستیک با ESP32 توضیح داده شده است