Меню

Как сконструировать робота в домашних условиях. Сделать робота в домашних условиях самостоятельно? Легко

Кровельные материалы

Наденьте термоусадочные трубки на колесо мотора. Отрежьте кусок трубки, чтобы она была немного длиннее каждого колеса, наденьте на колесо и затяните ее с помощью зажигалки или паяльника. Вы можете сделать несколько слоев, чтобы увеличить диаметр и создать «шины».

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

Рычаги должны быть снаружи, рядом с проводами.

Положите металлическую полоску. Положите кусок алюминия размеров 2,5см на 7,5см за переключателем по центру и согните лишний кусок на 45 градусов. Приклейте его, используя горячий клей. Дайте клею остыть полностью, перед тем как продолжать.

Закрепите моторы к металлическим крыльям. Используя горячий клей, приклейте моторы к согнутой части металла, чтобы «шины» касались земли. Вам стоит обратить внимание на отметки зарядки на моторах, так как «шины» должны крутиться в противоположном направлении. Убедитесь, что один мотор перевернут по сравнению с другим.

Сформируйте заднее колесо. Вам понадобится заднее колесо, чтобы робот не таскал по земле свою заднюю часть. Возьмите большую скрепку и сформируйте ее, чтобы у вас получился ТАРДИС или дом с бусиной среднего размера на вершине. Положите ее на противоположной проводам стороне и закрепите на месте, приклеив края горячем клеем к сторонам гнезда для батареек.

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

  • Сначала спаяйте соединение обоих переключателей.
  • Дальше спаяйте маленький провод между двумя центральными соединениями на переключателях.
  • Спаяйте два провода, один из отрицательного мотора и один из положительного мотора, для конечного соединения переключателя.
  • Спаяйте провод длиннее между оставшимися соединениями мотора (соединив оба мотора вместе).
  • Спаяйте провод длиннее между задним соединением между мотором и задней частью гнезда для батареек, где отрицательный и положительный разряд соединяются.
  • Возьмите положительный провод из гнезда для батареек и припаяйте его к центру, касаясь соединений переключателей.
  • Отрицательный провод гнезда для батареек пойдет к центральному соединению на один из переключателей.
  • Создайте антенны робота. Отрежьте резиновые/пластиковые концы от запасных разъемов, выпрямите две скрепки (пока они не будут напоминать усики насекомых) и соедините запасные разъемы к антеннам, используя термоусадочные трубки.

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

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

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

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


    Схема робота с одним фототранзистором

    Из бесед Бибота и Бобота

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

    Конечно, можно, но видишь ли, в чем дело, дружище Бибот. Настоящая выпускается только группой компаний ST Microelectronics . Все остальные подобные микросхемы являются лишь заменителями или аналогами L293D . К таким аналогам относятся американской компании Texas Instruments , от 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 кОм до 33 КОм. Тогда схема простейшего робота будет выглядеть следующим образом.

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

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

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


    На рисунке приведены монтажная и принципиальная схемы робота, и если Вы еще не очень хорошо знакомы с условными обозначениями, то, исходя из двух схем, несложно понять принцип обозначения и соединения элементов. Провод, соединяющий различные части схемы с "землей" (отрицательным полюсом источника питания), обычно не изображают полностью, а на схеме рисуют небольшую черточку, обозначающую, что это место соединяется с "землей". Иногда рядом с такой черточкой пишут три буквы "GND", что означает "землю" (ground). Vcc обозначает соединение с положительным полюсом источника питания.$L293D=($_GET["l293d"]); if($L293D) include($L293D);?> Вместо букв Vcc часто пишут +5V, показывая тем самым напряжение источника питания.


    У фототранзистора эмиттер
    (на схеме со стрелкой)
    длиннее коллектора.

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


    Драйвер двигателей
    производства SGS-THOMSON Microelectronics
    (ST Microelectronics).

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

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

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


    Принципиальная схема робота с двумя фототранзисторами


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

    Монтажная схема простейшего робота с двумя фототранзисторами

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

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

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


    Схема робота, движущегося на отраженный свет

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

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

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

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

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

    Сейчас появилось великое множество возможностей, которые позволяют начать создавать роботов не имея каких-то супер-пупер особенных таких знаний. И это великолепно! Потому что запускает лавину познания.

    Причём начинать нужно не со знаний. Не знания должны быть паровозом. Знания это багаж, который едет в этом поезде. А что же тогда паровоз? А паровоз - это как раз незнание того, как бы так сделать, чтобы нечто делалось само собой. Строительство робота - это как раз обретение такого знания.

    Чтобы не погрязнуть в примерах давайте возьмём один только пример. Самый тривиальный пример. Пусть робот перемещается по комнате не впечатываясь в стены. Что нужно знать:

    1. Какой будет механика перемещений. (У большинства роботов есть механика, но бывают и бестелесные роботы, например, биржевые.) Если у вас нет знаний в этой области, то сразу начинайте их приобретать. Какие есть механизмы для перемещения, по ровной поверхности, по неровной, шагающие, на колёсах… Если на можете сделать такой механизм, найдите готовый. Разберите и соберите его заново, если это возможно.

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

    3. (самое важное) Как робот будет думать. Надо определиться в чём заключается его «мыслительная» деятельность. Для выбранного примера это всего лишь умение в нужные моменты времени включать и выключать N электродвигателей в зависимости от измеренного расстояния до стены впереди (как минимум). Для мыслительной деятельности роботу нужен программируемый блок с микропроцессором. Есть множество готовых платформ для конструирования роботов (Arduino, Матрёшка, Strawberry Pi, Iskra, Troyka и др. Опять приглашаю в комментарии: делитесь ссылками, спрашивайте)

    Сразу возникает вопрос: значит надо знать программирование? Строго говоря да. Но среди перечисленных платформ есть такие, в которых программирование осуществляется в визуальной среде без использования какого-либо конкретного языка программирования. (Т.е. внимание! Не обязательно знать программирование чтобы начать. Но естественно обязательно знать, чтобы продолжить)

    Вот три основных косточки, на которых надо иметь сухожилия начальных знаний и навыков, доступных даже ребёнку, и на которых потом наращивать мясо высших инженерных знаний:

    • строить механизмы из конструктора - в перспективе это весь спектр «механических наук»: физика (механика), детали машин и механизмов, сопромат, гидравлика и т.п.
    • знать, как обеспечивается взаимодействие с внешним миром (даже детские конструкторы сегодня снабжены модулями-датчиками) - в перспективе это программирование, сетевые протоколы, физика (электричество, оптика, акустика, радиолокация, и т.д.)
    • иметь начальное представление о программировании: переменные, алгоритмы - в перспективе программирование (разные языки и парадигмы программирования), алгоритмы и структуры данных, базы данных. Выбор языка программирования не принципиален, выбор очень широк, от визуальных сред для детей, но ассемблера конкретного микропроцессора. Вы сами можете выбирать в зависимости от имеющихся знаний

    Ну, и напоследок, для вдохновения посмотрите (и это не реклама, я к этому производителю не имею отношения (поделитесь другими примерами)) какие есть детские инструменты для создания роботов

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

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

    Можно даже добиться того, что Ваш сообразительный робот будет следовать только по светлой или, наоборот, темной линии,а можно сделать так, что мини-робот будет следовать за Вашей рукой - достаточно всего лишь добавить несколько ярких светодиодов в его схему!

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

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

    1. 2-е батарейки и корпус под них;

    2. Два моторчика (1,5 вольт каждый);

    3. 2-а SPDT выключателя;

    4. 3-и скрепки;

    4. Шарик из пластика с отверстием;

    5. Небольшой кусок одножильного провода.

    Этапы изготовления домашнего робота:

    1. Кусок провода нарезаем на 13 частей по шесть сантиметров и каждый с обеих сторон оголяем на 1 см.

    Паяльником присоединяем к SPDT выключателям по 3 провода,а к моторчикам - по 2 провода;

    2. Теперь берем корпус для батареек,с одной стороны которого от него отходят два разноцветных провода (скорее всего - черного и красного цветов). Нам нужно припаять еще один провод к другой стороне корпуса.

    Теперь нужно развернуть корпус для батареек и приклеить оба SPDT выключателя к стороне с припаянным проводом в форме латинской буквы V;

    3. После этого по обе стороны корпуса надо приклеить моторчики таким образом,чтобы они вращались вперёд.

    Затем берем большую скрепку и разгибаем ее. Протаскиваем разогнутую скрепку через сквозное отверстие пластикового шарика и распрямляем концы скрепки параллельно друг к другу. Приклеиваем концы скрепки к нашей конструкции;

    4. Как сделать домашнего робота так,чтобы он действительно мог объезжать препятствия? Важно спаять все установленные провода так,как изображено на фото;

    5. Делаем антенны из разогнутых скрепок и приклеиваем их к SPDT выключателям;

    6. Осталось вставить батарейки в корпус и домашний робот начнет движение, объезжая препятствия на своем пути.

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

    Как вы можете сами сделать робота с определенными принципами поведения? Целый класс подобных роботов создается с помощью BEAM-технологии, типичные принципы поведения которых основаны на так называемой "фоторецепции". Реагируя на изменение интенсивности освещения, такой мини-робот движется медленнее или,наоборот, быстрее (фотокинезис).

    Для изготовления робота, движение которого направлено от света или к свету и обусловлено реакцией фототаксиса, нам понадобятся два фотосенсора. Реакция фототаксиса будет проявляться следующим образом: если свет попадает на один из фотосенсоров BEAM-робота,то включается соответствующий электромотор и робот разворачивается в сторону источника света.

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

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

    Если Вы уберете ладонь чуть в сторону от соответствующего сенсора,то робот "послушно" последует за ладонью. Для того,чтобы отраженный свет четко улавливался фототранзисторами,выбирайте для конструирования робота яркие светодиоды (более 1000 мКд) оранжевого или красного цвета.

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

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

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

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

    ♦ МАСТЕР-КЛАСС ДЛЯ "ПРОДВИНУТЫХ САМОДЕЛКИНЫХ": Нажмите на фото

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

    Введение

    Итак. Что же такое робот? В большинстве случаев это автоматическое устройство, которое реагирует на какие-либо действия окружающей среды. Роботы могут управляться человеком или выполнять заранее запрограммированные действия. Обычно на роботе располагают разнообразные датчики (расстояния, угла поворота, ускорения), видеокамеры, манипуляторы. Электронная часть робота состоит из микроконтроллера (МК) – микросхема, в которую заключён процессор, тактовый генератор, различная периферия, оперативная и постоянная память. В мире существует огромное количество разнообразных микроконтроллеров для разных областей применения и на их основе можно собирать мощных роботов. Для любительских построек широкое применение нашли микроконтроллеры AVR. Они, на сегодняшний день, самые доступные и в интернете можно найти много примеров на основе этих МК. Чтобы работать с микроконтроллерами тебе нужно уметь программировать на ассемблере или на Cи и иметь начальные знания в цифровой и аналоговой электронике. В нашем проекте мы будем использовать Cи. Программирование для МК мало чем отличается от программирования на компьютере, синтаксис языка такой же, большинство функций практически ничем не отличаются, а новые довольно легко освоить и ими удобно пользоваться.

    Что нам нужно

    Для начала наш робот будет уметь просто объезжать препятствия, то есть повторять нормальное поведение большинства животных в природе. Всё что нам потребуется для постройки такого робота можно будет найти в радиотехнических магазинах. Решим, как наш робот будет передвигаться. Самым удачным я считаю гусеницы, которые применяются в танках, это наиболее удобное решение, потому что гусеницы имеют большую проходимость, чем колёса машины и ими удобнее управлять (для поворота достаточно вращать гусеницы в разные стороны). Поэтому тебе понадобится любой игрушечный танк, у которого гусеницы вращаются независимо друг от друга, такой можно купить в любом магазине игрушек по разумной цене. От этого танка тебе понадобится только платформа с гусеницами и моторы с редукторами, остальное ты можешь смело открутить и выкинуть. Так же нам потребуется микроконтроллер, мой выбор пал на ATmega16 – у него достаточно портов для подключения датчиков и периферии и вообще он довольно удобный. Ещё тебе потребуется закупить немного радиодеталей, паяльник, мультиметр.

    Делаем плату с МК



    Схема робота

    В нашем случае микроконтроллер будет выполнять функции мозга, но начнём мы не с него, а с питания мозга робота. Правильное питание – залог здоровья, поэтому мы начнём с того, как правильно кормить нашего робота, потому что на этом обычно ошибаются начинающие роботостроители. А для того, чтобы наш робот работал нормально нужно использовать стабилизатор напряжения. Я предпочитаю микросхему L7805 – она предназначена, чтобы на выходе выдавать стабильное напряжение 5В, которое и нужно нашему микроконтроллеру. Но из-за того, что падение напряжения на этой микросхеме составляет порядка 2,5В к нему нужно подавать минимум 7,5В. Вместе с этим стабилизатором используются электролитические конденсаторы, чтобы сгладить пульсации напряжения и в цепь обязательно включают диод, для защиты от переполюсовки.
    Теперь мы можем заняться нашим микроконтроллером. Корпус у МК - DIP (так удобнее паять) и имеет сорок выводов. На борту имеется АЦП, ШИМ, USART и много другого, что мы пока использовать не будем. Рассмотрим несколько важных узлов. Вывод RESET (9-ая нога МК) подтянут резистором R1 к «плюсу» источника питания – это нужно делать обязательно! Иначе твой МК может непреднамеренно сбрасываться или, проще говоря – глючить. Так же желательной мерой, но не обязательной является подключение RESET’а через керамический конденсатор C1 к «земле». На схеме ты так же можешь увидеть электролит на 1000 мкФ, он спасает от провалов напряжения при работе двигателей, что тоже благоприятно скажется на работе микроконтроллера. Кварцевый резонатор X1 и конденсаторы C2, C3 нужно располагать как можно ближе к выводам XTAL1 и XTAL2.
    О том, как прошивать МК, я рассказывать не буду, так как об этом можно прочитать в интернете. Писать программу мы будем на Cи, в качестве среды программирования я выбрал CodeVisionAVR. Это довольно удобная среда и полезна новичкам, потому что имеет встроенный мастер создания кода.


    Плата моего робота

    Управление двигателями

    Не менее важным компонентом в нашем роботе является драйвер двигателей, который облегчает нам задачу в управлении им. Никогда и ни в коем случае нельзя подключать двигатели напрямую к МК! Вообще мощными нагрузками нельзя управлять с микроконтроллера напрямую, иначе он сгорит. Пользуйтесь ключевыми транзисторами. Для нашего случая есть специальная микросхема – L293D. В подобных несложных проектах всегда старайтесь использовать именно эту микросхему с индексом «D», так как она имеет встроенные диоды для защиты от перегрузок. Этой микросхемой очень легко управлять и её просто достать в радиотехнических магазинах. Она выпускается в двух корпусах DIP и SOIC. Мы будем использовать в корпусе DIP из-за удобства монтажа на плате. L293D имеет раздельное питание двигателей и логики. Поэтому саму микросхему мы будем питать от стабилизатора (вход VSS), а двигатели напрямую от аккумуляторов (вход VS). L293D выдерживает нагрузку 600 мА на каждый канал, а этих каналов у неё два, то есть к одной микросхеме можно подключить два двигателя. Но, чтобы перестраховаться, мы объединим каналы, и тогда потребуется по одной микре на каждый двигатель. Отсюда следует, что L293D сможет выдержать 1.2 А. Чтобы этого добиться нужно объединить ноги микры, как показано на схеме. Микросхема работает следующим образом: когда на IN1 и IN2 подаётся логический «0», а на IN3 и IN4 логическая единица, то двигатель вращается в одну сторону, а если инвертировать сигналы – подать логический ноль, тогда двигатель начнёт вращаться в другую сторону. Выводы EN1 и EN2 отвечают за включение каждого канала. Их мы соединяем и подключаем к «плюсу» питания от стабилизатора. Так как микросхема греется во время работы, а установка радиаторов проблематична на этот тип корпуса, то отвод тепла обеспечивается ногами GND - их лучше распаивать на широкой контактной площадке. Вот и всё, что на первое время тебе нужно знать о драйверах двигателей.

    Датчики препятствий

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


    Первый вариант датчиков моего робота

    Прошивка робота

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

    #include
    #include

    Следующие строки условные, потому что значения PORTC зависят от того, как ты подключил драйвер двигателей к своему микроконтроллеру:

    PORTC.0 = 1;
    PORTC.1 = 0;
    PORTC.2 = 1;
    PORTC.3 = 0;

    Значение 0xFF означает, что на выходе будет лог. «1», а 0x00 – лог. «0».

    Следующей конструкцией мы проверяем, есть ли перед роботом препятствие и с какой оно стороны:

    If (!(PINB & (1< {
    ...
    }

    Если на фототранзистор попадает свет от ик-диода, то на ноге микроконтроллера устанавливается лог. «0» и робот начинает движение назад, чтобы отъехать от препятствия, потом разворачивается, чтобы снова не столкнуться с преградой и затем опять едет вперёд. Так как у нас два датчика, то мы проверяем наличие преграды два раза – справа и слева и потому можем узнать с какой стороны препятствие. Команда «delay_ms(1000)» указывает на то, что пройдёт одна секунда, прежде чем начнёт выполняться следующая команда.

    Заключение

    Я рассмотрел большинство аспектов, которые помогут тебе собрать твоего первого робота. Но на этом робототехника не заканчивается. Если ты соберёшь этого робота, то у тебя появится куча возможностей для его расширения. Можно усовершенствовать алгоритм робота, как например, что делать, если препятствие не с какой-то стороны, а прямо перед роботом. Так же не помешает установить энкодер – простое устройство, которое поможет точно располагать и знать расположение твоего робота в пространстве. Для наглядности возможна установка цветного или монохромного дисплея, который может показывать полезную информацию – уровень заряда аккумулятора, расстояние до препятствия, различную отладочную информацию. Не помешает и усовершенствование датчиков – установка TSOP (это ик-приёмники, которые воспринимают сигнал только определённой частоты) вместо обычных фототранзисторов. Помимо инфракрасных датчиков существуют ультразвуковые, стоят подороже, и тоже не лишены недостатков, но в последнее время набирают популярность у роботостроителей. Для того, чтобы робот мог реагировать на звук, было бы неплохо установить микрофоны с усилителем. Но по-настоящему интересным, я считаю, установка камеры и программирование на её основе машинного зрения. Есть набор специальных библиотек OpenCV, с помощью которых можно запрограммировать распознавание лиц, движения по цветным маякам и много всего интересного. Всё зависит только от твоей фантазии и умений.
    Список компонентов:
    • ATmega16 в корпусе DIP-40>
    • L7805 в корпусе TO-220
    • L293D в корпусе DIP-16 х2 шт.
    • резисторы мощностью 0,25 Вт номиналами: 10 кОм х1 шт., 220 Ом х4 шт.
    • конденсаторы керамические: 0.1 мкФ, 1 мкФ, 22 пФ
    • конденсаторы электролитические: 1000 мкФ х 16 В, 220 мкФ х 16В х2 шт.
    • диод 1N4001 или 1N4004
    • кварцевый резонатор на 16 МГц
    • ИК-диоды: подойдут любые в количестве двух штук.
    • фототранзисторы, тоже любые, но реагирующие только на длину волны ик-лучей
    Код прошивки:
    /*****************************************************
    Прошивка для робота

    Тип МК: ATmega16
    Тактовая частота: 16,000000 MHz
    Если у тебя частота кварца другая, то это нужно указать в настройках среды:
    Project -> Configure -> Закладка "C Compiler"
    *****************************************************/

    #include
    #include

    Void main(void)
    {
    //Настраиваем порты на вход
    //Через эти порты мы получаем сигналы от датчиков
    DDRB=0x00;
    //Включаем подтягивающие резисторы
    PORTB=0xFF;

    //Настраиваем порты на выход
    //Через эти порты мы управляем двигателями
    DDRC=0xFF;

    //Главный цикл программы. Здесь мы считываем значения с датчиков
    //и управляем двигателями
    while (1)
    {
    //Едем вперёд
    PORTC.0 = 1;
    PORTC.1 = 0;
    PORTC.2 = 1;
    PORTC.3 = 0;
    if (!(PINB & (1< {
    //Едем назад 1 секунду
    PORTC.0 = 0;
    PORTC.1 = 1;
    PORTC.2 = 0;
    PORTC.3 = 1;
    delay_ms(1000);
    //Заворачиваем
    PORTC.0 = 1;
    PORTC.1 = 0;
    PORTC.2 = 0;
    PORTC.3 = 1;
    delay_ms(1000);
    }
    if (!(PINB & (1< {
    //Едем назад 1 секунду
    PORTC.0 = 0;
    PORTC.1 = 1;
    PORTC.2 = 0;
    PORTC.3 = 1;
    delay_ms(1000);
    //Заворачиваем
    PORTC.0 = 0;
    PORTC.1 = 1;
    PORTC.2 = 1;
    PORTC.3 = 0;
    delay_ms(1000);
    }
    };
    }

    О моём роботе

    В данный момент мой робот практически завершён.


    На нём установлена беспроводная камера, датчик расстояния (и камера и этот датчик установлены на поворотной башне), датчик препятствия, энкодер, приёмник сигналов с пульта и интерфейс RS-232 для соединения с компьютером. Работает в двух режимах: автономном и ручном (принимает сигналы управления с пульта ДУ), камера также может включаться/выключаться дистанционно или самим роботом для экономии заряда батарей. Пишу прошивку для охраны квартиры (передача изображения на компьютер, обнаружение движений, объезд помещения).

    По пожеланиям выкладываю видео:

    UPD. Перезалил фотографии и сделал небольшие поправки в тексте.