Андрей Смирнов
Время чтения: ~27 мин.
Просмотров: 39

Подробная инструкция по изготовлению яйцебота на Arduino. От идеи к реализации.

Всем привет!109bc75a6ca68f23fcc5a85447d10608.png Пасха заканчивается и тема печати различных узоров на яйцах становится чуть менее актуальной, но от этого не становится менее актуальным яйцебот, нужный всем и всегда круглый год 🙂 Для тех кто не в курсе яйцебот — это машина, которая обычным фломастером умеет рисовать на любых сферических объектах: яйцах, теннисных шариках, ёлочных игрушках. Концепт механизма придумал дизайнер Bruce Shapiro в далеком 1990-м году, а не так давно знаменитая компания Evil Mad Scientist Laboratories выпустила в свободную продажу свою версию под названием The EggBot. Надо отдать должное Evil Mad Scientist Laboratories свой проект сделала открытым и разрешает пользоваться программным обеспечением для других яйцеботов даже в коммерческих проектах. Вот такие произведения искусства получаются на выходе:0a3952e4b42b521989b7d6505eb2fbba.jpg Простые картинки можно рисовать в любом векторном редакторе, а сложные геометрические объекты можно создать, например, на питоне.Вот пример такой программы:

# Generate a 3200 x 800 geometrical pattern for Eggbot plotting # See http://www.egg-bot.com/ for info on the Eggbot # # Dan Newman, 2 January 2011 # dan dot newman at mtbaldy dot us # Public domain (http://creativecommons.org/licenses/publicdomain/)  HEIGHT = float( 800.0 ) WIDTH = float( 3200.0 )  scale = WIDTH / ( 16.0 * 3 )  # 16 horizontal repeats epsilon = float(1.0e-5)  # Relative moves for drawing the vertical elements DOWN  = [[0.0, scale], [scale, 2*scale], [0.0, scale], [-scale, 2*scale]] UP    = [[0.0, -scale], [scale, -2*scale], [0.0, -scale], [-scale, -2*scale]]  # How to switch to going up when you stop going down after DOWN[i] DU_switch = [scale, -scale, -scale, scale]  # Relative moves for drawing the horizontal elements (L2R = left-to-right) L2R = [[scale, 0.0], [2*scale, scale], [scale, 0.0], [2*scale, -scale]] R2L = [[-scale, 0.0], [-2*scale, scale], [-scale, 0.0], [-2*scale, -scale]]  # How to switch to R2L after stopping in L2R at index i LR_switch = [scale, -scale, -scale, scale]  # Compute the intersection of two lines # See eggbot_hatch.py for complete details  def intersect( P1, P2, P3, P4 ):  ''' Determine if two line segments defined by the four points P1 & P2 and P3 & P4 intersect.  If they do intersect, then return the fractional point of intersection "sa" along the first line at which the intersection occurs. '''  # Precompute these values -- note that we're basically shifting from # #P = P1 + s (P2 - P1) # # to # # P = P1 + s D # # where D is a direction vector.  The solution remains the same of # course.  We'll just be computing D once for each line rather than # computing it a couple of times.  D21x = P2[0] - P1[0] D21y = P2[1] - P1[1] D43x = P4[0] - P3[0] D43y = P4[1] - P3[1]  # Denominator d = D21x * D43y - D21y * D43x  # Return now if the denominator is zero if d == 0: return float( -1 )  # For our purposes, the first line segment given # by P1 & P2 is the LONG hatch line running through # the entire drawing.  And, P3 & P4 describe the # usually much shorter line segment from a polygon. # As such, we compute sb first as it's more likely # to indicate "no intersection".  That is, sa is # more likely to indicate an intersection with a # much a long line containing P3 & P4.  nb = ( P1[1] - P3[1] ) * D21x - ( P1[0] - P3[0] ) * D21y  # Could first check if abs(nb) > abs(d) or if # the signs differ. sb = float( nb ) / float( d ) if ( sb < 0 ) or ( sb > 1 ): return float( -1 )  na = ( P1[1] - P3[1] ) * D43x -  ( P1[0] - P3[0] ) * D43y sa = float( na ) / float( d ) if ( sa < 0 ) or ( sa > 1 ): return float( -1 )  return sa  # Determine whether a line segment needs to be clipped to # fit within the drawing page  def clip( x1, y1, x2, y2 ): if ( x1 >= 0.0 ) and ( x1 <= WIDTH ) and ( x2 >= 0.0 ) and ( x2 <= WIDTH ) and  ( y1 >= 0.0 ) and ( y1 <= HEIGHT ) and ( y2 >= 0.0 ) and ( y2 <= HEIGHT ): return float( -1.0 )  if ( x1 < 0.0 ) or ( x2 < 0.0 ): s = intersect( [x1, y1], [x2, y2], [0.0, 0.0], [0.0, HEIGHT] ) if ( s > 0.0 ): return s  if ( x1 > WIDTH ) or ( x2 > WIDTH ): # We allow going an extra pixel across in case there is drawing error s = intersect( [x1, y1], [x2, y2], [WIDTH+1.0, 0.0], [WIDTH+1.0, HEIGHT] ) if ( s > 0.0 ): return s  if ( y1 < 0.0 ) or ( y2 < 0.0 ): s = intersect( [x1, y1], [x2, y2], [0.0, 0.0], [WIDTH, 0.0] ) if ( s > 0.0 ): return s  if ( y1 > HEIGHT ) or ( y2 > HEIGHT ): s = intersect( [x1, y1], [x2, y2], [0.0, HEIGHT], [WIDTH, HEIGHT] ) if ( s > 0.0 ): return s  return float( -1.0 )  # Plot a collection of line segments  def plot( points, color='black' ):  # First line segment s = clip( points[0][0], points[0][1], points[1][0], points[1][1] ) if ( s < 0.0 ): p = 'M %f,%f' % ( points[0][0], points[0][1] ) else: p = 'M %f,%f' % ( points[0][0] + s * ( points[1][0] - points[0][0] ),   points[0][1] + s * ( points[1][1] - points[0][1] ) ) x0 = points[1][0] y0 = points[1][1] p += ' L %f,%f' % ( x0, y0 )  # Intermediate line segments for i in range(2, len( points ) - 1): x0 = points[i][0] y0 = points[i][1] p += ' L %f,%f' % ( x0, y0 )  # Final line segment x = points[-1][0] y = points[-1][1] s = clip( x0, y0, x, y ) if ( s < 0.0 ): p += ' L %f,%f' % ( x, y ) else: p += ' L %f,%f' % ( x0 + s * ( x - x0 ), y0 + s * ( y - y0 ) )  print '' % ( color, p )  # Draw the vertical elements  def vertical( x, y, color, down, up ):  if ( y > ( scale + epsilon ) ): i = len( down ) - 1 while ( y > ( scale + epsilon) ): x -= down[i][0] y -= down[i][1] i -= 1 if ( i < 0 ): i = len( down ) - 1 else: i = -1  points = [[x, y]] while ( y < ( HEIGHT - epsilon ) ): i += 1 if ( i >= len( down ) ): i = 0 x += down[i][0] y += down[i][1] points.append( [x, y] )  plot( points, color )  x += DU_switch[i] points = [[x, y]] while ( y > epsilon ): x += up[i][0] y += up[i][1] points.append( [x, y] ) i -= 1 if ( i < 0 ): i = len( up ) - 1  plot( points, color )  # Draw the horizontal elements  def horizontal( x, y, color, l2r, r2l ):  if ( x > ( scale + epsilon ) ): i = len( l2r ) - 1 while ( x > ( scale + epsilon ) ): x -= l2r[i][0] y -= l2r[i][1] i -= 1 if ( i < 0 ): i = len( l2r ) - 1 else: i = -1  points = [[x, y]] while ( x < ( WIDTH - epsilon ) ): i += 1 if ( i >= len( l2r ) ): i = 0 x += l2r[i][0] y += l2r[i][1] points.append( [x, y] )  plot( points, color )  y += LR_switch[i] points = [[x, y]] while ( x > epsilon ): x += r2l[i][0] y += r2l[i][1] points.append( [x, y] ) i -= 1 if ( i < 0 ): i = len( r2l ) - 1  plot( points, color )  print '<svg>' % ( int( WIDTH ), int( HEIGHT ) ) print '<g>'  Color = 'green' x1 = 0.0 y1 = 0.0 x2 = 1.5 * scale y2 = 1.5 * scale while ( x1 < ( WIDTH - epsilon ) ): vertical( x1, y1, 'green', DOWN, UP ) if ( x2 < ( WIDTH - epsilon ) ): vertical( x2, y2, 'green', DOWN, UP ) x1 += 3 * scale x2 += 3 * scale  print '</g>' print '<g>'  x1 = 0.0 y1 = 0.0 x2 = 1.5 * scale y2 = 1.5 * scale while ( y1 < ( HEIGHT - epsilon ) ): horizontal( x1, y1, 'blue', L2R, R2L) if ( y2 < ( HEIGHT - epsilon ) ): horizontal( x2, y2, 'blue', L2R, R2L) y1 += 3 * scale y2 += 3 * scale  print '</g>' print '<g>' print '' % ( int( WIDTH ) ) print '' % ( int( HEIGHT ), int( WIDTH ) ) print '</g>' print '</svg>'

А вот получившееся изображение уже на яйце:4fb26d6a6a347b7c9017d16fad2f7497.jpg Энтузиасты создают даже картинки со стробоскопическим эффектом при вращении: При создании своего яйцебота я не ставил перед собой цели уложиться в $15, но так уж вышло :). Для сравнения оригинальный Eggbot Pro стоит $325, что дороже на порядок. Основная стоимость любого яйцебота — шаговые двигатели. Я использовал самые доступные — 28BYJ-48-12V, отсюда и итоговый ценник в 15 баксов. Итак для приготовления моего яйцебота вам понадобится: 1. 110 грамм пластика ABS или PLA. Черные детали я печатал ABS-ом, желтые PLA. Уж больно PLA красив при печати на стекле 🙂 2. Электроника в ассортименте:

  • 1 x Китайская Arduino UNO c Aliexpress с кабелем для компа за 250 руб.
  • 2 x 28BYJ-48-12V Шаговый двигатель + ULN2003 Драйвер шагового двигателя за 100 руб.
  • 1 x SG90 Микро серво двигателььза 100 руб.
  • 1 x 12V Блок питания (можно и не покупать если есть).

3. То что не можем напечатать, но можем купить почти в любом хозяйственном магазине:

  • пружина.
  • болты, винты, гайки, шайбы.
  • резиновая прокладка (можно и напечатать, если у вас есть Flex).
  • подшипник 608.

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

  1. Скачиваем и распаковываем прошивку отсюда.
  2. Загружаем Arduino IDE, устанавливаем и запускаем.
  3. Подключаем яйцебота к компьютеру, выбираем в Arduino IDE модель платы и COM порт.
  4. Открываем файл Eggduino.ino из папки с прошивкой и загружаем ее в Arduino.

В качестве управляющей программы используется всем известный Inkscape с плагином, написанным Evil Mad Scientist Laboratories. Плагин позволяет настраивать яйцебота, управлять им вручную и отправлять картинки на печать. Я заботливо добавил плагин в Inkscape и поместил готовый архив тут. Если у вас уже есть Inkscape, но нет плагина, то взять его отдельно можно тут. Скачиваем, устанавливаем и запускаем Inkscape. Идем в меню с плагинами, ищем там подменю EggBot. Открываем плагин, настраиваем высоту поднятия фломастера и печатаем на яйце все что угодно. Если у вас Inkscape при попытке управления ботом выдаёт ошибку «Failed to connect to EggBot», то не отчаивайтесь. Проблему можно легко решить. Посмотрите в списке подключенного оборудования, то как называется ваша плата. Затем в файле ebb_serial.py плагина для Inkscape замените в строке 52 текст «USB-SERIAL CH340» на ваше название. Еще я собрал и выложил небольшую коллекцию с примерами. Посмотреть ее можно тут. В итоге яйцебот должен работать так: Свой проект я разместил на гитхаб. Форкаем, ставим звездочки, модифицируем и так далее. Про thingiverse.com тоже не забыл. Спасибо за внимание!

Яйцебот Сфер-O-бот (Sphere-O-Bot, eggbot MOD) является проектом с открытыми исходниками железа и программного обеспечения. Проект является модификацией знаменитого EggBot от компании Evil Mad Scientist, которые делают очень хороших роботов.

Список деталей

Для печати на 3Д Принтере:

1 x Держатель пружины 1 x Рама (с поддержкой) 1 x Поддержка яйца вариант 1 или вариант 2 1 x Держатель маркера 2 x Осевая поддержка 1 x Вертикальная фаланга вариант 1 или вариант 2 1 x Разделитель

Электроника и другие детали:

2 x 623zz подшипник тут 1 x Шпилька (3 мм диаметр, 80 мм длина) 1 x Пружина (4,5 мм диаметр, 10 мм длина)  тут 2 x Шаговый двигатель NEMA 17 (40 мм длина) тут 1 x Серводвигатель SG90 тут 1 x Arduino Leonardo тут и плату автора xjjRobots Brain Shield. Вместо платы автора можно использовать CNC Shield v3 тут и Arduino UNO тут этот вариант дешевле и доступней 2 x Драйвер шагового двигателя A4988 тут 1 x Блок питания 12v/2A тут 11 x Болт M3x6 тут 4 x Болт M3x12 тут 4 x Гайка M3 тут 2 x Присоска 20 мм тут 1 x Барашковая гайка M3 тут

Инструкция по сборке

1. Общая схема сборки

Этот яйцебот имеет держатель маркера, который поворачивается шаговым двигателем. Другой шаговый двигатель отвечает за поворот яйца или другого шарообразного объекта вокруг своей оси. Чтобы яйцо было надежно закреплено используются присоски. Одна присоска закреплена на шаговом двигателе поддержки яйца. Другая присоска закреплена на шпильке с другой стороны. Небольшая пружина будет толкать присоску и надежно удерживать яйцо в то время, когда на нем рисует маркер. Чтобы маркер мог подниматься и опускаться в нужных местах используется серводвигатель SG90. Сама рама, на которой крепятся все детали показана ниже.

Общая схема сборки яйцебота

2. Сборка держателя маркера и левой поддержки яйца

Используя два винта закрепите серодвигатель SG90 к детали, как показано на картинке выше.

Поместите гайку М3 внутри отверстия и вкрутите в нее один 16 мм болт. Сделайте то же самое для держателя держателя яйца. Петля для сустава держателя маркера делается при помощи 2-х 16мм болтов М3. Эта петля должна свободно вращаться после того, как эти два болта будут завинчены.

Ниже приведены 3 фотографии держателя маркера в уже собранном виде.

Закрепите одну из присосок внутри D образного отверстия в левой поддержке яйца, как показано ниже

3. Крепление шаговых двигателей и сборка оси Х

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

Вверху: Схема сборки оси X (шпилька длиной 80 мм, М3). Поместите все элементы, как показано на рисунке выше.

После сборки ось X должна выглядеть так:

4. Разместите все в нужном месте

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

Установите левую поддержку яйца в ось шагового двигателя.

Выше: так должен выглядеть яйцебот сверху теперь.

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

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

Выше. Общая схема вид спереди. Опять же рама не показана.

5. Электроника + кабели. Как подключить все.

Почти все готово. Возьмите JJrobots Brain Shield (или CNC Shield), Arduino Leonardo и 2 драйвера шагового двигателя. Соедините все, как показано на рисунке ниже. Дважды проверьте ориентацию драйверов шагового двигателя иначе при включении они сгорят.

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

Внизу: вид сверху уже закрепленной электроники.

Подключите кабели, как показано выше. Проверьте полярность ДВАЖДЫ!

6. Заливка прошивки

Заливка прошивки на Arduino Leonardo осуществляется с помощью Arduino IDE (v 1.6.5). Это очень просто: 1) Загрузите Arduino IDE (v 1.6.5) отсюда: www.arduino.cc/en/Main/Software. И установите его на свой компьютер. 2) Подключите плату Arduino Leonardo кабелем к USB порту своего компьютера. 3) Запустите Arduino IDE. Выберите плату Arduino Leonardo и COM порт в меню «tools->board»… 4) Откройте и загрузите в плату прошивку яйцебота. Прошивка тут загрузите ее и распакуйте все файлы в папку «Ejjduino_ARDUINO».

Инструкция по использованию

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

Для черчения Яйцеботом на яйцах вам понадобится бесплатный векторный редактор Inkscape (тут) и расширение для него Eggbot Control (тут).

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

Сначала вам нужно установить Inkscape. После того, как Inkscape работает, в меню Extensions будет подменю Eggbot. Если вы не видите подменю Eggbot, значит вы еще не установили расширение.

В подменю Eggbot есть несколько пунктов, которые выполняют различные задачи. Наиболее важным пунктом является Eggbot Control…, который запускает расширение, непосредственно взаимодействующее с Яйцеботом. Диалог Eggbot Control имеет восемь вкладок. На первых двух вкладках «Plot» и «Setup» расположены основные элементы управления и настройки Яйцебота. На остальных шести вкладках расположено множество дополнительных функций.

Plot — Эта вкладка используется для передачи рисунка из Inkscape к Яйцеботу.Setup — Используйте эту вкладку, чтобы откалибровать верхнюю и нижнюю границу маркера, или войти в режим выравнивания (где двигатели выключены, и маркер убран вверх).Timing — Эта вкладка позволит вам изменить некоторые значения временных параметров для действий Яйцебота.Options — Эта вкладка позволит вам настроить некоторые из поведений Яйцебота.Manual — Эта вкладка позволит вам управлять вручную Яйцеботом (вращение двигателей, поднимание / опускание пера и т.д.)Resume — На этой вкладке описывается, как сделать паузу и как возобновить черчение.Layers — Эта вкладка даст вам возможность для построения многослойных рисунков (для многоцветных).`*` — Эта вкладка отображает информацию о версии расширения Eggbot и иногда примечания к выпуску.

Подготовка Яйцебота для черчения на яйце

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

Чтобы сделать это, выполните следующие действия:

1. Выполните калибровку позиции маркера вверх/вниз.

  • Это является частью первоначальной настройки, вам не придется делать это каждый раз.
  • На вкладке Setup, выберите «Toggle pen up/down», как указано в (3) выше. Затем нажмите кнопку Apply несколько раз. Серводвигатель должен двигаться вперед и назад между двумя различными позициями.

Если серводвигатель не двигается, проверьте, что он правильно подключен к Arduino и что само Arduino подключено к внешнему питание, а кабель USB подключен к компьютеру.

После этого вам нужно подогнать два процентных значения ((1) и (2), отмеченных выше) для маркера, соответствующих положению вверх и вниз таким образом, чтобы:

  • Держатель маркера был примерно горизонтально, или чуть ниже в положении «вниз»
  • Держатель маркера был немного выше горизонтальной плоскости, в положении «вверх»

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

2. Настройте моторы.

На вкладке Setup, выберите «Raise pen, turn off motors», а затем нажмите кнопку Apply. Это позволит разблокировать моторы и их можно свободно вращать в любом направлении, чтобы правильно закрепить маркер над яйцом.

Крепление яйца в Яйцеботе
Подготовка чертежа

Лучше всего начать с документом размера 800 пикселей в высоту на 3200 пикселей в ширину. Для начала вы можете попробовать один из готовых примеров (тут). Сфера-O-бот рисует Path — сплошные линии — не растровые изображения. Определенные типы объектов автоматически рассматриваются как Path, например, круги и прямоугольники. Другие типы объектов, которые сделаны из линий, такие как, например, контурный текст, должны быть преобразованы в Path (Path menu > Object to path) перед черчением.

Печать на яйце

Автор проекта: jjrobots Рама для этого проекта была разработана: Attila Nagy.

2cf41e.png

  • Цена: 38.82$

В последнее время на муське стали всё чаще появляться обзоры на товары, купленные на таобао. Я тоже решил, что хочу освоить этот всемирно известный магазин. И решил я это освоение совместить с моей дальней хотелкой. Поэтому я пошел на тао уже с готовым списком товаров, который приведу чуть ниже. И в итоге закупил всё что нужно для создания в домашних условиях станка по разрисовыванию яиц, а также любых других сферических предметов (шариков, мячиков и тд) далее я буду называть его яйцебот. Этот обзор будет несколько отличаться от всех моих предыдущих обзоров. Но думаю вам, мои читатели, он понравится. Итак, начнём с теории. Что такое яйцебот (eggbot)? Для тех, кто не в курсе яйцебот — это машина (ЧПУ-станок), которая обычным фломастером (карандашомручкойкистью) умеет рисовать на любых сферических объектах: яйцах, теннисных шариках, ёлочных игрушках. Концепт механизма придумал дизайнер Bruce Shapiro в далеком 1990-м году, а не так давно знаменитая компания Evil Mad Scientist Laboratories выпустила в свободную продажу свою версию под названием The EggBot. Надо отдать должное Evil Mad Scientist Laboratories свой проект сделала открытым и разрешает пользоваться программным обеспечением для других яйцеботов даже в коммерческих проектах. C помощью яйцебота можно делать вот такие рисунки:

На ютубе полно еще более интересных примеров с рисунками. Мне, например, нравится вот этот: И на самом деле возможности яйцебота ограничены лишь нашей фантазией. Поэтому эта тема достаточно обширна и интересна. Почему я вообще решил собирать яйцебот? Ну, во-первых, потому что могу. И хочу. И мне эта тема интересна. Вторым подталкивающим шагом стала статья найденная на 3dtoday.ru под названием Бюджетный 3Д-печатный Яйцебот Про Мини Ну и третья причина — это наличие у меня 3Д принтера Anet A8, применение которому также надо было найти. Четвёртым доводом стала цена. Стоимость всех комплектующих не превышает 50 долларов. А, например, этот же eggbot от фирмы EleksMaker стоит уже от 180 долларов и выше. В общем решено брать и делать. Весь процесс от старта до реализации у меня занял почти 3 месяца. Конечно я не возился все 3 месяца с этим яйцеботом. При наличии всех комплектующих, собрать готовый станок можно буквально за один вечер. Кстати! Перед тем как начинать писать обзор, я связался с автором данного проекта яйцебота, и попросил разрешения на публикацию тут всей информации. Разрешение было получено. Также автор рассказал что занимается продажей уже готового набора для сборки яйцебота, который можно купить на ebay по этой ссылке. И даже готов сделать скидку для пользователей mysku до 45$ за комплект. (электроника+все детали, напечатанные на 3Д принтере) Для того чтобы получить такую цену, нужно на странице заказа нажать кнопку «Предложить цену» и в сообщении продавцу написать MYSKU А потом просто дождаться ответа с согласием на цену в 45$ (Этот вариант подойдет для тех людей, у которых нет 3Д принтера, а желание собрать подобный яйцебот имеется) Для тех у кого 3Д принтер в хозяйстве есть, можно просто скачать все файлы для печати с github или с thingiverse Ну а электронную часть заказать в онлайн магазине. Как это собственно я и сделал. Для сборки яйцебота нам понадобятся следующие запчасти:1 x Arduino UNO (лучше взять 2шт. так как в процессе сборки один можно спалить неправильным подключением) 2 x Шаговый двигатель 28BYJ-48-5V (можно также использовать 28BYJ-48-12V, но к ним надо брать блок питания на 12V) 2 x ULN2003 Драйвер шагового двигателя 1 x SG90 Микро серво двигатель 1 x 12V Блок питания (при условии, что вы планируете собирать яйцебот на шаговых двигателях 28BYJ-48-12V) 1 x USB Кабель для соединения с компом 2 x 608 Подшипник (легко вытаскивается из уже заброшенных детьми спиннеров) Немного проводов для подключения между собой arduino UNO и драйверов. (12 проводов с разъёмами папа-мама, длинной около 15см и 3 провода папа-папа длинной также около 15см) Также нам понадобятся следующие комплектующие: 1 x 15×20мм Пружина 9можно сделать из PLA, можно вытащить из старой игрушки.) 1 x 2×18мм Гвоздь без шляпки 2 x M4x16 Болт 2 x M4 Гайка 8 x M3x12 Винт 5 x M3x16 Винт 12 x M3 Гайка 4 x M3 Шайба 12 x M2x4 Винт 24мм резиновая прокладка (можно и напечатать, если есть Flex пластик) 15мм резиновая прокладка (можно и напечатать, если есть Flex пластик) Их можно найти на рынке, выгрести из старых запасов и т.д. Заказывать болты винты и гайки в онлайн магазине смысла нету. Все запчасти я решил заказывать на TAOBAO по двум причинам. Первая, для того чтобы опробовать посредника yoybuy.com И вторая, то что получу все нужные запчасти сразу в одной посылке. И не придется ждать пока придут все запчасти от разных продавцов.Итак, вот мой список:Arduino UNO R3шаговый мотор 28BYJ-48-5V сразу в комплекте с драйвером ULN2003.SG90 Микро серво двигательПодшипники 608ZZ Вместе с доставкой весь набор обошелся мне в 38.82$941471.png Но как видим, комплектующих я брал с запасом. +1 шаговый двигатель, +1 серводвигатель и +1 подшипник. (кстати моей ошибкой было то, что я не взял +1 Arduino UNO, что в последствии доставило мне много лишних хлопот) Как пользоваться услугами посредника yoybuy.com рассказывать не буду. Там всё довольно просто и понятно. И в целом я остался доволен этим посредником. Сейчас формирую новый заказ, но о нём пока рассказывать не буду. Весь комплект добирался до меня почти 30 дней. На почте получил хорошо упакованную коробку:9544f1.jpg И внутри вся электроника для будущего станка:
Шаговые моторы 28BYJ-48-5V с драйвером ULN2003:
Микро серво двигатель SG90:
Подшипники 608ZZ:
Кстати, как я уже говорил, эти же подшипники можно вытащить из спиннера:005a8e.jpg Они абсолютно идентичные:fe592f.jpgБлок питания на 12V. 2А. В моем проекте он не используется. Потому что я использую шаговые двигатели на 5V. Блок питания был взят для другого проекта:54be2f.jpg В комплекте к блоку питания в подарок лежала открывашка:696147.jpg (я правда пиво не пью, поэтому задарил её брату в этот же день) Также для проекта я напечатал детали на своём 3Д принтере следующий список деталей:1 x 0000001. Нижняя крышка корпуса1 x 0000002. Верхняя крышка корпуса1 x 0000003. Логотип2 x 0000004. Держатель гайки М41 x 0000005. Правая ось поддержки яйца1 x 0000006. Держатель пружины1 x 0000007. Держатель правой оси1 x 0000008. Фиксатор оси поддержки2 x 0000009. Держатель болта М4 низ2 x 0000010. Держатель болта М4 верх1 x 0000011. Держатель левой оси1 x 0000012. Левая ось поддержки яйца1 x 0000013. Держатель руки маркера1 x 0000014. Направляющая держателя руки маркера1 x 0000015. Корпус направляющей1 x 0000016. Рука маркера H1 x 0000017. Рука маркера V1 x 0000018. Правая крышка корпуса
Синий пластик это PLA от BestFilament Зеленый пластик это PLA от Creozone. В итоге всё что нужно для сборки яйцебота можно увидеть на фото:75f0fe.jpg(еще раз напомню что блок питания нужен только если вы будете использовать шаговые двигатели на 12V) Честно признаюсь, что процесс сборки яйцебота я благополучно забыл сфотографировать. Собирал по имеющейся инструкции. Электронику подключал по следующей схеме:91bb79.jpg Для работы яйцебота нам нужно скачать и залить в arduino прошивку. И скачать и установить на компьютер программу inkscape с уже встроенным плагином eggbot. Для использования её в качестве управляющей программы. Я всё это сделал. НО! В процессе выяснилось, что пришедшая Arduino UNO пришла ко мне без залитого бутлодера.c14195.jpg Поэтому залить в неё прошивку не получалось:d809df.jpg В Arduino IDE она определяться отказывалась:dbdd29.jpg И даже попытка прошить плату, используя в качестве ISP-программатора другую Arduino UNO ни к чему не привела: (За неработающую ардуину, посредник yoybuy.com уже вернул мне деньги на внутренний счёт в моём аккаунте, что еще раз подтверждает серьёзность данной конторы) Очень жалко, но так как руки чешутся, собрать яйцебот хочется, пришлось вместо Arduino UNO использовать имеющийся у меня arduino MEGA. В корпус она уже не влезет, но по крайней мере будет работать, пока другая Arduino UNO будет ехать ко мне с Китая. Но просто так прошивка для UNO заливаться в MEGA не будет. Для желающих повторить, нужно сделать поправку в коде:Нужно заменить строчку SPMCSR &= ~SELFPRGEN; на SPMCSR &= ~SPMEN; После этого уже прошивка нормально загружается в arduino MEGA и яйцебот готов к работе. Правда имеет вид не очень эстетичный:
Но тут уже ничего не поделать. Лучше так, чем ждать еще месяц пока придёт UNO. Еще несколько фотографий для представления как это выглядит в сборе:
С зажатым яйцом. До первых опытов. Яйцо чистое. В качестве пера используется обычный маркер с тонким кончиком:
Маркер с толстым кончиком:
Также вместо маркера можно использовать обычный карандаш:
Но карандаш плохо видно на некоторых яйцах. Хорошо себя зарекомендовала Ручка роллер Erich Krause. Вот примеры:
А вот примеры с маркером:
Как видим маркер делает более толстые линии, и это нужно учитывать при выборе рисунка. Как работает яйцебот можно увидеть далее. Запускаем программу inkscape, выбираем рисунок. Далее плагины-eggbot-eggbot control, вкладка plot и нажимаем «применить»: Пока это еще пробные запуски. Осваиваю программу инкскейп, и пробую различные настройки. Но уже понимаю, что проект достаточно интересный и увлекательный.Заключение: Возможно данный обзор написан недостаточно подробно, но что узнал и освоил в процессе покупки, сборки и наладки вроде рассказал. Проект eggbot считаю выполненным. Мне очень понравился как процесс, так и результат. Местами пришлось хорошо напрячься, чтобы заставить работать эту шайтан-машину. Местами даже пришлось крепко понадоедать с вопросами автору проекта (надеюсь Владимир на меня за это не в обиде) Но результат того стоит. Эта машинка скоро начнёт использоваться для изготовления оригинального подарка родственникам. Рисовать поздравления с новым годом на ёлочных шариках (не показал на фото, потому что за шариками поедем с семьёй только через неделю). Я лично прокачал свои навыки в качестве электронщика. И понял, что не такой уж я и тугодум, и вполне еще способен обучаться. Если вы надумаете собирать такой же яйцебот, вы можете использовать данный обзор как гайд, (или использовать статьи про сборку, написанные автором проекта. Ссылки я давал выше) а также задавать свои вопросы в комментариях. Я думаю, что при хорошей активности, автор проекта зарегистрируется на муське, и сможет ответить на ваши вопросы. На этом всё. Спасибо за внимание. Используемые источники:

  • https://habr.com/post/403293/
  • https://3dhobbies.ru/eggbot-mod/
  • https://mysku.ru/blog/taobao/58395.html

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации