- Необходими компоненти
- Изграждане на роботизирана ръка
- Електрическа схема и работно обяснение:
- Как да управлявате роботизираната ръка:
В този урок ще проектираме роботизирана ръка на базата на Arduino Uno от някои картони и серво мотори. Целият процес на строителство е обяснен подробно по-долу. Тук в този проект Arduino Uno е програмиран за управление на серво мотори, които служат като съединения на роботизираното рамо. Тази настройка също изглежда като роботизиран кран или можем да го преобразуваме в кран, като направим няколко лесни ощипвания. Този проект ще бъде полезен за начинаещи, които искат да се научат да разработват опростен робот на ниска цена или просто искат да се научат да работят с Arduino и серво мотори.
Тази Arduino Robotic Arm може да се управлява от четири потенциометра, прикрепени към нея, като всеки потенциометър се използва за управление на всеки серво. Можете да преместите тези серво серво, като завъртите саксиите, за да изберете някакъв обект, с известна практика можете лесно да вземете и преместите обекта от едно място на друго. Тук сме използвали серво с нисък въртящ момент, но вие можете да използвате по-мощни серво серво, за да избирате тежки предмети. Целият процес е добре демонстриран във видеото в края. Проверете и другите ни проекти за роботика тук.
Необходими компоненти
- Arduino Uno
- Кондензатор 1000uF (4 броя)
- Кондензатор 100nF (4 броя)
- Серво мотор (SG 90 - четири броя)
- 10K пот - променлив резистор (4 броя)
- Захранване (5v - за предпочитане две)
Серво мотор
Първо говорим малко за Servo Motors. Сервомоторите се използват главно, когато има нужда от точно движение или положение на вала. Те не се предлагат за високоскоростни приложения. Серво двигателите се предлагат за ниска скорост, среден въртящ момент и точно приложение на позицията. Така че тези двигатели са най-подходящи за проектиране на роботизирана ръка.
Серво двигателите се предлагат в различни форми и размери. Ще използваме малки серво мотори, тук използваме четири серво серво. Серво мотор ще има предимно проводници, единият е за положително напрежение, друг е за заземяване и последният е за настройка на положението. ЧЕРВЕНИЯ проводник е свързан към захранването, черният проводник е свързан към земята и ЖЪЛТИЯ проводник е свързан към сигнала. Преминете през този урок за управление на сервомотора с помощта на Arduino, за да научите повече за него. В Arduino имаме предварително определени библиотеки за управление на серво, така че е много лесно да се контролира серво, което ще научите заедно с този урок.
Изграждане на роботизирана ръка
Вземете равна и стабилна повърхност, като маса или твърд картон. След това поставете серво мотор в средата и го залепете на място. Уверете се, че степента на въртене е в областта, представена на фигурата. Това серво действа като основа на рамото.
Поставете малко парче картон върху първото серво и след това поставете второто серво върху това парче дъска и го залепете на място. Серво завъртането трябва да съвпада с диаграмата.
Вземете няколко картона и ги нарежете на парчета 3cm x 11cm. Уверете се, че парчето не е омекотено. Изрежете правоъгълен отвор в единия край (оставете 0,8 см отдолу) точно толкова, че да побере друг серво, а в другия край монтирайте серво зъбното колело плътно с винтове или с лепило. След това поставете третия серво в първия отвор.
Сега изрежете друго парче картон с дължини, показани на фигурата по-долу, и залепете друго зъбно колело в долната част на това парче.
Сега залепете четвъртия и последен серво на ръба на второто парче, както е показано на фигурата.
С това две парчета заедно изглеждат.
Когато прикрепим тази настройка към основата, тя трябва да изглежда така,
Почти е готово. Просто трябва да направим куката, за да хванем и вземем обекта като роботизирана ръка. За кука изрежете още две парчета картон с дължини 1cmx7cm & 4cmx5cm. Залепете ги, както е показано на фигурата, и залепете крайната предавка на самия край.
Монтирайте това парче отгоре и с това завършихме изграждането на нашата роботизирана ръка.
С това нашият основен дизайн на роботизираното рамо завърши и по този начин изградихме нашето евтино роботизирано рамо. Сега свържете веригата в макет, както е показано на схемата.
Електрическа схема и работно обяснение:
Връзката на веригата за Arduino Uno Robotic Arm е показана по-долу.
Напрежението на променливите резистори не е напълно линейно; ще бъде шумно. За да се филтрира този шум, кондензаторите се поставят във всеки резистор, както е показано на фигурата.
Сега ще подадем напрежението, осигурено от тези променливи резистори (напрежение, което представлява контрол на позицията) в ADC канали на Arduino. За това ще използваме четири ADC канала на UNO от A0 до A3. След инициализацията на ADC ще имаме цифрова стойност на саксии, представящи позицията, необходима на потребителя. Ще вземем тази стойност и ще я съпоставим със серво положение.
Arduino има шест ADC канала. Използвали сме четири за нашата роботизирана ръка. UNO ADC е с 10-битова резолюция, така че целочислените стойности варират от 0-1023 (2 ^ 10 = 1024 стойности). Това означава, че ще преобразува входните напрежения между 0 и 5 волта в целочислени стойности между 0 и 1023. Така че за всеки (5/1024 = 4.9mV) на единица. Научете повече за картографиране на нивата на напрежение чрез ADC канали в Arduino тук.
Сега, за да преобразува UNO аналоговия сигнал в цифров сигнал, трябва да използваме ADC канал на Arduino Uno, с помощта на функциите по-долу:
1. analogRead (щифт); 2. analogReference (); 3. analogReadResolution (битове);
ADD каналите на Arduino имат референтна стойност по подразбиране 5V. Това означава, че можем да дадем максимално входно напрежение от 5V за ADC преобразуване на всеки входен канал. Тъй като някои сензори осигуряват напрежение от 0-2,5V, така че с 5V референция получаваме по-малка точност, така че имаме инструкция, която ни позволява да променим тази референтна стойност. Така че за промяна на референтната стойност имаме “analogReference ();”
По подразбиране получаваме максималната разделителна способност на ADC на борда, която е 10 бита, тази разделителна способност може да бъде променена с помощта на инструкция („analogReadResolution (битове);“).
В нашата роботизирана верига за ръка оставихме това референтно напрежение по подразбиране, така че можем да прочетем стойността от ADC канала, като директно извикаме функцията „analogRead (pin);“, тук „pin“ представлява щифт, към който сме свързали аналоговия сигнал, да речем искаме да прочетем „A0“. Стойността от ADC може да се съхранява в цяло число като int SENSORVALUE0 = analogRead (A0); .
Сега нека поговорим за SERVO, Arduino Uno има функция, която ни позволява да контролираме позицията на серво, като просто дадем стойността на градуса. Да кажем, че ако искаме серво да бъде на 30, можем директно да представим стойността в програмата. Файлът за заглавие SERVO ( Servo.h ) се грижи вътрешно за всички изчисления на коефициента на мито.
#include
Тук първото изявление представлява заглавния файл за управление на SERVO MOTOR. Второто твърдение е именуване на серво; оставяме го като servo0, тъй като ще използваме четири. Третото изявление посочва къде е свързан сервосигналният щифт; това трябва да е PWM щифт. Тук използваме PIN3 за първо серво. Четвъртото изявление дава команди за позициониране на сервомотора в градуси. Ако му се даде 30, сервомоторът се завърта на 30 градуса.
Сега имаме серво позиция SG90 от 0 до 180 и стойностите на ADC са от 0-1023. Ще използваме специална функция, която автоматично съвпада с двете стойности.
sensorvalue0 = карта (sensorvalue0, 0, 1023, 0, 180);
Този оператор автоматично картографира двете стойности и съхранява резултата в цяло число 'servovalue0' .
Ето как ние контролирахме сервомоторите в нашия проект за роботизирана ръка, използвайки Arduino. Проверете пълния код по-долу.
Как да управлявате роботизираната ръка:
На потребителя се предоставят четири саксии. И като въртим тези четири гърнета, ние осигуряваме променливо напрежение в ADC каналите на UNO. Така че цифровите стойности на Arduino са под контрола на потребителя. Тези цифрови стойности се картографират, за да се коригира позицията на серво мотора, следователно позицията на серво се контролира от потребителя и чрез завъртане на тези саксии потребителят може да движи ставите на роботизираното рамо и може да вземе или вземе всеки предмет.