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

Использование Интернета вещей для удаленного управления манипулятором

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

Arduino MKR1000
× 1

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

Лазерный резак (универсальный)

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

MATLAB
IDE Arduino

Об этом проекте

Введение

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

Я расскажу как о фазах проектирования, так и о программировании. Но я сосредоточусь больше на стороне программирования, поскольку это не просто управление углами сервопривода.

Вот ссылка на видео финального проекта в действии - https://www.mathworks.com/videos/how-to-control-a-robotic-arm-from-a-remote-location-using-iot-1538564659095. html.

Я использовал Simulink для программирования Arduino MKR1000, который является микроконтроллером, управляющим роботизированной рукой. Затем я добавил возможность управлять манипулятором робота практически из любого места с помощью ThingSpeak, открытой платформы Интернета вещей с аналитикой MATLAB.

Требуется оборудование

  • Фанера размером 1/8 дюйма размером 15 x 20 дюймов.
  • Arduino MKR1000
  • 5 сервоприводов GS9025MG
  • Разъем постоянного тока диаметром 2,1 мм, совместимый с макетной платой.
  • Блок питания с цилиндрическим разъемом 6 В постоянного тока.
  • Перемычки
  • 3 транзистора 2n2222a
  • 10 гаек M2
  • 10 винтов M2 x 10
  • Гайки 40x M3
  • 40 винтов M3 x 25

Используемое программное обеспечение

  • MATLAB
  • Simulink
  • Пакет поддержки MATLAB для оборудования Arduino
  • Пакет поддержки Simulink для оборудования Arduino
  • Пакет поддержки MATLAB для ThingSpeak

Дизайн

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

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

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

Что касается управления двигателями, Arduino MKR1000 имеет 4 контакта PWM, но мне нужно было 5 для управления 5 сервоприводами. Я проявил изобретательность и использовал один вывод ШИМ для управления двумя сервоприводами и цифровой вывод для переключения между двумя сервоприводами и управления по одному.

Вот схема, описывающая это:

Вот схема подключения сервоприводов к Arduino:

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

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

Создание прототипа

Используя ползунки и постоянные блоки, я мог управлять сервоприводами на Arduino, чтобы они двигались под определенными углами. Я использовал эту модель, чтобы узнать смещения между заданным углом и фактическими углами рычага, а также диапазон допустимых углов для каждого сервопривода.

Блоки с шестеренкой на них - это блоки записи ШИМ для управления подачей на определенный угол от 0 до 180.

Я использовал обратную кинематику для руки в двухмерном плоском движении, чтобы найти углы, необходимые для перемещения руки в координату XY. Я обнаружил, что эта ссылка довольно хорошо объясняет кинематику:https://appliedgo.net/roboticarm/

Точный контроль

Хотя это выглядит сложнее, чем предыдущее, логика все та же. Выходные блоки по-прежнему представляют собой блоки записи сервоприводов с шестернями. Входные блоки теперь не являются входами ползунка / константного блока, а считываются из канала ThingSpeak. Я более подробно остановлюсь на ThingSpeak позже. Входными данными являются позиции X и Y руки, которые с помощью функционального блока loc2angles MATLAB преобразуются в заданные углы для руки. Блок angles2loc в верхней части модели - это просто способ мониторинга системы, чтобы убедиться, что сервопривод углы переведены в правильное положение ввода с помощью прямой кинематики. Один из классных инструментов от Simulink, который я использовал в этом проекте, - Внешний режим . . Это позволило мне контролировать систему, пока она работала на самой Arduino.

Блоки с серым облаком на них - это блок чтения ThingSpeak, встроенный в пакет поддержки Simulink для Arduino. Я ввожу идентификатор канала, номер поля данных, который я хочу получить, и ключ чтения API, и он выводит данные из этого канала и поля. Не волнуйтесь, если вы не знакомы с какими-либо из этих терминов, я скоро уточню.

Использование ThingSpeak:создание и использование канала

1. Перейдите на https://thingspeak.com/

.

2. Нажмите «Войти» в правом верхнем углу и войдите, используя бесплатную учетную запись MathWorks.

3. На странице панели управления нажмите «Новый канал»

.

4. Введите данные, как показано ниже. Показанные данные - это все, что вам нужно заполнить.

5. Нажмите "Сохранить канал" внизу

.

6. Вы создали канал ThingSpeak

7. В командном окне MATLAB или с помощью мобильного приложения MATLAB вы можете вводить команды, которые выглядят следующим образом:thingSpeakWrite (chID, [0.6963.94 -12 0 0], 'WriteKey', APIKEY, 'Fields', [1 2 3 4 5]);

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

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

Когда вы закончите настройку канала ThingSpeak, вы можете либо запустить модель на Arduino во внешнем режиме, либо путем развертывания на оборудовании. В модели Simulink перейдите в «Параметры конфигурации модели», щелкнув маленькую шестеренку на верхней панели меню, выберите «Аппаратная реализация» и убедитесь, что «Аппаратная плата» - это Arduino MKR 1000. на той же вкладке нажмите "Свойства Wi-Fi" и введите учетные данные Wi-Fi для доступа к сети.

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

После запуска модели вы можете записывать новые данные в поля канала ThingSpeak из MATLAB или MATLAB mobile на своем телефоне и смотреть, как он перемещает вашу руку робота!

Код

https://www.mathworks.com/matlabcentral/fileexchange/68880-controlling-a-robotic-arm-from-anywhere-using-iot


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

  1. Универсальный пульт дистанционного управления с использованием Arduino, 1Sheeld и Android
  2. Управление монетоприемником с помощью Arduino
  3. Центр управления Arduino
  4. Монитор сердечного ритма с использованием Интернета вещей
  5. IOT - Smart Jar с использованием ESP8266, Arduino и ультразвукового датчика
  6. Роботизированная рука, напечатанная на 3D-принтере Arduino
  7. Управление Arduino Rover с помощью Firmata и контроллера Xbox One
  8. Управление увлажнителем Arduino
  9. Роботизированная рука, управляемая нунчук (с Arduino)
  10. Простая и умная роботизированная рука с использованием Arduino