Пятница, 16 ноября 2018 18:02

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

Оцените материал
(2 голосов)

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

Высокоточная настенная печать с минимальными затратами, украсьте все стены вокруг вас удивительными произведениями искусства!

Что мы использовали:

Детали

 

Софт

 

Ручные инструменты и машины для изготовления

  • 3D Принтер
  • Паяльник

 

Введение

Фон

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

В 2002 году мой друг показал мне потрясающую работу Юрга Лехни и Ули Франке – робота Гектора. Мне было очень приятно видеть что-то похожее на то, что мы мечтали построить.

Некоторое время спустя я помню, как показывал сайт проекта «Гектор» кому-то, представляющему, насколько это фантастически. На этот раз, я начал больше смотреть на детали, понимая, что ему не хватает одной характеристики, я изначально предполагал, что это будет настенный плоттер. Я хотел, чтобы это было самодостаточным, все в одном устройстве с простыми проводами, соединяющими его со стенкой.

Прошло время, и  в сфере робототехники произошли большие изменения. Это был 2014 год, и я использовал Arduinos и RC-сервоприводы для различных проектов управления камерой, у меня был доступ к 3D-печати и некоторое свободное время (!?!). После работы с дешевым шаговым двигателем 28BYJ-48 я точно знал, что собираюсь строить:

Самый дешевый минималистский настенный плоттер.

 

Первая попытка

После долгого ожидания запчастей заказанных из Китая, пять недель или около того, я начал строить плоттер. Я старался сделать как можно более компактный каркас, чтобы он соответствовал Arduino Uno, степперам, сервомеханизму и батарее. Я не могу вспомнить, сколько глупостей (менее умные, варианты проекта) которые я сделал в OpenSCAD, прежде чем до меня дошло. Струны должны пересекаться!

Геометрическое прозрение.

 

Первый вариант плоттера.

Первое устройство плоттера на картинке ниже. В поисках самых дешевых деталей я решил использовать швейную нить для навигации и преодолении гравитации. Нити пересекаются в верхней части 3D-печатного шасси через небольшие напечатанное отверстие. Как можно видеть (почти). Это оказалось сложной конструкцией, чтобы правильно смонтировать проводку кабели от Arduino до правого шагового драйвера отсутствуют на снимке, поэтому он выглядит хуже, чем был). Ручка отрывается от поверхности рисунка с помощью RC-сервопривода, отталкивающего весь плоттер.

Первый вариант плоттера

Первый вариант плоттера имел “жесткий” код, написанный в своей программе на Arduino. Настройка плоттера была выполнена с помощью одного метра нитки, развернутой с каждой стороны и закрепленные на расстоянии одного метра. На этих настройках плоттер знал систему координат при включении питания и мог начать рисовать пути прохождения из своей памяти. Это вариант работал, но был очень сырой в использовании. Были проблемы при повторном включении Arduino или при смене дизайна рисунка. Кроме того, ограничение по расстоянию в один метр - разочаровывало.

Это была хорошая платформа для лучшего понимания проблемных мест. Несколько быстрых выводов:

  • Шаговые двигатели не так мощные - катушки были слишком большими.
  • Наконечник пера смещен от пересечения струн – Большой Люфт

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

 

Второй вариант плоттера.

Плоттер номер два (белый в обложке) получил несколько улучшений:

  • Меньшие катушки.
  • Катушки перемещались над ручкой для лучшей маршрутизации нити и менее маятникового движения.
  • Электроника более доступна.
  • SD-карта для хранения информации о том, что делать.
  • Новый процесс настройки, позволяющий изменять расстояние между опорными точками.
  • ИК-приемник для возможности управлять всем этим с пульта.

Добавление SD-кард-ридера и ИК-приемника было намного проще, чем я предполагал. Это был один из таких моментов - «почему я не сделал это с самого начала. Новый процесс настройки работал довольно хорошо и давал намного большую гибкость для рисования больших и малых. Самый большой зазор был около 2,5 метров в ширину.

Геометрия установки

Настройка осуществляется путем навигации плоттера с помощью пульта дистанционного управления. Сначала измерте положение A, затем перейдите в положение B и отметьте его. Я поставил маркеры 20 см на левую и правую швейную нить, чтобы избежать необходимости ручного измерения. Расстояние m задается как раз подсчет шагов на левом шагере при переходе от A к B. После того, как плоттер знает d и что его текущее местоположение находится в B, вы можете перемещаться и рисовать где угодно, в пространстве между и ниже якоря точки.

 

Третий вариант плоттера.

Плоттер номер три (оранжевый в видео ниже) очень похож на своего предшественника, у него всего несколько изменений:

  • Вся электроника построена как щит для Arduino.
  • Котроллер заряда батареи, который позволял поставить на паузу – сменить батарею – возобновить работу.

Это все были благие намерения, но. Помещение драйвера шагового драйвера IC:s непосредственно на щит, пропуская драйверы, поставляемые с шаговыми двигателями, означало отсутствие мигающих светодиодов. Грустно смотреть. Супер скучно. Кроме того, встроенный светодиод Arduino скрыт за экраном, теперь не видно вспышки диода от сигнала, которые происходит, когда приемник IR-приемника получает информацию, поэтому вы не знаете, нажата ли эта кнопка калибровки или нет. Измерение уровня заряда батареи показалось хорошей идеей, но на самом деле я всегда использовал кабеля для питания устройств.

 

Четвертый вариант плоттера.

Плоттер номер четыре (сказочный!) Был построен как подарок на день рождения моему брату. Это, безусловно, самый красивый дизайн, созданный с использованием электроники с щитом Arduino, но оставляющий мигающие диоды видимыми во всей красе. Обратите внимание, что кабели остаются излишне длинными только для внешнего вида!

Четвертый вариант самодельного плоттера

 

Пятый вариант плоттера.

Плоттер номер пять (версия MacGyver) был фактически построен как доказательство концепции для описания этого проекта. Я хотел показать, что вы можете построить такой плоттер без каких-либо причудливых инструментов. Я сел в своем гараже и огляделся вокруг в поисках, из чего я могу построить робота. Мой первый очевидный выбор - проволока (мягкая металлическая проволока, используемая для соединения арматуры). Когда я его искал, я обнаружил рулон канатного ремня и подумал, что это спасет меня и даст большую стабильность. В моем списке были Пластиковые хомуты, и изолента, но они не понадобились. Единственное, что я не мог понять, это то, как сделать несколько хороших катушек не трача на это уйму вермени. Я вернулся в дом за кофем, и вот он, колпачок для контейнера для молока! Честно потребовалось меньше времени на создание рамки для плоттера №5, чем время, затрачиваемое на 3D-печать оригинального дизайна. И он работает так же хорошо (почти как минимум), как и другие, которые я построил.

img95366GBCpIyiFg
img9528GTDT2JiCj4
img9539ozIVI5I671
img9531NeVffTezF7
img9522DDqQJ9a7Q1
img9520no649n5T8bgq

 

 

Шестой вариант плоттера.

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

  • Размер напечатанного корпуса плоттера был слишком большим и медленным.
  • Перемещение пера, а не весь плоттер, казалось, по крайней мере стоило попробовать.
  • Переделка сервопривода и ИК-приемника на «аналоговые» контакты позволит выполнять последовательную отладку! (Спасибо jrcTexas за указание)

Итак, вот результат:

 

img0148rE2PEPR3vL
img0147jdZsUpGz3U
img0146EIisMtzSnb
img0139F6EriNuCbm
img0131joZbk8YliZ

Итак, насколько хорошо эта новая модель работает? Хорошо и плохо. Изменения показали себя хорошо, но есть одна проблема. Так как перо не прикреплено к раме, оно немного шевелятся при контакте. Это делает точность хуже, чем для предыдущего поколения. Огромным преимуществом является очистка цифровых выводов IO 0-1, поэтому их можно использовать для отладки. Это делает жизнь намного проще!

Я также начал делать стресс-тестирование на шаговых двигателях, чтобы выяснить, как не пропустить шаги:

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

Результат исследований

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

 

Использование плоттера.

Я сделал видео, показывающее, как установка и построение графика работают в реальности и в реальном времени.

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

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

img6819lwXgXQXd6q
img6541iW2kANvss9
img4958HYUmFUretc
img52522pUncFVJSR
img5245AyqqQLsoQx
img5246FtUkJ0gPb4

 

Материалы плоттера.

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

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

Как видно из схемы, вы будете использовать почти все цифровые контакты, а затем, возможно, некоторые аналоговые, если вы, например, хотите контролировать уровень заряда батареи. Одно из предостережений заключается в том, что вы будете использовать pin 0-1, который удваивается как TX / RX. Чтобы избежать перегрева, вам нужно будет отключить все, что вы там подключили, когда будете программировать Arduino! Именно по этой причине я построил свои последние плоттеры со всей электроникой на щите, который я мог просто отсоединить при программировании.

Шаговые двигатели и драйверы могут быть абсолютно другие, но небольшие 28BYJ-48 являются очень удобными. Они не настолько мощные, хотя мне хотелось бы построить плоттер, который будет намного быстрее когда-нибудь. Двигатели рассчитаны на 5 В, но я с радостью проигнорировал это и предоставил им без проблем ток, между 5-9 В. Они очень грелись, но я еще не сжег электронику.

Модуль micro-sd-card напрямую подключается к Arduino, либо через штырьки SPI-интерфейса, либо цифровые контакты 10-13.

ИК-приемник TSOP 4838 также прекрасно подключается напрямую к Arduino.

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

Готовые материалы для сборки плоттера

Я бы очень рекомендовал, чтобы вы строили и тестировали одну вещь за раз. Не собирайте все, и не надейтесь сразу запустить плоттер. Я бы рекомендовал сделать следующее:

  • Начните с тестирования ИК-приемника. Используйте пример IRRecvDump, который поставляется с библиотекой IRRemote. Вам в любом случае понадобиться это для записи ваших кодов с пульта.
  • Проверьте свой серво. Например, используйте пример Sweep из библиотеки Servo.
  • Проверьте свою SD-карту. Играйте с примерами для библиотеки SD.
  • Испытание, контролирующее шаговые двигатели. Играйте с образцами для библиотеки Stepper.
  • Когда вы почтуствуете себя комфортно с вышеуказанными частями, запустите программу плоттера на Arduino, а затем соедините все компоненты. (не собирайте и ничего не делайте)
  • Включите Arduino и посмотрите, что произойдет. Если все работает, сервопривод должен немного прокрутиться сразу после включения питания.
  • Попробуйте управлять серводвигателями с пульта, убедитесь, что вы выяснили, какой шагомер оставлен и что правильно. Убедитесь, что вы подключили их так, чтобы кнопка «REEL_IN» на самом деле тянула нить на себя, а не наоборот. Я даю вам 50% шанс, что вам нужно будет перевернуть положение контактов в программном или аппаратном обеспечении. (не стоит беспокоиться, вам просто нужно переставить коннекторы.
  • Когда вы поймете, что все вышеперечисленное работает правильно вы готовы собрать все конструкцию в форму и попробовать, ее работу у стены!

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

 

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

Все программное обеспечение доступно здесь, в GitHub или (Зеркало). Я прошу прощения за состояние кода. Возможно, я потрачу свое время что бы очистить его, но скорее всего, вы увидите код, прежде чем это произойдет. Мои извинения.

Программное обеспечение на плоттере делает две вещи:

  • Позволяет производить навигацию и настройку с пульта
  • Рисует содержимое файла a.svg, хранящегося на SD-карте.

Поскольку программная память на Arduino Uno довольно ограничена, было много уродливых быстрых решений, которые использовались для ввода кода в память. Это был особенно хороший вариант для первого плоттера, которому не хватало SD-карты, и графику также необходимо было загружать непосредственно в Arduino. Анализ s.svg чрезвычайно ограничен и может обрабатывать только пути с линиями (без кривых) и требует, чтобы он был конкретным диалектом. svg, который я использовал для вывода (INKSCAPE).

Файлы .svg хранятся в папке верхнего уровня SD-карты как 1.svg, 2.svg и т. Д. Выбранный файл выбирается нажатием соответствующей кнопки на пульте дистанционного управления. Это позволяет мне подготовить плоттер с несколькими картинками, которые я могу быстро нарисовать на доске.

IDE Arduino используется для построения и программирования контроллера. Единственной дополнительной библиотекой является IRRemote (by shirriff).

 

Создание файла с плагином.

Существует, вероятно, сотни способов создания файла a.svg, который будет отображаться, но я опишу один здесь:

  • Использовать INKSCAPE
  • Нарисуйте все, что хотите, и преобразуйте его в пути «Path->Object to path»
  • Выберите «Edit paths by nodes (F2)»
  • Выберите все отдельные пути и узлы. Ctrl-A два раза
  • Преобразовать в строки с помощью «Extensions->Modify Path->Flatten Beziers»
  • Сохранить как "Inkscape SVG"
  • Запуск в симуляторе, см. Ниже

 

Симулятор.

Еще кое-что! Существует симулятор. Более или менее обязательный для проверки работы проекта, который вы хотите сделать, прежде чем попытаетесь его распечатать. В основном это необходимо, так как ssg-parsing настолько плох, что шансы высоки, что-то не будет правильно интерпретировано в плоттер.

Симулятор работает, компилируя код плоттера для osx или linux и заменяя вызовы «digitalWrite» печатью на stdout (timestamp, pin, state), которая затем передается в интерфейс визуализации.

Симулятор был написан после того, как у меня была ошибка, из-за которой 2-часовой проект слетел кого было готово уже 95% или около того. Я был расстроен из-за того, что произошло, и понял, что мне нужен способ отладки. Проблема оказалась в ошибке разбора поплавка, вызванной одним номером в .svg, имеющим смешные количества десятичных знаков. (Я сделал свой собственный синтаксический анализ, поскольку библиотечные функции не поместились в памяти). Это была большая ошибка, и это заставило меня сделать симулятор.

Использование симулятора при разработке может во многом помочь. Его можно запустить гораздо быстрее, чем в реальном времени, что очень удобно. Также он выводит, как долго проект будет выполняться при запуске в реальном времени. Рядом с кодом симулятора есть readme о том, как его использовать.

 

Будущие улучшения.

Вот список того, что я хотел бы улучшить:

  • Остановка parsing.svg на плоттере, получение хорошего парсера на компьютере и вместо этого создание хорошего формат для плоттера.
  • Стабильная работа, текущее программное обеспечение только читает один сегмент вперед, который иногда слишком мал, если небольшой поворот превращается в резкий.
  • Модуль или какой-либо тип обратной связи, чтобы избежать потери при пропущенных шагах.
  • Написание чистого кода.
  • Использование WiFi-контроллера для использования со смартфоном.

 

Итог.

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

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

Хотя я думаю, что мне удалось создать минималистский плоттер, мне не удалось получить стоимость менее 10 долларов США, которую я поставил перед собой цель. Но поскольку части продолжают дешевле, возможно, через год или около того ...

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

Author

Bender

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

Комментарии (0)

There are no comments posted here yet

Оставьте свой комментарий

  1. Posting comment as a guest. Sign up or login to your account.
Вложения (0 / 3)
Share Your Location

О нас

Основой деятельностью портала является показ и объяснение что представляет собой выражени "Робот", "Робототехника", "Законы робототехники", "Мехатроника", "Искусственный интеллект(ИИ)". 

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