فهرست مطالب:

بازوی روباتیک با ماژول های زیو قسمت 2: 11 مرحله
بازوی روباتیک با ماژول های زیو قسمت 2: 11 مرحله

تصویری: بازوی روباتیک با ماژول های زیو قسمت 2: 11 مرحله

تصویری: بازوی روباتیک با ماژول های زیو قسمت 2: 11 مرحله
تصویری: آموزش ساخت بازوی رباتیک با آردوینو 2024, جولای
Anonim
بازوی روباتیک با ماژول های زیو قسمت 2
بازوی روباتیک با ماژول های زیو قسمت 2

در آموزش امروز ، ما از 4 سرویس و یک کنترلر بی سیم PS2 برای کنترل بازوی روباتیک استفاده می کنیم.

این پست وبلاگ بخشی از سری Zio Robotics است.

معرفی

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

در آموزش امروز ، ما با استفاده از یک کنترلر بی سیم PS2 برای کنترل بازوی Robotic ، کمی آن را افزایش می دهیم. برای این پروژه ، ما از 4 سرو استفاده می کنیم.

مرحله 1: مرور پروژه

سطح دشواری:

زیو پادوان

منابع مفید:

شما باید درک درستی از نحوه نصب بردهای توسعه Zio داشته باشید. در این آموزش ، فرض می کنیم که صفحه توسعه شما قبلاً پیکربندی شده است و آماده راه اندازی است. اگر هنوز برد خود را پیکربندی نکرده اید ، برای شروع ، آموزش راهنمای شروع Zio Qwiic را در زیر مشاهده کنید:

راهنمای شروع Zio Zuino M UNO Qwiic

مرحله 2: شماتیک

طرحواره ها
طرحواره ها

در اینجا نمودارهای سیم کشی پروژه بازوی روباتیک قسمت 2 و همچنین نمودار کنترلر PS2 مورد نیاز برای درک بخش کدگذاری شما آمده است.

مرحله 3: نمودار کنترلر PS2

نمودار کنترلر PS2
نمودار کنترلر PS2

مرحله 4: اتصال ماژول های Zio را تنظیم کنید

در زیر اتصال ماژول های Zio ما برای راه اندازی با بازوی Robotic است. اتصال همه ماژول ها به یکدیگر بسیار آسان است و راه اندازی آن بیش از 10 دقیقه طول نمی کشد.

مرحله 5: Robotic Arm Servo را به Zio 16 Servo Controller وصل کنید

Robotic Arm Servo را به Zio 16 Servo Controller وصل کنید
Robotic Arm Servo را به Zio 16 Servo Controller وصل کنید

مرحله 6: 16 Servo خود را به تقویت کننده DC/DC متصل کرده و آن را روی 6.0V تنظیم کنید

16 Servo خود را به تقویت کننده DC/DC متصل کرده و آن را روی 6.0V تنظیم کنید
16 Servo خود را به تقویت کننده DC/DC متصل کرده و آن را روی 6.0V تنظیم کنید

ما از تقویت کننده DC/DC برای افزایش و تنظیم ولتاژ تغذیه باتری تا 6.0 استفاده می کنیم.

از پتانسیومتر روی DC Booster برای تنظیم ولتاژ تا رسیدن 6.0 استفاده کنید. دکمه ورود/خروج را فشار دهید تا صفحه نمایش 6.0 نشان داده شود. برای تنظیم ولتاژ ، ابتدا باید منبع تغذیه (باتری 3.7 ولت) را برای تقویت کننده DC/DC خود تامین کنید.

مرحله 7: Zuino M Uno را به Zio 16 Servo Controller وصل کنید

Zuino M Uno را به Zio 16 Servo Controller وصل کنید
Zuino M Uno را به Zio 16 Servo Controller وصل کنید

Qwiic Zuino M Uno را با کابل qwiic به کنترل کننده Zio Servo متصل کنید.

مرحله 8: اتصال Uno به گیرنده PS2

اتصال Uno به گیرنده PS2
اتصال Uno به گیرنده PS2

در اینجا نمودار پین اتصالات آمده است. برای این قسمت به 5 سیم بلوز نر به ماده نیاز دارید.

مرحله 9: کد بازوی روباتیک

ما از کتابخانه آردوینو PS2 برای کدگذاری کنترلر بی سیم PS2 خود برای کار با بازوی روباتیک خود استفاده خواهیم کرد. می توانید کد منبع این پروژه Robotic Arm Part 2 را در صفحه Github ما پیدا کرده و بارگیری کنید.

کتابخانه های زیر را بارگیری و نصب کنید و در پوشه کتابخانه های Arduino IDE محلی خود ذخیره کنید:

  • کتابخانه درایور Adafruit PWM سروو
  • PS2 کتابخانه آردوینو

برای نصب کتابخانه ها Arduino IDE خود را باز کنید ، به برگه Sketch بروید ، Include Library -> Add. Zip Library را انتخاب کنید. کتابخانه های فوق را انتخاب کنید تا در IDE شما گنجانده شوند.

Arduino راهنمای مفیدی در مورد نحوه نصب کتابخانه ها بر روی Arduino IDE شما دارد. آنها را اینجا بررسی کنید!

مرحله 10: کد خود را اجرا کنید

کد خود را اجرا کنید
کد خود را اجرا کنید

Arduino IDE را باز کنید. در قسمت Files> Examples> PS2_Arduino_Library ، PS2X_Servo را انتخاب کنید

توجه: قبل از اینکه بتوانید بازوی Robotic خود را با کنترلر PS2 کنترل کنید مراحل زیر را بررسی کنید: کنترلر PS2 خود را روشن کنید. بررسی کنید چراغ LED حالت روشن شود. اگر اینطور نیست ، دکمه Mode را روی کنترلر خود فشار دهید. پس از انجام موارد بالا ، باید دکمه بازنشانی را روی Zuino M Uno خود فشار دهید تا تنظیمات کنترلر شما خوانده شود. برای حرکت دادن بازوی روباتیک خود باید L1 و Joystick را فشار دهید.

  • جوی استیک چپ خم شدن بازو را به سمت بالا یا پایین کنترل می کند
  • جوی استیک راست پنجه را باز یا بسته می کند و پنجه را به چپ یا راست می چرخاند.

مرحله 11: توضیح کد

استفاده از کتابخانه PS2X Arduino ساده است ، فقط نیاز به مقداردهی اولیه ، راه اندازی و سپس دستور خواندن دارد.

برای تنظیم اتصال PS2 Controller با Uno خود ، در زیر پین هایی را که باید در کد خود تعریف کنید آورده شده است:

/********************************************** ****************تنظیم پین متصل به کنترلر PS2:* - ستون 1e: اصلی* - ستون اصلی 2e: استف؟ *شماره های پین را با شماره هایی که استفاده می کنید جایگزین کنید *************************************** **********************##تعریف PS2_DAT 13 // 14#تعریف PS2_CMD 11 // 15#تعریف PS2_SEL 10 // 16#تعریف PS2_CLK 12 // 17

ما پین ها را با پین هایی جایگزین کرده ایم که از آنها برای اتصال به Uno استفاده می کنیم ، همانطور که در نمودار پین بالا مشخص شده است.

/********************************************** ***************** حالت های کنترل PS2 را انتخاب کنید:* - فشارها = خواندن آنالوگ دکمه های فشار* - غرش = غرش موتور*اظهارنظر 1 خط برای هر انتخاب حالت ** ************************************************* *

در اینجا ما حالت PS2 را برای فشارها و rumble به عنوان false تعریف کردیم. ما مواردی را که استفاده نمی کنیم توضیح دادیم.

ما فقط از فرمان Controller’s Joystick و L1 برای کنترل حرکت بازوی Robotic خود استفاده خواهیم کرد.

void loop () {/* برای دریافت مقادیر جدید و تنظیم مقادیر ارتعاشی ps2x.read_gamepad (موتور کوچک روشن/خاموش ، قدرت موتور بزرگتر از 0-255) در صورت فعال نکردن غرش ، باید Gamepad را بخوانید ، از ps2x.read_gamepad استفاده کنید ()؛ بدون مقدار شما باید حداقل یک بار در ثانیه*/if (خطا == 1) // اگر هیچ کنترلری بازگشتی پیدا نکرد ، این را فراخوانی کنید. else {// DualShock Controller ps2x.read_gamepad (غلط ، ارتعاش) ؛ // کنترل کننده را بخوانید و موتور بزرگ را تنظیم کنید تا با سرعت "ارتعاش" بچرخد اگر (ps2x. Button (PSB_START)) // تا زمانی که دکمه Serial.println ("شروع در حال انجام است") فشار داده شود TRUE خواهد بود ؛ if (ps2x. Button (PSB_SELECT)) Serial.println ("انتخاب در حال برگزاری است") ؛ ارتعاش = ps2x. آنالوگ (PSAB_CROSS) ؛ // این سرعت لرزش موتور بزرگ را بر اساس میزان فشار دادن دکمه آبی (X) در صورت (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// اگر هر یک TRUE RY_Value است چاپ می کند. = ps2x. آنالوگ (PSS_RY) ؛ RX_Value = ps2x. آنالوگ (PSS_RX) ؛ LY_Value = ps2x. آنالوگ (PSS_LY) ؛ LX_Value = ps2x. Analog (PSS_LX) ؛ Serial.print ("Stick Values:") ؛ Serial.print (RX_Value) ؛ Serial.print ("")؛ Serial.print (RY_Value) ؛ Serial.print ("")؛ Serial.print (LY_Value) ؛ Serial.print ("")؛ Serial.println (LX_Value) ؛

کد زیر جایی است که ما سروهای خود را که بازوی روباتیک ما را کنترل می کنند و در فراخوانی تابع زیر ps2x.button (PSB_L1) || ps2x.button (PSB_R1).

برای کنترل بازوی روباتیک خود باید دکمه L1 یا R1 را به همراه Joystick فشار دهید.

سرویس های چپ جوی استیک 2 و 3 برای قسمت بازو - به ترتیب خم شدن بالا و پایین بازو را کنترل می کنند ، در حالی که جوی استیک راست سرویس های 0 و 1 پنجه بازوی روباتیک را باز یا بسته می کند و به چپ یا راست می چرخد.

SERVO 0 ، 1 - پنجه SERVO 2 ، 3 - بازو

برای کنترل درجه زاویه بازوی روباتیک خود می توانید در مقادیر این بخش تغییراتی ایجاد کنید:

pulselen0 = map (RY_Value، 0، 127، SERVOMIN0، SERVOMAX0)؛ pulselen1 = map (RX_Value، 0، 127، SERVOMIN0، SERVOMAX0)؛ pulselen2 = map (LY_Value، 0، 127، SERVOMIN2، SERVOMAX2)؛ pulselen3 = map (LX_Value، 0، 255، SERVOMIN3، SERVOMAX3)؛

توصیه شده: