Мазмуну:

UCL - Камтылган - тандоо жана жайгаштыруу: 4 кадам
UCL - Камтылган - тандоо жана жайгаштыруу: 4 кадам

Video: UCL - Камтылган - тандоо жана жайгаштыруу: 4 кадам

Video: UCL - Камтылган - тандоо жана жайгаштыруу: 4 кадам
Video: Началось! Угроза для нашей планеты! Что с нашим климатом? 2024, Декабрь
Anonim
UCL - Камтылган - Тандоо жана жайгаштыруу
UCL - Камтылган - Тандоо жана жайгаштыруу

Бул көрсөтмө 2D тандоо жана жайгаштыруу бирдиги кантип жасалганын жана аны кантип коддоого болот.

1 -кадам: Compunets

Compunets
Compunets

1x Adrio Mega

2x stepper моторлору (биз JLB Stepper Motor, 17H1352-P4130 моделин колдонгон)

2x Step Motor Drive Controller Board Module L298N Dual H Bridge DC Arduino үчүн

1x серво мотору (бизде бул боюнча так жок)

3x 10k ohm резисторлору

2х нейлон

1х 12в электр менен камсыздоо

Кадр үчүн бир аз жыгач

Зымдар

2 -кадам: Курулуш

Курулуш
Курулуш
Курулуш
Курулуш
Курулуш
Курулуш

Курулуш учурунда биринчи нерсе, машинанын өлчөмүн жана формасын аныктоо болчу

Алгач жыгачтын негизги формасын жасайбыз. Биз тандоо жана жайгаштыруу рамкасын 50смден 25смге 30смге чейин курдук. Рамадан, көпүрөдөн жана көтөргүчтөн башкасынын баары лазер менен жасалган.

бардык жерде шилтеме Files

Андан кийин биз пульстук системага өтүүнү кааладык. Бул жерде эки 50 мм шакек жана бир 20 мм шакек менен бардык. Андан кийин биз желим менен 20ммдин жанына паракорд койдук. Андан кийин 20мм шакектин эки жагындагы 50мм эки шакекти кысып койдук.

20мм

50мм

Андан кийин биз колго слайд көрсөтмөсүн иштеп чыгышыбыз керек. Бул жерде биз эки капталын жана бир арткы табагын жасадык.

Андан кийин U түрүндө чапталган. Анан биз муну көпүрөгө туташтырдык.

Каптал табак

Арткы табак

Эми колду өйдө жана ылдый жылдыруучу бөлүктөр жасалды. Биз аны алдыга жана артка жылдырышыбыз керек.

Муну долбоорлоодо биз тиштердин бири -бирине дал келүүсүнө ынандык. Ошентип, экөө тең бир долбоордун жеринде түзүлгөн.

3 -кадам: Код

Code
Code
Code
Code
Code
Code

Программалоо абдан жөнөкөй жана 5 бөлүктөн турат

  1. Китепканаларды киргизүү жана ички жана IO колдонуу үчүн өзгөрмөлөрдү орнотуу
  2. Киргизүүлөрдү Рамга жүктөө
  3. Sekvens, сиз каалаган кыймылды тандоо.
  4. Step/servo абалын башкаруу
  5. Дүйнөгө чыгаруу

Биз кенен штрихтерде ар бир бөлүктү түшүндүрөбүз, бирок бул көптөгөн чечимдердин бири экенин унутпаңыз.

1: Боштукту орнотуу үчүн, биз бул долбоорго керектүү 2 китепкананы коштук. Stepper жана Servo. Камтылган китепканаларды колдонуп, сизди тепкич жана серво моторлору жөнүндө майда -чүйдөсүнө чейин үйрөнүүдөн сактайт.

#кошуу

#кошуу

const int stepsPerRevolution = 200; // муну моторуңуз үчүн бир революциядагы кадамдардын санына ылайыкташтырыңыз

// 8ден 11ге чейин пин китепканасын инициализациялоо:

Stepper XStepper (stepsPerRevolution, 22, 23, 24, 25); Stepper YStepper (stepsPerRevolution, 28, 29, 30, 31); Servo Griper; // сервону көзөмөлдөө үчүн servo объектисин түзүү

Gripper боштукту орнотууга тиркелиши керек

void setup () {// сериялык портту инициализациялоо: Serial.begin (9600); Griper.attach (9); // серво объектисине пин 9дагы сервону бекитет

Бул бөлүмдүн калган бөлүгү Variable жана Constant's жөн гана жөндөлүшү.

2: Void Loopто биринчи нерсе - бул бардык колдонулган киргизүүлөрдү өзгөрмөгө жүктөө. Бул эки себептен улам жасалат. Биринчи себеп - киришти окуудагы CPU оор милдеттерин чектөө. Экинчи себеп, бул эң маанилүү нерсе, эгерде киргизүү бир нече жолу колдонулса, ал бүткүл сканерлөөдө бирдей мааниге ээ болот. Бул ырааттуу код жазууну жеңилдетет. Бул PLC программалоодо абдан кеңири таралган практика, бирок ал камтылган программалоого да тиешелүү.

// ------------------------- RAMга кирүү -------------------- Xend = digitalRead (34); Yend = digitalRead (35); Ena = digitalRead (36);

3: коддун sekvens бөлүгүндө, биз жөн гана Switch жана case командалары менен sekvens жасадык. Sekvens бөлүгү жөн эле коддун Position башкаруу бөлүгүнө сигналдарды берет. Бул бөлүк сиздин колдонмоңузга оңой ыңгайлаштырылышы мүмкүн же ошол бойдон колдонулушу мүмкүн.

4: Сервонун позициясы жөн эле servo liberi тарабынан көзөмөлдөнөт жана gripper үчүн if билдирүүсү ачык жана жабык.

Stepper Control бир аз татаалыраак. Функция Setpoint (Колуңуз каалаган позиция) менен Учурдагы абалды салыштырат. Эгерде учурдагы позиция сүйүктүү болсо, функция позицияга кошулат жана Stepper liberi функциясынан позитивдүү кадам жасоону суранат. Жогорку абал үчүн карама -каршы. эгер позиция Орнотуу пункту менен бирдей болсо, XinPos бити отурат жана тепкич токтойт.

// SP controal X

if (XstepCountXsp жана Home эмес) {

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 - Расмус Хансен

Сунушталууда: