Роботизированная рука Arduino на колесной платформе своими руками


В этом уроке мы рассмотрим как совместить ранее рассмотренную нами роботизированную платформу Mecanum Wheels с напечатанной на 3D-принтере роботизированной рукой на основе платы Arduino, которые будут работать в "связке" и автоматически выполнять заданные операции. Видео с работой этого амбициозного проекта вы можете посмотреть в конце статьи.

Обзор проекта

Итак, мы можем управлять колесным роботом Mecanum с помощью специального приложения Android, как было объяснено в предыдущей статье. В дополнение к этому, теперь в приложении есть кнопки для управления рукой робота.

Управление нашим проектом роботизированной самодвижущейся руки со смартфона

В оригинальном приложении для управления роботизированной рукой на самом деле были ползунки для управления сочленениями робота, но это вызывало некоторые проблемы со стабильностью руки. Таким образом, рука работает намного лучше, поэтому я предоставлю эту обновленную версию приложения для управления роботизированной рукой и код Arduino для оригинального проекта роботизированной руки.

Тем не менее, самая крутая особенность этого робота — способность запоминать движения, а затем автоматически их повторять.

Наш робот сможет выполнять операции в автоматическом режиме

Используя кнопку Save, мы можем просто сохранить положения двигателей для каждого шага. Затем нам нужно просто нажать кнопку Run, и робот автоматически повторит сохраненные движения снова и снова.

Создание робота Arduino

Итак, у нас уже собрана колесная платформа Mecanum.

Компоненты, необходимые для сборки нашего робота

Кроме того, у меня есть напечатанные на 3D-принтере детали руки робота и серводвигатели, и теперь я покажу вам, как их собрать вместе.

Файлы для загрузки 3D-моделей и STL

Вот 3D-модель этого проекта.

3D-модель проекта нашего робота

Эту 3D-модель, а также файлы STL для 3D-печати можно скачать на сайте Cults3D.

Сборка

Первый сервопривод руки робота будет установлен непосредственно на верхней крышке платформы механического колеса.

Я отметил место и с помощью сверла диаметром 10 мм просверлил несколько отверстий.

Отверстия в верхней крышке механизированной платформы

Затем, используя рашпиль, я прорезал отверстия и затем точно подогнал отверстие для сервопривода. Я закрепил сервопривод на верхней пластине с помощью четырех болтов М3 и гаек.

Закрепление первого сервопривода роботизированной руки

Затем на выходном валу этого сервопривода, используя круглый рог, который идет в комплекте с сервоприводом, нам нужно прикрепить следующую часть или талию руки робота. Однако мы можем заметить, что таким образом часть остается примерно на 8 мм выше пластины. Поэтому я прикрепил два куска 8-миллиметровых досок МДФ, чтобы талия могла скользить по ним, и соединение было бы более устойчивым.

Закрепление двух кусков 8-миллиметровых досок МДФ на верхней крышке основания робота

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

Закрепление основания роботизированной руки

Далее у нас плечевой сервопривод. Мы просто устанавливаем его на место и крепим к 3D-печатной детали с помощью саморезов.

Закрепление плечевого сервопривода

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

Продолжение сборки роботизированной руки

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

Добавление резинки к плечевому суставу роботизированной руки

Аналогичным образом я собрал остальную часть руки робота.

Завершение сборки основания роботизированной руки

Далее нам нужно собрать механизм захвата. Захват управляется серводвигателем SG90, на который мы сначала прикрепляем специально разработанную зубчатую связь. Мы соединяем эту связь с другой зубчатой ​​связью с другой стороны, которая крепится с помощью болта и гаек M4. На самом деле, все остальные связи соединяются с помощью болтов и гаек M4.

Начало сборки механизма захвата

Первоначально 3D-модель захвата имела отверстия диаметром 3 мм, но у меня не было достаточно болтов М3, поэтому я расширил отверстия сверлом диаметром 4 мм и вместо них использовал болты М4. Собрав механизм захвата, я закрепил его на последнем сервоприводе, и на этом манипулятор робота был готов.

Завершение сборки механизированной руки

Затем я занялся прокладкой кабелей. Я пропустил провода сервопривода через специально предназначенные отверстия в руке робота. Используя 10-миллиметровое сверло, я сделал отверстие в верхней пластине, чтобы провода могли пройти.

Прокладка кабелей для управления роботизированной рукой

С помощью стяжки я закрепил все провода вместе, и теперь осталось подключить их к плате Arduino.

Схема робота

Принципиальная схема роботизированной руки на колесной платформе на основе платы Arduino представлена на следующем рисунке.

Принципиальная схема роботизированной руки на колесной платформе на основе платы Arduino

Необходимые компоненты

  1. Плата Arduino Mega 2560 (купить на AliExpress).
  2. Bluetooth модуль HC-05 (купить на AliExpress).
  3. Шаговый двигатель NEMA 17 (купить на AliExpress).
  4. Сервомоторы MG-996 (купить на AliExpress).
  5. Сервомоторы SG 90 (купить на AliExpress).
  6. DRV8825 Stepper Driver Module (модуль драйвера шагового двигателя) (купить на AliExpress).
  7. Li-Po аккумулятор.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Сборка электронной части проекта

В предыдущей статье мы рассматривали, как работает колесная часть робота Mecanum, а также сделали для нее специальную печатную плату.

Дизайн печатной платы для нашего робота

Я включил регулятор напряжения 5 В на эту печатную плату, чтобы мы могли сделать этот проект или подключить серводвигатели, поскольку они работают при 5 В. Регулятор напряжения — это LM350, который может выдерживать ток до 3 А. Все шесть сервоприводов руки робота могут потреблять ток от 2 А до 3 А, что означает, что он может их выдерживать, но это приведет к сильному нагреву регулятора.

Поэтому я прикрепил к нему радиатор, а также небольшой вентилятор постоянного тока на 12 В для обдува, поскольку самого радиатора было недостаточно для охлаждения регулятора.

Закрепление вентилятора

Я подключил провода сигналов сервоприводов к цифровым контактам Arduino с номера 5 по 10, а для питания использовал разъем 5 В на печатной плате. Наконец, я протолкнул все провода внутрь платформы и закрепил на ней верхнюю пластину с помощью двух гаек.

Размещение электронной части проекта внутри колесной платформы

Вот и все, теперь мы закончили этот проект.

Наш робот в собранном виде

Объяснение кода Arduino

Осталось посмотреть, как работает код Arduino и приложение Android. Здесь мы рассмотрим работу ключевых фрагментов кода, а полный исходный код приведен в конце статьи.

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

Затем в разделе цикла мы начинаем с проверки наличия входящих данных.

Эти данные поступают со смартфона из приложения Android, поэтому давайте посмотрим, какие данные оно на самом деле отправляет. Приложение Android создано с использованием онлайн-приложения MIT App Inventor. Оно состоит из простых кнопок, которые имеют соответствующие изображения в качестве фона. Более подробно работу с приложением MIT APP Inventor мы рассматривали в этой статье на нашем сайте.

Элементы управления нашим роботом в приложении MIT APP Inventor

Если мы посмотрим на блоки приложения, то увидим, что все, что оно делает, — это отправляет однобайтовые числа при нажатии кнопок.

Наш код в приложении MIT APP Inventor

Итак, в зависимости от нажатой кнопки, мы говорим Arduino, что делать. Например, если мы получаем число '2', платформа Mecanum Wheels будет двигаться вперед, используя пользовательскую функцию moveForward.

Эта пользовательская функция настраивает все четыре шаговых двигателя на вращение вперед.

Для движения в любом другом направлении нам просто нужно вращать колеса в соответствующих направлениях.

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

Кнопки приложения для управления рукой робота

Как я уже упоминал ранее, в оригинальном приложении управления Robot Arm мы использовали ползунки для управления положениями сервоприводов, но это вызывало некоторые проблемы, потому что в этом случае нам приходилось отправлять текст в Arduino вместо 1-байтового числа. Проблема в том, что Arduino иногда пропускает текст, поступающий из приложения, и выдает ошибку, или Robot Arm трясется и ведет себя ненормально.

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

Блоки приложения MIT APP Inventor для управления движениями роботизированной руки

Код Arduino входит в цикл while этого числа и остается там до тех пор, пока мы не нажмем кнопку, поскольку в этот момент мы отправляем число 0, что означает, что робот не должен ничего делать.

Итак, в зависимости от нажатых кнопок сервоприводы движутся либо в положительном, либо в отрицательном направлении. Тот же принцип работы применяется ко всем серводвигателям. Для изменения скорости движения мы используем значения, поступающие от ползунка, которые находятся в диапазоне от 100 до 250.

Разделив их на 10, мы получаем значения от 10 до 25, которые используются в качестве задержки в микросекундах в циклах while для управления сервоприводами.

Для сохранения движений робота мы просто сохраняем текущие положения сервоприводов и шаговых двигателей в массивы каждый раз при нажатии кнопки «Сохранить».

Затем, когда мы нажимаем кнопку Run, мы вызываем пользовательскую функцию runSteps(). Эта пользовательская функция проходит по всем сохраненным шагам, используя некоторые циклы for и while.

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

По следующей ссылке вы можете скачать это приложение, а также редактируемый файл проекта - файлы приложений для робота Arduino Robot Arm и Mecanum Wheels.

Исходный код

Вот полный код Arduino для нашего проекта робота.

Видео, демонстрирующее сборку и работу проекта

Источник статьи

(Проголосуй первым!)
Загрузка...
133 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *