Как создать своего робота? Вы думаете, это сложно? Вовсе нет.
Данная рассылка - это журнал хода создания роботизированной машинки с рабочим названием Mantis-1. Задача была следующая: создать автономную машинку-робота, которая будет сама ездить по комнате, отъезжая от препятствий.
На ее примере я покажу Вам, как в домашних условиях сделать электронику для робота, подключить к шасси и
задать программу поведения. Попробуйте повторить описанное здесь - Вам наверняка понравится! А заинтересовавшись, Вы сможете
по описанным здесь принципам создавать более сложные конструкции.
Снова привет всем! На днях я перечитал предыдущие выпуски рассылки и понял, что не обозначил одну важную вещь - а куда мы, собственно, идем? Что хотим получить в конце? Поэтому продолжение рассказа о поисках всевозможных деталек :) я пока отложу, а расскажу в этом выпуске о самом проекте робота.
В первых выпусках рассылки я несколько раз отсылал читателей к статье на сайте Roboclub.ru (http://projects.roboclub.ru/?attempt). Там этот проект описан. Здесь, я думаю, будет полезно немного дополнить это описание.
Прежде, чем делать робота - любого - мы должны решить, для чего он будет предназначен. Исходя из целей, делается все остальное. Итак. Исходная задача робоклубовского проекта: несложный автономный 4-колесный робот, который должен ездить по горизонтальной поверхности, в отсутствии света - в режиме "свободного поиска", а "увидев" свет - двигаться к источнику света. Режим "свободного поиска" означает, что робот просто перемещается случайным образом, спонтанно выбирая направление движения. В своем
роботе я решил не реализовывать движение к источнику света, так как это мне показалось не очень интересным и вдобавок сопряженным с некоторыми глюками. Вместо движения к свету впоследствии я предполагал добавить какие-нибудь другие "примочки" вроде подачи команд с ИК-пульта.
Теперь - как все это реализуется внутри робота. Для своей конструкции я добыл у знакомого старую китайскую радиоуправляемую машинку, у которой уже не было пульта и сгорела схема приемника. Поэтому схему эту я оттуда выкинул, оставив само шасси. Шасси 4-колесное, задние колеса - ведущие, передние - рулевые. На задних стоит, естественно, электромотор постоянного тока, на передних - рулевая трапеция, на которой укреплен постоянный магнит, управляемая катушкой с током (в зависимости от направления
тока магнит выталкивается в определенную сторону). Таким образом, робот имеет семь режимов езды: вперед, вперед-влево, вперед-вправо, стоп, назад, назад-влево, назад-вправо, каждый из которых достигается определенной комбинацией подключения мотора и катушки к источнику тока. Соответствующие комбинации напряжений мы и будем получать на ножках микроконтроллера, к которым будет подключено шасси. Например, задний мотор подключен к выводам 18 и 19 МК. Если и на 18, и на 19 логический 0 (т.е. "земля" или близкое
напряжение), то мотор не работает. Если на 18 лог. 1 ("+" питания или близкое напряжение), а на 19 - "0", то есть разность потенциалов, и мотор крутится в одну сторону. Если на 18 "0", на 19 "1" - то в другую... Ну и так далее. А управляет "выставлением" этих 0/1 прошитая в МК программа.
В реальной схеме мотор нельзя подключать напрямую к МК, так как работающий электромотор, во-первых, потребляет слишком большой для МК ток, а во-вторых, "искрит" (про это чуть позднее). Принципиальная схема робота приведена ниже (это объединение двух половинок робоклубовской схемы):
Как видите, здесь моторы подключаются через специальную микросхему - драйвер L293D. Эта микросхема представляет собой два Н-моста. Н-мост (он же H-bridge, он же просто "мост") - это общее название используемых практически во всех роботах схема для управления направлением вращения мотора. То есть у нас есть мотор, и при помощи моста мы меняем полярность напряжения на нем. В общем виде Н-мост выглядит так:
Как вы можете видеть из этой схемы, если замкнуть А1 и А2, то мотор будет крутиться в одну сторону, если В1 и В2 - то в другую. Это самая общая схема. Реальные схемы более сложны и содержат защиту от одновременного включения, например, А1 и В1, что приводит к короткому замыканию.
В L293 выводы 1-8 подключены к первому мосту, 9-16 - ко второму. Кстати, они к тому же расположены так, что от поворота микросхемы на 180 градусов их расположение не меняется - т.е. можно не бояться неправильно вставить микросхему в кроватку! :) Как говорится, умные существа делали :). Что касается управления моторами, то здесь все так же, как я описал выше, просто драйвер разделяет цепи МК и моторов, защищая МК. Однажды, кстати, у меня один мотор замкнуло накоротко, при этом драйвер сильно
грелся, а микроконтроллеру - хоть бы что! :)
Если используется ее вариант без индекса D (напр., просто L293), то нужны еще дополнительно восемь диодов:
Диоды нужны вот почему. Дело в том, что обмотка электродвигателя - это, фактически, катушка индуктивности, и в результате эффектов индукции и самоиндукции на клеммах двигателя может появляться напряжение, превышающее 5 вольт. Поэтому, чтобы не повредить микросхемы, ставятся эти диоды. Если потенциал на клемме двигателя больше потенциала на "+" питания или меньше потенциала земли, то ток пойдет через соответствующий диод, и схема останется цела.
И, чтобы закончить рассказ о подключении моторов, немного о ключе, соединяющем EN_A и EN_B с землей (рис. 3). Здесь, кстати, в схеме Робоклуба была ошибка - я ее исправил (в исходной схеме этот ключ соединял 1 и 9 выводы с Vcc, т.е. с "+"). EN означает enable (досл. "давать право, возможность"), то бишь "включить". Если вывод enable соединен с землей, то соответствующий мост отключен, т.е. соответствующий мотор работать не будет, независимо от сигналов.
Пожалуй, на этом пока остановимся. Я хотел здесь подробно описать работу всей схемы, но что-то получается много. Поэтому оставшиеся моменты, в том числе и программную часть, отложим на следующий выпуск.
Хотите тоже сделать робота? Я могу Вам в это существенно помочь.
Вы можете заказать у меня комплект деталей, необходимых для создания этой конструкции. В него входят элементы, используемые в схеме моего робота. Также к пакету прилагается небольшой набор для изготовления печатной платы, инструкция по сборке и CD-диск, содержащий необходимое программное обеспечение, документацию на некоторые детали и просто полезные статьи. Возможны различные варианты комплектации, соответствующие Вашим пожеланиям.
По вопросам приобретения комплекта обращайтесь на e-mail detektiv1@narod.ru.