کوډ ولټوئ

لومړی ۱۳/۳۱: د XY جوی سټیک کارول د آردوینو سره او د جوی سټیک حرکت سره د بزر غږول | Robojax

لومړی ۱۳/۳۱: د XY جوی سټیک کارول د آردوینو سره او د جوی سټیک حرکت سره د بزر غږول | Robojax

په دې درس کې، موږ د XY جوی سټیک ماډل او د آردوینو سره د هغې د نښلولو څرنګوالی ګورو ترڅو د لوري حرکت او د تڼۍ فشار کشف کړو. دا څو اړخیزه داخلي وسیله دوه پوټینشیومیټرونه (یو د X محور لپاره او یو د Y محور لپاره) او یو فشارونکی تڼۍ لري، چې تاسو ته اجازه درکوي د 360 درجې بشپړ حرکت سره د کلیک عمل ترلاسه کړئ. یوازې د خام ارزښتونو لوستلو هاخوا، موږ به وښیو چې څنګه عملونه پیل کړو — لکه د بزر چالانول — کله چې جوی سټیک په ځانګړي موقعیت کې حرکت وکړي. دا اصل د بې شمېره متقابل پروژو لپاره بنسټ جوړوي.

sunfounder-13-JoyStick-2

دا لارښود د جوړولو لپاره بشپړ دی:

  • د روبوټیک موټر یا پین-ټیلټ کیمرې ماونټ لپاره د دوه محوره ریموټ کنټرول.
  • د PC یا ګرځنده وسیلې لپاره دودیز لوبې کنټرولر.
  • د LCD یا OLED ښودنې لپاره د مینو نیویګیشن سیسټم.
  • د صنعتي یا شوقي غوښتنلیکونو لپاره دقیق موټرو سرعت او لوري کنټرولر.
  • یو متقابل الارم سیسټم چیرې چې د جوی سټیک ځانګړی موقعیت سایری یا خبرتیا فعالوي.

هارډویر او اجزاوې

د دې پروژې سره د تعقیب لپاره، تاسو به لاندې اجزاوو ته اړتیا ولرئ. په ویډیو کې کارول شوی ځانګړی کټ د SunFounder 3-in-1 آردوینو کټ دی، مګر دا برخې په پراخه کچه په انفرادي ډول شتون لري.

  • آردوینو اونو (یا هر مطابقت لرونکی بورډ)
  • XY جوی سټیک ماډل
  • غیر فعال بزر
  • جمپر تارونه
  • د پروګرام کولو او بریښنا لپاره USB کیبل
LB-LR0001_Dual-axis_XY_Joystick_Module

د XY جوی سټیک ماډل پوهیدل

XY جوی سټیک یو ځان بسيا داخلي وسیله ده. لکه څنګه چې په ویډیو کې تشریح شوی (په ویډیو کې په 01:20)، دا دوه 10k اوم پوټینشیومیټرونه لري چې په عمودي ډول تنظیم شوي. د سټیک حرکت کول د X محور په اوږدو کې یو پوټینشیومیټر ګرځوي، پداسې حال کې چې د Y محور په اوږدو کې حرکت کول بل ګرځوي. دا آردوینو ته اجازه ورکوي چې د هر محور لپاره انلاګ ولټاژ ولولي، چې د سټیک دقیق موقعیت استازیتوب کوي. ماډل یو لنډمهاله فشارونکی تڼۍ هم لري چې کله سټیک مستقیم ښکته فشارول شي فعالیږي.

Joystick-Module-Internal-Structure

دلته د هغې د پنونو ماتول دي:

  • GND: د آردوینو ځمکې (0V) سره نښلوي.
  • VCC: د آردوینو د 5V بریښنا رسولو سره نښلوي.
  • VRX: د X محور موقعیت لپاره انلاګ محصول.
  • VRY: د Y محور موقعیت لپاره انلاګ محصول.
  • SW: د فشارونکي تڼۍ لپاره ډیجیټل محصول (فعال ټیټ).

ویډیو دا هم ښیي چې دوه داخلي پوټینشیومیټرونه د VCC او GND ترمنځ په موازي ډول تار شوي، چې د ټولټال مقاومت شاوخوا 5k اوم پایله لري، کوم چې د دې ماډل لپاره عادي لوستل دی (په ویډیو کې په 04:30).

د تارونو لارښود

sunfounder-13_xy_joystick_wiring_bb

د دې پروژې تارونه ساده دي. ویډیو د SunFounder اسنادو څخه د تارونو ډیاګرام ښیي، مګر موږ به جوی سټیک مستقیم د آردوینو پنونو سره وصل کړو لکه څنګه چې تشریح شوي. بزر د پروژې د عمل برخې لپاره اضافه شوی.

دلته هغه اړیکې دي چې په ویډیو کې رامینځته شوي (په ویډیو کې په 06:24):

  • جوی سټیک GNDآردوینو GND (تور تار)
  • جوی سټیک VCCآردوینو 5V (سور تار)
  • جوی سټیک VRXآردوینو A0 (ژیړ تار)
  • جوی سټیک VRYآردوینو A1 (شین تار)
  • جوی سټیک SWآردوینو پن 8 (نیلي تار)
  • بزر مثبت (اوږد پن)آردوینو پن 2
  • بزر منفي (لنډ پن)آردوینو GND

د کوډ تشریح

چمتو شوی کوډ د جوی سټیک موقعیت لوستلو او د بزر فعالولو لپاره ډیزاین شوی کله چې ځانګړی شرط پوره شي. هغه کلیدي برخې چې تاسو یې تنظیم کولی شئ د سکیچ په سر کې دي.

لومړی، د پن تعریفونه ټاکل شوي. تاسو کولی شئ دا د خپل ځانګړي تارونو سره سم بدل کړئ:

const int xPin = A0;  //the VRX attach to
const int yPin = A1;  //the VRY attach to
const int swPin = 8;  //the SW attach to
const int alarmPin=2;//to buzzer

بیا، نړیوال متغیرونه اعلان شوي ترڅو د جوی سټیک حالت ذخیره کړي. دا هر ځل تازه کیږي کله چې د readJoystick() فنکشن وبلل شي.

int xValue;//to store xValue
int yValue;//to store yValue
int swValue;//to store value of the switch

د setup() فنکشن کې، د سویچ پن د داخلي پل-اپ ریزسټر سره تنظیم شوی. دا یو مهم ګام دی ځکه چې دا د بهرني ریزسټر اړتیا له منځه وړي. د INPUT_PULLUP په ټاکلو سره، پن به په ډیفالټ ډول HIGH ولولي او کله چې تڼۍ فشارول شي LOW ته لاړ شي.

pinMode(swPin, INPUT_PULLUP);  //set the SW pin to INPUT

اصلي منطق په loop() کې دی. دا د دوديز readJoystick() فنکشن غږوي ترڅو تازه معلومات ترلاسه کړي. بیا، دا یو حالت ګوري: که د X-محور ارزښت له 600 څخه ډیر وي او د Y-محور ارزښت له 300 څخه کم وي، نو بزر فعالیږي. تاسو کولی شئ دا حدونه بدل کړئ ترڅو د جویسټیک لپاره یو بل "فعاله سیمه" تعریف کړئ. alarmPin په HIGH ټاکل کیږي ترڅو بزر فعال کړي او یو پیغام سریال مانیټور ته چاپ کیږي.

if(xValue >600 && yValue <300)
{
  digitalWrite(alarmPin, HIGH);
  Serial.print("Alarm X:");
  Serial.print(xValue);
  Serial.print(" Y:");
  Serial.println(yValue);
}else{
  digitalWrite(alarmPin, LOW);
  // ... code to print values when alarm is off
}

په پای کې، دوديز فنکشن readJoystick() تعریف شوی. دا فنکشن د X او Y پنونو څخه انلاګ ارزښتونه او د سویچ ډیجیټل حالت لوستي، او دوی په نړیوالو متغیرونو کې ذخیره کوي. دا ماډلر طریقه اصلي لوپ پاک او منظم ساتي.

void readJoystick()
{
  xValue =analogRead(xPin);//read xPin value
  yValue =analogRead(yPin);//read yPin
  swValue =digitalRead(swPin);//read switch 
}

ژوندی پروژه او مظاهره

یوځل چې کوډ اپلوډ شي، سریال مانیټور خلاصیدلی شي ترڅو خام ارزښتونه وګوري. په پیل کې، د جویسټیک په مرکز کې، د X او Y ارزښتونه به شاوخوا 512 وي، کوم چې د 0-1023 حد منځنی ټکی دی. د جویسټیک ښکته فشارول به د سویچ ارزښت له 1 څخه 0 ته بدل کړي (په ویډیو کې په 10:15).

د جویسټیک په انتهاوو کې حرکت کول به بشپړ حد وښيي: دا په بشپړه توګه ښي خوا ته حرکت کول به د X ارزښت 1023 وښيي، او په بشپړه توګه کیڼ خوا ته به 0 وښيي. په ورته ډول، پورته او ښکته حرکت کول به د Y ارزښت د 0 او 1023 ترمنځ بدل کړي (په ویډیو کې په 10:37).

مظاهره بیا د پروژې د عمل برخه ښیي. کله چې جویسټیک پورتنۍ ښي کونج ته حرکت وکړي (چیرته چې X > 600 او Y < 300 وي)، بزر به غږیږي، او سریال مانیټور به د "Alarm" پیغام چاپ کړي. له هغې سیمې څخه لرې حرکت کول به بزر بند کړي. دا ثابتوي چې تاسو کولی شئ د جویسټیک موقعیت وکاروئ ترڅو د محصول وسیله کنټرول کړئ، کوم چې د مختلفو غوښتنلیکونو لپاره د ریلونو، LEDs، یا موټرو کنټرول ته غځول کیدی شي.

فصلونه

  • [00:00] د XY جویسټیک پروژې پیژندنه
  • [01:20] د هارډویر او داخلي برخو پوهیدل
  • [03:33] د ماډل سکیمیټیک او د مقاومت اندازه کول
  • [05:51] جویسټیک له Arduino سره نښلول
  • [07:00] د کوډ تنظیمول او د پل-اپ ریزسټر فعالول
  • [09:23] د کوډ اپلوډ او د خام ارزښتونو ازموینه
  • [12:21] عمل کول: د جویسټیک موقعیت سره د بزر کنټرول
  • [16:02] د الارم سیسټم ژوندۍ مظاهره

انځورونه

Sunfounder car assembled
Sunfounder car assembled
LB-LR0001_Dual-axis_XY_Joystick_Module
LB-LR0001_Dual-axis_XY_Joystick_Module
sunfounder-13-JoyStick-1
sunfounder-13-JoyStick-1
sunfounder-13-JoyStick-2
sunfounder-13-JoyStick-2
Joystick-Module-Internal-Structure
Joystick-Module-Internal-Structure
sunfounder-13_xy_joystick_wiring_bb
sunfounder-13_xy_joystick_wiring_bb
922-Lesson 13/31: How to read position and values of X-Y Joystick
ژبه: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

هغه شیان چې تاسو ورته اړتیا لرئ

سرچینې او حوالې

فایلونه📁

Arduino کتابتونونه (zip)

د کارونکي لارښود