Робот, ездящий по линии под управлением Arduino
В данной статье будет описан процесс создания робота, ездящего по линии. Эта задача является классической, идейно простая, она может решаться много раз, и каждый раз вы будете открывать для себя что-то новое. Решение этой задачи и реализация полученного решения позволяют приобрести необходимые начальные навыки для дальнейшего совершенствования в робототехнике.
Существует множество подходов для решения задачи следования по линии. Выбор одного из них зависит от конкретной конструкции робота, от количества сенсоров, их расположения относительно колёс и друг друга.
В нашем примере будет собран робот на лёгкой платформе с двумя колёсами и двумя датчиками линии, расположенными на днище робота перед колёсами.
В результате выглядеть он будет так:
Что понадобится
Для нашего примера понадобятся следующие детали:
Вообще говоря, лучше было бы использовать NiMH-аккумуляторы: они лучше отдают ток и значительно дольше держат напряжение, но для целей этого проекта одной батарейки на 9 В вполне хватило.
Собираем робота
Сначала соберём робота, установим всю механику и электронику.
Собираем платформу
Для начала прикрепим колёса к моторам.
Затем с помощью пластиковых П-образных креплений прикручиваем моторчики к платформе. Обратите внимание на взаимное расположение крепления и моторчики: в креплении есть небольшие углубления, так что если всё соединить правильно, то моторчики будут крепко держаться и никуда не выскочат.
Теперь крепим балансировочный шар.
Отлично! Платформа собрана. Если вам кажется, что колёсам отведено слишком мало места и они трутся о платформу, то скорее всего вам нужно посильнее надавить на колёса, чтобы они плотнее сели на вал мотора.
Крепим сенсоры
Закрепим их, как показано на фото:
Можно было бы выбрать и другое место. Это могло бы сделать контроль проще или сложнее, а самого робота более или менее эффективным. Оптимальное расположение — вопрос серии экспериментов. Для этого проекта просто был выбран такой способ крепления.
Крепим Arduino
Arduino закрепим с противоположной стороны двумя винтиками и гайками.
Опять же, можно выбрать и другое место. Например над колёсами, если приподнять Arduino на латунных стойках. Это изменило бы положение центра масс и повлияло бы на эффективность робота в лучшую или худшую сторону.
Крепим Motor Shield и соединительные провода
Установим Motor Shield на Arduino и подсоединим соединительные провода. Обратите внимание, чтобы соотвествовать программному коду из примера ниже, моторчики соединены с Motor Shield так: правый — к клеммам M1 с прямой полярностью (плюс к плюсу), а левый — к M2 с обратной (плюс к минусу).
В этом проекте, для экономии времени концы соединительных проводов просто скручены с контактами моторов. При работе «начисто» стоит жёстко припаять провода к моторам.
Крепим Troyka Shield
Присоединяем сверху Troyka Shield и подключаем датчики к 8 и 9 цифровым контактам. В итоге получаем следующую конструкцию:
Программирование
Теперь напишем программу, которая заставит собранную конструкцию двигаться по нарисованной линии. В проекте мы будем использовать чёрную линию, напечатанную на белых листах бумаги.
Основная идея алгоритма
Пусть у нас усть белое поле, и на нём чёрным нарисован трек для нашего робота. Используемые датчики линии выдают логический ноль, когда «видят» чёрное и единицу, когда «видят» белое.
На прямой робот должен пропускать трек между сенсоров, то есть оба сенсора должны показывать единички.
При повороте траектории направо, правый сенсор наезжает на трек и начинает показывать логический ноль. При повороте налево, ноль показывает левый сенсор.
Таким образом получаем простую систему с тремя состояниями:
На вход системы поступает информация с сенсоров. Получаем следующую логику переходов:
Левый | Правый | Целевое состояние |
---|---|---|
0 | 0 | STATE_FORWARD |
0 | 1 | STATE_RIGHT |
1 | 0 | STATE_LEFT |
1 | 1 | STATE_FORWARD |
Реализация на Arduino
Проблема инертности и её решение
Однако если выставить скорость моторов побольше, мы столкнёмся со следующей проблемой: наш робот будет вылетать с трека, не успевая отреагировать на поворот. Это связано с тем, что наши моторчики не умеют тормозить мгновенно.
В этом легко убедиться поставив следующий эксперимент: с заданной скоростью робот будет двигаться по поверхности, и в некоторый момент будет установлена нулевая скорость и измерен тормозной путь робота. Пусть робот разгоняется по монотонной поверхности и тормозится при фиксировании импровизированной стоп-линии.
Эксперимент проведём для разных скоростей. Код программы для эксперимента таков:
На той поверхности, на которой проводился эксперимент, были получены следующие результаты:
Таким образом, начиная с некоторого момента у нашего робота нет никакой возможности успеть среагировать и остаться на треке.
Что можно сделать?! После того, как сенсоры улавливают поворот, можно остановиться и вернуться назад на некоторое расстояние, зависящее от скорости перед остановкой. Однако мы можем отдать команду роботу ехать с какой-то скоростью, но не можем приказать ему проехать какое-то расстояние.
Для того, чтобы понять зависимость расстояния при заднем ходе от времени, был проведён ещё один замер:
На скорости 50, например, робот проделывал путь, зависящий от времени следующим образом:
Полученные две зависимости были линейно аппроксимированы, затем была выведена формула зависимости времени, которое надо двигаться назад, от скорости перед остановкой.
Обратим внимание на то, что у вас значения могут оказаться другими: из-за особенностей сборки либо из-за поверхности, поэтому в общем случае лучше провести все измерения самостоятельно.
Адаптивное поведение
Перед финальным экспериментом произведём ещё несколько поправок.
Во-первых, нам необязательно давать команду ехать назад перед каждым поворотом, как мы помним, на маленькой скорости робот прекрасно справляется и без этого. К тому же лучше ему двигаться не прямо назад, а немного поворачивая, всё-таки робот находится перед поворотом.
Во-вторых, нам стоит различать состояния робота: когда он движется по прямой, и ничто ему не мешает ускоряться; и когда робот входит в поворот. В первом случае действительно будем увеличивать скорость робота для более динамичного прохождения трека, во втором случае будем сбрасывать скорость до значения, достаточного для успешного прохождения поворота, и будем держать эту скорость ещё какое-то время.
В итоге наш код будет выглядит следующим образом:
Результат
Что дальше?
Представленный алгоритм оставляет множество возможностей для улучшения и оптимизации. Скорость поворота можно так же менять адаптивно. Можно добавить контроль заноса. Можно поиграть с расположением сенсоров и центром масс. В конце концов можно получить непобедимого на треке робота.
Робототехника как прикрепить колесо к двигателю
В общем случае робот может передвигаться прямолинейно и по ломанной траектории. Вычислить передвижение робота на необходимое расстояние по прямой достаточно просто. Для этого должен быть известен диаметр колеса робота. Исходя из этих начальных условий можно вычислить точное количество оборотов колеса, необходимое для преодоления заданного расстояния.
Робот за 3 минуты
Зная количество оборотов мотора робота в минуту можно вычислить время, за которое робот преодолеет нужное расстояние.
Для робота Lego EV3 количество оборотов большого мотора составляет 160 – 170 оборотов в минуту.
Поэтому вычисление времени будет приблизительным т.к. у каждого мотора количество оборотов в минуту может быть разным.
Ломанная траектория представляет из себя комбинацию из прямолинейных и криволинейных участков. Криволинейные участки можно вычислять, используя формулу вычисления длины окружности.
Расчет числа оборотов
Для того, чтобы рассчитать количество оборотов колеса для движения на заданное расстояние по прямой нужно использовать длину окружности колеса. Она вычисляется по формуле L = π * d. Где π – число Пи, равное 3,14, а d –диаметр колеса. Для базового набора Lego EV3 диаметр колеса составляет 56 мм.
Пусть робот EV3 оснащен двумя передними колесами и шаровой опорой сзади и должен проехать 1 метр. За один оборот колеса робот преодолевает расстояние L = π * d = 3.14 * 56 = 175,84 мм. Пусть n – количество оборотов, k – заданное расстояние. Тогда количество оборотов n = k / L =>
n = 1000 мм / 175,84 мм = 5,69 оборотов.
Программа для Lego EV3 для движения робота на заданное количество оборотов.
- Во вкладке «Движение» выбираю блок «Рулевое управление».
Устанавливаю режим «Включить на количество оборотов», «Рулевое управление» установлено в 0 – это означает движение по прямой линии. Большие моторы установлены в порты B и C.
рулевое управление движение по прямой на один метр
Скорость движения моторов – 50 условных единиц. Значение оборотов ставлю вычисленное выше. Тормозить в конце – значение «Истина». При нажатии на блок «Начало» робот Lego EV3 проедет по прямой 1 метр со скоростью 50 у.е. и остановиться.
- При втором способе используется блок «Независимое управление моторами».
Все настройки блока такие же, как и настройки у блока «Рулевое управление». Для того чтобы робот ехал по прямой необходимо скорость моторов установить одинаковой.
В общем случае робот может передвигаться по траектории, которая представляет из себя окружность, часть окружности и комбинации различных частей окружности. При этом робот может:
- Разворачиваться на месте – колеса робота крутятся в разные стороны с одинаковой скоростью;
- Разворачиваться вокруг одного колеса – одно колесо машинки Lego EV3 стоит на месте, другое крутится с заданной скоростью;
- Описывать произвольную окружность – оба колеса крутятся в одном направлении с разной скоростью.
Пусть параметры тележки EV3 будут такими: робот представляет из себя платформу с двумя колесами и шаровой опорой, расположенной сзади. Тележка симметрична и расстояние между центральными осями колес и шаровой опорой является равнобедренным треугольником.
робот тележка лего
Для упрощения расчетов, задам расстояние между центрами колес по оси, но которой они расположены равным 20 см. На многих соревнованиях по робототехнике одним из условий являются габариты робота. Например, нужно чтобы размеры робота были не более 20 см в ширину, 20 см в длину и 20 см в высоту.
Если робот не подходит по габаритам, то его не допускают к соревнованиям. Диаметр колеса 0,56 см – это стандартный размер колеса из базового набора Lego EV3. Левый большой мотор подключен к порту В, правый к порту С. Теперь вычислим количество оборотов колеса для каждого случая и для разворота робота Lego EV3 на определенный угол.
Расчеты применимы для роботов, собранных на базе любых конструкторов. Разница будет заключаться только в среде программирования, т.к. у разных робототехнических наборов разные программные обеспечения. Но принцип расчета везде одинаковый.
Разворот на месте
- Разворот робота на 360 градусов
В этом случае нужно чтобы у робота колеса вращались в разных направлениях с одинаковой скоростью. Для того чтобы робот совершил полный разворот вычислим необходимую длину окружности. Разворот будет на месте, поэтому диаметр между осями будет равен 20 см =>
Длина описываемой окружности будет равна
L = π * d = 3.14 * 0,2 м = 0,628 метра
Количество оборотов будет равно пройденному расстоянию L деленному на длину окружности колеса n = Lокр / L колеса, где длина окружности колеса равна L = π * d = 3.14 * 56 = 175,84 мм = 0,176 м.
А значит количество оборотов для разворота на 360° будет равно
n = L окр / L колеса = 0,628 / 0,176 = 3,568 оборота.
Для блока программирования «Рулевое управление» можно задать разворот на 100 условных единиц (или — 100), что означает разворот на месте. Скорость 50 у.е. и 3,568 оборота.
разворот робота на месте рулевое управление
Для блока программирования «Независимое управление моторами» просто скорость одного мотора ставим 50 у.е., а другого – 50 у.е. При этом количество оборотов колес остается 3,568.
- Для того, чтобы повернуть робота тележку Lego EV3 на произвольное количество градусов нужно составить пропорцию, где нужное количество градусов нужно разделить на 360 градусов и учесть эту пропорцию в расчете.
Например, для разворота на 180 градусов. Обозначим нужную длину части окружности L1 =>
L1 = L * (нужное к-во градусов / 360 градусов) = L * (180 / 360) = L / 2 = 0,628 / 2 = 0,314, а значит к-во оборотов
n = L1 / L колеса = 0,314 / 0,176 = 1,784 оборота.
Поворот вокруг одного колеса
В этом случае у нас радиус поворота будет 20 см, а диаметр описываемой окружности 40 см. Поэтому длина описываемой окружности будет в два раза больше и как для полной окружности, так и для ее части нужно просто предыдущие вычисления умножить на два.
Поворот робота вокруг одного колеса
Для того чтобы сделать поворот вокруг одного колеса на 360 градусов нам понадобится в предыдущей формуле d умножить на 2, а значит и количество оборотов колеса увеличится вдвое.
L = π * 2 * d = 3.14 *2 * 0,2 м = 1,256 метра
Для робота собранного на базе набора Lego EV3 целесообразно применить программирование с помощью блока «Независимое управление моторами». Где одному мотору задать нулевое значение оборотов, а другому вычисленное. При повороте на 360 градусов это будет 7,136 оборота.
Движение по окружности произвольного диаметра
Пусть расстояние от центра окружности до середины первого колеса будет R1. Расстояние от центра окружности до середины второго колеса R2.
В этом случае мы получаем движение колес по окружностям разного диаметра за одинаковое время. Регулировать такое передвижение можно за счет разности скоростей внешнего и внутреннего колеса.
Длина окружности, которую проезжает правое колесо обозначим как L1
Движение робота по окружности произвольного размера
L1 = 2 * π * R1
Длина окружности для левого колеса
L1 = 2 * π * (R1 + R2)
Скорость правого колеса V1, а скорость правого колеса V2.
Время за которое заданное расстояние пройдет правое колесо t1.
t1 = L1 / V1 = (2 * π * R1) / V1
Время, за которое заданное расстояние пройдет левое колесо t2.
t2 = L2 / V2 = (2 * π * (R1 + R2)) / V2
Время проезда окружности или ее части левым и правым колесом у нас одинаковое t = t1 = t2, а значит и правые части выражений равны.
L1 / V1 = L2 / V2 ó (2 * π * R1) / V1 = (2 * π * (R1 + R2)) / V2 ó
Упрощаем выражение и получаем следующую пропорцию
V2 / V1 = (R1 + R2) / R1
Сейчас можно вычислить скорости левого и правого колеса для заданной окружности. Пусть у нас R1 = 20 см и R2 = 20 см, для упрощения скорость левого колеса возьмем 100 условных единиц. Тогда
V2 / V1 = (R1 + R2) / R1 ó 100 / V1 = (20 + 20) / 20
100 / V1 = 2 ó V1 = 100 / 2 ó V1 = 50 условных единиц.
Имея вычисленные значения скоростей можно составить программу прохождения участка. Для робота Lego EV3 можно использовать блок программирования «Независимое управление моторами». Скорость левого двигателя устанавливаем 100 у.е., скорость правого двигателя устанавливаем 50 у.е.
Независимое управление моторами Lego EV3 произвольная окружность
Режим устанавливаем «Включить на количество секунд». Произвольно установим 10 секунд. Для того, чтобы точно проходить заданное расстояние нужно замерить время прохождения одного круга секундомером. Зная это время можно задавать нужное нам расстояние.
Часто на соревнованиях одним из заданий является движение робота по черной линии с объездом препятствий. И для успешного преодоления трассы необходимо вычислить траекторию объезда. При помощи таких вычислений это сделать достаточно легко.
«Железяка 1» — робот из «обычного» металлического конструктора
Небольшой дисклеймер. Эта статья нашлась в моих старых «запасах», и она написана несколько лет назад. Но на фоне новости, что компания, которая производит «донора» для робота решила выпустить набор на Arduino, решил показать, что можно сделать похожее самостоятельно. Благо информация до сих пор не устарела, и никто вам не мешает заменить микроконтроллер на что-то другое.
Собрать робота из отечественного металлического конструктора, который многие из моего поколения помнят еще с уроков школьного труда в детстве. Возможно ли? Такой «вызов» я себе поставил, заодно решив посмотреть как возможность данного предприятия, так и для прощупывания почвы создания хоть и не очень сильного, но конкурента импортных наборов, занимающих на российском рынке монопольную долю. Предупрежу, что далее будет много фотографий и текста и что я покажу только как создать управляемую тележку с микроконтроллером, которую вы самостоятельно сможете дооснастить любыми датчиками.
Идея, с одной стороны, разрешимая — зная, что у импортных аналогов «нашего» конструктора, к примеру компании Merkur, есть двигатели и управление можно было ожидать успеха и в этом случае. С другой стороны — у российского конструктора шаг все-таки метрический, а вся электроника и детали увы «заточены» под дюймовый стандарт. Причем задача стояла не использовать по возможности никакие крепежные элементы, кроме деталей конструктора.
Для этих целей на один из Новых Годов я «подарил» себе набор «Грузовик и трактор». Набор конечно же был отобран сыном сразу после появления дома, трактор собран, потом им играли некоторое время, и уже после можно спокойно было разобрать конструкцию обратно на запчасти.
Также из электронно-китайских запасов были взяты мотор-редукторы с колесами и дисками с прорезями для энкодера — 2 щт, самый дешевый драйвер двигателя — 1 шт, блютус-адаптер HC-06 — 1 шт, энкодеры — 2 шт, макетная плата 17×10 — 1 шт, провода для макетной платы, перемычки, а также плата Arduino Leonardo.
После подготовки я имел гору металлических деталей, маленькую горку электронных компонентов и понимание, что сам конструктор страдает некоторыми недостатками — от мягкого железа деталей до иногда само откручивающегося крепежа. Если первое можно было исправить, взяв комплект от другого производителя, то второй недостаток можно было исправить, только купив новые болты и гайки. На деле же к этому прибегать не пришлось, но стоит учесть в будущем.
Но вернемся к деталям — встал вопрос, а что делать? Было решено построить для начала четырехколесную тележку с двумя независимыми мотор-колесами, энкодерами, блютус и управлением со смартфона. В дальнейшем эту тележку планировалось дополнить датчиками и сделать автономной и управляемой по заданной программе.
После некоторого времени кручения железяк конструктора и прикидывания куда и что разместить, родилась следующая конструкция. Собираем основание тележки с мотор-редукторами и энкодерами.
Собираем основание тележки с мотор-редукторами и энкодерами.
Основание тележки мы собираем из двух симметричных половинок. Я буду использовать терминологию для деталей из официальной инструкции набора. Сначала прикрепляем к большой панели пластик 50×20 двумя винтами. Это будет изолирующее основание для энкодеров. Вы можете их не ставить — для управления по блютус или базовых задач по робототехнике они не обязательны.
К боковой стороне прикручиваете две детали — планку сегментную 2 и планку с тремя отверстиями.
Далее устанавливаете скобу I и уголок I как показано на фото. Энкодеры прикручиваете винтами с гайками М3 (у меня под рукой были только M3x15). Скобы чуть отгибаете. Наклон будет нужен для размещения мотор-редуктора в правильном положении.
Устанавливаете мотор-редуктор с припаянными проводами и заизолированной зоной пайки, так чтобы он попал выступом в паз на сегментной планке и закрепляете на ней же винтом с гайкой M3. У меня не было длинного винта M3 длиной 25-30 мм, поэтому я использовал просто винт M3x15, который вставил в отверстие мотор-редуктора. Обращаем внимание на энкодеры, если вы их поставили.
Фиксируем мотор уголком I и зеркально собираем вторую половину основания и скрепляем их между собой.
Колеса
Наша тележка пока имеет только два колеса. Так как мы не планируем делать балансирующего робота, то ей надо добавить еще точки опоры. Вариантов было несколько — третье колесо, два колеса на одной оси или колеса на независимых осях.
От одного колеса сразу отказались — сделать шарнир нужного свойства из оставшихся деталей было проблематично. Решил сделать конструкцию с независимыми колесами (на фото показана тележка уже со смонтированной электроникой, так как сначала собрал неудачный вариант с колесами на общей оси и в итоге переделывал конструкцию уже после сборки всего робота).
Для сборки одной оси нам понадобятся шпилька L=75M4, колесо большое, уголок I, диск большой и винты с гайками. Главная задача при сборке — ось должна быть закреплена неподвижно и законтрена вторыми гайками, а колесо, наоборот, должно вращаться свободно с небольшим люфтом.
Электроника
Переходим к электронике. Так как у нас экспериментальный робот, то все соединения мы будем делать на макетной плате, а также использовать для управления плату Arduino Leonardo.
Из Панели, 4-х Уголков I, пластика 50×20, Скобы большой и 6 стоек под плату 10×3 (можно использовать три стойки и три винта M3x5) сооружаем каркас для установки макетной платы и платы Arduino.
Далее закрепляем на двусторонний скотч макетную плату 10×17 со сдвигом, так как нам надо будет разместить драйвер двигателя. Если у вас драйвер двигателя с прямыми ножками подключения, вы можете не делать такой сдвиг — главное, чтобы после установки платы Ардуино у вас было место для установки остальных плат. Прикручиваем плату Arduino (я использовал опять же стойки, так как у меня их был избыток, а гаек M3 недостаток.
Устанавливаем на макетную плату Bluetooth модуль, плату драйвера и подключаем все провода к макетной плате и плате Arduino по схеме. Энкодеры можно подключить к питанию и Arduino, но я пока их не использовал.
После решил защитить провода и зафиксировать блютус модуль от разбалтывания, поэтому собрал вот такую «защиту» для передней части нашего робота (у нас передние колеса ведущие). Для этого использовали детали: Скоба II — 2 шт, Планка с 10 отв. — 2 шт., Пластик 75×100.
Программное обеспечение
На деле это самая простая часть — в Интернет полно примеров, как заставить такую тележку «бегать» управляя ей со смартфона или другим способом. Для этого используется передача через Serial порт команды в виде буквы и ее последующая обработка. Используя данные производителя платы драйвера двигателей по разводке и таблицу истинности легко задать скетч для Arduino. Конечно, легко на словах — я потратил 4 часа, пытаясь найти проблему работы скетча. Как оказалось для Arduino Leonardo (что кстати написано в документации на сайте) надо использовать Serial1, вместо простого Serial. Поэтому если у вас плата, отличная от Leonardo, используйте нужную подпрограмму для вашей платы (для UNO, к примеру замените все Serial1 на Serial в тексте). Сам код можно найти по ссылке.
Посмотрев код видно, что мы используем стандартную раскладку WASD для движения и T для остановки.
После того как зальете программу в плату, проверьте что моторы подключены правильно и крутятся в нужную сторону, открыв терминал в Arduino IDE и передавая символы команд. Также можете поэкспериментировать со значением PWM.
Теперь приложение для Android. Тут тоже все достаточно просто: мы воспользуемся конструктором приложений MIT AppInventor 2 и создадим вот такую программу. В ней мы используем события TouchUp и TouchDown к элементам управления, передавая символ движения при его касании и остановки при отпускании.
Вы можете установить на смартфон специальное приложение для отладки или сформировать пакет для установки на Android смартфон, подключить к тележке батарею (я использовал внешний аккумулятор для смартфона), подключить bluetooth устройство (HC-06 в моем случае) и наслаждаться тем, что вы сами создали радиоуправляемую тележку.
А далее дело за вашей фантазией по превращению в робота. Можете поставить ультразвуковой датчик расстояния и сделать так, чтобы тележка не натыкалась на препятствия. Можете прикрутить фотодатчики и заставить робота ездить по линии. Можете поставить по периметру датчики касания или прикрутить видеокамеру и погрузиться в мир CV. Основа у вас есть, а металлический конструктор не так страшен в создании новых элементов.
roboforum.ru
Доброй ночи.
Давно загорелся идеей создания робота газонокосилки и сейчас делаю спецификацию всего что надо купить.
И вот возник вопрос, как прикрепить квадратный штифт, стеклоподъемника от ваза к колесу.
Вот штифт:
http://pokrovavto.com.ua/img/793d35ca-586c-11e5-ab2e-60a44c2c824d.jpg
Понятно, что с внешней стороны надо крепить вал к самому корпусу колеса с двух сторон, как у автора ниже, но как переход сделать с квадрата на круг? Может кто сталкивался?
Или может вообще сделать дырку в квадрате и в него шуруп загнать? Или вообще другие двигатели взять?
Нашел на этом форуме топик, про такого робота, вот ссылка прям на страницу с вопросом и ответом, но деталей так и не увидел.
http://roboforum.ru/forum10/topic6195.html?hilit=%D0%B3%D0%B0%D0%B7%D0%BE%D0%BD%D0%BE%D0%BA%D0%BE%D1%81&start=270
Заранее спасибо за советы!
Re: Крепление мотора к колесу
Myp » 13 июл 2020, 12:29
Re: Крепление мотора к колесу
GarageMeister » 13 июл 2020, 17:36
Хм, получается надо головку (квадрат-шестигранник) + шестигранник на шток обрезать + подшипник и плюс как-то, я не понимаю как прикрепить это все к колесу. Я к сожалению новичок и мне все хочется сильно проще сделать, возможно есть вариант с другим двигателем?
Т.е. у меня сама проблема в том чтобы подобрать двигатель и прикрепить к нему колесо, смотрю вот сюда, если взять этот двигатель и снять крыльчатку то получается что у него на конце резьба под гайку и можно сразу же колесо на втулку и затянуть?
https://www.avtoall.ru/ventilyator_vaz_m_2141_zmz_402_lektricheskiiy_v_sbore_megapower-550370/
Может есть какие-то паттерны готовые?
Кто мучился.
Re: Крепление мотора к колесу
Myp » 14 июл 2020, 13:15
конечно есть, очень хороший паттерн — не использовать стеклоподъёмники.
Re: Крепление мотора к колесу
GarageMeister » 14 июл 2020, 14:05
Спасибо за детальный разбор и изображение!
А можете помочь подобрать комплект двигатель/крепление к колесу/колесо и самое главное, чтобы это не на али все заказывать и колхоза не было и три года не ждать? (за вознаграждение)
Т.е. я смотрел и в сторону шаговых двигателей NEMA 17-32, но опять же упирался в то что как их крепить к колесам, те колеса которые продаются в магазинах ардуино они маленькие и для нормальной платформы не идут, те же что продаются в строймагазинах у них диаметр втулки не соответствует диаметру вала двигателя, переходы непонятные нужны и в итоге везде колхоз.
И тут может я в иллюзиях летаю, может ничего этого так не собрать, а надо брать двигатель, тот же nema и заказывать печать колеса на 3д принтере и не мучиться?
Re: Крепление мотора к колесу
esisl » 14 июл 2020, 15:08
Re: Крепление мотора к колесу
Myp » 14 июл 2020, 18:43
1. Шаговики скорей всего не подойдёт, количество ситуаций когда шаговик можно использовать для колёс робота очень мало и это явно не тот случай.
2. Для привода газонокосилки, мотор должен быть с редуктором, либо по отдельности и соединяться, либо специальный мотор-редуктор в сборе.
Из простого и дешевого это редукторы детских автомобильчиков типа таких https://aliexpress.ru/item/4000231991264.html
Самый простецкий 530 рублей в китае, у нас тоже продаются, но само собой раза в 2-3 дороже.
плюс переходник https://www.aliexpress.com/item/32287466315.html который уже прикрутить к колесу, там на картинке варианты крепления разные есть.
чуть более удобны чем моторы стеклоподъёмников это моторы стеклоочистителей, там вал круглый с гайкой и они рассчитаны на непрерывную работу, плюс там обычно есть 2 скорости вращения, можно выбрать подходящую.
ну и ещё источник моторов и редукторов для рукоблудства это шуруповёрты, самый дешевый за тыщу или полторы можно найти, там зато в комплекте и аккумулятор будет, для пробы сгодится.
но с ними надо тоже изобретать крепление для колеса.
Re: Крепление мотора к колесу
esisl » 14 июл 2020, 18:51
Re: Крепление мотора к колесу
GarageMeister » 15 июл 2020, 11:57
Два дня думал и понял что все это колхоз и если делать более или менее нормально то надо идти по другому.
В связи с чем два вопроса:
2. Сделать колесо на 3д принтере сразу с отверстием под вал 4-6мм, в зависимости от двигателя и закрепить как обычную муфту переходну на
шуруп сбоку/сверху. Правда колесо нужно вот такое https://www.robomow.com/wp-content/uploads/2018/02/SPP9001A_1.jpg (170-200 мм), а вал всего 4 мм, вот что смущает.
Re: Крепление мотора к колесу
Myp » 15 июл 2020, 12:59
Сначала со скоростью вращения определись, у одного 40, а у второго 20 оборотов в минуту, скорость газонокосилки в 2 раза будет отличаться.
И с напряжением, один на 24 вольта второй на 12, бывают на 6, от этого зависит какой драйвер надо покупать и какие аккумуляторы (по моему мнению лучше высоковольтные, у них меньше ток, не нужные мощные драйвера, не нужны толстые провода и мощные разъёмы).
Компоненты шасси надо выбирать исходя из веса всей конструкции, если у тебя там под 10 кг ящик сварной из железных труб то колесо прямо на валу 4 мм плохая идея, редуктор долго не проживёт.
К этим моторам обычно фланец берут, т.к. надевать пластиковое колесо просто на короткий тонкий вал плохая идея, робот упрётся в стенку и провернёт вал в пластике.
Что-то типа такого http://dvrobot.ru/240/334/336/1145.html прикрутить 4 ботами к колесу.
Моторы сразу рекомендую брать с энкодером http://dvrobot.ru/240/286/287/405/3179.html с ними можно управлять траекторией движения.
Re: Крепление мотора к колесу
GarageMeister » 15 июл 2020, 14:25
Теперь по двигателям, в наличии в Москве вижу только вот такие двигатели, но ценник правда 4500 за штуку(ig16-gm).
[url]https://stepmotor.ru/каталог/мотор-редуктор-ig-16gm04-1316[/url]
И непонятно с энкодером или нет. Видно реально тол ко из китая тащить.
Я так понимаю нужен 24 вольта, по оборотам, наверное 60-80 их же можно регулировать драйвером двигателя ln?
Re: Крепление мотора к колесу
GarageMeister » 16 июл 2020, 00:23
В итоге спецификация такая получается:
— Моторы с редукторами на привод, 12 вольт 20 об/мин или 50 об/мин (2шт.) — покупаем здесь http://roboparts.ru/products/zga25rp-20-ob-min-12v
— Мотор с редуктором для вращения лезвия, 12 вольт 1000 об/мин (1шт.) покупаем здесь http://roboparts.ru/products/zga25rp-1000-ob-min-12v
— Крепеж (под вопросом) 2 шт. — покупаем здесь http://roboparts.ru/products/30760177
— Фланцы/втулки на вал 4 мм (3 шт.) — покупаем здесь https://iarduino.ru/shop/Mehanika/vtulk . l-4mm.html
— Драйвер управления двигателями l298n (1 шт.) — покупаем здесь https://iarduino.ru/shop/Expansion-paym . l298n.html
— Arduino Mega 2560 (есть) — 1шт., но купить можно здесь например — https://amperka.ru или https://iarduino.ru
— Аккумулятор Delta DT 1207 — 1шт., можно купить здесь — https://www.vseinstrumenti.ru/rashodnie . -/dt-1207/
— Колеса приводные — заказываем 3д печать — пока не выбрал где:)
— Колеса стабилизационные — 1-2 шт. берем здесь — https://www.castorama.ru/koleso-mebel-n . 0-mm-seroe
— Временная платформа (1-2) металлические пластины плоские — вот тут можно взять по размеру https://www.castorama.ru/hardware/faste . ting-tapes
— Уголки-пластины (2 шт.) вот тут например — https://www.castorama.ru/hardware/ungles
— Ножи например эти — https://gardengear.ru/catalog/aksessuar . id_12_sht/
— Переходная полка между втулкой/муфтой двигателя и ножами — пластик — 3д печать
Буду признателен за замечания/предложения
Спасибо!
Re: Крепление мотора к колесу
Myp » 16 июл 2020, 01:37
1. моторы слишком слабые, там 2 ватт мощности и вал всего 4 мм, я бы что-то такое посмотрел, на 22 ватта http://roboparts.ru/products/zgb37rh-15-ob-min-12v и валом 6мм.
конечно можно снизить скорость вращения мотора драйвером, но мощность сильно упадёт, так что скорость вращения лучше сразу подобрать нужную.
2. для вращения лезвия нужен гораздо более высокооборотистый мотор и гораздо более мощный, у обычной робокосилки 4 тыщи оборотов и 60 ватт мощности, а ты выбрал на 1.2 ватта и тыщу оборотов. что-то вроде http://roboparts.ru/products/xd-3420-mo . 000-ob-min
мотор косилки можно включать просто реле, поищи реле для ардуины.
3. драйвер для слабых моторов подойдёт, но т.к. моторы не годятся, то и драйвер тоже мимо. Для мощных моторов драйвер можно такой посмотреть https://iarduino.ru/shop/Expansion-paym . anala.html
4. свинцовые аккумуляторы — барахло, но в принципе для первого раза сойдёт, по хорошему нужен li-ion с BMS контроллером.
и да, стоит понимать что в первый раз возможно что-то сдохнет и придётся покупать заново =)
Присоединение ведущего колеса к валу ШД
Присоединение ведущего колеса к валу ШД может представлять определенную проблему. На рис. 10.9 показан один из вариантов ее простого решения. Найдите пластмассовую шестерню большого диаметра с фиксирующим винтом. Осевое отверстие шестерни должно совпадать с диаметром вала ШД. Приложите шестерню к ведущему колесу по центру. Просверлите три сквозных отверстия на окружности шестерни через 120°. Скрепите ведущее колесо и шестерню с помощью винтов, гаек и шайб. Затем наденьте шестерню на вал ШД и закрепите ее фиксирующим винтом.
Рис. 10.9. Соединение ведущего колеса с валом двигателя
Данный текст является ознакомительным фрагментом.
Продолжение на ЛитРес
Читайте также
Колеса
Колеса Еще одной проблемой для новичков являются колеса. К примеру, начинающие водители частенько забывают проверить состояние колес, прежде чем отправиться в дорогу. Речь даже не идет о проверке давления в шинах! Забывают и об обычном визуальном осмотре. Недавно автору
Все четыре колеса…
Все четыре колеса… Ни защитная надувная подушка, ни надувные резиновые бамперы для смягчения удара при столкновении, ни надувное запасное ветровое стекло (тоже полезная вещь!) не могут считаться главным применением воздушной подушки на автомобиле. На первое место нужно
3. Самовращающиеся колеса и неуравновешенные грузы
3. Самовращающиеся колеса и неуравновешенные грузы Можно смело утверждать, что все ранние попытки построить вечный двигатель связывались с созданием такого колеса, которое вращалось бы само по себе. Нетрудно понять, почему именно колесо оказалось в центре внимания
5. Капиллярное притяжение и колеса из губок
5. Капиллярное притяжение и колеса из губок Читателю, вероятно, приходилось наблюдать, как намокает полотенце, забытое на краю наполненной водой ванны. Происходит это оттого, что вода под действием так называемого капиллярного притяжения, пропитывая ткань, начинает
9.2. Получение Технических условий и Разрешения на присоединение мощности
9.2. Получение Технических условий и Разрешения на присоединение мощности Данный этап оформления договора энергоснабжения регламентируется (для нашего примера) требованиями Службы присоединения и перспективного развития (СПиПР) ОАО «Московская городская
Глава 2 ПОЛУЧЕНИЕ ТЕХНИЧЕСКИХ УСЛОВИЙ И/ИЛИ РАЗРЕШЕНИЯ НА ПРИСОЕДИНЕНИЕ МОЩНОСТИ
Глава 2 ПОЛУЧЕНИЕ ТЕХНИЧЕСКИХ УСЛОВИЙ И/ИЛИ РАЗРЕШЕНИЯ НА ПРИСОЕДИНЕНИЕ МОЩНОСТИ Вопрос 39. Кто имеет право на технологическое присоединение своих энергопринимающих устройств (энергетических установок) к электрическим сетям?Ответ. В соответствии с ФЗ «Об
Грузовые автомобили. Колеса
Грузовые автомобили. Колеса Трудно найти в настоящее время человека, который бы не представлял, что обозначает слово «машина». Слово и понятие настолько прочно вошли в наш лексикон, что многие не задумываются над тем, какой глубокий смысл заложен в нем.В политехническом
Изобретение колеса
Изобретение колеса Современные автомобили в том виде, в котором мы привыкли их видеть, сконструированы несколько десятков лет назад, история их изобретения насчитывает несколько сотен лет, а история изобретения колесных повозок несколько тысячелетий.А до этого прошли
Колеса грузовых автомобилей
Колеса грузовых автомобилей У грузовых автомобилей устанавливают дисковые и бездисковые (автомобиль КамАЗ) колеса с пневматическими шинами. В результате сцепления ведущих колес с дорожным покрытием их вращательное движение преобразуется в поступательное движение
DIY: Arduino управляемый робот для игры в пинг-понг. Пошаговая инструкция по созданию
Эта пусковая установка для пинг-понга управляется от Arduino.
Конструкция использует сервопривод для распределения шариков и два двигателя с колесами для скорости и ловкости толчков.
Все части можно распечатать с помощью 3D печати, а основу можно сделать с помощью ЧПУ или лазерного резака. Вы можете найти все файлы, прикрепленные к инструкции ниже.
В этом видео этот робот установлен на Magabot и управляется пользователем Skype.
Шаг 1. Соберите все детали:
Вам нужно разделить необходимые детали на две группы: 3D печатные и другие, которые вы должны купить.
- основное тело робота
- держатель для сервопривода
- два колеса
- два держателя для двигателей
- ПВХ основа
- сервопривод
- два двигателя
- два уплотнительных кольца
- болты
- Arduino и контроллер двигателя
- шарики для пинг-понга.
Исходные файлы:
Шаг 2. Установите держатель для серводвигателя:
Это сделать очень просто. Вам понадобится использовать два болта, чтобы присоединить держатель для сервопривода к основному корпусу. Смотрите фото в качестве образца.
Шаг 3. Прикрепите серводвигатель:
Установите сервопривод на специальную поддержку, которую вы подготовили в предыдущем шаге с помощью двух винтов. По желанию закрепите его стяжкой.
Для правильной подачи шаров возможно придется поотрезать некоторые лопасти сервопривода, как показано на картинке.
Шаг 4. Прикрепите держатель для двигателя к корпусу:
Для этого просто прикрутите болтами держатель к основному корпусу и вставьте двигатели на свои места.
Совет: чтобы сохранить направление течения тока, вы можете использовать сверло, чтобы прикрутить двигатели.
Шаг 5. Установите колеса:
К двум колесам добавьте специальные уплотнители и прикрепите готовые колеса к основному корпусу конструкции, как показано на картинке.
Шаг 6. Установите главный корпус к основе и прикрепите колеса к двигателям:
Прикрепите колеса к валам двигателей и убедитесь, что они надежно закреплены.
С помощью четырех шурупов установите основной корпус робота к основе.
Шаг 7. Добавьте трубку ПВХ:
Если вы хотите иметь возможность играть с более чем двумя шарами в одно и то же время, вы можете добавить трубку из поливинилхлорида к верхней части робота.
Шаг 8. Управление наклонами:
Данная часть проекта является второстепенной и необязательной, но мы рекомендуем вам всё же сделать это.
Этот этап позволит управлять наклонами вашей конструкции.
Соберите детали. Как и в первой части, необходимые детали нужно разделить на две группы:
Готовые части:
- две опоры для серводвигателя
- расширитель для серводвигателя
- ПВХ основа
Другие части:
- сервопривод
- две крепежные петли
- болты и прокладки.
Шаг 9. Установите опоры и крепежные петли:
С помощью болтов закрепите крепежные петли на корпусе, как показано на картинке.
Шаг 10. Добавьте серводвигатель:
Используйте винты для крепления опор, а затем установите серводвигатель.
Для того, чтобы увеличить подъем серводвигателя, вы можете использовать расширитель, который показан на картинке.
Шаг 11. Прикрепите полученное устройство к общей конструкции :
Используйте гайки и болты для крепления двух крепежных петель к пусковой установке.
Шаг 12. Подключите Arduino:
Чтобы управлять этим устройством с помощью Arduino, вам нужны два цифровых порта для сервоприводов и два для двигателей.
Вы можете использовать 4 порта, 2 для каждого двигателя, но поскольку необходимо, что бы серводвигатели вращались в одном направлении, вы можете просто подключить два других порта к основе.
На картинке вы можете видеть схему и код Arduino, который прилагается. Можно использовать любой двигатель.
Шаг 13. Развлекайтесь!
Ваш робот для игры в пинг-понг готов. Он может применяться и в других приложениях, показанных в видео. Но это не все. Проявите фантазию и придумайте, как ещё можно его использовать!