Манипулятор

ROB-71075

Во время просмотра фильма железный человек, я увидел у железного человека на руке железную механическую руку и мне стало интересно смогу ли я сделать механическую руку. Погрузившись в изучение данной темы, решил создать свой манипулятор, который мог бы помочь в нашем робототехническом кабинете для того что бы наши юные ученики смогли познавать большой, необъятный мир робототехники. Изучая моё творение, они смогут приобретать навыки программирования, проектирования, конструирования и реализация поставленной задачи. 

Цель: создать манипулятор на базе Arduino.

Задачи:

1.Научиться работать с платой линейки Arduino и платой расширения.

2.Запрограммировать своё изделие.

Исследование и анализ

Манипулятор — механизм для управления положением предметов.

Манипуля́тор — механизм для управления пространственным положением орудий, объектов труда и конструкционных узлов и элементов. Это значение закрепилось за словом с середины XX века, благодаря применению сложных механизмов для манипулирования опасными объектами в атомной промышленности. Используется ля перемещения различных грузов, получил широкое развитие в современном обществе.

Устройство и применения манипуляторов 

Основу манипуляторов составляют пространственные механизмы со многими степенями свободы. Манипуляторы выполняют работы в средах, недоступных или опасных для человека (подводные глубины, вакуум, радиоактивная среда и другие агрессивные среды), вспомогательные работы в промышленном производстве. Манипуляторы используются в медицинской технике (например, в протезировании). Манипуляторы изучает теория манипуляторов, которая является разделом теории машин и механизмов. В узком смысле манипулятором называется механическая рука.

Манипуляторы делятся на управляемые человеком и автоматические манипуляторы. Развитие манипуляторов привело созданию промышленных роботов. Проектирование механизмов-манипуляторов требует решения таких задач, как создание манёвренности, устойчивости в работе, выбор правильного соотношения полезных и холостых ходов. Иногда требуется проектирование таких систем, в которых оператор чувствует усилие, создаваемое на рабочем органе или на грузозахвате.

Рассматривается также внедрение комплексов манипуляционных роботов в образовательный процесс

Почему именно Ардуино?

Arduino – платформа для разработки электронных устройств с автоматическим, полуавтоматическим или ручным управлением. Она выполнена по принципу конструктора с четко определенными правилами взаимодействия между элементами. Система является открытой, что позволяет сторонним производителям участвовать в ее развитии. Платформа Arduino хороша именно тем, что не замыкается на определенном производителе, а позволяет потребителю самому подобрать подходящие ему компоненты. Их выбор огромен, поэтому можно реализовать практически любые задумки.

Основные элементы плат.

Материнская плата объединяет в себе следующие элементы:

- Микроконтроллер (процессор). Основное его предназначение – выдавать и измерять напряжение в портах в диапазоне 0-5 или 0-3.3 В, запоминать данные и производить вычисления.

- Программатор (есть не у всех плат). С помощью этого устройства в память микроконтроллера записывают программу, согласно которой будет работать “умный дом”. К компьютеру, планшету, смартфону или другому устройству его подключают при помощи USB-интерфейса.

- Стабилизатор напряжения. Необходимо устройство на 5 вольт, требуется для питания всей системы.

Под маркой Arduino выпускают несколько моделей плат. Они отличаются друг от друга форм-фактором (размером), количеством портов и объемом памяти. Именно по этим показателям нужно выбирать подходящее устройство. Существуют два вида портов:

- цифровые, которые помечены на плате буквами “d”; - аналоговые, которые помечены буквой “a”. Благодаря им микроконтроллер осуществляет связь с подключенными устройствами. Любой порт может работать как на получение сигнала, так и на его отдачу. Цифровые порты с пометкой “pwm” предназначены для ввода и вывода сигнала типа ШИМ (широтно-импульсная модуляция). Поэтому прежде чем приобретать плату, необходимо хотя бы приблизительно оценить уровень ее загруженности различными устройствами. Это позволит определить нужное количество портов всех типов. С позиции обеспечения надежности работы электронной системы лучше разнести несвязанные между собой задачи по различным блокам, что концепция Arduino позволяет легко осуществить. Если же в одном месте объединить много устройств, то возможно перегревание микропроцессора, конфликт программных библиотек и сложности при поиске и устранении программных и аппаратных неисправностей.

Каждый микропроцессор оснащен тремя видами памяти:

- Flash Memory. Основная память, где хранится код программы управления системой. Незначительную ее часть (3-12 %) занимает вшитая программа загрузки (bootloader).

- SRAM. Оперативная память, где хранятся временные данные, необходимые при работе программы. Отличается высокой скоростью работы.

- EEPROM. Более медленная память, где также можно хранить данные.

Основное отличие видов памяти для хранения данных заключается в том, что при выключении электроэнергии информация, которая записана в SRAM, теряется, а в EEPROM остается. Но у энергонезависимого типа есть и недостаток – ограниченное число циклов записи. Это нужно помнить при создании собственных приложений. Плата для манипуляторов.

1 Плата Arduino Uno. 

Общая информация о контроллере.

Arduino UNO R3 выполнен на микроконтроллере ATmega 328, который включает:

- 14 цифровых портов входа-выхода (6 из них поддерживают режим ШИМ модуляции);

- 6 аналоговых входов;

- USB порт;

- разъем питания;

- разъем внутрисхемного программирования;

- кнопка сброса.

У платы есть все необходимые компоненты для обеспечения работы микроконтроллера. Достаточно подключить USB кабель к компьютеру и подать питание. Микроконтроллер установлен на колодке, что позволяет легко заменить его в случае выхода из строя.

Отличие от других контроллеров Arduino. Arduino UNO R3, в отличие от предыдущих версий, не использует для подключения к компьютеру мост USB-UART FTDI. Эту функцию в нем выполняет микроконтроллер ATmega16U2.

Память.

У микроконтроллера три типа памяти:

32 кБ флэш (FLASH);

2 кБ оперативной памяти (SRAM);

1 кБ энергонезависимой памяти (EEPROM).

.

2 Arduino Leonardo 

Arduino Leonardo — контроллер на базе ATmega32u4 (техническое описание, pdf). Платформа имеет 20 цифровых вход/выходов (7 из которых могут использоваться как выходы ШИМ и 12 как аналоговые входы), кварцевый генератор 16 МГц, разъем микро-USB, силовой разъем, разъем ICSP и кнопку перезагрузки. Для работы необходимо подключить платформу к компьютеру посредством кабеля USB, либо подать питание при помощи адаптера AC/DC или батареи.

В отличие от всех предыдущих плат ATmega32u4 имеет встроенную поддержку для USB соединения, это позволяет задать как Leonardo будет виден при подключении к компьютеру, это может быть клавиатура, мышь, виртуальный серийный / COM порт.

Память

Микроконтроллер ATmega32u4 располагает 32 кБ флэш памяти, из которых 4 кБ используется для хранения загрузчика, а также 2.5 кБ ОЗУ (SRAM) и 1 Кб EEPROM.(которая читается и записывается с помощью библиотеки EEPROM).

Физические характеристики

Размер печатной платы Leonardo составляют 6.9 на 5.3 см. Разъем USB и силовой разъем выходят за границы данных размеров. Четыре отверстия в плате позволяют закрепить ее на поверхности. Расстояние между цифровыми выводами 7 и 8 равняется 0,4 см, хотя между другими выводами оно составляет 0,25 см.

Долго думая и сравнивая платы, я пришел к выводу о том, что максимально удобнее будет воспользоваться платой Arduino Uno. Но тут появляется проблема подключения к плате огромного числа модулей и моторчиков. И тут на помощь приходит плата расширения Arduino sensor shield v5.0

Характеристика платы Arduino Sensor Shield V5.0

Коммутационная плата Arduino Sensor Shield V5.0 предназначена для расширения функциональности контроллеров на платформе Arduino UNO.
Плата позволяет подключить различные вариации внешних устройств, таких как датчики, сервомашинки, реле, кнопки, потенциометры и т.д.
На плате расширения находится кнопка сброса параметров или перезагрузки RESET.

Когда на плату подается питание, должен загореться светодиод PWR.
На плате расширения Arduino Sensor Shield V5.0 расположено множество интерфейсов для подключения различных внешних устройств и питания.

Питание платы осуществляется или с Arduino, или от внешних источников питания (блоков питания, батарей).

Сервопривод Tower Pro 9g SG90 

Сервопривод — это мотор, положением вала которого мы можем управлять. От обычного мотора он отличается тем, что ему можно точно в градусах задать положение, в которое встанет вал. Сервоприводы используются для моделирования различных механических движений роботов

Сервопривод – это такой вид привода, который может точно управлять параметрами движения. Другими словами, это двигатель, который может повернуть свой вал на определенный угол или поддерживать непрерывное вращение с точным периодом.

Сервопривод MG995. 

Схема работы сервопривода основана на использовании обратной связи (контура с замкнутой схемой, в котором сигнал на входе и выходе не согласован). В качестве сервопривода может выступать любой тип механического привода, в составе которого есть датчик и блок управления, который автоматически поддерживает все установленные параметры на датчике. Конструкция сервопривода состоит из двигателя, датчика позиционирования и управляющей системы. Основной задачей таких устройств является реализация в области сервомеханизмов. Также сервоприводы нередко используются в таких сферах как обработка материалов, производство транспортного оборудования, обработка древесины, изготовление металлических листов, производство стройматериалов и другие. 

Принцип работы сервопривода основан на обратной связи с одним или несколькими системными сигналами. Выходной показатель подается на вход, где сравнивается его значение с задающим действием и выполняются необходимые действия – например, выключается двигатель. Самым простым вариантов реализации является переменный резистор, который управляется валом – при изменении параметров резистора меняются параметры питающего двигатель тока.

В реальные сервоприводы механизм управления гораздо сложнее и использует встроенные микросхемы-контроллеры. В зависимости от типа используемого механизма обратной связи выделяют аналоговые и цифровые сервоприводы. Первые используют что-то, похожее на потенциометр, вторые – контроллеры.

Характеристики и подключение SG-90

Если вы собрались купить самый дешевый и простой сервопривод, то SG 90 будет лучшим вариантом этот серво чаще всего используется в управлении небольшими легкими механизмами с углом поворота от 0° до 180°.

Описание SG90

Цвета проводов стандартные. Сервопривод стоит недорого, он не обеспечивает точных настроек начальных и конечных позиций. Для того, чтобы избежать лишних перегрузок и характерного треска в положении 0 и 180 градусов лучше выставлять крайние точки в 10° и 170°. При работе устройства важно следить за напряжением питания. При сильном завышении этого показателя могут повредиться механические элементы зубчатых механизмов.

Все технические характеристики для плат представлены в Приложении №1 и 2.

Программное обеспечение

Arduino Uno - это устройство на основе микроконтроллера ATmega328. В его состав входит все необходимое для удобной работы с микроконтроллером: 14 цифровых входов/выходов 6 аналоговых входов, кварцевый резонатор на 16 МГц, разъем USB, разъем питания, разъем для внутрисхемного программирования и кнопка сброса. Для начала работы с устройством достаточно просто подать питание от AC/DC-адаптера или батарейки, либо подключить его к компьютеру посредством USB-кабеля. В отличие от всех предыдущих плат Ардуино, Uno в качестве преобразователя интерфейсов USB-UART использует микроконтроллер ATmega16U2 вместо микросхемы FTDI.

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

Arduino Uno программируется с помощью программного обеспечения Ардуино.

ATmega328 в Arduino Uno выпускается с прошитым загрузчиком, позволяющим загружать в микроконтроллер новые программы без необходимости использования внешнего программатора. 

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

Исходный код прошивки микроконтроллера ATmega16U2 находится в свободном доступе. Прошивка ATmega16U2/8U2 включает в себя DFU-загрузчик, позволяющий обновлять прошивку микроконтроллера. Для активации режима DFU необходимо:

После перехода в DFU-режим для загрузки новой прошивки можно использовать программное обеспечение Atmel's FLIP (для Windows) или DFU programmer (для Mac OS X и Linux). Альтернативный вариант - прошить микроконтроллер через разъем для внутрисхемного программирования ISP с помощью внешнего программатора, однако в этом случае DFU-загрузчик затрется. 

Автоматический (программный) сброс

Чтобы каждый раз перед загрузкой программы не требовалось нажимать кнопку сброса, Arduino Uno спроектирован таким образом, который позволяет осуществлять его сброс программно с подключенного компьютера. Один из выводов ATmega8U2/16U2, участвующий в управлении потоком данных (DTR), соединен с выводом RESET микроконтроллера ATmega328 через конденсатор номиналом 100 нФ. Когда на линии DTR появляется ноль, вывод RESET также переходит в низкий уровень на время, достаточное для перезагрузки микроконтроллера. Данная особенность используется для того, чтобы можно было прошивать микроконтроллер всего одним нажатием кнопки в среде программирования Ардуино. Такая архитектура позволяет уменьшить таймаут загрузчика, поскольку процесс прошивки всегда синхронизирован со спадом сигнала на линии DTR.

Однако эта система может приводить и к другим последствиям. При подключении Uno к компьютерам, работающим на Mac OS X или Linux, его микроконтроллер будет сбрасываться при каждом соединении программного обеспечения с платой. После сброса на Arduino Uno активизируется загрузчик на время около полсекунды. Несмотря на то, что загрузчик запрограммирован игнорировать посторонние данные (т.е. все данные, не касающиеся процесса прошивки новой программы), он может перехватить несколько первых байт данных из посылки, отправляемой плате сразу после установки соединения. Соответственно, если в программе, работающей на Ардуино, предусмотрено получение от компьютера каких-либо настроек или других данных при первом запуске, убедитесь, что программное обеспечение, с которым взаимодействует Ардуино, осуществляет отправку спустя секунду после установки соединения.

На плате Uno существует дорожка (отмеченная как "RESET-EN"), разомкнув которую, можно отключить автоматический сброс микроконтроллера. Для повторного восстановления функции автоматического сброса необходимо спаять между собой выводы, расположенные по краям этой дорожки. Автоматический сброс также можно выключить, подключив резистор номиналом 110 Ом между выводом RESET и 5В.

Защита USB от перегрузок

В Arduino Uno есть восстанавливаемые предохранители, защищающие USB-порт компьютера от коротких замыканий и перегрузок. Несмотря на то, что большинство компьютеров имеют собственную защиту, такие предохранители обеспечивают дополнительный уровень защиты. Если от USB-порта потребляется ток более 500 мА, предохранитель автоматически разорвет соединение до устранения причин короткого замыкания или перегрузки.

Мой Скетч для Манипулятора

#include <Servo.h> //используем библиотеку для работы с сервоприводом

Servo servohand; //объявляем переменную servo типа Servo

Servo servostol;

Servo servoUP;

Servo servoFD;

int sec = 300; //приравниваем переменной данное значение

int trigPin = 11;

int echoPin = 12;

int mm = 4;


 

void setup() {

// настраиваем основные части кода для нашего манипулятора:

servohand.attach(8);

servostol.attach(10);

servoUP.attach(9);

servoFD.attach(7);

servohand.write(10);

pinMode(mm, OUTPUT);

}

void center() //назначаем центральную точку

{

servoFD.write(110);

delay(sec);

servoUP.write(80);

delay(sec);

servostol.write(113);

delay(sec);

}


 

void _44() /назначаем точку 44

{

servostol.write(68);

delay(sec);

servoUP.write(28);

delay(sec);

servoFD.write(85);

delay(sec);

}

void _31() //назначаем точку 31

{

servostol.write(97);

delay(sec);

servoUP.write(73);

delay(sec);

servoFD.write(75);

delay(sec);

}

void _33() 

{

servostol.write(95);

delay(sec);

servoUP.write(45);

delay(sec);

servoFD.write(93);

delay(sec);

}


 

void _22() 

{

servostol.write(128);

delay(sec);

servoUP.write(55);

delay(sec);

servoFD.write(85);

delay(sec);

}

void _12() //назначаем точку 12

{

servostol.write(154);

delay(sec);

servoUP.write(50);

delay(sec);

servoFD.write(78);

delay(sec);

}

void _23() //назначаем точку 23

{

servostol.write(125);

delay(sec);

servoUP.write(45);

delay(sec);

servoFD.write(93);

delay(sec);

}

void telo() //настраиваем манипулятор

{

center();

delay(sec);

_44();

servohand.write(2);

delay(sec);

center();

delay(sec);

_12();

delay(sec);

servohand.write(10);

delay(sec);

center();

delay(sec);

_23();

delay(sec);

servohand.write(2);

delay(sec);

center();

delay(sec);

_44();

delay(sec);

servohand.write(10);

delay(sec);

center();

delay(sec);

_31();

delay(sec);

servohand.write(2);

delay(sec);

center();

delay(sec);

_23();

delay(sec);

servohand.write(10);

delay(sec);

center();

delay(sec);

_12();

delay(sec);

servohand.write(2);

delay(sec);

center();

delay(sec);

_31();

delay(sec);

servohand.write(10);

delay(sec); 

center();

delay(sec);

}

void loop() {

// пишем наш основной код:

int duration, cm;

digitalWrite (trigPin, LOW); 

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

cm = duration / 58;

Serial.print(cm); 

Serial.println(" cm");

delay(100);

if (cm < 20)

{

if (cm > 15)

{

digitalWrite(mm, HIGH);

delay(1000);

telo();

digitalWrite(mm, LOW);

delay(1000);

}

}

Экономическое обоснование

Вид изделияЦена, руб.
Ультразвуковой датчик HC-SR04+180 руб.
Сервопривод и механизм1900 руб.
Arduino Uno1500 руб.
Sensor Shield V 4.0370 руб.
Блок питания320 руб.
Мячики80 руб.
Трубы, проволока и основа-


 

Подведём итоги:

В итоге на всё это я потратил 4420 руб.

Себестоимость

Если сравнивать мой манипулятор с его непосредственным конкурентом, а именно с механической рукой-манипулятором Hiwonder LOBOT LeArm Single Robot, то станет очевидно, что мой манипулятор имеет ряд преимуществ и достоинств, не говоря уже про ценовую категорию. Выгода очевидна, более 8 тысяч рублей. 


 

Заключение и выводы

Работая над своим проектом, я выполнил цели и задачи, поставленные перед собой. Когда я создавал свой манипулятор я столкнулся со многими трудностями, но благодаря тому, что я их преодолел, вы можете наблюдать перед собой моё детище. В будущем я планирую улучшить моё детище. Создать свою программу для работы с Манипулятором, которая будет выделяться среди других программ благодаря своему уникальному, стильному и удобным интерфейсом. Также в ней будет несколько видов программирования.



 

Список используемых источников

1. https://arduinomaster.ru/datchiki-arduino/datchik-vibratsii-arduino/

2. https://amperkot.ru/blog/arduino-smarthome-part-1/

3. http://pereosnastka.ru/articles/tekhnika-bezopasnosti-pri-paike

4. https://sovet-ingenera.com/umniy-dom/umnyj-dom-na-arduino.html

5. http://www.dom-electro.ru

6. https://www.youtube.com/watch?v=n6cK-Vwij6Y

7. https://robotclass.ru/tutorials/arduino-ir-motion-sensor/


Приложение №1

Технические характеристики.

Плата Arduino Uno

Тип микроконтроллераATmega328P
Напряжение питания микроконтроллера5 В
Рекомендуемое напряжение питания платы7 – 12 В
Предельно допустимое напряжение питания платы6 – 20 В
Цифровые входы-выходы14 (из них 6 поддерживают ШИМ)
Выходы ШИМ модуляции6
Аналоговые входы6
Допустимый ток цифровых выходов20 мА
Допустимый ток выхода 3,3 В50 мА
Объем флэш памяти (FLASH)32 кБ (из которых 0,5 кБ используется загрузчиком)
Объем оперативной памяти (SRAM)2 кБ
Объем энергонезависимой памяти (EEPROM)1 кБ
Частота тактирования16 мГц
Длина платы68,6 мм
Ширина платы53,4 мм
Вес25 г


Приложение №2


 

Технические характеристики.

Плата Arduino Leonardo

МикроконтроллерATmega32u4
Рабочее напряжение5 В
Входное напряжение (рекомендуемое)7-12 В
Входное напряжение (предельное)6-20 В
Цифровые Входы/Выходы20 (7 из которых могут использоваться как выходы ШИМ)
Аналоговые каналы12
Постоянный ток через вход/выход40 мА
Постоянный ток для вывода 3.3 В50 мА
Флеш-память32 Кб (ATmega32u4) из которых 4 Кб используются для загрузчика
ОЗУ2 Кб (ATmega32u4)
EEPROM1 Кб (ATmega32u4)
Тактовая частота16 МГц



 


 


 


 


 


 

 

Файлы

Добавлен 02.07.2024

Добавлен 02.07.2024

Добавлен 02.07.2024