Как сделать самодельный роботизированный манипулятор, управляемый Arduino и Bluetooth?

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

Роботизированная рука

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

Как управлять роботизированной рукой с помощью Arduino?

Теперь как мы знаем аннотацию нашего проекта. Давайте соберем дополнительную информацию о схемах и начнем создавать роботизированную руку, управляемую через Bluetooth, и управлять ею через Bluetooth.

Шаг 1: Сбор компонентов

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

Шаг 2: Изучение компонентов

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

Arduino Nano — это плата микроконтроллера, которая выполняет различные операции в разных схемах. Для этого требуется код C, который сообщает доске, какие задачи и как выполнять. Он имеет 13 цифровых контактов ввода / вывода, что означает, что мы можем управлять 13 различными устройствами. Arduino Nano имеет ту же функциональность, что и Arduino Uno, но при довольно небольшом размере. Микроконтроллер на плате Arduino Nano — ATmega328p. Если вы хотите управлять более чем 13 устройствами, используйте Arduino Mega.

Ардуино Нано

HC-05 Беспроводной последовательный приемопередатчик Bluetooth: В этом проекте нам нужна беспроводная связь, поэтому мы будем использовать технологию Bluetooth, и для этого модуля, который будет использоваться, будет HC-05. Этот модуль имеет несколько программируемых скоростей передачи, но скорость передачи данных по умолчанию составляет 9600 бит / с. Он может быть настроен как ведущий или ведомый, тогда как другой модуль HC-06 может работать только в ведомом режиме. Этот модуль имеет четыре контакта. Один для VCC (5 В), а остальные три для GND, TX и RX. Пароль по умолчанию для этого модуля — 1234 или 0000. Если мы хотим обмениваться данными между двумя микроконтроллерами или общаться с любым устройством с функцией Bluetooth, таким как телефон или ноутбук, HC-05 помогает нам в этом. Уже доступно несколько приложений для Android, что значительно упрощает этот процесс.

Модуль Bluetooth HC-05

Типичная роботизированная рука состоит из нескольких сегментов и обычно имеет 6 суставов. Он содержит как минимум 4 шаговых двигателя, управляемых компьютером. Шаговые двигатели отличаются от других двигателей постоянного тока. Они двигаются точно с точностью до шага. Эти роботизированные манипуляторы используются для выполнения различных операций. Мы можем управлять ими вручную с помощью пульта дистанционного управления или запрограммировать их на автономную работу.

Роботизированная рука.

Шаг 3: Сборка компонентов

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

  1. .Прикрепите плату Arduino Nano на макетную плату. Arduino будет получать питание через положительный и отрицательный провод адаптера.
  2. Поместите модуль Bluetooth также на макетную плату. Включите модуль Bluetooth через Arduino. Подключите контакт Tx модуля Bluetooth к контакту Rx платы Arduino Nan и подключите контакт Rx модуля Bluetooth к контакту Tx платы Arduino Nano.
  3. Как известно, есть 4 шаговых двигателя. У каждого есть техническое название. Они называются Локоть, Плечо, Основание и Захват. Vcc и земля всех двигателей будут общими и подключены к плюсу и минусу адаптера 6 В. Сигнальный контакт всех четырех двигателей будет подключен к контактам 5, 6, 9 и 11 Arduino Nano.
  4. Убедитесь, что вы сделали подключения в соответствии со следующей схемой.Принципиальная электрическая схема

Шаг 4: Начало работы с Arduino

Если вы еще не знакомы с Arduino IDE, не беспокойтесь, потому что пошаговая процедура настройки и использования Arduino IDE с платой микроконтроллера объясняется ниже.

  1. Загрузите последнюю версию Arduino IDE из Ардуино.
  2. Подключите плату Arduino Nano к ноутбуку и откройте панель управления. Затем нажмите «Оборудование и звук». Теперь нажмите «Устройства и принтеры». Здесь найдите порт, к которому подключена ваша плата микроконтроллера. В моем случае это COM14, но на разных компьютерах он отличается.Поиск порта
  3. Щелкните меню «Инструменты» и в раскрывающемся меню выберите для платы Arduino Nano.Настольная доска
  4. В том же меню инструментов установите порт на номер порта, который вы наблюдали ранее в устройствах и принтерах.Настройка порта
  5. В том же меню инструментов установите для процессора значение ATmega328P (старый загрузчик).Процессор
  6. Чтобы написать код для управления серводвигателями, нам нужна специальная библиотека, которая поможет нам написать несколько функций для серводвигателей. Эта библиотека прилагается вместе с кодом по ссылке ниже. Чтобы включить библиотеку, нажмите «Эскиз»> «Включить библиотеку»> «Добавить ZIP». Библиотека.Включить библиотеку
  7. Загрузите приведенный ниже код и вставьте его в свою Arduino IDE. Нажмите кнопку загрузки, чтобы записать код на плату микроконтроллера.Загрузить

Чтобы скачать код, кликните сюда.

Шаг 5: загрузка приложения

Поскольку мы собрали всю схему и загрузили код на плату микроконтроллера. позволяет скачать мобильное приложение, которое будет работать как пульт дистанционного управления для манипулятора. Бесплатное приложение доступно в магазине Google Play. Название приложения — Маленькая рука робота управления. Чтобы установить соединение Bluetooth, включите Bluetooth на своем мобильном телефоне. Зайдите в настройки и соедините свой мобильный телефон с модулем HC-05. После этого нажмите кнопку Bluetooth в приложении. Если он становится зеленым, это означает, что приложение теперь подключено и готово к работе с роботизированной рукой. Есть ползунки для настройки работы манипулятора по желанию.

Приложение

Шаг 6: понимание кода

Код хорошо прокомментирован и прост для понимания. Тем не менее, это кратко объясняется ниже.

1. В начале включена библиотека для написания кода для работы серводвигателей. Другая библиотека math.h включена для выполнения различных математических операций в коде. Четыре объекта также инициализируются для использования с четырьмя серводвигателями.

#include // библиотека arduino #include // стандартная библиотека c #define PI 3.141 Servo baseServo; Серво плечоServo; Серво elbowServo; Servo gripperServo; int command;

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

struct JointAngle {// объявление структуры int base; внутреннее плечо; внутренний локоть; };

3. После этого некоторые переменные инициализируются для сохранения желаемого захвата, задержки и положения серводвигателя. скорость установлена ​​равной 15, и объект заставлен принимать значение угла в конструкции.

int desireGrip; int gripperPos; int desireDelay; int servoSpeed ​​= 15; int ready = 0; struct JointAngle желаемыйAngle; // желаемые углы сервоприводов

4. void setup () — это функция, которая используется для установки контактов Arduino как INPUT или OUTPUT. Здесь, в этой функции, мы заявили, что вывод двигателей будет подключен к каким выводам Arduino. Также гарантируется, что Arduino не считывает последовательный ввод слишком долго. Исходное положение и скорость передачи также устанавливаются в этой функции. Baud Rate — это скорость, с которой плата микроконтроллера будет взаимодействовать с сервоприводами и подключенным модулем Bluetooth.

void setup () {Serial.begin (9600); baseServo.attach (9); // прикрепляет базовый сервопривод на выводе 9 к сервообъекту. плечоServo.attach (10); // прикрепляет сервопривод плеча на выводе 9 к сервообъекту elbowServo.attach (11); // прикрепляет сервопривод колена на штыре 9 к сервообъекту gripperServo.attach (6); // прикрепляет сервопривод захвата на выводе 9 к сервообъекту Serial.setTimeout (50); // гарантирует, что arduino не считывает серийный номер слишком долго Serial.println («start»); baseServo.write (90); // исходное положение сервоприводов плечоServo.write (150); elbowServo.write (110); готов = 0; }

5. servoParallelControl () — это функция, которая используется для определения текущего положения манипулятора и перемещения его в соответствии с командой, подаваемой через мобильное приложение. Если текущее положение меньше фактического, рука переместится вверх и наоборот. Эта функция вернет значение текущей позиции и скорость сервопривода.

int servoParallelControl (int thePos, Servo theServo, int theSpeed) {int startPos = theServo.read (); // считываем текущую позицию int newPos = startPos; // int theSpeed ​​= speed; // определяем положение позиции относительно команды // если текущая позиция меньше фактического перемещения вверх if (startPos <(thePos-5)) {newPos = newPos + 1; theServo.write (newPos); задержка (скорость); возврат 0; } иначе, если (newPos> (thePos + 5)) {newPos = newPos — 1; theServo.write (newPos); задержка (скорость); возврат 0; } else {возврат 1; }}

6. void loop () — это функция, которая многократно запускается в цикле. Эта функция считывает данные, поступающие последовательно, и сохраняет угол каждого сервопривода в структуре. Первоначально состояние всех сервоприводов установлено на ноль. Здесь вызывается функция servoParallelControl () и в нее передаются параметры. эта функция вернет значение, и оно будет сохранено в переменной статуса.

void loop () {если (Serial.available ()) {готов = 1; желаемыйAngle.base = Serial.parseInt (); желаемыйAngle.shoulder = Serial.parseInt (); желаемыйAngle.elbow = Serial.parseInt (); желаемыйGrip = Serial.parseInt (); желаемыйDelay = Serial.parseInt (); if (Serial.read () == ‘ n’) {// если последний байт равен ‘d’, прекратить чтение и выполнить команду ‘d’ означает ‘готово’ Serial.flush (); // очищаем все остальные команды из буфера // отправляем завершение команды Serial.print (‘d’); }} int status1 = 0; int status2 = 0; int status3 = 0; int status4 = 0; int done = 0; while (done == 0 && ready == 1) {// перемещаем сервопривод в желаемое положение status1 = servoParallelControl (желаемыйAngle.base, baseServo, желаемыйDelay); status2 = servoParallelControl (желаемый угол.плечо, плечоServo, желаемая задержка); status3 = servoParallelControl (desireAngle.elbow, elbowServo, желаемыйDelay); status4 = servoParallelControl (желаемыйGrip, gripperServo, желаемыйDelay); if (status1 == 1 & status2 == 1 & status3 == 1 & status4 == 1) {done = 1}} // конец while}

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

Похожие записи

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

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