Робот-художник на тележке, который рисует картинки на листе бумаги формата А4.
Это моя конструкция, так что смело могу добавить к названию буквы MOC (My Own Creation).
Вообще-то, если быть точнее, что-то похожее я видел у Карандаша-Самоделкина в видеоролике https://www.youtube.com/watch?v=jxIhz4zHlMs&t=95s .
Но пару замечаний не с целью критики, а почему та конструкция меня не устроила.
Как видно из ролика, тот робот рисовал только буквы.
Хотя, я думаю, если загрузить в тот робот мою программу (с изменённой для данной конструкции математикой), он сможет нарисовать и рисунок. Вот только отсутствие направляющих приведёт к тому, что он постепенно будет поворачивать ось движения вперёд-назад, и рисунок будет с искажениями.
И ещё, отсутствие понижающей передачи для поворотного плеча приведёт к недостаточной точности (с моей точки зрения) позиционирования пера, порядка 2-3 мм. Но если рисунок будет несложный и на нём не будет мелких деталей, то этого вполне хватит.
Поэтому я свой робот поставил на рельсу из гусеницы, чтобы избежать углового смещения оси вперёд-назад, и добавил понижающие передачи и для мотора вперёд-назад, и для мотора поворота плеча робота.
В чём идея такого робота?
Робот катается вперёд-назад вдоль оси Y.
Плечо робота длиной L может поворачиваться влево примерно на 60˚ и вправо примерно на угол 60˚. Исходя из этого максимального угла поворота плеча в 120˚ и определяется ширина рабочей зоны нашего робота.
А длина рабочей зоны, то есть полоса в направлении вперёд-назад, ничем не ограничена. Если у вас робот будет ехать 100 метров, то и эта полоса будет тоже 100 метров. У меня она ограничена длиной рельсы, то есть чтобы робот рисовал на листе формата А4, а дальше увеличивать эту длину для моего робота смысла нет.
При движении робота вперёд-назад точка шарнира поворотного плеча робота всегда находится на оси Y.
Чтобы подвести перо к заданной точке, робот должен подъехать по оси Y на определённое расстояние и повернуть плечо L на определённый угол. Какое именно расстояние и какой именно угол – это и является нашей задачей.
Это можно найти, если посмотреть на кинематическую схему робота:
Наша задача заключается в том, что координаты точки (x,y) надо перевести в углы поворота моторов робота. То есть на какой угол надо повернуть мотор тележки, чтобы она проехала длину y2 и на какой угол angl повернуть плечо L, чтобы подвести перо к точке с координатами (x,y).
Из схемы видно, что катеты x, y1 и гипотенуза L образуют прямоугольный треугольник.
Тогда мы можем найти катет y1:
Расстояние y2, которое должен проехать робот:
y2 = y – y1
И угол angl, на который надо повернуть плечо L:
angl = arctg(x / y1)
Эти формулы и являются расчётными для углов поворота моторов робота.
Подставим в эти формулы конкретные значения длин в миллиметрах и передаточных коэффициентов шестерёнчатых передач моего робота:
Длина плеча L = 120 мм
Диаметр колеса тележки примерно 40 мм.
Длина окружности = π * 40 = 120 мм
Тогда из пропорции:
360˚ - 120 мм
x˚ - y2 мм
находим угол поворота мотора А x˚ = y2 * 360 /120 = y2 * 3
С учётом передаточного числа = 5:
и направления вращения мотора А, окончательное выражение y2 * 3 * (-5)
Передаточное число поворотного плеча = 40:
Поэтому угол поворота мотора В:
angl = arctg(x / y1) * 40
Эти окончательные формулы занесём в программе в «Мой блок» XY_Angl (подробнее о программе для робота смотри «Программируем блок EV3 робота-художника» ).
Мотор А – движение тележки по оси Y. Мотор В – поворот плеча L .
Файл с координатами мы получаем используя сцену Scratch (подробнее смотри 2 видео на моём канале «Картинка для робота. Часть1.» и «Картинка для робота. Часть2.»). Эта сцена представляет собой прямоугольное поле альбомной ориентации размером 480х360 точек с началом координат в центре этого поля. Нам надо перевести его в лист формата А4 книжной ориентации с началом координат 120 мм ниже нижнего края листа.
Масштаб вычислим исходя из меньшей стороны (210мм), т.е.
210/(180+180) = 0,5833333333333
Тогда вертикальный размер 480 * 0,5833333333333= 280
x= 0,5833333333333 * x” = - 0,5833333333333 * Y
y = 0,5833333333333* y” + (120+300/2) = 0,5833333333333 * y” + 270 = =0,5833333333333 *X + 270
Конструкция робота
Фото робота с разных ракурсов.
Вид сверху со снятым блоком EV3.
Вид снизу:
Вид на поворотное плечо и подъёмный механизм со снятой правой направляющей.. Видно положение каретки, на которую крепится фломастер. Каретка свободно ходит вверх-вниз и прижимается к низу канцелярской резинкой, соответственно и фломастер прижимается к бумаге этой резинкой. Сбоку видна резинка, которая оттягивает плечо влево - для уменьшения люфтов.
Вид на подъёмный механизм со снятыми направляющими и кареткой.
Здесь хорошо виден поперечный блок с синим тройным штифтом, который поднимает каретку и, соответственно, фломастер вверх.
Вид на мотор подъёма пера с кривошипом (зелёным).
Каретка, к которой крепится фломастер. Канцелярская резинка сперва пропускается под резиновой балкой.
Потом на балку ложится фломастер и этой же резинкой прижимается к резиновой балке. Тем самым фломастер надёжно фиксируется на каретке.
И о крепеже направляющей гусеницы.
Из 40 пластиковых траков соединил гусеничную ленту.
В листе ДСП я просверлил 8 отверстий диаметром 5 мм в начале и конце гусеницы и через 13 траков. В отверстия вставил тройные синие штифты. Подложил картонку, чтобы робот не прыгал на бортиках штифтов. Закрепил ленту на этих штифтах.
У этого робота нет никаких датчиков, поэтому выставлять в начальную позицию (точку парковки) надо вручную. Для этого плечо робота должно быть направлено вперёд, для поворота покрутите 4-х зубым колёсиком мотор В. Перо должно быть поднято. Перо поднимать не очень удобно, так как сложно (но можно) вращать шестерню подъёма, поэтому старайтесь выключать робот с поднятым пером, или проверните мотор С через меню EV3. Робот поставьте задним колесом на край гусеничной ленты. Лист бумаги зафиксируйте так, чтобы нижний край был под пером, и перо было посредине нижнего края.
Инструкция по сборке робота
Comments