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

Строгий плоттер для стен за 15 долларов

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

Arduino UNO
× 1
Шаговый двигатель 28BYJ-48 с драйвером
× 2
ИК-приемник TSOP 4838
× 1
Считыватель SPI Считыватель карт памяти Micro SD
× 1
Микро-серводвигатель SG90
× 1

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

3D-принтер (общий)
Паяльник (универсальный)

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

IDE Arduino

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

Фон

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

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

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

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

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

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

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

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

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

У этого первого плоттера была жестко запрограммированная конструкция, написанная в его программе на Arduino. Для настройки плоттера с каждой стороны наматывали один метр резьбы и закрепляли их на расстоянии одного метра друг от друга. Благодаря этой настройке плоттер знал систему координат при включении и мог начать рисовать пути в своей памяти. Это сработало, но использовать было беспорядочно. Необходимость перепрограммировать Arduino при изменении дизайна не доставляла удовольствия. Также разочаровывало ограничение на настройку несоответствия в один метр.

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

  • Шаговые двигатели не такие сильные - Катушки были слишком большими .
  • Смещение кончика пера от пересечения струн - Wicked Wobbliness

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

Эволюция

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

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

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

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

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

  • Вся электроника построена как щит для Arduino.
  • Сторожевой таймер уровня заряда батареи, позволяющий «приостановить - заменить батарею - возобновить».

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

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

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

Плоттер номер шесть

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

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

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

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

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

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

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

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

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

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

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

Плоттеры

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

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

RC-сервопривод может быть практически любым сервоприводом любого размера. Вам просто нужно проявить изобретательность и установить его так, чтобы он мог оттолкнуть плоттер (или нет) от стены.

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

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

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

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

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

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

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

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

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

Программное обеспечение плоттера выполняет две функции:

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

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

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

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

Создание файла для печати

Вероятно, есть сотни способов создать файл .svg, который будет отображать график, но я собираюсь описать здесь только один:

  • Используйте INKSCAPE
  • Нарисуйте все, что хотите, и преобразуйте это в пути «Путь-> Объект в путь»
  • Выберите «Редактировать пути по узлам (F2)»
  • Выберите все отдельные пути и узлы. Ctrl-A два раз
  • Преобразовать в линии с помощью «Расширения-> Изменить путь-> Свести Безье».
  • Сохранить как «Inkscape SVG»
  • Запустите симулятор, см. ниже

Симулятор

Еще кое-что! Есть симулятор. Более или менее обязательно запускать любой график, который вы хотите сделать, через симулятор, прежде чем пытаться его распечатать. Это в основном требуется, поскольку парсинг .svg настолько плох, что высока вероятность того, что плоттер не будет правильно интерпретировать что-то.

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

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

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

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

Вот список того, что я думаю о том, что можно улучшить:

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

Несколько заключительных слов

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

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

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

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

Бон Вояж,

Фредрик

Код

Строгие
Код, документация и чертежи в формате CAD для плоттера Stringent. Https://github.com/snebragd/stringent

Изготовленные на заказ детали и корпуса

загрузил новую stl для базы, старая как-то сломалась. Новая база для плоттера. Меньше занимаемая площадь -> меньше печатать. Сервопривод теперь перемещает перо, а не отталкивает плоттер от стены.

Схема

Схема простой электроники

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

  1. Усилия с несколькими навыками для обслуживания
  2. Контроль качества - первый шаг к надежности двигателя
  3. Важность трендов в надежности электродвигателей
  4. Мониторинг состояния оборудования завода
  5. Обмотки двигателя:в чем различия?
  6. Полное руководство по выбору взрывозащищенного двигателя
  7. Полное руководство по правильному хранению электродвигателей
  8. Двигатель постоянного тока и переменного тока:в чем разница?
  9. Двигатель переменного и постоянного тока:в чем разница между ними?
  10. Как правильно выбрать редуктор