Пишущий робот своими руками

Содержание
  1. Делаем простого робота-художника
  2. Собираем робота-художника на Arduino
  3. Робот — художник на Arduino Uno
  4. Подпишитесь на автора
  5. Drawbot на arduino своими руками
  6. Первая засада:
  7. Далее заливаем прошивку GRBL:
  8. Засада вторая:
  9. Как управлять:
  10. Подготавливаем GCODE:
  11. Запускаем inkscape и далее по шагам:
  12. Примеры:
  13. Арт-робот на базе Ардуино своими руками
  14. Шаг 1: Немного о роботе
  15. Шаг 2: Необходимые детали
  16. Шаг 3: Общая схема
  17. Шаг 4: Давайте начинать!
  18. Шаг 5: Манипулятор
  19. Шаг 6: Присоски
  20. Шаг 7: Крепление шаговых двигателей
  21. Шаг 8: Ось вращения
  22. Шаг 9: Размещаем все по своим местам
  23. Шаг 10: Электроника
  24. Шаг 11: Программирование Arduino Leonardo
  25. Шаг 12: Арт-робот готов к созданию произведений искусства
  26. Шаг 13: Управление роботом
  27. Робот-художник на Arduino
  28. Необходимые элементы
  29. Электрическая часть проекта
  30. Программирование платы Arduino для манипулятора
  31. Программирование продолжается
  32. Drawbot
  33. Делаем самобалансирующего робота на Ардуино
  34. Как работает балансировка?
  35. Arduino Drawbot
  36. Step 1: Materials
  37. Step 2: Step 1
  38. Step 3: Step1 (Bread board)
  39. Step 4: Step 3 (Arduino)
  40. Step 5: Step 4 (Servos)
  41. Универсальный образовательный набор (mDrawBot Kit)
  42. mScara
  43. mSpider
  44. mEggBot
  45. Как пользоваться набором mDrawBot?
  46. Сборка
  47. Программное обеспечение
  48. A Drawbot это что-то больше ..

Делаем простого робота-художника

Всего несколько лет назад роботы считались чем-то фантастическим. О них писали фантасты, они появлялись в голливудских фильмах. Сегодня, однако, слово робот никого не шокирует так, как это было в прошлом столетии. Сегодня роботы умеют видеть, говорить, строить, играть в футбол и присматривать за детьми. В данном материале мы рассмотрим способ изготовления простого робота-художника, который хоть не повторит творческий путь Леонардо да-Винчи, но удивит своими оригинальными абстрактными рисунками.

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

Итак, что нам понадобится:
— кулер;
— аккумуляторная батарейка;
— несколько маркеров;
— резинки для купюр.




Теперь подсоединяем провода, идущие от вентилятора к аккумуляторной батарейке. Следует уточнить, что красный провод является плюсовых, а черный – минусовым.

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

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

Источник

Собираем робота-художника на Arduino

Процесс изготовления робота:

Шаг первый. Разработка механических элементов робота
Механическая часть собирается очень просто, это делается из конструктора. С такой задачей справится и пятилетний ребенок.



1. В качалках от серводвигателя нужно просверлить два отверстия. Отверстия должны находиться на определенном расстоянии, каком именно, видно на фото.
2. Теперь нужно сделать крепеж для основания с приводом. Нужно просверлить четыре отверстия для крепления привода и затем зафиксировать его с помощью винтов. Привод будет использоваться в качестве неподвижного основания для робота-руки.
3. Алюминиевые звенья конструктора нужно прикрутить к качалкам приводов. Желательно, чтобы расстояние между качалками составляло 20 см.
4. Одну качалку нужно прикрепить к неподвижному основанию, а вторую ко второму двигателю. Перед тем как качалки будут зафиксированы, сервоприводы нужно откалибровать. Их нужно установить таким образом, чтобы вал находился под углом 90 градусов. Серводвигатель у основания должен располагаться параллельно звеньям, а привод на свободном конце должен быть размещен перпендикулярно.
5. Далее берутся звенья конструктора и крепятся параллельно к свободному концу и серводвигателю.
6. К нижней части конструкции нужно прикрепить колеса, они нужны для балансировки робота и его поддержки.
7. Последний мотор должен быть подключен к окончанию второго звена из пятого пункта.

Для крепления карандаша используется прищепка, также можно использовать и любой другой подходящий схват. Ее нужно прикрепить к серводвигателю таким образом, чтобы расстояние между ним и рабочим инструментом было около 20 см.

В процессе сборки важно придерживаться указанных расстояний, а также постоянно проводить калибровку двигателей по мере сборки. Несомненно, робота можно усовершенствовать, но тут уже все зависит от того, какие узлы имеются в наличии. Если так вышло, что нет конструктора, то можно использовать линейки, куски пластика и другие подходящие предметы.

Шаг второй. Электрическая схема робота
На рисунке можно увидеть, как подключается контроллер Arduino. Для подключения можно использовать макетную плату или же можно спаять шилд.

Сначала нужно найти пиксель, который соответствует цифре 1, поскольку рисунок теперь выглядит в виде нулей и единичек. В процессе происходит проверка, есть ли рядом пиксели с единицей, после этого ручка перемещается на следующую единицу, а предыдущую удаляет. Функция замкнута по кругу, что позволяет рисовать плавные линии.

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

Теперь можно переходить к настройке Matlab и Arduino для того чтобы код отрабатывал. Сперва в Matlab нужно установить плагин Arduino IO. Далее файл под названием arduino.m нужно заменить тем, который прикреплен проекту под точно таким названием.

Файлы finaldraw.m и draw.m нужно сохранить в директорию с Matlab. Файл под названием adioes.ino загружается на плату.
На следующем этапе нужно проверить, к какому порту подключена плата Arduino, открыть файл finaldraw.m и заменить порт COM3 на нужный.

Расширение рисунка, который требуется нарисовать, нужно изменить на тип .png. Это делается очень просто, можно использовать графический редактор, к примеру, стандартный Paint. Файл сохраняется в директорию Matlab.

Затем нужно открыть файл finaldraw.m и заменить там emma.png на название рисунка, который нужно нарисовать.
Как видно на картинке, в качестве теста используется фотография Эммы Уотсон.


Вот и все, робот готов к использованию, можно приступать к тестированию. Плата Arduino подключается к персональному компьютеру, а в командной строке Matlab затем прописывается команда finaldraw. Система элементарно настраивается под нужные габариты конструкции.

Источник

Робот — художник на Arduino Uno

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Всем привет =) Сегодня у меня для вас робот — художник. Уже давненько хотел собрать эту штуку и вот, наконец, выдалось свободное время.

Все детали напечатаны PLA пластиком с 30% заполнением. Расход филамента около 200 грамм.

Ссылка на страницу проекта — https://www.thingiverse.com/thing:2349232

Видеогайд по сборке и настройке:

Для сборки потребовалось:

— 2 шаговых двигателя nema17 с шагом 1,8 градуса

— 2 шкива GT2 на 16 зубов

— Около 2-х метров ремня GT2

— Шпилька М8 длиной 480 мм. + 4 гайки и 4 шайбы

— 8 мм. направляющие. Пара длиной 460 мм. и ещё пара — 400 мм. Хотя, если предполагается рисовать на листах формата А4, то можно взять направляющие покороче, как и положено по проекту.

— 3 мм. линейные направляющие длиной 70 мм. — 2 штуки (Можно заменить отрезками гвоздей, спиц или чего то подобного, подходящего по диаметру) + пара пружин из шариковых ручек

— Линейные подшипники LM8UU — 8 штук

— Подшипники с фланцем F623ZZ — 8 штук

— Подшипник 605ZZ — 1 штука

— Сервопривод SG90 — 1 штука

— Arduino Uno + CNC shield + 2 драйвера А4988

— Некоторое количество винтов и гаек М3

— Шариковая ручка (чёрного цвета) — 1 штука

В целом, это не самая удачная конструкция. Направляющие люфтят и раскачиваются, что хорошо видно на видео. Но зато она очень проста и, я уверен, многие владельцы 3D принтеров смогут собрать такую штуку из того, что завалялось в коробках =)

И хотя рисует робот, в целом, не плохо, всё же стоит хотя бы прикрутить его к массивному основанию, вроде листа качественной (ровной) фанеры или ЛДСП. Робот станет работать несколько стабильнее, а перед ним будет отличная ровная поверхность для крепления бумаги, в которую не жалко втыкать кнопки. В таком виде его даже можно попробовать повесить на стену, чтобы он занимал меньше места.

Источник

Drawbot на arduino своими руками

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

Нашел в сети более-менее дизайнерский вариант, вот такой:

eggbot на thingiverse

Ссылка на модель: http://www.thingiverse.com/thing:1683764

Эта модель выглядит прилично, красиво и есть место крепления для платы управления, плюс можно спрятать все провода внутри корпуса — он, как оказалось, полый внутри. Все продумано.

Прикинул в уме что потребуется:

2шт Nema17 или анлоги
2шт драйвера A4988 или аналоги
1шт серва SG90
1шт arduino uno
1шт cnc shield
2шт подшипников 623 (в крайнем случае, можно обойтись и без них..)

  • пара пружинок,резинка,болтики, гайки… маркер с тонким жалом.
  • Распечатал все детали и собрал агрегат воедино:

Осталось установить маркер и шар.

Первая засада:

На всех сайтах для данного агрегата продают специальный шилд по 30 евро, с wi-fi на борту и специальным плагином и прогой для работы с компа.
Но мы не гордые и лишних денег нет, поэтому юзаем обычный cnc-шилд. На борту шилда есть все необходимое — разъемы для 4 драйверов и куча выводов, к которым можно подрубить серву.

Читайте также:  Кукла щекастик своими руками

Вот так выглядит cnc шилд:

Если хотим максимальное качество прорисовки узоров, то ставим все перемычки M0,M1,M2 для осей X и Y, устанавливаем на свои места драйвера А4988.

Далее заливаем прошивку GRBL:

Прошивку берем тут: https://github.com/robottini/grbl-servo

Заливается прошивка через Arduino IDE. Файл для заливки через IDE спрятан тут (как и инструкция, как это сделать): https://github.com/robottini/grbl-servo/tree/master/examples/grblUpload

У кого не получается залить прошивку, делаем так:

файл grblUpload.ino копируем в папку с остальными файлами grbl-servo-master
переименовываем файл grblUpload.ino в grbl-servo-master.ino

  1. внутри файла grbl-servo-master.ino заменяем строчку
  2. #include
    на
  3. #include «grbl.h»

Далее все должно компилиться..

Следующую процедуру можно не делать, но желательно (указываем кол-во шагов для каждого двигателя ):
Правим в файле defaults_generic.h (в каталоге defaults) вот эти две строки:

#define DEFAULT_X_STEPS_PER_MM 250.0 //заменяем на 32
#define DEFAULT_Y_STEPS_PER_MM 250.0 //заменяем на 32

откуда берется 32:

3200 — это количество шагов двигателя на один полный оборот при всех выставленных перемычках драйвера А4988 (микрошаг 1/16) и двигателе 1,8 гр/шаг

Предполагаем, что длина окружности 100мм (по Х и У), поэтому считаем, что на 1мм приходится 32 микрошага (3200/100=32). Можно выставить любые другие значения, от этого зависит только масштаб картинки в редакторе.

Либо заливаем прошивку как есть и потом правим из программы gcodesender при помощи команды $$ (выводит текущие настройки), забегая вперед, покажу как это сделать:

после команды $$ терминал должен выдать примерно следующее:

$100=314.961 (x, step/mm)
$101=314.961 (y, step/mm)
$102=314.961 (z, step/mm)
$110=635.000 (x max rate, mm/min)
$111=635.000 (y max rate, mm/min)
$112=635.

000 (z max rate, mm/min)
$120=50.000 (x accel, mm/sec^2)
$121=50.000 (y accel, mm/sec^2)
$122=50.000 (z accel, mm/sec^2)
$130=225.000 (x max travel, mm)
$131=125.000 (y max travel, mm)
$132=170.

000 (z max travel, mm)

Чтобы задать новое кол-во шагов для оси Х пишем: $100=32
Все, новые значения заданы и ничего не надо править в прошивке..

Можно, конечно, совсем ничего не править, но тогда размер изображения будет 12,8мм х 4мм — рисовать можно, тем более это векторный рисунок, но постоянно масштабировать скачанные картинки очень неудобно..

Засада вторая:

  • По идее, шим сигнал для сервы берется с платы с вывода SpnEn(управление шпинделем), но не все так просто.
  • В новой прошивке GRBL 0,9 сделали переназначение пинов и теперь шим сигнал управления выводится на пин Z+ из ряда пинов END STOPS.
  • Поэтому подключаем серву вот к этим выводам (про +5V и GND не забываем):

подключение сервы к CNC shield

Вроде все готово.

Как управлять:

Обычный Pronterface тут не подходит.. Поэтому качаем любую программу по работе с лазерным гравировщиком,фрезером или простой gcode sender. Я взял вот этот вариант: https://github.com/grbl/Universal-G-Code-Sender

Здесь версия поновее: http://winder.github.io/ugs_website/

  1. Выставляем com-порт и скорость соединения 115 200 бод.
  2. Все должно подключиться.
  3. Картинка примерно вот такая:

Осталось выяснить, какой ширины картинку можно нарисовать на шаре/яйце..

Переводим руками маркер в крайнее левое положение как на картинке:

Нажимаем в интерфейсе кнопку Y+ и смотрим, при каком значении Y маркер окажется в крайнем правом положении. Для объектов разной формы и размеров это значение может немного отличаться, т.к. конструкция зажима не всегда обеспечивает симметричный зажим.

Теперь, у нас есть размер поля в мм. По Х — 100мм, а по Y — примерно 30мм.

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

Подготавливаем GCODE:

Управление сервой производится командой M3 S254 (повернуть серву на 360гр) и M3 S0 (повернуть в исходное положение) (либо M5 — выключение сервы). Для лазерных резаков эта команда задает мощность лазера, а для шпинделя фрезера — кол-во оборотов.
Можно пользоваться любым преобразователем векторной графики в gcode, который умеет вставлять нужную нам команду управления M3.

Самый удобный из легко-доступных редакторов векторной графики — Inkscape (качаем тут)

Сразу качаем для него плагин для g-кодов тут. Можно сразу туториалы почитать.
Очень хороший плагин. В отличии от всех других плагинов он работает на всех типах винды без проблем и без танцев с бубном — поставил, и все заработало.

Просто копируется все содержимое плагина в папку «..inkscapeshareextensions».

Запускаем inkscape и далее по шагам:

1. устанавливаем размер рабочего поля:

3. Рисуем или пишем что-либо:

4.Оконтуриваем (преобразуем в кривые):

5. Применяем плагин:

6. Настраиваем плагин:

Угол поворота сервы подбираем опытным путем и исходя из размеров маркера.
Время задержки, необходимое для сработки сервы ставим 1, что означает 1 секунда, хоть в плагине и написаны миллисекунды, но grbl почему-то считает это значение в секундах.

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

7. Получаем вот такую картинку и файл в нашем каталоге:

8. В программе GcodeSender во вкладке File Mode выбираем наш файл output.gcode и жмем кнопку Send и смотрим на процесс рисования:

Ну и результат на фото:

Текст деформирован, т.к. для шара таких размеров возникает несоосность оси Y и центра шара.

Максимальный диаметр шара, который можно установить в этот агрегат — 68мм. С небольшими переделками можно увеличить до 75-80мм.

Можно менять маркеры и делать цветные узоры.

Сразу отвечу на вопрос, почему не стал использовать готовую программу-плагин Inkscape для EggBot-а, с помощью которого можно рисунок сразу отправлять «на печать» из inkscape одним нажатием кнопки.

Плагин установился, но вот заставить его работать никак не получилось — постоянно выдавал ошибку com-порта. Разбираться было лень, поэтому решил использовать 100% работающий плагин..

Примеры:

Вот еще фото того, что получилось сделать на яцеботе:

Самое сложное — найти тонкий маркер (0,3-0,5мм). Толстым маркером не так красиво.

узоры на шарике

Немного красных шаров:

разрисовка красных шаров

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

Арт-робот на базе Ардуино своими руками

Перевёл alexlevchenko для mozgochiny.ru

Доброго времени суток! Перед вами, дорогие мозгочины, арт-робот, который может разрисовывать различные сферические или яйцевидные предметы размером от 4 до 9 см.

Для его изготовления понадобится 3D-принтер, набор стандартных инструментов + Arduino.

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

Шаг 1: Немного о роботе

Арт-робот — двухосевая самоделка, которая может наносить рисунок на большинстве сферических поверхностей. Робот настраивается под определённый тип предмета (шары для пинг-понга, рождественские украшения, лампочки и яйца (утиные, гусиные, куриные …).

Для вращения сферического предмета и перемещения манипулятора используются высокоточные шаговые двигатели с высоким крутящим моментом, а для подъёма механизма ручки — тихий и надежный сервопривод SG90.

Шаг 2: Необходимые детали

Для того, чтобы сделать поделку своими руками нам понадобится:

  • 2x подшипника 623;
  • Шпилька диаметром 3 мм и длиной 80-90 мм;
  • 1x пружина (длиной 10 мм и диаметром 4,5 мм);
  • 2x шаговых двигателя NEMA 17 (крутящий момент 4,4 кг / см);
  • Кабели для двигателей (длиной 14 + 70 см);
  • USB-кабель;
  • 1x сервопривод SG90;
  • Arduino Leonardo;
  • shield JJRobots;

  • 2xA4988 драйвера для шаговых двигателей;
  • Блок питания 12В / 2A;
  • 11x винтов M3 6 мм ;
  • 4x винта M3 16 мм;
  • 4x гайки M3;
  • 2x 20-мм присоски;
  • 1x гайка-барашек M3;
  • 1x маркер;
  • Части напечатанные на 3D-принтере.

Шаг 3: Общая схема

В качестве «шпаргалки» можете воспользоваться данной схемой.

Шаг 4: Давайте начинать!

Робот двигает манипулятором, с закрепленным на нём маркером, что приводится в действие шаговым двигателем. Другой шаговый двигатель отвечает за поворот объекта, на который наносится рисунок (яйцо, шарик …). Для удерживания предмета на месте используются две присоски: одна, прикрепленная к шаговому двигателю, а другая на противоположной стороне предмета. Маленькая пружина будет давить на присоску, помогая ей удерживать предмет. Для поднятия/опускания маркера используется сервопривод SG90.

Шаг 5: Манипулятор

Установим гайку в отверстие, подготовленное для неё и закрутим 16 мм винт. Сделаем то же самое для держателя предметов (справа на изображении выше). При создании шарнира для манипулятора использовались 2 16 мм винта. Этот шарнир должен свободно вращаться после закручивания винтов.

Шаг 6: Присоски

Установим одну из присосок внутрь отверстия в держателе предметов.

Шаг 7: Крепление шаговых двигателей

  • Закрепим оба шаговых двигателя к основной раме с помощью 8-ми винтов.

Шаг 8: Ось вращения

Разместим все элементы, как показано на изображении выше.

  • Присоска;
  • Гайка;
  • Верхняя часть;
  • Пружина;
  • Подшипник 623 (должен быть встроен в левую чашку);
  • Левая чашка;
  • Свободное пространство для основной рамы;
  • Правая чашка;
  • Подшипник 623;
  • Разделительное кольцо;
  • Гайка-барашек (M3).

Шаг 9: Размещаем все по своим местам

  1. Вставим собранный манипулятор на ось шагового двигателя.
  2. Установим левую опору на ось шагового двигателя.
  3. Маркер и яйцо установлены в качестве примера (сейчас размещать их не нужно).

ПРИМЕЧАНИЕ: Сервопривод потребует корректировок. Нужно будет повторно установить его угол во время процесса калибровки.

Шаг 10: Электроника

  • Закрепим электронику на тыльной стороне основной рамы с помощью винтов (2-х будет достаточно).
  • Подключим кабеля.

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

Шаг 11: Программирование Arduino Leonardo

Запрограммируем Arduino Leonardo с помощью программной среды Arduino IDE (v 1.8.1).

  • Загрузим Arduino IDE (v 1.8.1) и установим программу;
  • Запустим программное обеспечение. Выберем плату Arduino Leonardo и соответствующий COM-ПОРТ в меню «tools-> board»;
  • Откроем и загрузим код Sphere-O-Bot. Распакуем все файлы внутрь одной папки и назовём её «Ejjduino_ARDUINO».
Читайте также:  Кнопка клавиатуры ноутбука ремонт своими руками

Шаг 12: Арт-робот готов к созданию произведений искусства

Шаг 13: Управление роботом

Программное обеспечение Inkscape. Загрузим и установим программное обеспечение Inkscape (рекомендую стабильную версию 0.91).

Загрузим и установим расширение EggBot Control (версия 2.4.0 была полностью протестирована).

Расширение EggBot Control для Inkscape — это инструмент, который необходимо использовать при тестировании и калибровке EggBot, а также перенесении рисунки на яйцо. Сначала нужно запустить Inkscape.

После запуска Inkscape появится меню «Расширения», а в нём уже нужно выбрать подменю «Eggbot». Если не видите подменю Eggbot, то вы неправильно установили расширения.

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

  1. На этом всё, спасибо за внимание!)
  2. Sphere-O-Bot-CODE_ARDUINO — программное обеспечение
  3. Sphere-O-Bot_eggbot_MOD
  4. Руководство по сборке на англ
  5. (A-z Source)

Робот-художник на Arduino

Данный проект рассчитан на начинающих ардуинщиков и даст хорошую базу для дальнейшего освоения Arduino, Matlab, программирования и механики.

Электроники в проекте немного. Робот представляет из себя манипулятор с 2-мя степенями свободы, в качестве рабочего органа у которого используется карандаш. В проекте решена обратная задача кинематики и задача определение положения рабочего органа в плоскости в зависимости от углов поворота сервоприводов.

Необходимые элементы

  • Mechanix kit — железный конструктор
  • Болты и гайки
  • Держатель для карандаша (в данном случае — прищепка)
  • 2 колеса для опор
  • Плата Arduino uno
  • Макетная плата
  • Источник питания (адаптер на 5 вольт 2 ампера)
  • USB Кабель
  • Arduino IDE
  • Matlab (с установленным Arduino IO)
  • Половина из перечисленного выше у вас вполне может найтись дома. Остальное можно приобрести за небольшие деньги.
  • Можно использовать любые серводвигатели с крутящим моментом более 7 кг*см (например, дешевый и сердитый вариант вроде MG995). Да, кстати, для любителей макеток — вам, конечно же пригодятся коннекторы.

На рисунках сверху приведена исчерпывающая информация о механической части манипулятора и его сборке. В общем-то, при наличии конструктора, возвращаемся на уровень 5-6 лет и собираем все это вместе. Теперь пошагово.

  1. Просверлите два отверстия в качалках от привода. При этом необходимо выдержать расстояние, приведенное на рисунке.
  2. Следующая наша задача — сделать крепеж для основания с приводом. Просверлите 4 отверстия на расстоянии, равном расстоянию между винтами привода и установите его на основание. Мы используем этот привод в качестве неподвижного основания для нашей механической руки.
  3. Прикрепите алюминиевые звенья из конструктора к качалкам приводов. Желательно, чтобы расстояние между двумя качалками примерно было равно 20 сантиметрам.
  4. Прикрепите качалку к неподвижному сервоприводу основания, вторую качалку — ко второму приводу. Перед фиксацией качалок, откалибруйте сервопривода. Установите их таким образом, чтобы положение вала соответствовало 90 градусам, серводвигатель у основания был установлен параллельно звеньям, а серводвигатель на свободном конце — перпендикулярно.
  1. После этого возьмите еще звенья из конструктора и прикрепите их параллельно к свободному концу и серве.
  2. Прикрепите колеса к нижней части механической руки для балансировки и обеспечения поддержки нашей конструкции
  3. Последний серводвигатель должен быть подключен к концу второго звена из 5 пункта.

Подберите подходящую прищепку (или другой схват) и прикрепите ее к серве так, чтобы расстояние от второй сервы до рабочего органа составляло около 20 сантиметров.

При разработке механической части важно выдерживать указанные расстояния — 20, 15 сантиметров и правильно проводить калибровку двигателей. Естественно, доработка конструкции возможна и зависит того, какие именно узлы у вас еще есть в наличии. Например, вместо алюминиевых звеньев из набора конструктора можно использовать обычные линейки, куски пластика и т.п.

Электрическая часть проекта

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

Программирование платы Arduino для манипулятора

Эта часть проекта самая интересная и, наверное, самая важная.

Давайте вкратце разберемся, что именно происходит в программной части.

Сначала мы берем изображение и находим его границы. После начинаем рисовать. Процесс рисования состоит из двух частей.

Часть первая. Сначала мы находим пиксель, который соответствует 1, так как наш рисунок теперь представлен в виде 0 и 1. Проходит проверка того, не являются ли пиксели рядом тоже 1, после чего ручка перемещается на выбранный пиксель и удаляет предыдущую 1. Функция повторяется по кругу и позволяет создавать плавные линии.

Вторая часть. Решение обратной задачи кинематики для перемещения рабочего органа к определенному пикселю. При расчете берутся координаты пикселя и вычисляются соответствующие углы приводов. Как именно решается эта задача можно увидеть на рисунке выше.

Теперь перейдем к настройке Matlab и Arduino для отрабатывания кода.

Для начала установите Arduino IO плагин в Matlab.

После этого замените файл arduino.m тем, что прикреплен к проекту под тем же именем.

Скачайте и сохраните finaldraw.m и draw.m в директорию с матлабом.

Загрузите файл adioes.ino на плату Arduino.

Проверьте, к какому порту подключена ваша плата Arduino, после чего откройте finaldraw.m и измените COM3 на ваш порт.

Измените расширение рисунка, который вы хотите нарисовать на .png. Это можно сделать с посощью большинстве графических редакторов. Сохраните полученный файл в директорию с Matlab. Откройте finaldraw.m и измените emma.png на название вашего рисунка с рисширением .png. Схраните файл emma.png.

По молчанию в проекте загружена фотография Эммы Уотсон, которую вы можете использовать для тестирования. Конечно же, вы можете настроить параметры определения положения рабочего органа в соответствии с вашими габаритами конструкции.

На этом все. Подключите вашу плату Arduino к персональному компьютеру, пропишите в командной строке Matlab слово finaldraw и играйтесь.

  • finaldraw.m — 735 bytes
  • draw.m 1 KB
  • arduino.m 96 KB
  • adioes.ino 25 KB

Программирование продолжается

Алгоритм работы нашего манипулятора достаточно простой. Давайте немного разберемся в этом вопросе.

Сначала мы конвертируем изображение, которое хотим нарисовать в формат png и сохраняем его в папке с Matlab. После этого наш алгоритм преобразовывает рисунок в формат ч/б пикселей, как это показано на рисунке выше. Самая интересная часть — это прорисовка полученных пикселей.

Начинается проверка пикселей конвертированного рисунка. Когда находится 1, которая соответствует белому пикселю на рисунке, рабочий орган перемещается в это положение и опускает ручку.

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

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

Результат всех приведенных выше пунктов приведен на видео ниже:

Drawbot

Ночь пятницы превратилась в ночь робототехники и искусства. Я вспомнил, что видел проект Drawbot. Вы можете переделать обычный сервопривод в сервопривод непрерывного вращения, но у меня уже был сервопривод непрерывного вращения, поэтому я сразу смог приступить к работе.

Drawbot состоит из нескольких частей:
— DC Boarduino (Arduino клон)
— 2х сервопривода непрерывного вращения.
— 2х серво колеса.
— Небольшая макетная плата.
— Разъем для батареи 9В с выключателем и штекером 2,1 мм.

— Провода с BLS штырьками.

Вместо Boarduino можно использовать любую плату Arduino. Я использовал Boarduino из-за маленьких размеров.

Также вам понадобится несколько маркеров (Я рекомендую брать набор маркеров разных цветов), батарея 9В и основа.

Сборка Drawbot довольно проста. Сначала я соединил два сервопривода с колесами скотчем и измерил расстояние между колесами. Ширина основы должна быть немного меньше расстояния между колесами.

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

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

Я прикрепил сервоприводы к основе при помощи резинок. Разместить батарею и макетную плату на основе довольно сложно, потому что надо соблюдать баланс. Я хотел, чтобы на стороне, к которой прикреплён маркер было немного больше места, но не хотел, чтобы на другой стороне был перевес. Благодаря резинкам все части можно легко перемещать, выбирая оптимальное расположение.

Как и везде в этом проекте, я использовал провода с BLS штырьками для подключения сервоприводов к макетной плате.

Когда я закончил сбору, я захотел проверить его работу. Я хотел найти или написать код для непрерывного вращения сервопривода. Поискав, я нашел статью Управление сервоприводом непрерывного вращения Parallax (Futaba) при помощи Arduino. Я максимально упростил свой код. Сейчас Drawbot просто ездит по кругу. Да, это примитивно, но это хороший старт и основа для дальнейшего развития.

Теперь у нас есть робот, который ездит по кругу. Пришло время сделать что-то ещё. Я взял небольшой кусок гофрированного пластика и при помощи ножа вырезал в нем отверстие. Я вырезал отверстие немного меньшего размера чем нужно, и благодаря этому маркер крепится в нем хорошо и туго. Если использовать картон, то так хорошо и туго маркер закреплен не будет.

Теперь, когда маркер установлен, пришло время протестировать его. Я поставил его в центр листа 24″х 18″ и включил. Он начал вращаться и рисовать круги. Мне удалось создать робота, который может создать произведение искусства!

Полученный рисунок был довольно неуклюжими, потому, что лист лежал на полу, а он не идеально ровный, вероятно, сервоприводы вращаются не совсем синхронно. У нас один круг может быть ниже, другой выше, следующий ещё немного ниже или выше. Вероятно, в идеальном мире все окружности были-бы выровнены по одной линии. Я думаю, это выглядело бы красивей.

Читайте также:  Маленькая ванная с туалетом своими руками

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

int servoPinL = 9;
int servoPinR = 10;

void setup() <
pinMode(servoPinL,OUTPUT);
pinMode(servoPinR,OUTPUT);
>

void loop() <
digitalWrite(servoPinL,HIGH);
digitalWrite(servoPinR,HIGH);
delayMicroseconds(1500);
digitalWrite(servoPinL,LOW);
digitalWrite(servoPinR,LOW);
delay(50);
>

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

Делаем самобалансирующего робота на Ардуино

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

Сигвей от англ. Segway – двухколесное средство передвижения стоя, оснащенное электроприводом. Еще их называют гироскутерами или электрическими самокатами.

Вы когда-нибудь задумывались, как работает Сигвей? В этом уроке мы постараемся показать вам, как сделать робота Ардуино, который уравновешивает себя точно так же, как Segway.

Как работает балансировка?

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

Элемент обратной связи — гироскоп-акселерометр MPU6050, который обеспечивает как ускорение, так и вращение во всех трех осях (основы MP26050 I2C). Ардуино использует это, чтобы знать текущую ориентацию робота.

Корректирующим элементом является комбинация двигателя и колеса.

  • В итоге должен получиться примерно такой друг:

Сначала подключите MPU6050 к Ардуино и проверьте соединение, используя коды в этом учебном руководстве по интерфейсу IMU. Если данные теперь отображаются на последовательном мониторе, вы молодец!

Продолжайте подключать остальные компоненты, как показано выше. Модуль L298N может обеспечить +5В, необходимый для Ардуино, если его входное напряжение составляет +7В или выше. Тем не менее, мы выбрали отдельные источники питания для двигателя и схемы.

  1. Обратите внимание, что если вы планируете использовать напряжение питания более 12 В для модуля L298N, вам необходимо удалить перемычку чуть выше входа +12 В.
  2. Корпус робота изготовлен в основном из акрилового пластика с двумя редукторными двигателями постоянного тока:
  3. Основная печатная плата, состоящая из Arduino Nano и MPU6050:
  4. Модуль драйвера двигателя L298N:

Мотор редуктора постоянного тока с колесом:

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

Arduino Drawbot

In some of my previous Arduino instructurables I have show to the Arduino beginers on how to control servos in different ways.

And in my last instructurable I have show the modification of a Parallax servo for a 360º rotation.
So in this one I will show Arduino beginers the use of those 360º rotation servos.

With that in mind we will make our first ROBOT. It will be a simple bot called The DrawBot

For the some of the materials just look around the house and recycle it for the DrawBot to be made

NOTE: The code and the idea was taken from around the internet. And again there are tutorials showing you this simple DrawBot or the 5 Minute Drawbot but they’re not clear enough for the beginner. All the electronics were bought @ RADIOSHACK.

Step 1: Materials

The following will be divided in categories and in no particular order:

Tools:
1. Drill with a drill bit (size depends on the diameter of the marker)

2. Screwdriver to attach the wheels to the servos.

Hardware:
1. (X2) spray paint can caps.
2. (X2) small screws
3. (X3) rubber bands
4. Piece of wood ( size, shape and thickness could be any to fit all the parts)
5. Arduino UNO Rev3
6. Breadboard
7. (9V) battery
8.

(9V) connection harness to provide power to the Arduino.
9. (X4) wires for all the connections.
10. A marker ( any color)
11. (X2) Parallax Servos with the 360º MOD
12. 12 pin connector
13. USB cable to prgram the Arduino.

14. Something to add traction to the wheels ( I have use from lego, two rubber tires, but you can use any electrical tape also).

READ BaW-Bot Part 2: Build the motor-controller & body

Software:
Arduino software (to upload the code)

Step 2: Step 1

Cut a piece of wood. Mine is 8 inches long. Then drill a hole in one of the sides ( I was drilling and measuring with the marker so it could fit in the hole.

But the key is not to make the hole too big so the marker would’nt be loose as you see on the picture. If is loose in the hole the just add a piece of tape around it to make the marker more thick for the hole).

The piece of wood I am using is a 2” wide by 1/4” of thickness.

You can use whatever you got (plastic, metal or even a good piece of cardboard)

Step 3: Step1 (Bread board)

Use the rubberband to hold the breadboard in place as you see on the picture.

Step 4: Step 3 (Arduino)

And again use the rubberband for the Arduino as well.

Step 5: Step 4 (Servos)

Attach the two servos to the base (wood piece).
Also it is a good practice to write in the back of the base the letters L and R to make the final connections of the servos easy.

Универсальный образовательный набор (mDrawBot Kit)

mDrawBot — это робототехнический набор 4 в 1. Из набора можно собрать 4-х различных рисующих робота: mScara, mSpider, mEggBot и mCar.

Набор состоит из более чем 60 компонентов Makeblock (балок, креплений, пластин и др.) и бесчисленных винтов и гаек. На рисунке ниже показан состав набора. Также компания Makeblock разработала программное обеспечение под названием mDraw для управления роботами.

mScara

mScara — это производная от абревиатуры SCARA (Selective Compliance Articulated Robot Arm). Манипулятор, приводимый в движение шаговыми двигателями. Если в mScara установить ручку (маркер), можно создавать рисунки на плоской поверхности. Замена ручки на лазерный диод превращает манипулятор в лазерный гравер.

mSpider

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

mEggBot

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

mCar — это трехколесный робот-автомобиль. Для ведущих колес используется 2 шаговых двигателя. Третье колесо — ball wheel — опорное, с металлическим шариком внутри, позволяет роботу поворачивать в любых направлениях. Используя робота можно нарисовать собственные маршруты движения. Если вместо ручки установить мелок (или маркер), можно рисовать на полу.

Как пользоваться набором mDrawBot?

Сборка

Из каждого набора можно собрать 4-х рисующих роботов различной конфигурации. К набору прилагаются подробные инструкции по сборке, с помощью которых Вы сможете собрать любого робота из набора всего за 1 час. Также инструкци по сборке можно скачать здесь: https://github.com/Makeblock-official/mDrawBot.

Вместо платы Makeblock Orion Вы можете использовать свою собственную Arduino UNO. Процесс соединения с помощью проводов будет немного сложнее, но все равно будет хорошо работать.

Программное обеспечение

После установки программного обеспечения mDraw, вы можете импортировать рисунки, которые хотите, чтобы робот нарисовал. mDraw — достаточно мощное программное обеспечение для управления роботами. Вот некоторые особенности:

импорт рисунков формата .svg;конвертация формата .bmp в .svg;поддержка оттенков серого (градиент) при лазерной гравировке;несколько настраиваемых параметров: положение переключателя (концевого выключателя), направление шагового двигателя, область рисования;увеличение рисунка (маштабирование) при помощи колесика мыши.

mDraw — открытый проект, размещенный на Github. Исходник здесь: https://github.com/Makeblock-official/mDrawBot.

A Drawbot это что-то больше ..

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

Maceblock также подготовил два расширения для набора mDrawBot: Bluetooth модуль и лазерный гравер на 500 мВт.

ВНИМАНИЕ! Пожалуйста, при использовании лазерного гравера используйте специальную защиту для глаз. Также убедитесь, что помещение, в котором Вы производите работы хорошо проветривается, так как при использовании лазера на различных материалах могут выделяться токичные пары. Держите его подальше от детей и лиц, незнакомых с правилами пользования лазером.

Вы можете сами расширять и обновлять своего mDrawBot. Так, добавив трехосевой акселерометр и гироскоп можно создать двухколесный самобалансирующий автомобиль. Добавив несколько механических деталей, робота можно превратить в плоттер. Единственным ограничением является Ваше воображение.

ПРЕДУПРЕЖДЕНИЕ! В связи с особенностями лазера, сфера применения лазерного гравера и его комплектующих ограничена. Ограничения заключаются в следующем:

  • Лазерный гравер может быть использован только с:
  • — mScara (такого робота можно собрать из набора mDrawbot),
  • — XY Plotter Robot Kit с электроникой (для комплектов включающих лазерный гравер предоставляется подробная инструкция),
  • — 3D принтер.

Источник

Оцените статью
Своими руками