فهرست مطالب:

UCL - تعبیه شده - انتخاب و مکان: 4 مرحله
UCL - تعبیه شده - انتخاب و مکان: 4 مرحله

تصویری: UCL - تعبیه شده - انتخاب و مکان: 4 مرحله

تصویری: UCL - تعبیه شده - انتخاب و مکان: 4 مرحله
تصویری: صفر تا صد جدا کننده های صنعتی ،وسل،درام … 2024, جولای
Anonim
UCL - تعبیه شده - انتخاب و مکان
UCL - تعبیه شده - انتخاب و مکان

این دستورالعمل با این حال چگونه یک واحد انتخاب و مکان دوبعدی و نحوه کدگذاری آن انجام می شود.

مرحله 1: Compunets

Compunets
Compunets

1x Adrio Mega

2 برابر موتور پله ای (ما از JLB Stepper Motor ، مدل 17H1352-P4130 استفاده کردیم)

2x Stepper Motor Drive Drive Control Module L298N Dual H Bridge DC برای آردوینو

سروو موتور 1x (ما این نقطه را نداریم)

مقاومتهای 3x3k 10 اهم

2 برابر نایلون

منبع تغذیه 1x 12v

مقداری چوب برای قاب

سیم ها

مرحله 2: ساخت و ساز

ساخت و ساز
ساخت و ساز
ساخت و ساز
ساخت و ساز
ساخت و ساز
ساخت و ساز

اولین چیزی که در هنگام ساخت و ساز انجام شد ، تعیین اندازه و شکل ماشین انتخاب و مکان بود

ابتدا چوب اصلی را می سازیم. ما قاب انتخاب و مکان خود را 50 سانتی متر در 25 سانتی متر در 30 سانتی متر ساختیم. همه چیز به جز قاب ، پل و بازوی بالابر ، با دستگاه برش لیزری ساخته شده است.

در اینجا پیوندی به همه پرونده ها وجود دارد

سپس ما می خواستیم به سیستم قرقره برویم. در اینجا ما با دو حلقه 50 میلی متری و یک حلقه 20 میلی متری رفتیم. سپس پاراکورد را در کنار 20 میلی متر با مقداری چسب قرار می دهیم. پس از آن ما دو حلقه 50 میلی متری را در دو طرف حلقه 20 میلی متری فشار دادیم.

20 میلی متر

50 میلی متر

سپس ما باید یک راهنمای اسلاید برای بازو طراحی کنیم. در اینجا ما دو طرف و یک صفحه عقب درست کردیم.

که سپس به شکل U چسبانده شد. سپس آن را به پل متصل کردیم.

بشقاب جانبی

بشقاب پشت

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

هنگام طراحی این ما مطمئن شدیم که دندان ها با یکدیگر همخوانی دارند. بنابراین هر دو مورد در یک محل پروژه ایجاد شده است.

مرحله 3: کد

کد
کد
کد
کد
کد
کد

برنامه نویسی بسیار ساده است و از 5 قسمت تشکیل شده است

  1. گنجاندن کتابخانه ها و تنظیم متغیرها برای استفاده داخلی و IO
  2. بارگذاری ورودی ها در Ram
  3. Sekvens ، حرکت مورد نظر خود را انتخاب کنید.
  4. کنترل موقعیت استپر/سروو
  5. خروجی به جهان

ما به طور گسترده هر قسمت را توضیح می دهیم ، اما به یاد داشته باشید که این تنها یکی از بسیاری از راه حل ها است.

1: قبل از تنظیم void ، ما 2 کتابخانه مورد نیاز برای این پروژه را اضافه کردیم. استپر و سروو. با استفاده از کتابخانه های موجود ، شما را از یادگیری تمام جزئیات مربوط به موتورهای پله ای و سروو نجات می دهد.

#عبارتند از

#عبارتند از

const int stepsPerRevolution = 200؛ // این مورد را متناسب با تعداد مراحل در هر دور موتور خود تغییر دهید

// راه اندازی کتابخانه استپر در پین 8 تا 11:

Stepper XStepper (مراحلPerRevolution ، 22 ، 23 ، 24 ، 25) ؛ Stepper YStepper (مراحلPerRevolution ، 28 ، 29 ، 30 ، 31) ؛ سرو گریپر ؛ // ایجاد شیء سروو برای کنترل سروو

Gripper باید در تنظیمات void متصل شود

void setup () {// مقداردهی اولیه پورت سریال: Serial.begin (9600)؛ Griper.attach (9) ؛ // سروو را روی پین 9 به شیء سروو متصل می کند

بقیه این بخش فقط تنظیمات متغیر و ثابت است.

2: اولین چیزی که در Void Loop بارگذاری می شود این است که همه ورودی های استفاده شده را روی یک متغیر بارگذاری کنید. این به دو دلیل انجام شده است. اولین دلیل محدود کردن کارهای سنگین پردازنده برای خواندن ورودی است. دلیل دوم ، که بسیار مهم است ، برای اطمینان از این است که اگر از یک ورودی بیش از یک بار استفاده شود ، مقدار آن در کل اسکن یکسان خواهد بود. این امر نوشتن کد سازگار را بسیار ساده تر می کند. این یک برنامه بسیار رایج در برنامه نویسی PLC است ، اما در برنامه نویسی تعبیه شده نیز صدق می کند.

// ------------------------- ورود به RAM -------------------- Xend = digitalRead (34) ؛ Yend = digitalRead (35) ؛ Ena = digitalRead (36) ؛

3: در قسمت sekvens کد ، ما فقط با دستورات Switch و case یک sekven ساخته ایم. قسمت sekvens فقط سیگنال هایی به قسمت کنترل موقعیت کد می دهد. این قسمت را می توان به راحتی برای برنامه شما سفارشی کرد یا همانطور که هست استفاده کرد.

4: موقعیت سروو فقط توسط سروو لیبری کنترل می شود و دستور if برای gripper باز و بسته می شود.

Stepper Control کمی پیچیده تر است. این تابع Setpoint (موقعیتی که می خواهید بازو به آن برود) و موقعیت فعلی را مقایسه می کند. اگر موقعیت فعلی دوستدار باشد ، تابع به موقعیت اضافه می شود و از تابع Stepper liberi می خواهد که گامی مثبت بردارد. برعکس این حالت برای موقعیتی به بالا صادق است. اگر موقعیت مشابه Setpoint باشد ، یک بیت XinPos محفوظ است و استپر متوقف می شود.

// SP controal X

if (XstepCountXsp و نه صفحه اصلی) {

XstepCount = XstepCount-1؛ Xstep = -1 ؛ XinPos = 0 ؛ } if (XstepCount == Xsp) {Xstep = 0؛ XinPos = 1 ؛ }

5: انتهای کد را اضافه کنید که موتورها با توابع liberi کنترل می شوند.

// -------------------- خروجی ---------------------- // مرحله یک مرحله: XStepper.step (Xstep) ؛ // مرحله یک مرحله: YStepper.step (Ystep) ؛

Griper.write (GripSp) ؛

مرحله 4: ساخته شده توسط

casp6099 - کاسپر هارتونگ کریستنسن

rasm616d - راسموس هانسن

توصیه شده: