Оглавление:

Роботизированная рука с модулями Zio, часть 2: 11 шагов
Роботизированная рука с модулями Zio, часть 2: 11 шагов

Видео: Роботизированная рука с модулями Zio, часть 2: 11 шагов

Видео: Роботизированная рука с модулями Zio, часть 2: 11 шагов
Видео: Охрана Путина 🫵🏻 2024, Ноябрь
Anonim
Роботизированная рука с модулями Zio, часть 2
Роботизированная рука с модулями Zio, часть 2

В сегодняшнем руководстве мы будем использовать все 4 сервопривода и беспроводной контроллер PS2 для управления роботизированной рукой.

Это сообщение в блоге является частью серии Zio Robotics.

Вступление

В нашем предыдущем блоге мы опубликовали часть 1 руководства о том, как управлять роботизированной рукой с помощью модулей Zio. Часть 1 в основном сосредоточена на автоматическом управлении когтем вашей роботизированной руки, чтобы она открывалась и закрывалась.

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

Шаг 1. Обзор проекта

Сложный уровень:

Зио Падаван

Полезные ресурсы:

У вас должно быть базовое представление о том, как устанавливать платы разработки Zio. В этом руководстве мы предполагаем, что ваша плата для разработки уже настроена и готова к установке. Если вы еще не настроили свою доску, ознакомьтесь с нашим руководством по началу работы с Zio Qwiic ниже, чтобы начать работу:

Zio Zuino M UNO Qwiic Руководство по началу работы

Шаг 2: схемы

Схемы
Схемы

Вот схема подключения робота-манипулятора, часть 2, а также схема контроллера PS2, необходимая для понимания вашей части кодирования.

Шаг 3: Схема контроллера PS2

Схема контроллера PS2
Схема контроллера PS2

Шаг 4: Настройка подключения модулей Zio

Ниже показано подключение наших модулей Zio для установки с роботизированной рукой. Соединить все модули вместе довольно просто, и установка займет не более 10 минут.

Шаг 5: Подключите сервопривод манипулятора к сервоконтроллеру Zio 16

Подключите сервопривод манипулятора робота к сервоконтроллеру Zio 16
Подключите сервопривод манипулятора робота к сервоконтроллеру Zio 16

Шаг 6: Подключите сервопривод 16 к усилителю постоянного / постоянного тока и установите его на 6,0 В

Подключите сервопривод 16 к усилителю постоянного / постоянного тока и установите его на 6,0 В
Подключите сервопривод 16 к усилителю постоянного / постоянного тока и установите его на 6,0 В

Мы используем DC / DC Booster для повышения и регулировки напряжения питания батареи до 6.0.

Используйте потенциометр на усилителе постоянного тока, чтобы отрегулировать напряжение, пока не получите значение 6.0. Нажимайте кнопку In / Out, пока на дисплее не отобразится 6.0. Вам необходимо сначала подать питание (батарея 3,7 В) на усилитель постоянного / постоянного тока, чтобы отрегулировать напряжение.

Шаг 7: Подключите Zuino M Uno к сервоконтроллеру Zio 16

Подключите Zuino M Uno к сервоконтроллеру Zio 16
Подключите Zuino M Uno к сервоконтроллеру Zio 16

Qwiic подключите Zuino M Uno к сервоконтроллеру Zio с помощью кабеля qwiic.

Шаг 8: Подключение Uno к приемнику PS2

Подключение Uno к ресиверу PS2
Подключение Uno к ресиверу PS2

Вот схема контактов. Для этой детали вам понадобится 5 перемычек между мужчинами и женщинами.

Шаг 9: Код для роботизированной руки

Мы будем использовать библиотеку PS2 Arduino, чтобы закодировать беспроводной контроллер PS2 для работы с роботизированной рукой. Вы можете найти и скачать исходный код этого проекта Robotic Arm Part 2 на нашей странице Github.

Загрузите и установите следующие библиотеки и сохраните их в локальной папке библиотек Arduino IDE:

  • Библиотека сервоприводов Adafruit PWM
  • Библиотека PS2 Arduino

Чтобы установить библиотеки, откройте вашу Arduino IDE, перейдите на вкладку Sketch, выберите Include Library -> Add. Zip Library. Выберите указанные выше библиотеки для включения в вашу среду IDE.

У Arduino есть удобное руководство по установке библиотек в вашу Arduino IDE. Посмотрите их здесь!

Шаг 10: запустите свой код

Запустите свой код
Запустите свой код

Откройте Arduino IDE. В разделе «Файлы»> «Примеры»> «PS2_Arduino_Library» выберите «PS2X_Servo».

Примечание. Прежде чем вы сможете управлять роботизированной рукой с помощью контроллера PS2, выполните следующие действия: Включите контроллер PS2. Убедитесь, что светодиод режима горит. Если этого не произошло, нажмите кнопку Mode на контроллере. После выполнения вышеуказанного вам нужно нажать кнопку сброса на вашем Zuino M Uno, чтобы он прочитал настройки вашего контроллера. Вам нужно нажать L1 и джойстик, чтобы переместить роботизированную руку.

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

Шаг 11: Пояснение кода

Использовать библиотеку PS2X Arduino просто, требуется только инициализация, настройка и затем команда чтения.

Чтобы установить соединение для вашего контроллера PS2 с вашим Uno, ниже приведены контакты, которые вам необходимо определить в своем коде:

/ *********************************************** *************** * установить контакты, подключенные к контроллеру PS2: * - 1e столбец: оригинал * - 2e столбец: Stef? * замените номера контактов на те, которые вы используете **************************************** ********************** / # определить PS2_DAT 13 // 14 # определить PS2_CMD 11 // 15 # определить PS2_SEL 10 // 16 # определить PS2_CLK 12 // 17

Мы заменили контакты на те, которые мы используем для подключения к нашему Uno, как показано на схеме контактов выше.

/ *********************************************** **************** выберите режимы контроллера PS2: * - давления = аналоговое считывание кнопок * - грохот = грохот двигателя * раскомментируйте 1 строку для каждого выбора режима ** ************************************************* ************ / // # определение давления true # определение давления false // # определение грохота true # определение грохота false

Здесь мы определили режим PS2 для давления и грохота как ложный. Мы прокомментировали те, которые не используем.

Мы будем использовать только команду джойстика контроллера и L1 для управления движением нашей роботизированной руки.

void loop () {/ * Вы должны прочитать Gamepad, чтобы получить новые значения и установить значения вибрации ps2x.read_gamepad (маленький мотор вкл / выкл, большая сила мотора от 0 до 255), если вы не включаете грохот, используйте ps2x.read_gamepad (); без значений Вы должны вызывать это хотя бы раз в секунду * / if (error == 1) // пропустить цикл, если контроллер не найден return; else {// Контроллер DualShock ps2x.read_gamepad (false, вибрировать); // считываем контроллер и устанавливаем большой двигатель на вращение с «вибрирующей» скоростью if (ps2x. Button (PSB_START)) // будет ИСТИНА, пока нажата кнопка Serial.println («Пуск удерживается»); if (ps2x. Button (PSB_SELECT)) Serial.println ("Выбор удерживается"); vibrate = ps2x. Analog (PSAB_CROSS); // это установит скорость вибрации большого двигателя в зависимости от того, насколько сильно вы нажимаете синюю кнопку (X) if (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// выводим значения ручки, если любой из них TRUE RY_Value = ps2x. Analog (PSS_RY); RX_Value = ps2x. Analog (PSS_RX); LY_Value = ps2x. Analog (PSS_LY); LX_Value = ps2x. Analog (PSS_LX); Serial.print («Придерживающиеся значения:»); Serial.print (RX_Value); Serial.print (""); Serial.print (RY_Value); Serial.print (""); Serial.print (LY_Value); Serial.print (""); Serial.println (LX_Value);

В приведенном ниже коде мы кодируем наши сервоприводы, управляющие нашей роботизированной рукой, которую мы включаем в вызов функции в ps2x.button (PSB_L1) || ps2x.button (PSB_R1).

Вам нужно нажать кнопку L1 или R1 вместе с джойстиком, чтобы управлять роботизированной рукой.

Левый джойстик управляет сервоприводами 2 и 3 для части руки - управляет изгибом руки вверх и вниз соответственно, в то время как правый джойстик управляет сервоприводами 0 и 1 когтя робота-манипулятора, чтобы открывать или закрывать, а также вращать влево или вправо.

SERVO 0, 1 - Коготь SERVO 2, 3 - Рука

Вы можете изменить значения в этом разделе, чтобы контролировать угол наклона манипулятора робота:

pulselen0 = map (RY_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen1 = map (RX_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen2 = map (LY_Value, 0, 127, SERVOMIN2, SERVOMAX2); pulselen3 = map (LX_Value, 0, 255, SERVOMIN3, SERVOMAX3);

Рекомендуемые: