В качестве драйвера двигателей используем микросхему L293D, входы которой подсоединим к выводам микроконтроллера так, как показано на схеме. В данном примере будет рассмотрен микроконтроллер ATmega8, хотя можно использовать и другой микроконтроллер (например, ATtiny26 или какой-либо микроконтроллер из семейства Mega).
Комментарий к схеме робота |
На схеме робота входы драйвера двигателей L293D подключены к выводам порта C микроконтроллера ATmega8, но их можно подключить к любому из портов микроконтроллера (при этом будет необходимо внести изменения в программную часть, указав порт и непосредственно его выводы в соответствующих строках программы, приводимой ниже).
Электролитический конденсатор C3 (1000 мкф, 10-25 в.) необходим для того, чтобы сгладить броски по питанию, вызванные работой моторов. Этот конденсатор очень важен. Именно он дает возможность работать схеме с необходимым уровнем стабильности. Вместо одного конденсатора можно использовать два. Номинал каждого из них в этом случае может быть около 470 мкф. При этом один из конденсаторов устанавливают в непосредственной близости от выводов питания микроконтроллера, а второй — рядом с выводом Vs микросхемы драйвера моторов L293D. Обеспечение стабилизации питания — один из важнейших аспектов проектирования устройств на микроконтроллерах.
Для того чтобы еще больше стабилизировать работу микроконтроллера, хорошим решением может служить керамический конденсатор емкостью около 0,1 мкф, подсоединенный между выводами питания VCC, GND (ножки 7 и 8) и располагающийся в непосредственной близости от них (на схеме не указан).
Механическая схема рассматриваемого робота должна быть собрана по «танковому» принципу: левый мотор передает движение на левое колесо, правый — на правое. По-другому такая механическая схема называется схемой с двумя ведущими колесами.
Видео:Как просто научиться программировать микроконтроллеры PIC и AVR / Бегущие огни за 8 минут!Скачать
Для того чтобы собранный робот «ожил», напишем для него программу. Откомпилируем ее и загрузим в микроконтроллер. (Как это сделать, см. в статьях: Makefile и компиляция программы; Программатор AVR. AVRDUDE. USB-программатор USBasp; Первый проект на микроконтроллере AVR.)
Отсоединив программатор, проверим направление вращения колес робота. Если моторы вращают колеса в противоположные стороны, поменяйте местами их выводы.
Следующим шагом будет создание программы, реализующей поворот на необходимый угол остановкой одного из моторов.
Изменяя время задержки, попробуйте добиться поворота на прямой угол так, чтобы траектория движения робота напоминала квадрат.
Для более быстрого разворота робота можно использовать реверс (вращение в противоположную сторону) одного из моторов. Написание такой программы будет хорошим практикумом для самостоятельного программирования движения робота.
Искусство роботов
Ежегодно проводимая Международная художественная выставка робототехнического искусства ArtBots: «Шоу талантов роботов» собирает тысячи посетителей.
Самая первая выставка ArtBots прошла еще в мае 2002 года в Бруклинском институте. А уже в июле 2003 года работу выставки освещали самые престижные газеты и журналы.
«Каждый год мы публикуем открытое приглашение для художников со всего мира принять участие в нашей выставке. Никаких формальных требований не существует: если Вы считаете, что это робот, и если Вы считаете, что это искусство, то можете смело отправлять заявку».
Хотя получившийся робот достаточно прост, с ним можно провести ряд интереснейших экспериментов, среди которых могут быть опыты по созданию рисующего робота и робота-танцора.
Для того чтобы сделать первого из них, достаточно укрепить на шасси робота цветной маркер, касающийся поверхности, по которой движется робот, и поставить робота на лист ватмана. Циклоидные рисунки такого арт-робота будут зависеть от написанной вами программы и, конечно же, вашей фантазии.
Если последовательно использовать на одном листе несколько толстых цветных маркеров разных цветов, под каждый из которых будет написана специальная программа, можно получить настоящие шедевры абстрактного искусства. Такие произведения робототехнического искусства сегодня экспонируются даже в престижных галереях.
Интересные результаты можно получить, используя маркеры и фломастеры разных типов, толщины и фактуры. Красиво выглядит фактурная прерывистая линия, оставляемая мягким толстым стеклографом. А самые необычные результаты дают подогреваемые восковые палочки для рисования. Устройство подогрева легко сделать из небольшого кусочка нихромовой проволоки и стеклянной трубки. (Батареи питания робота при этом быстро садятся.)
Видео:Простой робот на микроконтроллереСкачать
Как выглядит рисующий робот в работе, вы можете посмотреть на видеоролике в режиме он-лайн или скачать видеофайл.
Это оригинальная статья myROBOT.ru Постоянный адрес статьи: http://myrobot.ru/stepbystep/r_firstbot1.php |
Описание микросхемы управления двигателем L293D (англ.).
L293D.pdf
Описание микроконтроллера ATmega8 (англ.).
ATmega8.pdf
КАК СДЕЛАТЬ РОБОТА
Сделать робота можно, используя лишь одну микросхему драйвера моторов и пару фотоэлементов. В зависимости от способа соединения моторов, микросхемы и фотоэлементов робот будет двигаться на свет или, наоборот, прятаться в темноту, бежать вперед в поисках света или пятиться, как крот, назад. Если добавить в схему робота пару ярких светодиодов, то можно добиться, чтобы он бегал за рукой и даже следовал по темной или светлой линии.
Принцип поведения робота основывается на «фоторецепции» и является типичным для целого класса BEAM-роботов. В живой природе, которой будет подражать наш робот, фоторецепция — одно из основных фотобиологических явлений, в котором свет выступает как источник информации.
В качестве первого опыта обратимся к устройству BEAM-робота, двигающегося вперед, когда на него падает луч света, и останавливающегося, когда свет перестает его освещать. Поведение такого робота называется фотокинезисом — ненаправленным увеличением или уменьшением подвижности в ответ на изменения уровня освещённости.
В устройстве робота, кроме микросхемы драйвера моторов L293D , будет использоваться только один фотоэлемент и один электромотор. В качестве фотоэлемента можно применить не только фототранзистор, но и фотодиод или фоторезистор.
В конструкции робота мы используем фототранзистор n-p-n структуры в качестве фотосенсора. Фототранзисторы на сегодняшний день являются, пожалуй, одним из самых распространенных видов оптоэлектронных приборов и отличаются хорошей чувствительностью и вполне приемлемой ценой.
На рисунке приведены монтажная и принципиальная схемы робота, и если Вы еще не очень хорошо знакомы с условными обозначениями, то, исходя из двух схем, несложно понять принцип обозначения и соединения элементов. Провод, соединяющий различные части схемы с «землей» (отрицательным полюсом источника питания), обычно не изображают полностью, а на схеме рисуют небольшую черточку, обозначающую, что это место соединяется с «землей». Иногда рядом с такой черточкой пишут три буквы «GND», что означает «землю» (ground). Vcc обозначает соединение с положительным полюсом источника питания. Вместо букв Vcc часто пишут +5V, показывая тем самым напряжение источника питания.
Принцип действия схемы робота очень простой. Когда на фототранзистор PTR1 упадет луч света, то на входе INPUT1 микросхемы драйвера двигателей появится положительный сигнал и мотор M1 начнет вращаться. Когда фототранзистор перестанут освещать, сигнал на входе INPUT1 исчезнет, мотор перестанет вращаться и робот остановится. Более подробно о работе с драйвером двигателей можно прочитать в предыдущей статье «Драйвер двигателей L293D».
Чтобы скомпенсировать проходящий через фототранзистор ток, в схему введен резистор R1, номинал которого можно выбрать около 200 Ом. От номинала резистора R1 будет зависеть не только нормальная работа фототранзистора, но и чувствительность робота. Если сопротивление резистора будет большим, то робот будет реагировать только на очень яркий свет, если — небольшим, то чувствительность будет более высокой. В любом случае не следует использовать резистор с сопротивлением менее 100 Ом, чтобы предохранить фототранзистор от перегрева и выхода из строя.
Видео:Макет сельскохозяйственного робота на микроконтроллере, часть 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.
Задача получившегося робота — реагировать на отраженный свет, который излучают светодиоды. Включим робота и поставим ладонь перед одним из фотосенсоров. Робот повернет в сторону ладони. Переместим ладонь немного в сторону так, чтобы она скрылась из поля «зрения» одного из фотосенсоров, в ответ робот послушно, как собачка, повернет за ладонью.
Светодиоды следует подбирать достаточно яркие, чтобы отраженный свет устойчиво улавливался фототранзисторами. Хороших результатов можно достичь при использовании красных или оранжевых светодиодов с яркостью более 1000 мКд.
Если робот реагирует на вашу руку только тогда, когда она почти касается фотосенсора, то можно попробовать поэкспериментировать с листочком белой бумаги: отражающие способности белого листа намного выше, чем у человеческой руки, и реакция робота на белый листок будет намного лучше и устойчивее.
Белый цвет обладает самыми высокими отражающими свойствами, черный — наименьшими. Основываясь на этом, можно сделать робота, следующего по линии. Сенсоры при этом следует расположить так, чтобы они были направлены вниз. Расстояние между сенсорами должно быть немного больше, чем ширина линии.
Cхема робота, следующего по черной линии, идентична предыдущей. Чтобы робот не терял черную линию, нарисованную на белом поле, ее ширина должна быть около 30 мм или шире. Алгоритм поведения робота достаточно прост. Когда оба фотосенсора улавливают отраженный от белого поля свет, робот движется вперед. Когда один из сеносоров заезжает на черную линию, соответствующий электромотор останавливается и робот начинает поворачиваться, выравнивая свое положение. После того как оба сенсора снова находятся над белым полем, робот продолжает свое движение вперед.
Примечание:
На всех рисунках роботов микросхема драйвера двигателей L293D показана условно (только управляющие входы и выходы).
Видео:АРДУИНО и Микроконтроллеры. Для Начинающих и не только! Создаём нашу первую программу на Ардуино.Скачать
💥 Видео
Программирование промышленного робота (часть 1)Скачать
Цикл уроков по программированию на C++ для Arduino. Часть 1.Скачать
Самое простое устройство на микроконтроллереСкачать
Arduino робот. Часть 1 : Концепция робота , выбор конструкции , идея нового модуля для роботов.Скачать
ЭТО МОЖЕТ СПАСТИ ВАМ ЖИЗНЬ! Тестирую разные УЗДП у себя в щитке! #энерголикбезСкачать
Простой робот с камерой | Orange pi | Raspberry pi | OpenCVСкачать
1 урок. Что такое микроконтроллер?Скачать
Как Сделать Робота на Arduino UNO / How to Make a Robot on Arduino UNOСкачать
STM32 или AVR. Как изучать программирование микроконтроллеров.Скачать
Лекция №1 "Микроконтроллеры" (Донов Г.И.)Скачать
Микроконтроллер: RP2040 Raspberry Pi Pico Часть 1 Начало работы с Micropython в PyCharm и Thonny IDEСкачать
Изучаем микроконтроллеры с электронным набором ЙОДОСкачать