Схема робота с мотором

Движение робота ev3 вперед повороты

14.09.2019, 20:24 , Источник: itrobo.ru, Администратор

На данном уроке мы познакомимся с понятием линейного алгоритма, разберемся, как программировать движение робота Ev3.Линейный алгоритм это набор последовательных команд, которые выполняются только один раз. Команды следуют одна за другой в строго заданном порядке.
Например, рассмотрим алгоритм движения робота по квадрату.
Движение вперед на 1 оборот
Поворот робота на 90 градусов направо
Движение вперед на 1 оборот
Поворот робота на 90 градусов направо
Движение вперед на 1 оборот
Поворот робота на 90 градусов направо
Движение вперед на 1 оборот
Перед тем как реализовывать линейные алгоритмы движения познакомился, как программировать простейшие команды движения робота EV3.
Движение вперёд робота ev3.

1 действие. Движение вперёд робота ev3. Моторы робоат ev3 подключаются к портам с буквами: A B C D Все повороты делаются на мощностях меньше 50.
Сбрасываем датчик моторов в ev3.

2 действие. Ставим цикл и в него ставим моторы на режиме «включить».

3 действие. Выставляем мощность мотора на 100.

4 действие. Заходим в цикл, выставляем вращение мотора «градусы».

5 действие. Полный оборот колеса 360 градусов.
6 действие. Остановка моторов в режиме «выключить».

Повороты робота EV3.Программа для поворота робота ev3

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

Поворот робота ev3 в другую сторону

1. действие. Чтобы поворачивать в другую сторону , необходимо поменять мощности моторов . Теперь мотор с портом A будет с отрицательной мощностью.

3 действие. Меняем порт мотора в конце цикла.

Движение робота EV3 назад

Чтобы обеспечить движение робота ev3 назад, устанавливаем отрицательную мощность обоих моторов .

Действие 1. В условии цикла необходимо будет поставить знак «меньше».

Действие 2. Ставим отрицательные значения градусов.

Задание на урок

1. Собрать робота Ev3 на двух моторах,

2. Запрограммировать движение по квадрату

3. Запрограммировать трассу «змейка», объехать две кегли.

Как построить робота – конструкция и схема

Как построить робота (от Travis Fagerness)

Начнем собирать робота, который будет следовать за линиями или стенами и избегать препятствий!

Обзор

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

  1. Многие наборы стоят дорого, поэтому он должен быть относительно недорог.
  2. Он должен быть простым в сборке, не требуя специального оборудования.
  3. Он должен быть простым в программировании, не требуя сложных IDE и программатора.
  4. Он должен быть мощным для расширяемости.
  5. Он должен запускаться от простого источника питания.
  6. Он должен быть способен следовать за линией или за стеной и избегать препятствий.

В этой статье я расскажу, как я решил выполнить эти требования.

Выбор компонентов

Первый шаг в любом проекте – выяснить, какие необходимы комплектующие. Чтобы быть полезным, роботу нужно несколько ключевых вещей: способ двигаться, думать и взаимодействовать с окружением. Чтобы снизить стоимость, мне нужно обойтись двумя колесами. Этот означает, что мне нужно управлять двумя отдельными двигателями, которые могут работать независимо друг от друга. Мне также нужна шаровая опора, на которую робот может опираться, чтобы скользить. У этого решения есть недостаток: робот не может перемещаться ни по каким поверхностям, кроме гладких полов. Я хочу, чтобы мозги были построены на базе какой-либо известной микроконтроллерной платформы. Так ему не понадобится программатор или руководство по использованию средств разработки. У робота должны быть датчики, которые позволяют ему знать о линиях, стенах и препятствиях. Я также хочу свести к минимуму количество разных мест для покупок, чтобы снизить итоговую стоимость доставки. Наконец, компоненты должны быть небольшими, потому что я хочу спроектировать плату для недорогого производства и оставаться в пределах бесплатной версии Eagle CAD.

Механика: двигатели, шестеренки, колеса

Я нашел пару веб-сайтов, которые предлагают различные двигатели и компоненты для роботов, но я остановился на Polulu из-за их цен и наличия всего необходимого. Продукты Tamiya выглядели неплохо. Комплект 70168 Double Gearbox Kit поставляется с шестеренками, двигателями и валами, что значительно упрощает механику. И он очень дешев! В нормальном режиме двигатели работают от 3В, но могут работать и от большего напряжения за счет сокращения срока службы. Поддерживается несколько передаточных чисел, поэтому я могу точно настроить скорость робота. Я остановился на самых дешевых колесах, которые подойдут к валу из этого комплекта, Tamiya 70101 Truck Tire Set. Этот комплект поставляется с четырьмя колесами, а мне нужны только два, но он стоит дешево, а запасные части лишними никогда не будут! Переднее колесо – это просто шаровая опора или пластиковый винт, чтобы робот мог скольких по полу.

Мозг робота: Teensy

Мозги: микроконтроллер

Существует несколько различных микроконтроллерных платформ, которые довольно популярны. Основываясь на популярности, очевидным выбором является какая-либо Arduino. Другие варианты: Teensy, Launchpad и Raspberry Pi. Pi слишком большой и прожорливый, Launchpad тоже слишком большой. В прошлом я использовал Teensy, и это был хороший опыт. Teensy немного дороже, чем Arduino Mini, но предлагает гораздо более мощную платформу. Последняя плата Teensy снабжена Cortex M4, который обладает достаточной мощностью для простого робота. Бонусом к Teensy является встроенный стабилизатор на 500 мА, который может быть использован для питания всех датчиков.

Взаимодействие: датчики

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

Питание: драйвер двигателя, батарея

Драйвер двигателя должен иметь возможность управлять трехвольтовыми двигателями, выбранными ранее. Я также хотел, чтобы он был масштабируемым на случай, если я захочу в будущем заменить двигатели. Я нашел драйвер всё в том же магазине. Он может работать с напряжениями 0–11 В и обеспечивать достаточно большие токи для двигателей, которые я захотел бы поставить в будущем. По поводу аккумулятора, я бы предпочел, чтобы робот работал на чем угодно. Teensy работает с напряжениями до 5,5 В, что означает, что можно использовать литиевый аккумулятор. Однако для лития требуется зарядное устройство, а я не хочу увеличивать расходы. Использование двух обычных батарей AA обеспечивает довольно много энергии без необходимости зарядного устройства. Недостатком является то, что они обеспечивают только

3 В и большие по размеру. Входное напряжение 3 В неже линейного стабилизатора Teensy на 3,3 В. Робот всё равно будет работать, потому что все компоненты, выбранные для Teensy, могут работать на более низком напряжении. Тем не менее, встроенный на Teensy стабилизатор напряжения стабилизировать не будет.

Дополнительные элементы

В какой-то момент я захотел, чтобы роботом можно было бы управлять через смартфон, и поэтому добавил на схему устройство BLE. Это не обязательно, чтобы следовать за линиями или стенами, но я подумал, что это будет отличное дополнение. Я также хочу, чтобы элементы можно было легко отключить, поэтому для подключения всего буду использовать на плате разъемы (мама).

Полный список компонентов

Обязательные компоненты

Тип компонента Модель компонента Стоимость
Микроконтроллер Teensy 3.2 19.80
Двигатель Tamiya 70168 9.25
Драйвер двигателя DRV8835 4.49
Шаровая опора Tamiya 70144 5.99
Датчик отражателя QTR-3RC 4.95
Колеса Tamiya 70101 4.10
Датчик расстояния Pololu 38kHz 5.95
Печатная плата Elecro 10x10cm 14.00
Держатель батарей Держатель батарей 2-AA 0.79
Общая стоимость без доставки $49.52

Дополнительные компоненты

Тип компонента Модель компонента Стоимость
Беспроводной модуль nRF51 Dongle 52.39
Разъемы Штырьковые разъемы 5.00

Схема

Для рисования схемы и макета я использую бесплатную версию Eagle CAD. Я создал пользовательские условные обозначения и площадки для монтажа для всех элементов, кроме платы Teensy, доступной для скачивания во второй части из данной серии статей. У Teensy есть библиотеки для Eagle. Вы можете заметить, что на схеме отсутствуют какие-либо простые устройства, такие как резисторы и конденсаторы. Это связано с тем, что каждая из этих плат является уже готовой платой с выводами, чтобы сделать сборку максимально простой. Любой современный чип, скорее всего, будет для поверхностного монтажа, что для любителя может вызвать затруднения. Схемы для каждой из этих плат доступны у соответствующих продавцов. Вот несколько ключевых моментов к этой схеме:

  • Я поместил перемычку между батареей и остальной частью схемы. Это полезно для отключения питания без снятия батарей, измерения тока или защиты с помощью диода от обратной полярности.
  • Все интерфейсы являются цифровыми, за исключением двух. Существует UART соединение между nRF51 и Teensy через выводы 9/10. Контроллер двигателя работает через ШИМ, который поступает через выводы 6 и 4 Teensy.
  • На схеме нет светодиода. Светодиод, который находится на Teensy, может использоваться для отладки или индикации.
  • Здесь нет кнопки. Я подумал о том, чтобы поставить кнопку на линию сброса Teensy, но решил сэкономить.
  • При программировании Teensy через USB вы должны либо разрывать небольшую дорожку, соединяющую Vin/Vusb, либо убедиться, что, когда подключен USB, батареи отключены.

Схема печатной платы робота

Заключение

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

КАК СДЕЛАТЬ РОБОТА

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

Принцип поведения робота основывается на «фоторецепции» и является типичным для целого класса BEAM-роботов. В живой природе, которой будет подражать наш робот, фоторецепция — одно из основных фотобиологических явлений, в котором свет выступает как источник информации.

В качестве первого опыта обратимся к устройству BEAM-робота, двигающегося вперед, когда на него падает луч света, и останавливающегося, когда свет перестает его освещать. Поведение такого робота называется фотокинезисом — ненаправленным увеличением или уменьшением подвижности в ответ на изменения уровня освещённости.

В устройстве робота, кроме микросхемы драйвера моторов L293D , будет использоваться только один фотоэлемент и один электромотор. В качестве фотоэлемента можно применить не только фототранзистор, но и фотодиод или фоторезистор.
В конструкции робота мы используем фототранзистор n-p-n структуры в качестве фотосенсора. Фототранзисторы на сегодняшний день являются, пожалуй, одним из самых распространенных видов оптоэлектронных приборов и отличаются хорошей чувствительностью и вполне приемлемой ценой.

На рисунке приведены монтажная и принципиальная схемы робота, и если Вы еще не очень хорошо знакомы с условными обозначениями, то, исходя из двух схем, несложно понять принцип обозначения и соединения элементов. Провод, соединяющий различные части схемы с «землей» (отрицательным полюсом источника питания), обычно не изображают полностью, а на схеме рисуют небольшую черточку, обозначающую, что это место соединяется с «землей». Иногда рядом с такой черточкой пишут три буквы «GND», что означает «землю» (ground). Vcc обозначает соединение с положительным полюсом источника питания. Вместо букв Vcc часто пишут +5V, показывая тем самым напряжение источника питания.

Принцип действия схемы робота очень простой. Когда на фототранзистор PTR1 упадет луч света, то на входе INPUT1 микросхемы драйвера двигателей появится положительный сигнал и мотор M1 начнет вращаться. Когда фототранзистор перестанут освещать, сигнал на входе INPUT1 исчезнет, мотор перестанет вращаться и робот остановится. Более подробно о работе с драйвером двигателей можно прочитать в предыдущей статье «Драйвер двигателей L293D».

Чтобы скомпенсировать проходящий через фототранзистор ток, в схему введен резистор R1, номинал которого можно выбрать около 200 Ом. От номинала резистора R1 будет зависеть не только нормальная работа фототранзистора, но и чувствительность робота. Если сопротивление резистора будет большим, то робот будет реагировать только на очень яркий свет, если — небольшим, то чувствительность будет более высокой. В любом случае не следует использовать резистор с сопротивлением менее 100 Ом, чтобы предохранить фототранзистор от перегрева и выхода из строя.

Сделать робота, реализующего реакцию фототаксиса (направленного движения к свету или от света), можно с использованием двух фотосенсоров.

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

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

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

Сделать поведение робота более живым можно, подав на входы INPUT2 и INPUT3 положительный сигнал (подключить их к плюсу источника питания): робот будет двигаться при отсутствии падающего на фотосенсоры света, а «увидев» свет, будет поворачивать в сторону его источника. Когда свет будет падать на оба сенсора, робот остановится.

Дорогой Бобот, а можно ли использовать в приводимой схеме простейшего робота какие-либо другие микросхемы, например L293DNE?

Конечно, можно, но видишь ли, в чем дело, дружище Бибот. Настоящая L293D выпускается только группой компаний ST Microelectronics. Все остальные подобные микросхемы являются лишь заменителями или аналогами L293D . К таким аналогам относятся L293DNE американской компании Texas Instruments, SCP-3337 от Sensitron Semiconductor. Естественно, что, как и многие аналоги, эти микросхемы имеют свои отличия, которые тебе будет необходимо учитывать, когда ты будешь делать своего робота.

А не мог бы ты рассказать об отличиях, которые мне необходимо будет учесть при использовании L293DNE.

С удовольствием, старина Бибот. Все микросхемы линейки L293D имеют входы, совместимые с TTL-уровнями*, но лишь совместимостью уровней некоторые из них не ограничиваются. Так, L293DNE имеет не только совместимость с TTL по уровням напряжения, но и обладает входами с классической TT-логикой. То есть на неподключенном входе присутствует логическая «1».

Прости, Бобот, но я не совсем понимаю: как же мне это учитывать?

Если на неподключенном входе у L293DNE присутствует высокий уровень (логическая «1»), то и на соответствующем выходе мы будем иметь сигнал высокого уровня. Если мы теперь подадим на рассматриваемый вход сигнал высокого уровня, говоря по другому — логическую «1» (соединим с «плюсом» питания), то на соответствующем выходе ничего не изменится, так как на входе у нас и до этого была «1». Если же мы подадим на наш вход сигнал низкого уровня (соединим с «минусом» питания), то состояние выхода изменится и на нем будет напряжение низкого уровня.

То есть получается все наоборот: L293D мы управляли с помощью положительных сигналов, а L293DNE нужно управлять с помощью отрицательных.

L293D и L293DNE можно управлять как в рамках отрицательной логики, так и в рамках положительной*. Для того чтобы управлять входами L293DNE с помощью положительных сигналов, нам будет необходимо подтянуть эти входы к «земле» подтягивающими резисторами.

Тогда, при отсутствии положительного сигнала, на входе будет присутствовать логический «0», обеспечиваемый подтягивающим резистором. Хитроумные янки называют такие резисторы pull-down, а при подтягивании высокого уровня — pull-up.

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

Ты совершенно правильно понял, дорогой Бибот. Номинал этих резисторов можно выбрать около 4,7 кОм. Тогда схема простейшего робота будет выглядеть следующим образом.

Причем от номинала резистора R1 будет зависеть чувствительность нашего робота. Чем сопротивление R1 будет меньше, тем чувствительность робота будет ниже, а чем оно будет больше, тем чувствительность будет выше.

А так как в данном случае нам нет необходимости управлять мотором в двух направлениях, то второй вывод мотора мы можем подключить напрямую к «земле». Что даже несколько упростит схему.

И последний вопрос. А в тех схемах роботов, которые ты привел в рамках нашей беседы, может быть использована классическая микросхема L293D?

Конечно, может. И я бы даже добавил, что использование pull-down резисторов для L293D будет вполне оправдано.

Чтобы сделать робота, «бегающего» за рукой, нам понадобятся два ярких светодиода (на схеме LED1 и LED2). Подключим их через резисторы R1 и R4, чтобы скомпенсировать протекающий через них ток и предохранить от выхода из строя. Расположим светодиоды рядом с фотосенсорами, направив их свет в ту же сторону, в которую ориентированы фотосенсоры, и уберем сигнал с входов INPUT2 и INPUT3.

Задача получившегося робота — реагировать на отраженный свет, который излучают светодиоды. Включим робота и поставим ладонь перед одним из фотосенсоров. Робот повернет в сторону ладони. Переместим ладонь немного в сторону так, чтобы она скрылась из поля «зрения» одного из фотосенсоров, в ответ робот послушно, как собачка, повернет за ладонью.
Светодиоды следует подбирать достаточно яркие, чтобы отраженный свет устойчиво улавливался фототранзисторами. Хороших результатов можно достичь при использовании красных или оранжевых светодиодов с яркостью более 1000 мКд.

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

Белый цвет обладает самыми высокими отражающими свойствами, черный — наименьшими. Основываясь на этом, можно сделать робота, следующего по линии. Сенсоры при этом следует расположить так, чтобы они были направлены вниз. Расстояние между сенсорами должно быть немного больше, чем ширина линии.

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

Примечание:
На всех рисунках роботов микросхема драйвера двигателей L293D показана условно (только управляющие входы и выходы).

Читайте также:  Кпд теплового двигателя равен 40 процентов газ получил от нагревателя 5кдж
Оцените статью