فهرست مطالب:

بازوی رباتیک آردوینو: 5 قدم
بازوی رباتیک آردوینو: 5 قدم

تصویری: بازوی رباتیک آردوینو: 5 قدم

تصویری: بازوی رباتیک آردوینو: 5 قدم
تصویری: Arduino Robot Arm 2024, نوامبر
Anonim
Image
Image
بازوی رباتیک آردوینو
بازوی رباتیک آردوینو
بازوی رباتیک آردوینو
بازوی رباتیک آردوینو

از آنجا که این اولین پروژه من پس از 15 آموزش کیت شروع کننده آردوینو است ، هدف واقعی آن بدست آوردن منتقدان ، نکات ، پیشنهادات ، ایده ها از کسانی است که بیشتر از من می دانند.

این پروژه در مورد یک بازوی رباتیک ، با 4 dofs و یک گرفتن است. با بودجه بسیار پایین: سازه توسط یکی از دوستان بریده شده است ، 4 سرو 30 یورو ، 2 جوی استیک 4 یورو ، پیچ و غیره با قیمت کمتر از 10 یورو و بقیه (آردوینو ، سیم ، سرو گریپ و غیره).) قبلاً در کیت استارت من گنجانده شده بود. درمجموع 40-45 یورو که حدود 45-50 دلار آمریکا است (قیمت یک کیت دستبند من ، اما هی ، ساختن آن توسط خودم سرگرم کننده بود (و هر چند وقت یکبار چیزی را بهم می زنم)) و از دستورالعمل ها مانند ماشین پیروی نمی کند).

از آنجا که این اولین پروژه من بود و قابل آموزش بود ، من در "نویسنده اولین بار" و چند مسابقه دیگر شرکت کردم ، بنابراین اگر دوست دارید ، به آن رای دهید:)

مرحله 1: طراحی و مونتاژ:

ابتدا به یک ساختار نیاز داشتم: این قطعاً طولانی ترین قسمت بود. از آنجا که نمی خواستم پروژه را از شخص دیگری کپی و جایگذاری کنم ، یک پروژه را به عنوان مرجع انتخاب کردم و من (و چند همکلاسی ماهر که واقعا من را نجات دادند) شروع به تغییر آن با توجه به نیازهای ما (سروهای مختلف با گشتاور ، وزن و ابعاد مختلف و غیره) کرد. من مجبور شدم چند بار آن را بسازم ، هر یک از آنها اشتباهی پیدا کردم ، و ما مجبور شدیم برخی از قطعات را بازگو کرده و دوباره امتحان کنم. در صورت تمایل به استفاده از آن ، فایل.dxf را ضمیمه کرده ام. سپس مجبور شدم لوازم الکترونیکی بخرم: اکثر قطعات استاندارد بودند ، قسمت سخت انتخاب سروها بود. من گشتاور مورد نیاز را با قانون انگشت شست محاسبه کردم ، بعداً محاسبه دقیق تری را امتحان کردم و متوجه شدم که ممکن است کمی آن را بیش از حد افزایش داده باشم. ظاهراً 6 کیلوگرم بر سانتیمتر برای سرو دوم (از پایه) کافی است ، و مال من 9-11 کیلوگرم بر سانتیمتر را تأمین می کند. خوب ، این به من امنیت و شانس بارگیری حداکثر 2 کیلوگرم را می دهد (که غیرممکن است ، اما من دوست دارم که بتوانم آن را از نظر فنی انجام دهم). من همچنین می توانم سروهای متفاوتی بخرم ، با کاهش گشتاور هنگام دور شدن از پایه ، اما خرید سروهای یکسان از یک فروشنده ارزان ترین گزینه بود. منبع تغذیه: Arduino قطعاً برای سروها کافی نبود ، زیرا هر mg995 قرعه کشی می کند 350mA و microservo 9g 100mA می گیرند ، در مجموع 350*4 +100 = 1500mA. بنابراین من یک شارژر (6V 1.5A) را نجات دادم و دو سیم جامپر را به آن لحیم کردم. (اگر برخی از شما ممکن است به دستورالعمل های واقعی نیاز داشته باشید ، فقط در نظرات بپرسید ، و من تمام تلاش خود را برای ایجاد گام به گام انجام خواهم داد. راهنما) فهرست مواد:- ساختار- پیچ M5x7cm x5 ، پیچ m5 x15 (پایه)- پیچ M3x16mm x18*- پیچ M3x20mm x13*- پیچ M3 x40*- پیچ M3x8cm x3- گیره (در غیر این صورت سقوط می کند)- 3 رولپلاک- آردوینو (یا چیز دیگری برای کنترل آن ، باید حداقل 5 PWM داشته باشد)- چیزی برای تأمین 5-6 ولت و حداقل 1.5 آمپر- جوی استیک های 3x2 ps2- 4x TowerPro mg995 servos- 1x TowerPro 9g microservo (برای گرفتن) - تعداد زیادی سیم بلوز - تخته نان*(من از پیچ و مهره استفاده کردم تا بتوانم به سرعت مونتاژ و جداسازی شوم ، در غیر این صورت می توانید تقریباً همه آنها را با پیچ های چوبی جایگزین کنید)

مرحله 2: کد:

ایده این است که هر سروو را با یکی از دو محور یک جوی استیک شبیه ps2 کنترل کنیم. به نظر می رسید که هر جوی استیک دارای "مقدار استراحت" متفاوتی (مقدار بین 0-1023 در حالت آرام) برای هر دو محور y و x است. این یک مشکل بود ، زیرا تفاوت بسیار کوچک بود (یک عدد صفر در y در 623 داشت) و من می خواستم از تابع نقشه برای تبدیل از 0-1023 به درجه استفاده کنم. اما تابع نقشه فکر می کند مقدار بقیه 1023/2 است. که به محض روشن کردن آردوینو به هر سروو منتقل می شود ، خوب نیست. من موفق شدم با پیدا کردن دستی تفاوت بین مقدار خواندن و هر مقدار استراحت متفاوت (که من جداگانه برای هر جوی استیک محاسبه کردم) ، سپس به کد را کوتاه تر و دقیق تر کنم ، من او را مجبور کردم مقادیر بقیه را در تابع setup بخواند و آنها را در برخی متغیرها ذخیره کند. الگوریتم جدید متکی بر تبدیل افزایش در درجه است ، اما من برای افزایش مقدار بسیار کمی درجه می خواهم ، بنابراین من مجبور بودم آن را برای یک مقدار ثابت تقسیم کنم: مقدارهای زیادی را امتحان کردم ، تا زمانی که به 200 نهایی رسیدم (ممکن است یک پتانسیومتر اضافه کنم تا این مقدار را به صورت دلخواه به صورت دستی تغییر دهم). بقیه کد به نظر من بسیار استاندارد است ، اگرچه ممکن است محاسبه افزایش را در یک تابع جداگانه قرار دهید.

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

الکترونیک
الکترونیک

سیم کشی همان چیزی است که در تصویر یا فایل فریز کننده نشان داده شده است: سیگنال servos به پین ها: 5-6-9-10-11 و محور جوی استیک به پین های آنالوگ: A0-A1-A2-A3-A4 مشکل اصلی که من با آن برخورد کردم این بود که جوی استیک ها باید توسط آردوینو عرضه شوند ، نه توسط شارژری که برای سروها استفاده می کنم. در غیر این صورت سروو به صورت تصادفی به جلو و عقب دیوانه می شود. من فکر می کنم این ممکن است به این دلیل باشد که اگر من شارژر را به آنها ارائه کنم ، آردوینو نمی تواند تفاوت بالقوه را هنگام جابجایی آنها دقیقاً بگوید ، اما دوباره: من در زمینه الکترونیک بسیار مبتدی هستم ، بنابراین فقط یک حدس است. اتصال زمین آردوینو و زمین شارژر از طریق تخته نان به دلایلی مشابه عرضه جوی استیک ها ، به جلوگیری از حرکات تصادفی و غیرمنتظره کمک کرد.

مرحله 4: در حال حاضر در حال پیشرفت است:

در حال حاضر در حال پیشرفت است
در حال حاضر در حال پیشرفت است

از آنجا که هر جوی استیک می تواند 2 سروو (1 در هر محور) را کنترل کند ، من برای کنترل کل بازو به 3 سروو نیاز دارم ، اما از شانس من فقط 2 انگشت شست دارم. بنابراین فکر کردم که به جای کنترل هر سروو ، می توانم فقط موقعیت xyz را کنترل کنم گرفتن و بستن دستگیره ، در مجموع 4 محور ، 2 جوی استیک و 2 انگشت شست! من متوجه شدم که این مشکل به خوبی به عنوان سینماتیک معکوس معروف است ، همچنین متوجه شدم که همه چیز بسیار آسان است. ایده نوشتن (معادلات غیر خطی برای پیدا کردن وضعیت هر افکتور (زاویه برای سروها) با توجه به موقعیت نهایی. من مقاله ای با معادلات بارگذاری کرده ام ، و در حال حاضر مشغول کار روی یک کد جدید برای استفاده از آنها هستم. نباید خیلی سخت باشد ، من اساساً باید جوی استیک ها را بخوانم ، از قرائت آنها برای تغییر مختصات xyz گریپ استفاده کنم و سپس آنها را به معادلاتم بدهم ، زوایای سروو را محاسبه کرده و آنها را بنویسم.

مرحله 5: بهبودهای آینده:

بنابراین ، من از نتیجه آن بسیار راضی هستم و با توجه به اینکه من کاملاً در زمینه الکترونیک تازه کار هستم و چیزی را منفجر نمی کنم یا خودم را در حال حاضر یک پیروزی بزرگ بود. همانطور که در ابتدا گفتم ، هرگونه ایده برای پیشرفت های آینده ، هم نرم افزاری و هم سخت افزار ، بیش از این خوش آمدید! تا اینجا به این فکر کردم: 1. پتانسیومتر برای تغییر "حساسیت" جوی استیک ها. کد جدیدی که او را مجبور می کند برخی از حرکات را "ضبط" کرده و دوباره انجام دهد (شاید سریعتر و کوتاهتر از ورودی انسان) 3. نوعی ورودی بصری/فاصله/صدا و امکان دریافت اشیاء بدون استفاده از جوی استیک 4. قادر به ترسیم اشکال هندسی ایده دیگری دارید؟ لطفا در صورت تمایل با هر گونه پیشنهاد نظر دهید. از شما متشکرم

توصیه شده: