Робототехника. Создание механической руки
Перед тем, как начать делать своего робота, я озадачился вопросом: а какого именно робота я хочу сделать? Я начал анализировать типы роботов: робота-андройда я не мог создать по нескольким причинам: у этого робота много подвижных деталей, сложно сделать каркас и трудно повторить внешний вид человека. Так же андроид сложен в управлении и потребляет много энергии.Медицинский робот сложен в создании и очень чувствителен в управлении, тем более, самодельный робот вряд ли сможет кому-нибудь помочь, а может даже наоборот.Бытового робота я не стал создавать по простой причине: а что он будет делать? Смысл его создания? Для того, чтобы бытовой робот был полезен, ему нужно множество опциональных деталей, которых я не имею.Боевого робота и робота для обеспечения безопасности я не стал создавать из-за сложности создания, безнадобности, опасности и отсутствием опциональных деталей.Идеальным вариантом стал промышленный робот: легок в управлении, легко создать каркас и подобрать опциональные детали, но промышленные роботы обычно крупногабаритные, поэтому я решил сделать уменьшенную копию промышленной роборуки.Подходящим материалом для создания роборуки был обычный металлический конструктор, который лежал в шкафу многие годы. Плюсы конструктора: легкость, возможность построить практически любую фигуру и деталь. Минусы: конструктор легко гнётся.
В качестве приводов я использовал сервоприводы, которые заказал по интернету.Сложнее всего было придумать, как же все-таки будет управлятся робот. Я решил пойти по сложному пути и заказал электронную плату arduino uno, которая программируется на языке С++. Встал новый вопрос: а как программировать на языке C++? Так как плата Ардуино к моменту создания первой модели не успела прийти по почте, я стал искать альтенативные способы управления. Выбор пал на самолетное радиоуправление. Друг, который увлекается авиамоделизмом, одолжил мне приемник и передатчик от своего самолета, и я подсоединил все сервоприводы к приемнику и запитал его своим автомодельным аккомулятором.Для закрепленя винтов и гаек, установки сервоприводов использовался набор отверток.
Сначала необходимо было сделать основание. Оно должно было быть устойчивым:
Следом, я закончил сборку подвижного основания, с помощью которого рука сможет вращаться вокруг своей оси:
Затем, я начал делать большое плечо.Потом, настала очередь среднее плечо. Конечный вид большого и среднего плеч:
Затем, я собрал кисть робота и объединил с большим и средними плечами:
После этого я установил сервоприводы:
Однако возникла новая проблема: так как я обеспечил питание от автомодельного аккумулятора, который был более мощным, чем нужно сервоприводам, из-за этого регулятор, рассчитанный на небольшое количество маленьких сервоприводов, не справлялся и сильно грелся, а сервоприводы работали некорректно. Тогда было принято решение избавиться от одного плеча.После этого я занялся сборкой финальной части – захвата. Сервоприводы способны поднять строго ограниченный вес, которые они способны поднять, поэтому необходимо было установить сервоприводы в строго определенных местах. После объединения всех деталей, за исключением большого плеча, и установки сервоприводов, модель приобрела законченный вид:
В качестве управления использовался авиамодельный пульт управления, который я позаимствовал на время у друга.
В качестве источника питания выступал автомодельный аккумулятор Turnigy nano-tech. Так же в данной модели аккумулятор служил противовесом.
Но сервоприводы способны поднять строго ограниченный вес, которые они способны поднять, поэтому необходимо было установить сервоприводы в строго определенных местах. Подключение сервоприводов к приёмнику не составило особого труда.Первая модель оказалась не совсем удачной: она была неустойчивой, управление было неудобным, и потенциал сервоприводов был значительно снижен из-за самолетного регулятора напряжения, который был рассчитан только на маленькие сервоприводы, вследствие этого рука могла поднять только небольшой вес.Рука в действии:
СОЗДАНИЕ ВТОРОЙ МОДЕЛИ РОБОРУКИ.
• Механическая частьНа создание второй модели механической руки времени было предоставлено крайне мало: чуть больше месяца. Однако роборука была готова в срок.Сначала я приступил к созданию эскиза:
В качестве основания я решил использовать основу от игрушечного крана, так как оно обладало высокой устойчивостью.
Детали было решено изготовить П-оразной формы. Такого типа детали имели ряд преимуществ: они имели большой запас прочности, на такие детали легко крепить сервоприводы, при сцеплении можно сделать дополнительную ось вращения, что снизит нагрузку на сервопривод и сделает конструкцию более надежной.Самым сложным этапом при создании роборуки было разработка и изготовление захвата руки. Самым оптимальным вариантом оказалось использование шестеренок в механизме захвата.Материалом для создания послужила листовая сталь 0.8мм, так как этот материал был легким и легко поддавался обработке. «Клешни» решено было сделать из дюралюминия, так как листовая сталь была слишком тонкой.
Но прежде, чем приступить к работе с металлом, необходимо было сделать точную копию деталей механической руки из картона. На картонных деталях соблюдались все размеры в натуральную величину, были размечены места отверстий для оси вращения в местах сцепления, и отверстия для крепления сервоприводов. Это позволило сделать детали максимально точно и уменьшило шанс совершения ошибок.
Для разрезания металла использовались ножницы по металлу, а для изготовления отверствий использовался сверлильный станок. Для изгиба деталей была применена киянка и тиски, так как железный молоток имеет меньшую площадь контакта и продавливает детали, дела вмятины и сколы.
«Клешни» вырезались с помощью ножовки по металлу и обрабатывались напильником. В них были сделаны отверстия разного диаметра, что облегчило их и сделало более красивыми.Затем необходимо было сделать механизм захвата. Он представлял собой две шестеренки, надетые на неподвижные оси, на которые крепились «клешни», к одной шестеренке подводилась еще одна, которая связывалась с сервоприводом.Чтобы соединить шестеренки с «клешнями» было использовано свойство металлов: расширяться при нагревании. Нагревание «клешней» осуществлялось строительным феном. После нагрева, на шестеренки, с помощью молотка, были насажены «клешни», а после охлаждения, конструкция стала монолитной.
Когда все детали были готовы, их необходимо было отшлифовать, убрать с помощью надфиля заусеницы и обработать ацетоном, чтобы избавиться от жира.Наконец, наступила очередь окраски.
После окраски детали приняли законченный вид.Затем, из основания бывшего игрушечного крана был удален механизм вращения и установлен новый, который присоединялся к сервоприводу. Так как сервопривод был длиннее, чем доступное место в основании, то в нижней крышке, с помощью сверлильного станка и ножовки, было вырезано место под сервопривод.
Настало время сборки второй модели механической руки. На специальные места были установлены сервоприводы и закреплены с помощью винтов, шайб и гаек. «Плечо», «локоть» и «кисть» крепились к сервоприводам с помощью саморезов, а осями вращения стали винты. Провода сервоприводов и сами сервоприводы крепились к плечам руки с помощью пластиковых хамутиков.
Законченный вид руки:
• Программная частьБыло решено управлять роборукой с помощью платы Arduino Uno. Программирование осуществлялось на достаточно сложном языке С++. Сама программа писалась на компьютере в специальной программе, которую надо было скачать с официального сайта Arduino. Там же находилось драйвера для связи платы Arduino Uno с компьютером.После изучения принципа программирования и основных команд, я написал первую программу: мигание светодиода. Специальной схемы для этого составлять не надо было, так как на плате уже установлен один светодиод.Сам код выглядел следующим образом:
Таким образом, светодиод загорается на 5 секунд, а затем гаснет на 5 секунд, и эти действия продолжаются, пока есть питание.
Итак, я убедился, в том, что правильно написал программу и теперь могу приступить к работе с сервоприводами. Для них в программе установлена специальная библиотека для связи сервоприводов с платой. Так же там есть другие библиотеки: чтение и запись в последовательный порт, для работы с шаговыми электродвигателями, для подключения к интернету и много других, но они нам не понадобятся.Готовая программа выглядела следующим образом:
Выполняя эту программу, сервопривод поворачивается на 20 градусов каждую секунду, пока не сделает оборот в 180 градусов, затем возвращается в исходное положение.
Но прежде, чем приступить к написанию программы для пропорционального управления, нужно было написать программу для мониторинга сопротивления от резистора, которым будет управляться сервопривод. С помощью этого кода можно узнать максимальное и минимальное значение резистора, которые будут применены в конечной программе.
В итоге, изменяя сопротивление резистора, я узнал, что его максимальное значение это 537, а минимальное 0.
Наконец, я приступил к созданию электронной схемы. Сначала я сделал основание 18х8см и крепление переменных резисторов на 10Ком из стеклотекстолита. Затем на основу я установил плату Arduino Uno, схему стабилизатора напряжения, монтажную плату для выхода на сервоприводы, монтажную плату входного делителя напряжения и кронштейны с установленными переменными резисторами.Конечный вид схемы:
В качестве питания сервоприводов использовался блок питания на 9V, но во дальнейшем было принято решение использовать аккумулятор на 7.4V.После этого я написал программу для пропорционального управления механической руки.
В итоге, изменяя сопротивление на резисторе, мы изменяем угол поворота сервопривода, и механическая рука совершает действия, которые ей зададут.
Следом, я приступил к написанию кода, при котором роборука будет совершать одни и те же действия бесконечно долго, пока к ней подведено напряжение.
В дальнейшем, 3 резисторы будут заменены на тензодатчики- датчики изгиба, и механическая рука будет управляться с помощью перчатки, повторяя движения моей биологической руки.Моя рука стала победителем среди проектов по физике на конференции "Шаг в будущее". Ура.