Съдържание:

Роботизирана ръка, контролирана от Arduino и компютър: 10 стъпки
Роботизирана ръка, контролирана от Arduino и компютър: 10 стъпки

Видео: Роботизирана ръка, контролирана от Arduino и компютър: 10 стъпки

Видео: Роботизирана ръка, контролирана от Arduino и компютър: 10 стъпки
Видео: MKS Monster8 - Basics 2024, Юли
Anonim
Image
Image
Теория зад проекта
Теория зад проекта

Роботизираните оръжия се използват широко в промишлеността. Независимо дали става въпрос за монтажни операции, заваряване или дори един се използва за докинг на МКС (Международната космическа станция), те помагат на хората в работата или напълно заменят хората. Ръката, която съм построил, е по -малко представяне на роботизирана ръка, която трябва да се използва за преместване на обекти. Той се управлява от arduino pro mini, който вече има вградена библиотека за управление на серво. Сервомоторите се управляват от PWM (Pulse Width Modulation), която не е трудна за програмиране, но тази библиотека го улеснява. Потребителят може да контролира тези сервомотори чрез потенциометри, които са проектирани да действат като разделители на напрежение или от програма на компютър, който използва 4 плъзгача за управление на серво мотори.

За този проект трябваше да проектирам моята персонализирана печатна платка и да я направя, да създам 3D модели на ръка и да напиша код, който контролира всичко това. На всичкото отгоре кодирах допълнителна програма в python, която изпраща сигнали до arduino, която успява да декодира този сигнал и да премести сервомоторите в позиция, която потребителят е задал.

Стъпка 1: Теория зад проекта

Теория зад проекта
Теория зад проекта

Arduino е страхотен по този начин, че предлага безплатна библиотека за работа. За този проект използвах библиотека Servo.h, която прави контрола на сервоусилвателите много по -лесен.

Сервомоторът се управлява от PWM -Pulse Width Modulation- което означава, че за да управлявате серво, трябва да правите импулси с късо напрежение. Сервото може да декодира дължината на този сигнал и да се завърти в дадената позиция. И тук използвах вече споменатата библиотека. Не трябваше да изчислявам дължината на сигнала сам, но използвах функциите на библиотеката, на които просто прехвърлям параметър в градуси и той прави сигнал.

За управление на сервоустройства използвах потенциометри, които действат като разделители на напрежение. Платките Arduino имат няколко аналогови/цифрови преобразуватели, които използвах за проекта. По принцип arduino наблюдава напрежението на средния щифт на потенциометъра и ако се завърти на едната страна напрежението на него е 0 волта (стойност = 0), а от другата страна е 5 волта (стойност = 1023). След това тази стойност се мащабира от диапазон 0 - 1023 до 0 - 180 и след това се предава на вече споменатата функция.

Друга тема е серийната комуникация с arduino, която ще разгледам накратко. По принцип програмата, написана на компютър, изпраща стойност, избрана от потребителя, arduino може да я декодира и да премести серво в дадената позиция

Стъпка 2: Проектиране на печатни платки

Проектиране на печатни платки
Проектиране на печатни платки
Проектиране на печатни платки
Проектиране на печатни платки
Проектиране на печатни платки
Проектиране на печатни платки

Проектирах 2 печатни платки - едната за основно управление, където е arduino и щифтове за серво, а на втората са потенциометри. Причината за 2 печатни платки е, че исках да контролирам роботизираната ръка от безопасно разстояние. И двете вериги са свързани с кабел с определена дължина - в моя случай 80 см.

За източник на захранване избрах външен адаптер, тъй като използваните от нас сервоустройства консумират много повече енергия, отколкото arduino може да осигури. Както можете да видите, има някои кондензатори, които все още не съм споменал. Те са кондензатори, използвани за филтриране. Както знаете сега, серво моторът се управлява от къси импулси. Тези импулси могат да накарат спадовете на захранващото напрежение и потенциометрите, които преди са били в диапазона 0-5 волта, сега да имат по-малък обхват. Това означава, че напрежението на средния щифт се променя и arduino получава тази стойност и променя позицията, в която се намира серво мотора. Това може да продължи завинаги и причинява нежелани трептения, които могат да бъдат елиминирани от някои кондензатори, паралелни на захранването.

Стъпка 3: Изработка на печатни платки

Изработка на печатни платки
Изработка на печатни платки
Изработка на печатни платки
Изработка на печатни платки
Изработка на печатни платки
Изработка на печатни платки

За да направите печатни платки, ви предлагам да прочетете това.

Използвах метода Iron on Glossy paper и се получи чудесно.

След това запоявах части на печатната платка. Можете да видите, че използвах arduino гнездо в случай, че ще ми потрябва в бъдеще.

Стъпка 4: Проектиране на ръката

Проектиране на ръката
Проектиране на ръката
Проектиране на ръката
Проектиране на ръката
Проектиране на ръката
Проектиране на ръката

Това в никакъв случай не беше най -трудната част от създаването на този проект.

Цялата настройка е направена от 8 части, където 4 не са движещи се части - кутия за потенциометри и основа, където се намира arduino - и други четири са самата ръка. Няма да навлизам в много подробности, освен че дизайнът е доста интуитивен и донякъде прост. Той е проектиран да пасне на моята персонализирана печатна платка и сервоустройства, които ще включа в списъка с части.

Стъпка 5: Отпечатване на частите

Отпечатване на частите
Отпечатване на частите
Отпечатване на частите
Отпечатване на частите
Отпечатване на частите
Отпечатване на частите

Частите са отпечатани на принтер Prusa. Някои лица трябваше да се заточат малко и да се пробият дупки. Поддържащите стълбове също трябваше да бъдат премахнати.

Стъпка 6: Съберете всичко заедно

Събирайки всичко заедно
Събирайки всичко заедно
Събирайки всичко заедно
Събирайки всичко заедно
Събирайки всичко заедно
Събирайки всичко заедно
Събирайки всичко заедно
Събирайки всичко заедно

В тази стъпка, както казва заглавието, аз събрах всичко заедно.

Първоначално запоявах проводници на потенциометрите и след това тези проводници на печатни платки. Потенциометрите добре се вписват в отворите и горещо залепих платката върху колоните, които бяха отпечатани на дъното на кутията. Можете да пробиете дупки в дъската и в кутията, но разбрах, че залепването й е повече от достатъчно. След това затворих двете части на кутията и ги закрепих на място с 4 винта, които се вписват в отворите, които проектирах.

Като следваща стъпка направих плосък лентов кабел за свързване на двете платки.

В основната кутия запоех проводници от VCC щифт на конектора за превключване и след това към Vcc на платката и от GND на платката към GND на конектора. След това горещо залепих конектора на място и дъската върху колони. Съединителят се вписва направо в отвора, така че не е необходимо горещо лепило.

След това с помощта на винтове закрепих долното серво към дъното на кутията.

След това сложих горната част на кутията на долната част и също както с кутията на потенциометъра я закрепих с 4 винта.

Следващата част беше малко сложна, но успях да събера останалата част на ръката с различни гайки и подложки и не беше толкова стегната, колкото очаквах, защото проектирах някои отклонения между частите, така че е по -лесно да работя с тях.

И като последна стъпка сложих малко лента на дъното на кутиите, защото иначе щяха да се плъзгат.

Стъпка 7: Програмиране на Arduino

Програмиране на Arduino
Програмиране на Arduino
Програмиране на Arduino
Програмиране на Arduino
Програмиране на Arduino
Програмиране на Arduino

Вече споменах как програмата работи на теория зад проекта, но ще го разделя още повече.

Така че в началото трябва да дефинираме някои променливи. Най -често се копира 4 пъти, защото имаме 4 серва и според мен не е необходимо да правим по -сложна логика, само за да направим програмата малко по -кратка.

След това има настройка за празнота, където са дефинирани щифтове на серво.

След това има void loop - част от програмата, която се върти безкрайно. В тази част програмата взема стойността от скалата на потенциометъра и я въвежда на изхода. Но има един проблем, че стойността от потенциометъра скача доста, така че трябваше да добавя филтър, който прави средно последните 5 стойности и след това той извежда. Това предотвратява нежеланото клатене.

Последната част от програмата чете данни от сериен порт и решава какво да прави въз основа на изпратените данни.

За да разберете напълно кода, ви предлагам да посетите официалните уебсайтове на arduino.

Стъпка 8: Програмиране в Python

Програмиране в Python
Програмиране в Python
Програмиране в Python
Програмиране в Python
Програмиране в Python
Програмиране в Python

Тази част от този проект не е необходима, но мисля, че само придава повече стойност на този проект.

Python предлага много библиотеки, които са безплатни за използване, но в този проект използвам само tkinter и serial. Tkinter се използва за GUI (графичен потребителски интерфейс) и сериен, както името му казва, се използва за серийна комуникация.

Този код създава GUI с 4 плъзгача, които имат минимална стойност 0 и максимум 180. Може да ви подскаже, че е в градуси и всеки плъзгач е програмиран да управлява едно серво. Тази програма е доста проста - тя приема стойността и я изпраща на arduino. Но начинът, по който изпраща, е интересен. Ако изберете да промените стойността на първото серво на 123 градуса, то се изпраща на arduino стойност 1123. Първият номер на всяко изпратено число показва кой серво е на път да бъде контролиран. Arduino има код, който може да декодира това и да премести дясното серво.

Стъпка 9: Списък на частите

Списък на частите
Списък на частите
  • Arduino Pro Mini 1 брой
  • Серво FS5106B 1 брой
  • Серво Futaba S3003 2 броя
  • Щифтова глава 2x5 1 брой
  • Щифтова заглавка 1x3 6 броя
  • Кондензатор 220uF 3 броя
  • Микро серво FS90 1 брой
  • Съединител AWP-10 2 броя
  • Конектор FC681492 1 брой
  • Превключвател P-B100G1 1 брой
  • Гнездо 2x14 1 брой
  • TTL-232R-5v-конвертор 1 брой
  • Потенциометър B200K 4 броя
  • и много други винтове, накладки и гайки

Стъпка 10: Заключителни мисли

Благодаря ви, че прочетохте това и се надявам поне да съм ви мотивирал. Това е първият ми по -голям проект, който направих сам, без да копирам неща от интернет и първата публикация с инструкции. Знам, че ръката може да бъде подобрена, но засега съм доволен от нея. Всички части и изходни кодове са безплатни, можете да го използвате и да го промените по какъвто искате начин. Ако имате въпроси, не се колебайте да ги зададете в секцията за коментари. Можете също да разгледате видеоклиповете, те не са с високо качество, но показват функционалността на проекта.

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