Эта статья — вводное руководство для новичков по созданию роботизированных рук, которые программируются при помощи Ардуино. Концепция состоит в том, что проект роборуки будет недорогим и простым в сборке. Мы соберём несложный прототип с кодом, который можно и нужно оптимизировать, это станет для вас отличным стартом в робототехнике. Робот-манипулятор на Ардуино управляется хакнутым джойстиком и может быть запрограммирован на повторение последовательности действий, которую вы зададите. Если вы не сильны в программировании, то можете заняться проектом в качестве тренировки по сборке «железа», залить в него мой код и получить на его основе базовые знания. Повторюсь, проект достаточно простой.
На видео — демка с моим роботом.
Содержание статьи
Шаг 1: Список материалов
Нам понадобится:
- Плата Ардуино. Я использовал Уно, но любая из разновидностей одинаково хорошо справится с задачами проекта.
- Сервоприводы, 4 самых дешевых, что вы найдёте.
- Материалы для корпуса на ваш вкус. Подойдёт дерево, пластик, метал, картон. Мой проект собран из старого блокнота.
- Если вы не захотите заморачиваться с печатной платой, то понадобится макетная плата. Подойдёт плата небольшого размера, поищите варианты с джамперами и блоком питания — они бывают достаточно дешевы.
- Что-то для основания руки — я использовал банку от кофе, это не самый лучший вариант, но это всё, что я смог найти в квартире.
- Тонкая нить для механизма руки и иголка для проделывания отверстий.
- Клей и изолента, чтобы скрепить всё воедино. Нет ничего, что нельзя было бы скрепить изолентой и горячим клеем.
- Три резистора на 10K. Если у вас не найдётся резисторов, то в коде на такие случаи есть обходной манёвр, однако лучшим вариантом будет купить резисторы здесь.
Шаг 2: Как всё работает
На приложенном рисунке изображен принцип работы руки. Также я объясню всё на словах. Две части руки соединены тонкой нитью. Середина нити соединена с сервоприводом руки. Когда сервопривод тянет нить — рука сжимается. Я оснастил руку пружиной из шариковой ручки, но если у вас есть более гибкий материал, можете использовать его.
Шаг 3: Модифицируем джойстик
Предположив, что вы уже закончили сборку механизма руки, я перейду к части с джойстиком.
Для проекта использовался старый джойстик, но в принципе подойдёт любой устройство с кнопками. Аналоговые кнопки (грибы) используются для управления сервоприводами, так как по сути это просто потенциометры. Если у вас нет джойстика, то можете использовать три обычных потенциометра, но если вы, как и я, модифицируете старый джойстик своими руками, то вот что вам нужно сделать.
Я подключил потенциометры к макетной плате, у каждого из них есть по три клеммы. Одну из них нужно соединить с GND, вторую с +5V на Ардуино, а среднюю на вход, который мы определим позже. Мы не будем использовать ось Y на левом потенциометре, поэтому нам нужен только потенциометр над джойстиком.
Что касается переключателей, соедините +5V с одним его концом, а провод, который идёт на другой вход Ардуино со вторым концом. Мой джойстик имеет общую для всех переключателей линию на +5V. Я подключил всего 2 кнопки, но затем подключил еще одну, так как в ней появилась необходимость.
Также важно обрезать провода, которые идут к чипу (черный круг на джойстике). Когда вы завершите всё вышеописанное, можно приступить к проводке.
Шаг 4: Электропроводка нашего устройства
На фотографии изображена электропроводка устройства. Потенциометры — это рычажки на джойстике. Локоть (Elbow) — это правая ось Y, Основа (Base) — это правая ось X, Плечо (Shoulder) — это левая ось X. Если вам захочется поменять направление движения сервоприводов, просто смените положение проводов +5V и GND на соответствующем потенциометре.
Шаг 5: Загрузка кода
На этом этапе нам нужно скачать приложенный код на компьютер, а затем загрузить его на Ардуино.
Заметка: если до этого вы уже загружали код на Ардуино, то просто пропустите этот шаг — вы не узнаете ничего нового.
- Откройте ИДЕ Ардуино и вставьте в него код
- В Tools/Board выберите вашу плату
- В Tools/Serial Port выберите порт, к которому подключена ваша плата. Скорее всего, выбор будет состоят из одного пункта.
- Нажмите кнопку Upload.
Вы можете изменить диапазон работы сервоприводов, в коде я оставил заметки о том, как это осуществить. Скорее всего, код будет работать без проблем, вам нужно будет лишь поменять параметр сервопривода руки. Этот параметр зависит от того, как вы настроили нить, поэтому я рекомендую точно подобрать его.
Если вы не используете резисторы, то вам нужно будет модифицировать код в том месте, где я оставил об этом заметки.
Файлы
Шаг 6: Запуск проекта
Робот контролируется движениями на джойстике, рука сжимается и разжимается при помощи кнопки для руки. На видео показано, как все работает в реальной жизни.
Вот способ, которым можно запрограммировать руку:
- Откройте Serial Monitor в Ардуино ИДЕ, это позволить проще следить за процессом.
- Сохраните начальную позицию, кликнув Save.
- За один раз двигайте лишь одним сервоприводом, например, Плечо вверх, и жмите save.
- Активируйте руку также только на её шаге, а затем сохраняйте нажатием save. Деактивация также производится на отдельном шаге с последующим нажатием save.
- Когда закончите последовательность команд, нажмите кнопку play, робот перейдёт в начальное положение и затем начнёт двигаться.
- Если вы захотите остановить его — отсоедините кабель или нажмите кнопку reset на плате Ардуино.
Если вы всё сделали правильно, то результат будет похож на этот!
Надеюсь, урок был вам полезен!