Эта история о том, как, не имея никаких знаний в робототехнике, схемотехнике и прочего, удалось собрать рабочую модель робота манипулятора и осуществить детскую мечту.
Для начала были куплены 3 сервомотора Tower pro 9g (160 руб. каждый) и доска бальзы (из неё вроде делают модели самолетов). Не берите бальзу для такого! Я, конечно, этого не знал, поэтому пытался сделать что-то из нее, благо материал был мягкий и легко резался канцелярским ножом. Но обработка бальзы это ад, мягкость это и плюс, и огромный минус. Намучившись с этим материалом (знатоки не ругайтесь, бальза хороша для других задач), было принято решение печатать детали на 3D принтере (можно было резать и оргстекло, но очень хотелось попробовать 3D печать). Детали моделились в SketchUp, и экспортировались в .stl с помощью расширения.
В итоге получилось следующее:
Печать вышла в 902 руб (без платформы для платы и клешни). Кстати, поскольку до этого не приходилось делать модель для печати, я накосячил с размерами отверстий, и из-за этого у манипулятора появилось мнооого люфтов (кидайте тапками).
В качестве прообраза был взят проект uArm и meArm. В первом использовались сервы u-servo us-d150a, а второй я увидел, когда уже смоделил свои детали, поэтому вышел некий гибрид .
Немного про мозги системы. Как я уже говорил, здесь используется Arduino Uno, а для крепления серв был приобретен Sensor Shield V5 (300 р.). Конечно, можно было бы обойтись и без него, но паяю и делаю платы я ещё хуже (вообше никак).
Также была напечатана нормальная платформа, а главное, клешня, для всего этого чуда (для клешни был куплен 4 сервомотор Tower Pro 9g уже за 240р., сами детали 630р.). Здесь же опять я немного накосячил с размерами, все дорабатывалось шкуркой и напильником.
И вот наше творение готово, можно запускать и кричать: «Оно живое, живое!!!», а нет, настало время писать прошивку. (Дальше будет более нудная часть, кто не хочет читать, как делалась прошивка, листайте дальше.)
---про прошивку---
В общем и целом для работы с сервами использовалась библиотека Servo. Стандартные функции давали слишком резкие движения, и моторов могли двигаться лишь поочередно (это не очень большой минус, но хотелось одновременной работы). Поэтому была написана собственная функция для каждого из моторов (их всего 4). За каждый проход базовой функции loop() проверяется положение мотора с помощью Servo.read(), если он не совпадает с заданным углом, на 1 приближаем его к нужному углу. Таким образом, вышла довольная плавная работа манипулятора.
---конец---
А теперь история про софт для компа Вначале все писалось на Proccesing, этот язык (среда разработки?!) часто рекомендуют для работы с ардуино через COM порт. Выглядело это так:
Общий функционал программы таков: управление сервами из программы, подключение геймпада и передача команд с оного на робота, выполнение «программы» по координатам. Вообще в начале хотелось сделать полет, где можно было бы тыкнуть на участок и таким образом рисовать (надеюсь, вы поняли), это даже вышло, но люфты манипулятора заставили отказаться от этого (весьма не точно выходило выполнение такого рисования).
---КОНЕЦ ИСТОРИИ ПРО СОФТ---
А теперь видео примеры того, что же в итоге вышло. Нужно ещё многое допиливать и в программе и в прошивке, но кое-что манипулятор уже может сделать
Конечно не всегда с первого раза
---ИТОГИ---
Очень круто создать что-то с ноля полностью своими силами, было сделано много проб и ошибок, но результатом я доволен.
Что нужно учесть:
- Прикинуть мощность моторов и размеры робота
- Правильно смоделить/вырезать детали, чтобы не было люфтов (да, это и так всем ясно, но проблема от этого не исчезает)
Стоимость всей затеи:
- 3 х сервы Tower Pro 9g = 480р.
- 1 х серва Tower Pro 9g = 240р.
- Печать всех деталей = 1532р.
- Болты, гайки, крепления (называются крепления для плат) ~300 р
- Arduino Uno = 600р. (весь набор Амперка X обошелся в 3000р.)
- Sensor Shield V5 = 300р.
Общий итог: 3452р.
Ссылка на скачивание: Прошивка,программа,файлы деталей