ESP32 টিউটোরিয়াল ২৬/৫৫ - আরডুইনো দিয়ে জয়স্টিক ব্যবহার করে অ্যাকশন নেওয়া | সানফাউন্ডারের ESP32 আইওটি কিট
এই টিউটোরিয়ালে, আমরা শিখব কীভাবে SunFounder-এর ESP32 মাইক্রোকন্ট্রোলারের সাথে একটি XY জয়স্টিক সংযোগ করতে হয়, যাতে আমরা এর অবস্থান শনাক্ত করতে পারি এবং এর ইনপুটের ভিত্তিতে পদক্ষেপ নিতে পারি। আমরা একটি বুজারও সংযুক্ত করব যা জয়স্টিকটি একটি নির্দিষ্ট অবস্থানে সরানো হলে সক্রিয় হবে। এই সংমিশ্রণ আমাদের ইন্টারেক্টিভ প্রজেক্ট তৈরি করতে সক্ষম করবে যা রিয়েল-টাইমে ব্যবহারকারীর ইনপুটে সাড়া দেয়।
XY জয়স্টিকটি X এবং Y অবস্থানের সাথে সম্পর্কিত দুটি অ্যানালগ আউটপুট এবং একটি সুইচ সরবরাহ করে যা একটি ক্রিয়া ট্রিগার করতে চাপ দেওয়া যেতে পারে। জয়স্টিক থেকে মান পড়ার মাধ্যমে, আমরা আমাদের প্রজেক্টের বিভিন্ন উপাদান নিয়ন্ত্রণ করতে পারি, যেমন একটি বুজার সক্রিয় করা বা স্ক্রিনে মান প্রদর্শন করা। প্রক্রিয়াটি সম্পূর্ণরূপে বোঝার জন্য, অতিরিক্ত অন্তর্দৃষ্টির জন্য ভিডিওটি দেখতে ভুলবেন না (ভিডিওতে 00:00 এ)।
হার্ডওয়্যার ব্যাখ্যা
এই প্রজেক্টের প্রধান উপাদানগুলির মধ্যে রয়েছে ESP32 মাইক্রোকন্ট্রোলার, XY জয়স্টিক এবং একটি বুজার। ESP32 একটি বহুমুখী বোর্ড যা Wi-Fi এবং ব্লুটুথ সমর্থন করে, যা এটিকে IoT প্রজেক্টের জন্য আদর্শ করে তোলে। XY জয়স্টিকে X এবং Y অক্ষের জন্য দুটি পরিবর্তনশীল রোধক এবং অতিরিক্ত ইনপুটের জন্য একটি পুশ বাটন সুইচ থাকে।
জয়স্টিকটি তার অবস্থানের সাথে সম্পর্কিত অ্যানালগ সংকেত আউটপুট করে, যা ESP32-এর অ্যানালগ পিন দ্বারা পড়া হয়। পুশ বাটনটি চাপলে একটি ডিজিটাল সংকেত সরবরাহ করে। বুজারটি ESP32-এর একটি ডিজিটাল আউটপুট পিনের সাথে সংযুক্ত থাকে, যা জয়স্টিকের অবস্থানের ভিত্তিতে এটি সক্রিয় বা নিষ্ক্রিয় করার অনুমতি দেয়।
ডেটাশিট বিবরণ
| প্রস্তুতকারক | SunFounder |
|---|---|
| পার্ট নম্বর | XY জয়স্টিক মডিউল |
| অপারেটিং ভোল্টেজ | 3.3 V – 5 V |
| রোধক মান | 10 kΩ (প্রতিটি অক্ষ) |
| সর্বোচ্চ কারেন্ট | 20 mA |
| সুইচের ধরন | মোমেন্টারি পুশ বাটন |
| মাত্রা | প্রায় 50 mm x 50 mm |
- ESP32-এর সাথে সামঞ্জস্যের জন্য জয়স্টিকটি 3.3 V দিয়ে চালিত হয়েছে তা নিশ্চিত করুন।
- ফ্লোটিং ইনপুট এড়াতে সুইচের জন্য পুল-আপ রোধক ব্যবহার করুন।
- অ্যানালগ আউটপুটগুলিকে ESP32-এর ADC পিনের সাথে সংযুক্ত করুন (X-এর জন্য 34, Y-এর জন্য 35)।
- ভুল ট্রিগারিং প্রতিরোধ করতে সুইচের জন্য একটি ডিবাউন্স মেকানিজম ব্যবহার করুন।
- ভোল্টেজের মাত্রা নিরীক্ষণ করুন যাতে সেগুলি নিরাপদ অপারেটিং সীমার মধ্যে থাকে।
ওয়্যারিং নির্দেশাবলী

ESP32-এর সাথে জয়স্টিকটি ওয়্যার করতে, প্রথমে জয়স্টিকের গ্রাউন্ড পিনটি ESP32-এর একটি গ্রাউন্ড পিনের সাথে সংযুক্ত করুন। এরপর, জয়স্টিকের VCC পিনটি ESP32-এর 3.3 V পিনের সাথে সংযুক্ত করুন। জয়স্টিকে দুটি অ্যানালগ আউটপুট পিন রয়েছে: X-অক্ষের আউটপুট (VRX হিসাবে চিহ্নিত) ESP32-এর পিন 34-এর সাথে এবং Y-অক্ষের আউটপুট (VRY হিসাবে চিহ্নিত) পিন 35-এর সাথে সংযুক্ত করুন।
সুইচ আউটপুটের জন্য, সুইচ পিনটি ESP32-এর পিন 33-এর সাথে সংযুক্ত করুন। এই পিনটি বাটন চাপাকে একটি ডিজিটাল ইনপুট হিসাবে পড়বে। নিশ্চিত করুন যে সংযোগগুলি নিরাপদ যাতে মাঝে মাঝে সমস্যা না হয়। যদি আপনার ওয়্যারিং ভিডিও থেকে আলাদা হয় (ভিডিওতে 02:30 এ), তবে অ্যানালগ এবং ডিজিটাল সংযোগের জন্য একই নীতিগুলি অনুসরণ করে সেই অনুযায়ী মানিয়ে নিন।
কোড উদাহরণ ও ওয়াকথ্রু
কোডে, আমরা জয়স্টিক পিনগুলির জন্য ধ্রুবক সংজ্ঞায়িত করে শুরু করি। শনাক্তকারী xAxis, yAxis, এবং btn যথাক্রমে 34, 35, এবং 33-এ সেট করা আছে। এটি প্রোগ্রাম জুড়ে এই পিনগুলিকে উল্লেখ করা সহজ করে তোলে।
#define xAxis 34
#define yAxis 35
#define btn 33
setup() ফাংশনে, আমরা সিরিয়াল কমিউনিকেশন শুরু করি এবং বাটন পিনের মোড ইনপুটে সেট করি। এটি ESP32-কে জয়স্টিক থেকে ডেটা পড়তে এবং সিরিয়াল মনিটরে পাঠাতে প্রস্তুত করে।
void setup() {
Serial.begin(115200);
pinMode(btn, INPUT);
}
loop()-এর ভিতরে, আমরা analogRead() ব্যবহার করে জয়স্টিকের X এবং Y অক্ষের অ্যানালগ মান পড়ি এবং সেগুলি 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 মানগুলির সাথে বাটনের অবস্থা প্রদর্শিত হওয়া উচিত। আপনি যখন জয়স্টিকটি সরান, মানগুলি সেই অনুযায়ী পরিবর্তিত হবে, যা তার অবস্থান প্রতিফলিত করবে। বাটনটি চাপলে এর অবস্থা উচ্চ এবং নিম্নের মধ্যে টগল হবে।
সাধারণ ভুলগুলোর মধ্যে রয়েছে ভুল ওয়্যারিং, যা ফ্লোটিং ইনপুট বা জয়স্টিক থেকে কোনো সাড়া না পাওয়ার কারণ হতে পারে। নিশ্চিত করুন যে সঠিক পিন ব্যবহার করা হয়েছে এবং সুইচের জন্য পুল-আপ রেজিস্টর প্রয়োগ করা হয়েছে। এই আচরণগুলোর ব্যবহারিক প্রদর্শনের জন্য ভিডিওটি দেখুন (ভিডিওতে ১৩:০০ মিনিটে)।
ভিডিও টাইমস্ট্যাম্প
- ০০:০০ শুরু
- ১:৪৭ XY জয়স্টিকের পরিচিতি
- ৭:৩২ জয়স্টিকের মান পরিমাপ
- ৮:৪০ ওয়্যারিং ব্যাখ্যা
- ১১:০৬ ESP32 এর সাথে জয়স্টিকের জন্য Arduino কোড ব্যাখ্যা
- ১৪:৪৩ Arduino IDE তে ESP32 বোর্ড এবং COM পোর্ট নির্বাচন
- ১৬:২৪ জয়স্টিকের সহজ ব্যবহারের প্রদর্শন
- ১৯:২০ বুজার সহ জয়স্টিকের অবস্থান শনাক্ত করার কোড
- ২১:১৬ অবস্থান শনাক্ত করার প্রদর্শন
// Define constants for the x and y axis and the button pins
#define xAxis 34
#define yAxis 35
#define btn 33
void setup() {
// Initialize serial communication at 115200 bits per second:
Serial.begin(115200);
// Set the mode of the button pin to input
pinMode(btn, INPUT);
}
void loop() {
// Read the analog value for x,y axis
int xValue = analogRead(xAxis);
int yValue = analogRead(yAxis);
// Read the digital value from the button pin
int btnValue = digitalRead(btn);
// print out the values
Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
delay(300); // Delay between reads
}
Common Course Links
Common Course Files
সম্পদ ও রেফারেন্সসমূহ
-
ডকুমেন্টেশনESP32 Tutorial 26/55 - SunFounder doc page for joystickdocs.sunfounder.com
ফাইলসমূহ📁
কোনো ফাইল উপলব্ধ নেই।