Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Удаленное IoT-управление самодельной манипулятором

Компоненты и материалы

Arduino MKR10001

Необходимые инструменты и станки

Приложения и онлайн-сервисы

О проекте

Введение

Я давно хотел спроектировать роботизированную руку с нуля. Существует много открытых конструкций, но мне хотелось пройти полный цикл: проектирование, сборка и программирование с чистого листа (и это того стоило).

Видео работы готового проекта: YouTube / MathWorks.

Для программирования Arduino MKR1000 (MCU манипулятора) использовал Simulink. Добавил возможность управления откуда угодно через ThingSpeak — открытую IoT-платформу с аналитикой MATLAB.

Необходимое железо

Используемое ПО

Проектирование

Чтобы снизить стоимость, выбрал хобби-сервоприводы GS-9025MG. Это ограничило вес и размер: микросервы не выдают большой крутящий момент и не могут поднимать тяжелые рычаги.

Прототип из фанеры 1/4 дюйма оказался слишком тяжелым. Уменьшил длину рычагов и перешел на фанеру 1/8 дюйма — проблема решилась. Чертил в Fusion 360, экспортировал в .dxf и вырезал лазером.

Питание от батарей быстро садилось из-за большого тока — понадобилось стационарное питание 6 В.

У Arduino MKR1000 всего 4 ШИМ-вывода, а серв 5. Решил нестандартно: один ШИМ-пин управляет двумя сервами, а цифровой пин переключает их по очереди.

Удаленное IoT-управление самодельной манипулятором
Удаленное IoT-управление самодельной манипулятором

Программирование

Два этапа: прототипирование (сборка и командные углы) и точное управление через ThingSpeak.

Прототипирование

Удаленное IoT-управление самодельной манипулятором

Слайдеры и константы задавали углы серв. Определил смещения между заданным и реальным углом, а также допустимые диапазоны. Блоки с шестерёнками — PWM Write для углов 0–180°.

Для обратной кинематики в 2D использовал методику из этой статьи.

Точное управление

Удаленное IoT-управление самодельной манипулятором

Логика та же, но входы теперь из ThingSpeak. Блок loc2angles (MATLAB Function) переводит координаты X,Y в углы серв. Блок angles2loc сверяет прямую кинематику для мониторинга.

Ключевой инструмент Simulink — External Mode: мониторинг сигналов в реальном времени на работающем Arduino.

Блоки с облачком — ThingSpeak Read из Simulink Support Package. Задаёте Channel ID, номер поля и Read API Key — блок выдаёт данные из канала.

Работа с ThingSpeak: создание и использование канала

  1. Перейдите на thingspeak.com.
  2. Войдите через бесплатный аккаунт MathWorks (Sign in → MathWorks Account).
  3. На дашборде нажмите New Channel.
  4. Заполните поля как на скриншоте (имя, поля Field 1–5 для X, Y и серв).
  5. Удаленное IoT-управление самодельной манипулятором
  6. Нажмите Save Channel.
  7. Канал создан.
  8. В MATLAB Command Window или MATLAB Mobile отправляйте команды:
    thingSpeakWrite(chID, [0.6963, 94, -12, 0, 0], 'WriteKey', APIKEY, 'Fields', [1 2 3 4 5]);
    
    Меняя значения во втором аргументе, меняете целевые позиции. Данные в канале обновятся:
    Удаленное IoT-управление самодельной манипулятором

Запуск модели

В Simulink: Model Configuration Parameters (шестерёнка) → Hardware Implementation → Hardware Board: Arduino MKR1000. В Target Hardware Resources → WiFi Properties введите SSID и пароль сети.

Зелёная кнопка Run — External Mode, синяя Deploy to Hardware — прошивка в плату.

Удаленное IoT-управление самодельной манипулятором

После запуска модели пишите новые данные в поля ThingSpeak из MATLAB или MATLAB Mobile на телефоне — и наблюдайте за движением руки!

Код

Полные файлы модели Simulink и скрипты MATLAB: File Exchange.

Производственный процесс

  1. Универсальный Android-пульт на Arduino, 1Sheeld и ИК-управлении
  2. Умная копилка: управление монетоприёмником на Arduino Nano
  3. Arduino Power Control Center: N-FET, P-FET, реле и RTC
  4. IoT-монитор пульса в реальном времени на Arduino и MAX30100
  5. Умная банка на ESP8266 + Arduino: мониторинг наполненности в реальном времени
  6. Сборка функционального 3D-печатного манипулятора на Arduino: пошаговое руководство
  7. Управление Arduino-роботом через Firmata и геймпад Xbox One
  8. DIY-контроллер увлажнителя на Arduino с реле: безопасная работа с высоким напряжением
  9. Роботизированная рука 6 степеней свободы на Arduino Mega с управлением через Nunchuk
  10. Умная робо-рука на Arduino: простое DIY-руководство