Как сделать самодельный роботизированный манипулятор, управляемый Arduino и Bluetooth?
В последнее столетие робототехника – наиболее развивающаяся область исследований. Роботы взяли под свой контроль почти все, что раньше делали люди. Мы можем видеть автономных роботов, выполняющих различные задачи в нашем обществе. Также есть несколько роботов с дистанционным управлением, которые помогают нам выполнять различные операции. Роботы более надежны, чем люди, от создания нано-схем в области инженерии до проведения сложных хирургических операций в области медицины.
Роботизированная рука
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
В этом проекте мы собираемся создать роботизированную руку, которая будет управляться микроконтроллером 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: Сборка компонентов
Теперь, когда мы знаем о работе всех основных используемых компонентов. Давайте начнем их собирать и составим схему для сборки робота-манипулятора с дистанционным управлением.
- .Прикрепите плату Arduino Nano на макетную плату. Arduino будет получать питание через положительный и отрицательный провод адаптера.
- Поместите модуль Bluetooth также на макетную плату. Включите модуль Bluetooth через Arduino. Подключите контакт Tx модуля Bluetooth к контакту Rx платы Arduino Nan и подключите контакт Rx модуля Bluetooth к контакту Tx платы Arduino Nano.
- Как известно, есть 4 шаговых двигателя. У каждого есть техническое название. Они называются Локоть, Плечо, Основание и Захват. Vcc и земля всех двигателей будут общими и подключены к плюсу и минусу адаптера 6 В. Сигнальный контакт всех четырех двигателей будет подключен к контактам 5, 6, 9 и 11 Arduino Nano.
- Убедитесь, что вы сделали подключения в соответствии со следующей схемой.Принципиальная электрическая схема
Шаг 4: Начало работы с Arduino
Если вы еще не знакомы с Arduino IDE, не беспокойтесь, потому что пошаговая процедура настройки и использования Arduino IDE с платой микроконтроллера объясняется ниже.
- Загрузите последнюю версию Arduino IDE из Ардуино.
- Подключите плату Arduino Nano к ноутбуку и откройте панель управления. Затем нажмите «Оборудование и звук». Теперь нажмите «Устройства и принтеры». Здесь найдите порт, к которому подключена ваша плата микроконтроллера. В моем случае это COM14, но на разных компьютерах он отличается.Поиск порта
- Щелкните меню «Инструменты» и в раскрывающемся меню выберите для платы Arduino Nano.Настольная доска
- В том же меню инструментов установите порт на номер порта, который вы наблюдали ранее в устройствах и принтерах.Настройка порта
- В том же меню инструментов установите для процессора значение ATmega328P (старый загрузчик).Процессор
- Чтобы написать код для управления серводвигателями, нам нужна специальная библиотека, которая поможет нам написать несколько функций для серводвигателей. Эта библиотека прилагается вместе с кодом по ссылке ниже. Чтобы включить библиотеку, нажмите «Эскиз»> «Включить библиотеку»> «Добавить ZIP». Библиотека.Включить библиотеку
- Загрузите приведенный ниже код и вставьте его в свою Arduino IDE. Нажмите кнопку загрузки, чтобы записать код на плату микроконтроллера.Загрузить
Чтобы скачать код, кликните сюда.
Шаг 5: загрузка приложения
Поскольку мы собрали всю схему и загрузили код на плату микроконтроллера. позволяет скачать мобильное приложение, которое будет работать как пульт дистанционного управления для манипулятора. Бесплатное приложение доступно в магазине Google Play. Название приложения – Маленькая рука робота управления. Чтобы установить соединение Bluetooth, включите Bluetooth на своем мобильном телефоне. Зайдите в настройки и соедините свой мобильный телефон с модулем HC-05. После этого нажмите кнопку Bluetooth в приложении. Если он становится зеленым, это означает, что приложение теперь подключено и готово к работе с роботизированной рукой. Есть ползунки для настройки работы манипулятора по желанию.
Приложение
Шаг 6: понимание кода
Код хорошо прокомментирован и прост для понимания. Тем не менее, это кратко объясняется ниже.
1. В начале включена библиотека для написания кода для работы серводвигателей. Другая библиотека math.h включена для выполнения различных математических операций в коде. Четыре объекта также инициализируются для использования с четырьмя серводвигателями.
#include
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}
Итак, это была вся процедура создания роботизированной руки. После записи кода и загрузки приложения робот должен нормально работать при перемещении ползунков в приложении. Вы также можете запрограммировать руку на автономную работу для выполнения желаемой задачи.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)