ПРОСТОЙ РОБОТ НА МИКРОКОНТРОЛЛЕРЕ (Часть 1)

В качестве драйвера двигателей используем микросхему L293D, входы которой подсоединим к выводам микроконтроллера так, как показано на схеме. В данном примере будет рассмотрен микроконтроллер ATmega8, хотя можно использовать и другой микроконтроллер (например, ATtiny26 или какой-либо микроконтроллер из семейства Mega).

Комментарий к схеме робота

Дорогой Бобот, на некоторых других схемах я встречал дополнительные элементы, например резистор, подтягивающий вывод RESET к питанию, или конденсатор, шунтирующий RESET на «землю».
Так ли они необходимы?

Это очень хороший вопрос, старина Бибот. Внешний pull-up резистор, о котором ты говоришь, подключают к выводу RESET для предотвращения случайного сброса микроконтроллера при просадках питания, а конденсатор — для дополнительной защиты линии RESET от внешних помех. В приводимой схеме их нет по следующей причине: микроконтроллеры AVR второго поколения уже имеют для линии RESET встроенный подтягивающий резистор, номинал которого калибруется на заводе Atmel таким образом, чтобы обеспечить максимально устойчивую работу чипа без использования внешнего подтягивающего резистора [1]. А если ты заглянешь в атмеловский апноут «AVR042: AVR Hardware Design Consideration» (PDF), то об упомянутом тобой конденсаторе сможешь прочитать следующее: «Это непосредственно не требуется с тех пор, как AVR имеют low-pass фильтр, чтобы устранить пики и шум, которые могли бы вызвать сброс».

Представленная схема максимально упрощена и является самым простым примером для первых опытов по построению робота на микроконтроллере. А для того чтобы уберечь микроконтроллер от возможных просадок питания в схему, как ты можешь видеть, введен конденсатор номиналом 1000 мкф, который играет роль накопителя энергии и обеспечивает нормальное функционирование микроконтроллера. Стоит также добавить, что роботы, построенные в точном соответствии со схемами, приводимыми в курсе «Шаг за шагом», при всей своей простоте являлись неоднократными участниками и победителями соревнований Российской олимпиады роботов, Открытого робототехнического турнира на Кубок политехнического музея, Всероссийского робототехнического фестиваля, соревнований Фестиваля науки в Москве.

А что мне добавить в схему в первую очередь, если я захочу сделать ее более защищенной?

Начни с цепи сброса, о которой мы только что говорили. Подключи внешний подтягивающий резистор номиналом от 4,7 до 10 кОм так, как показано на следующем рисунке, и подключи вывод «аналогового» питания AVCC. Схема при этом усложнится не намного.

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

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

Абсолютно уверенным быть ни в чем нельзя (Бобот с сожалением посмотрел на свою беспричинно погасшую трубку). Но вот обеспечить некоторые меры, чтобы работа устройства была приближена к уровню стабильности промышленной автоматики, вполене можно. Об этом см. подробнее в статье «Подключение AVR: стабилизация работы микроконтроллера».


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

Электролитический конденсатор C3 (1000 мкф, 10-25 в.) необходим для того, чтобы сгладить броски по питанию, вызванные работой моторов. Этот конденсатор очень важен. Именно он дает возможность работать схеме с необходимым уровнем стабильности. Вместо одного конденсатора можно использовать два. Номинал каждого из них в этом случае может быть около 470 мкф. При этом один из конденсаторов устанавливают в непосредственной близости от выводов питания микроконтроллера, а второй — рядом с выводом Vs микросхемы драйвера моторов L293D. Обеспечение стабилизации питания — один из важнейших аспектов проектирования устройств на микроконтроллерах.

Для того чтобы еще больше стабилизировать работу микроконтроллера, хорошим решением может служить керамический конденсатор емкостью около 0,1 мкф, подсоединенный между выводами питания VCC, GND (ножки 7 и 8) и располагающийся в непосредственной близости от них (на схеме не указан).

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

Видео:Как просто научиться программировать микроконтроллеры PIC и AVR / Бегущие огни за 8 минут!Скачать

Как просто научиться программировать микроконтроллеры PIC и AVR / Бегущие огни за 8 минут!

ПРОСТОЙ РОБОТ НА МИКРОКОНТРОЛЛЕРЕ (Часть 1)

Для того чтобы собранный робот «ожил», напишем для него программу. Откомпилируем ее и загрузим в микроконтроллер. (Как это сделать, см. в статьях: Makefile и компиляция программы; Программатор AVR. AVRDUDE. USB-программатор USBasp; Первый проект на микроконтроллере AVR.)

Отсоединив программатор, проверим направление вращения колес робота. Если моторы вращают колеса в противоположные стороны, поменяйте местами их выводы.

Следующим шагом будет создание программы, реализующей поворот на необходимый угол остановкой одного из моторов.

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

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

ПРОСТОЙ РОБОТ НА МИКРОКОНТРОЛЛЕРЕ (Часть 1)

Искусство роботов

Ежегодно проводимая Международная художественная выставка робототехнического искусства ArtBots: «Шоу талантов роботов» собирает тысячи посетителей.
Самая первая выставка ArtBots прошла еще в мае 2002 года в Бруклинском институте. А уже в июле 2003 года работу выставки освещали самые престижные газеты и журналы.
«Каждый год мы публикуем открытое приглашение для художников со всего мира принять участие в нашей выставке. Никаких формальных требований не существует: если Вы считаете, что это робот, и если Вы считаете, что это искусство, то можете смело отправлять заявку».

ПРОСТОЙ РОБОТ НА МИКРОКОНТРОЛЛЕРЕ (Часть 1)

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

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

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

ПРОСТОЙ РОБОТ НА МИКРОКОНТРОЛЛЕРЕ (Часть 1)

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

Видео:Простой робот на микроконтроллереСкачать

Простой робот на микроконтроллере

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

Это оригинальная статья myROBOT.ru
Постоянный адрес статьи: http://myrobot.ru/stepbystep/r_firstbot1.php

Описание микросхемы управления двигателем L293D (англ.).
L293D.pdf

Описание микроконтроллера ATmega8 (англ.).
ATmega8.pdf

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

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

ПРОСТОЙ РОБОТ НА МИКРОКОНТРОЛЛЕРЕ (Часть 1)

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

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

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

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

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

ПРОСТОЙ РОБОТ НА МИКРОКОНТРОЛЛЕРЕ (Часть 1)

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

ПРОСТОЙ РОБОТ НА МИКРОКОНТРОЛЛЕРЕ (Часть 1)

Видео:Макет сельскохозяйственного робота на микроконтроллере, часть 1.Скачать

Макет сельскохозяйственного робота на микроконтроллере, часть 1.

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

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

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

ПРОСТОЙ РОБОТ НА МИКРОКОНТРОЛЛЕРЕ (Часть 1)

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

ПРОСТОЙ РОБОТ НА МИКРОКОНТРОЛЛЕРЕ (Часть 1)

Сделать поведение робота более живым можно, подав на входы 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.

ПРОСТОЙ РОБОТ НА МИКРОКОНТРОЛЛЕРЕ (Часть 1)

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

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

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

ПРОСТОЙ РОБОТ НА МИКРОКОНТРОЛЛЕРЕ (Часть 1)

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

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

Видео:АРДУИНО и Микроконтроллеры. Для Начинающих и не только! Создаём нашу первую программу на Ардуино.Скачать

АРДУИНО и Микроконтроллеры. Для Начинающих и не только! Создаём нашу первую программу на Ардуино.


💥 Видео

Программирование промышленного робота (часть 1)Скачать

Программирование промышленного робота (часть 1)

Цикл уроков по программированию на C++ для Arduino. Часть 1.Скачать

Цикл уроков по программированию на C++ для Arduino. Часть 1.

Самое простое устройство на микроконтроллереСкачать

Самое простое устройство на микроконтроллере

Arduino робот. Часть 1 : Концепция робота , выбор конструкции , идея нового модуля для роботов.Скачать

Arduino робот. Часть 1 : Концепция робота , выбор конструкции , идея нового модуля для роботов.

ЭТО МОЖЕТ СПАСТИ ВАМ ЖИЗНЬ! Тестирую разные УЗДП у себя в щитке! #энерголикбезСкачать

ЭТО МОЖЕТ СПАСТИ ВАМ ЖИЗНЬ! Тестирую разные  УЗДП  у себя в щитке! #энерголикбез

Простой робот с камерой | Orange pi | Raspberry pi | OpenCVСкачать

Простой робот с камерой | Orange pi | Raspberry pi | OpenCV

1 урок. Что такое микроконтроллер?Скачать

1 урок. Что такое микроконтроллер?

Как Сделать Робота на Arduino UNO / How to Make a Robot on Arduino UNOСкачать

Как Сделать Робота на Arduino UNO / How to Make a Robot on Arduino UNO

STM32 или AVR. Как изучать программирование микроконтроллеров.Скачать

STM32 или AVR. Как изучать программирование микроконтроллеров.

Лекция №1 "Микроконтроллеры" (Донов Г.И.)Скачать

Лекция №1 "Микроконтроллеры" (Донов Г.И.)

Микроконтроллер: RP2040 Raspberry Pi Pico Часть 1 Начало работы с Micropython в PyCharm и Thonny IDEСкачать

Микроконтроллер: RP2040 Raspberry Pi Pico Часть 1 Начало работы с Micropython в PyCharm и Thonny IDE

Изучаем микроконтроллеры с электронным набором ЙОДОСкачать

Изучаем микроконтроллеры с электронным набором ЙОДО
Поделиться или сохранить к себе:
Технарь знаток