RSS блога
Подписка
Делаем сумасшедшую рисовальную машинку из самых дешёвых моторчиков с AliExpress
- Цена: 1$ + $1 + $1.2
- Перейти в магазин
Этой весной я ухитрился капитально простыть в самолёте и загремел на больничный на полторы недели — лечить бронхит. Уже на третий день я начал тихо лезть на стенку от безделья и стал искать, чем бы заняться самому и заодно развлечь ребёнка.
И тут я вспомнил про увиденную когда-то на YouTube забавную самодельную машинку для рисования из пары моторчиков — «PolarGraph» — и полез в ящик стола за инструментами и Arduino.
Принцип работы машинки прост до безобразия, но чертовски красив — два шаговых мотора таскают на верёвочках карандаш, который рисует на листе бумаги любой рисунок в полярных координатах:
Автор исходного проекта, Сэнди Ноубл (Sandy Noble) выложил у себя на сайте чертежи и софт. К сожалению, его решение требует 3D-принтера для изготовления шестерней, которого у меня не было. К тому же он применил моторы NEMA17, которые стоят как чугунный мост:
Я же воспользовался шаговыми моторчиками «28byj-48-5v» стоимостью доллар штука. Они валялись у меня в ящике вместе с драйверами «ULN2003».
Эти моторчики на самом деле — памятник нынешней промышленной революции (а не iPhone, как кто-то может подумать). Эти моторчики стоят везде — например, их ставят открывать створки кондиционеров — и за счёт миллионных тиражей производители добились такой невероятной дешевизны. Правда, они тупые, слабые и медленные.Зато два раза, марь-иванна зато стоят доллар с доставкой.
Осталось придумать, чем заменить отпечатанные на 3D-принтере шестерни. Идея пришла быстро — берём оргстекло 2мм и собираем «бутерброд» из 3 слоёв — и получаем шестерню толщиной 6мм.
Берём AutoCAD, гробим два дня на усвоение основ работы в нём и в, конце-концов, получаем что-то похожее на правду:
Чертёж печатаем на бумаге и начинаем к нему на глазок прикладывать металлическую цепочку от пробки для ванной (80 рублей за метр в хозяйственном магазине, продаётся на отрез). Убеждаемся, что чертёж вроде правильный и отправляем в знакомую рекламную фирмёшку, у которой есть лазерный резак. Через день получаем готовое, склеиваем и примеряем:
Шестерня сидит идеально, не прокручивается и не люфтит. Цепочка чётко зажата между зубьями наружних шестерней. Правда, выясняется, что с размерами я всё-же напутал и диаметр шестерни чуточку великоват. Как результат — при метровом пробеге "чуточка" накапливается и в какой-то момент цепочка проскакивает на одно звено. Доставать дремель и подтачивать зубья было лень, поэтому из обрезков оргстекла я соорудил прижим и всё наладилось.
Теперь берёмся за «гондолу», в которую будет вставлен карандаш. Требования к ней такие:
— должна плавно скользить по бумаге
— должна держать карандаш без люфта
— на ней должен умещаться мелкий сервомотор, который по необходимости будет поднимать карандаш над бумагой
— нужно место для грузила
За основу я взял отрезок алюминиевой трубки. На неё нанизываются последовательно основа, которая скользит по листу и несёт на себе сервомотор, затем «уши», от которых идут цепочки. Вся конструкция стягивалась винтами М3. Грузилами стали увесистые гайки М12.
Реализация оказалась не очень удачной — сервомотор в итоге встал не как планировалось, а узкие перемычки часто ломались. Впрочем, немного «жидких гвоздей» решили проблемы.
Поднимает и опускает перо у меня самая дешёвая пластмассовая серва, модели «SG90» за доллар двадцать штука. При включении она выдвигает пластиковое «плечо» и отодвигает от листа бумаги всю гондолу вместе с карандашом.
Я сразу решил, что рисовальная машина у меня будет разборной, для разных поверхностей, поэтому придумал крепить моторы обычными канцелярскими зажимами. Первые «пробы пера» я делал с рамкой для фотографий из IKEA формата А3 — на неё закрепилось просто идеально:
При попытках «оживить» машинку я угробил два дня на попытки понять, как работает драйвер ULN2003, но сдался. Я даже переписывался с автором адаптации кода машинки под этот драйвер — без толку. То ли драйверы мне попались кривые, то ли измученные бронхитом мозги не работали — драйверы я выкинул и применил «motor shileld» для Ардуины, бесстыже скопированный китайцами один в один с изделия фирмы AdaFruit. Копия обошлась вчетверо дешевле оригинала и не подвела.
Я перебрал несколько вариантов карандашей. Лучше всего себя проявили разноцветные маркеры Stabilo «point 88» — они тонкие сами по себе, перо чёткое и не оставляет клякс, его диаметр — только 0,4мм. И, что самое важное — они не засыхают!
Заливка кода в Arduio и установка софта на компьютер (используется «Processing 2») проблемы не представляют. Самое муторное — это настройка.
На этом этапе ваш главный друг — рулетка. Расстояние между шестернями и ход гондолы надо вымерять до миллиметра. Если вы накосячите, то картинки будут выходить искажёнными, как у меня на этом фото — правый верхний угол вышел вместо прямого — вытянутым:
Также вымеряем до миллиметра, сколько цепочки выпускает мотор за один оборот. У меня получилось 108мм, что я и отразил в коде:
Софт оперирует несколькими вложенными прямоугольниками. Самый большой — «machine», он описывает габариты рамы. В него вписан прямоугольник «page» — листок, на котором мы рисуем. Последний — «image», это габариты самой картинки в миллиметрах.
Если всё в порядке, начинаем рисовать. Советую брать чёткие, контрастные картинки — полутона машинке даются плохо. Я тренировался на светлом лике Полковника Сандерса :)
Загружаем программу на Processing, задаём стартовую точку («home point»). Загружаем и вписываем в рабочее поле картинку, а потом переводим её в пиксели. Внимательно смотрим на параметр «bright pixel» и меняем его со значения по умолчанию (255) на число поменьше. Так машина будет пропускать все точки, где картинка белее. Если этого не сделать, машина будет закрашивать всё, не поднимая пера.
Поскольку моторы дешёвые, тупые и медленные, рисунок появляется очень небыстро. Но работает же!
Машинка может работать в разных техниках. По умолчанию — рисует волной переменной частоты:
А может зигзагами и волной переменной амплитуды:
Наигравшись дома, выписываемся с больничного и тащим поделку в офис. Там цепляем её за флипчарт и пробуем снова. Производим фурор, работа встаёт :)
(timelapse снят в режиме «кадр в две секунды» — пока машина дорисовала, все ушли домой)
Коллеги не верили, что бюджет всей этой поделки — копеечный. Приходилось показывать цены на моторы, Arduino и motor shield, чтобы убедить — зачастую, безуспешно.
Теперь хочется замахнуться на что-то такое:
или такое:
или такое:
Не болейте, а если и болеете — проводите время с пользой!
И тут я вспомнил про увиденную когда-то на YouTube забавную самодельную машинку для рисования из пары моторчиков — «PolarGraph» — и полез в ящик стола за инструментами и Arduino.
Принцип работы машинки прост до безобразия, но чертовски красив — два шаговых мотора таскают на верёвочках карандаш, который рисует на листе бумаги любой рисунок в полярных координатах:
Автор исходного проекта, Сэнди Ноубл (Sandy Noble) выложил у себя на сайте чертежи и софт. К сожалению, его решение требует 3D-принтера для изготовления шестерней, которого у меня не было. К тому же он применил моторы NEMA17, которые стоят как чугунный мост:
Я же воспользовался шаговыми моторчиками «28byj-48-5v» стоимостью доллар штука. Они валялись у меня в ящике вместе с драйверами «ULN2003».
Эти моторчики на самом деле — памятник нынешней промышленной революции (а не iPhone, как кто-то может подумать). Эти моторчики стоят везде — например, их ставят открывать створки кондиционеров — и за счёт миллионных тиражей производители добились такой невероятной дешевизны. Правда, они тупые, слабые и медленные.
Осталось придумать, чем заменить отпечатанные на 3D-принтере шестерни. Идея пришла быстро — берём оргстекло 2мм и собираем «бутерброд» из 3 слоёв — и получаем шестерню толщиной 6мм.
Берём AutoCAD, гробим два дня на усвоение основ работы в нём и в, конце-концов, получаем что-то похожее на правду:
Чертёж печатаем на бумаге и начинаем к нему на глазок прикладывать металлическую цепочку от пробки для ванной (80 рублей за метр в хозяйственном магазине, продаётся на отрез). Убеждаемся, что чертёж вроде правильный и отправляем в знакомую рекламную фирмёшку, у которой есть лазерный резак. Через день получаем готовое, склеиваем и примеряем:
Шестерня сидит идеально, не прокручивается и не люфтит. Цепочка чётко зажата между зубьями наружних шестерней. Правда, выясняется, что с размерами я всё-же напутал и диаметр шестерни чуточку великоват. Как результат — при метровом пробеге "чуточка" накапливается и в какой-то момент цепочка проскакивает на одно звено. Доставать дремель и подтачивать зубья было лень, поэтому из обрезков оргстекла я соорудил прижим и всё наладилось.
Теперь берёмся за «гондолу», в которую будет вставлен карандаш. Требования к ней такие:
— должна плавно скользить по бумаге
— должна держать карандаш без люфта
— на ней должен умещаться мелкий сервомотор, который по необходимости будет поднимать карандаш над бумагой
— нужно место для грузила
За основу я взял отрезок алюминиевой трубки. На неё нанизываются последовательно основа, которая скользит по листу и несёт на себе сервомотор, затем «уши», от которых идут цепочки. Вся конструкция стягивалась винтами М3. Грузилами стали увесистые гайки М12.
Реализация оказалась не очень удачной — сервомотор в итоге встал не как планировалось, а узкие перемычки часто ломались. Впрочем, немного «жидких гвоздей» решили проблемы.
Поднимает и опускает перо у меня самая дешёвая пластмассовая серва, модели «SG90» за доллар двадцать штука. При включении она выдвигает пластиковое «плечо» и отодвигает от листа бумаги всю гондолу вместе с карандашом.
Я сразу решил, что рисовальная машина у меня будет разборной, для разных поверхностей, поэтому придумал крепить моторы обычными канцелярскими зажимами. Первые «пробы пера» я делал с рамкой для фотографий из IKEA формата А3 — на неё закрепилось просто идеально:
При попытках «оживить» машинку я угробил два дня на попытки понять, как работает драйвер ULN2003, но сдался. Я даже переписывался с автором адаптации кода машинки под этот драйвер — без толку. То ли драйверы мне попались кривые, то ли измученные бронхитом мозги не работали — драйверы я выкинул и применил «motor shileld» для Ардуины, бесстыже скопированный китайцами один в один с изделия фирмы AdaFruit. Копия обошлась вчетверо дешевле оригинала и не подвела.
Я перебрал несколько вариантов карандашей. Лучше всего себя проявили разноцветные маркеры Stabilo «point 88» — они тонкие сами по себе, перо чёткое и не оставляет клякс, его диаметр — только 0,4мм. И, что самое важное — они не засыхают!
Заливка кода в Arduio и установка софта на компьютер (используется «Processing 2») проблемы не представляют. Самое муторное — это настройка.
Важное, про настройку
Самый главный секрет успешной настройки — УБРАТЬ КОТОВ НАХРЕН ПОДАЛЬШЕ!
От вида и шелеста металлической цепочки они теряют силу воли. Оттаскивать за хвост, запирать в ванной — бесполезно.
Просто купите котам лишний метр цепочки, повесьте в углу — пусть играют.
От вида и шелеста металлической цепочки они теряют силу воли. Оттаскивать за хвост, запирать в ванной — бесполезно.
Просто купите котам лишний метр цепочки, повесьте в углу — пусть играют.
На этом этапе ваш главный друг — рулетка. Расстояние между шестернями и ход гондолы надо вымерять до миллиметра. Если вы накосячите, то картинки будут выходить искажёнными, как у меня на этом фото — правый верхний угол вышел вместо прямого — вытянутым:
Также вымеряем до миллиметра, сколько цепочки выпускает мотор за один оборот. У меня получилось 108мм, что я и отразил в коде:
const int DEFAULT_MM_PER_REV = 108;
const int DEFAULT_STEPS_PER_REV = 2037.8864 ;
const int DEFAULT_STEP_MULTIPLIER = 2;
Софт оперирует несколькими вложенными прямоугольниками. Самый большой — «machine», он описывает габариты рамы. В него вписан прямоугольник «page» — листок, на котором мы рисуем. Последний — «image», это габариты самой картинки в миллиметрах.
Вот мои настройки для рамы IKEA Njutta
# *** Polargraph properties file ***
#Sun Apr 21 16:26:29 BST 2013
machine.width=540
machine.step.multiplier=8
machine.penlift.up=180
machine.penlift.down=130
machine.pen.size=0.8
machine.motors.stepsPerRev=400.0
machine.motors.mmPerRev=108.0
machine.motors.maxSpeed=2438.0
machine.motors.accel=2012.0
machine.height=570
controller.window.width=1184
controller.window.height=735
controller.vector.scaling=100.0
controller.vector.position.y=0.0
controller.vector.position.x=0.0
controller.vector.minLineLength=0
controller.testPenWidth.startSize=0.5
controller.testPenWidth.incrementSize=0.5
controller.testPenWidth.endSize=2.0
controller.pixel.scaling=1.0
controller.pixel.samplearea=10.0
controller.pixel.mask.color=00FF00
controller.pictureframe.width=288
controller.pictureframe.position.y=161
controller.pictureframe.position.x=124
controller.pictureframe.height=319
controller.page.width=470
controller.page.position.y=120
controller.page.position.x=35
controller.page.height=441
controller.page.colour=DCDCDC
controller.maxSegmentLength=2
controller.machine.serialport=1
controller.machine.colour=969696
controller.machine.baudrate=57600
controller.image.width=119
controller.image.position.y=178
controller.image.position.x=178
controller.image.height=119
controller.image.filename=
controller.homepoint.y=120.0
controller.homepoint.x=270.0
controller.guide.colour=FFFFFF
controller.grid.size=75.0
controller.frame.colour=C80000
controller.densitypreview.colour=000000
controller.density.preview.style=1
controller.background.colour=646464
Если всё в порядке, начинаем рисовать. Советую брать чёткие, контрастные картинки — полутона машинке даются плохо. Я тренировался на светлом лике Полковника Сандерса :)
Загружаем программу на Processing, задаём стартовую точку («home point»). Загружаем и вписываем в рабочее поле картинку, а потом переводим её в пиксели. Внимательно смотрим на параметр «bright pixel» и меняем его со значения по умолчанию (255) на число поменьше. Так машина будет пропускать все точки, где картинка белее. Если этого не сделать, машина будет закрашивать всё, не поднимая пера.
Поскольку моторы дешёвые, тупые и медленные, рисунок появляется очень небыстро. Но работает же!
Машинка может работать в разных техниках. По умолчанию — рисует волной переменной частоты:
А может зигзагами и волной переменной амплитуды:
Наигравшись дома, выписываемся с больничного и тащим поделку в офис. Там цепляем её за флипчарт и пробуем снова. Производим фурор, работа встаёт :)
(timelapse снят в режиме «кадр в две секунды» — пока машина дорисовала, все ушли домой)
Коллеги не верили, что бюджет всей этой поделки — копеечный. Приходилось показывать цены на моторы, Arduino и motor shield, чтобы убедить — зачастую, безуспешно.
Теперь хочется замахнуться на что-то такое:
или такое:
или такое:
Не болейте, а если и болеете — проводите время с пользой!
Самые обсуждаемые обзоры
+67 |
2871
116
|
+49 |
3187
64
|
+27 |
2058
36
|
+50 |
1862
35
|
Шучу. :0)
Было б здорово, если бы вы ее печатные платы научили рисовать, хотя бы маркером…
моторчики, между прочим, те же самые, за доллар.
Я вообще то о полезности устройства из обзора, ну кроме как работу в офисе остановить…
А у рисовалки маркером, для меня разрешение маловато. Я лучше по старинке, фоторезистом.
Хотя вам за работу всяко плюс.
Недавно вроде был обзор про применения серв.
А мы с товарищем потихоньку делаем нечто подобное, только это будет фрезер ))
Здоровья!
Балончики с краской цепляют.
Есть доски. где фломастером рисуют, а потом стирают.
Здесь, тоже самое можно. Причем пока будет рисовать, привлечет внимание прохожих.
А вообще шестерни продаются и стоят 50 рублей за 24 зуба, а то что автор нарисовал не точное, игрушка, если хочешь сам то считай эвольвентное зацепление минимум.
Ждем с нетерпением. ;)
плюс и в карму+
По факту при размерах рамы IKEA 40 на 50 см. хорошо получаются рисунки площадью с лист А5.
Скриншот даёт представление о полях:
А внутреннюю — вполне. Надо только моторы брать NEMA:
Впрочем, можете взять в строймаге не металлическую цепочку, а пластиковую, с бусинами. Она полегче.
И ещё не забывайте, что если с медленными моторами будете рисовать сутки, то есть риск того, что фломастер подсохнуть успеет :)
Когда намотка неровная, меняется радиус катушки и рисунок начнёт расползаться
Да, получается ничуть не проще цепи (и это если я ничего не забыл и все получится с нитью).
Для рисовалки есть еще неплохой вариант использовать corexy. Например:
corexy.com/botofthecloth/index.html
Тоже классно рисует.
скоро сделаю обзор
Силуэты это вообще не про рисовать вроде как, они про резать!
я сказал, что силуэт рисует маркерами, правда не камео, а курио
ВЫГОНИТЕ НАХ… Й, НАФИГ ЧУБАЙСА С ПОСТА РОСНАНО! ПОСТАВЬТЕ ВОТ ТАКИХ ЛЮДЕЙ, С РУКАМИ, И МЫСЛЯМИ В ГОЛОВЕ!!!
на фоне деградации МГУ и появления кучи шарашкиных «деревообрабатывающих академий» (с «дуба» на «липу») создать с нуля крутой ВУЗ на три десятка тыщ студентов с крепкой научной базой — хорошее достижение. Лично мне дали образование мирового уровня (работал в международных компаниях, могу сравнивать с коллегами из других стран).
Единственное, мне не понятно, зачем и для кого вы пишите здесь свои обзоры, когда подавляющее большинство здешних читателей крайне далеки от взглядов Рыжего и идеалов его капиталистической жизни, всё равно, как до Луны.
ПП. Если что, извиняюсь перед читателями, но на больное наступили.
И ещё — нет никакой «западной научной системы», есть просто «научная система». Исключение — академия наук КНДР, она и вправду отдельная, да.
Не утверждаю как правильно, просто вижу больше против чем за.
А вообще, идея и реализация достойны уважения. Мои плюсики вам.
рано или поздно появится готовый вариант собирать с нуля трата времени
Кошка со стороны не отличима от моей