Съдържание:

UCL - Вграден - Избор и място: 4 стъпки
UCL - Вграден - Избор и място: 4 стъпки

Видео: UCL - Вграден - Избор и място: 4 стъпки

Видео: UCL - Вграден - Избор и място: 4 стъпки
Видео: Кампи Флегрей: супервулкан Италии Pt4: моделирование извержения в настоящее время 2024, Ноември
Anonim
UCL - Вграден - Изберете и поставете
UCL - Вграден - Изберете и поставете

Тази инструкция ще разгледа как се прави 2D устройство за избор и поставяне и как да го кодирате.

Стъпка 1: Компютри

Компютри
Компютри

1x Adrio Mega

2x стъпкови двигатели (използвахме JLB Stepper Motor, модел 17H1352-P4130)

2x модул на контролера на стъпков двигател L298N с двоен H мост DC за Arduino

1x серво мотор (нямаме петънце на този)

3x 10k ома резистори

2x найлонови колела

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: За настройката на празнотата включихме 2 -те библиотеки, от които се нуждаем за този проект. Степер и серво. Използването на включените библиотеки ви спестява да научите всеки детайл за стъпкови и серво мотори.

#включва

#включва

const int stepsPerRevolution = 200; // променете това, за да пасне на броя стъпки на оборот за вашия двигател

// инициализираме стъпковата библиотека на пинове 8 до 11:

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

Gripper трябва да се прикрепят в настройката за празнота

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

Останалата част от този раздел е само настройка на променливите и константните.

2: Първото нещо в Void Loop е да заредите всички използвани входове към променлива. Това се прави по две причини. Първата причина е да се ограничат тежките задачи на процесора при четене на вход. Втората причина, която е най -важната, е да се уверите, че ако даден вход се използва повече от веднъж, той ще има една и съща стойност през цялото сканиране. Това улеснява писането на последователен код. Това е много често срещана практика в PLC програмирането, но се отнася и за вграденото програмиране.

// ------------------------- Въвеждане в RAM -------------------- Xend = digitalRead (34); Yend = digitalRead (35); Ena = digitalRead (36);

3: В секвенс частта на кода направихме секвенс с командите Switch и case. Частта sekvens просто подава сигнали към частта за контрол на позицията на кода. Тази част може лесно да бъде персонализирана за вашето приложение или да се използва такава, каквато е.

4: Положението на сервото се контролира само от серво либери и оператор if за грайфер отворен и затворен.

Стъпковият контрол е малко по -сложен. Функцията сравнява зададената стойност (позицията, към която искате да отиде ръката) и текущата позиция. Ако текущата позиция е влюбена, функцията се добавя към позицията и изисква функцията Stepper liberi да направи положителна стъпка. Обратното е вярно за по -висока позиция. ако позицията е същата като зададената стойност, битът на XinPos е зареден и стъпката спира.

// SP контролен X

if (XstepCountXsp, а не Home) {

XstepCount = XstepCount-1; Xстеп = -1; XinPos = 0; } ако (XstepCount == Xsp) {Xstep = 0; XinPos = 1; }

5: Добавете края на кода, двигателите се управляват с liberi функциите.

// -------------------- Изход ---------------------- // стъпка една стъпка: XStepper.step (Xstep); // стъпка първа стъпка: YStepper.step (Ystep);

Griper.write (GripSp);

Стъпка 4: Направено от

casp6099 - Каспър Хартунг Кристенсен

rasm616d - Расмус Хансен

Препоръчано: