Как создать своего робота? Вы думаете, это сложно? Вовсе нет.
Данная рассылка - это журнал хода создания роботизированной машинки с рабочим названием Mantis-1. Задача была следующая: создать автономную машинку-робота, которая будет сама ездить по комнате, отъезжая от препятствий.
На ее примере я покажу Вам, как в домашних условиях сделать электронику для робота, подключить к шасси и
задать программу поведения. Попробуйте повторить описанное здесь - Вам наверняка понравится! А заинтересовавшись, Вы сможете
по описанным здесь принципам создавать более сложные конструкции.
Итак, продолжим рассказ о том, что мы хотим получить в итоге. В прошлый раз я рассказал о блоке, работающем с шасси - драйвере. Теперь немного о второй части "мозга" робота - микроконтроллере и сенсорах. Перед прочтением этого выпуска рекомендую прочесть те первые выпуски рассылки, которые вы не читали - это пригодится и сейчас, и позднее. Их можно прочесть на сайте рассылки - Сайт рассылки: http://robot.h15.ru.
В предыдущих выпусках я рассказал немного о микроконтроллере. Сейчас мы увидим, как это применимо к роботу. Кстати, советую закачать принципиальную схему главной платы робота, если вы этого еще не сделали (http://robot.h15.ru/pictures/pr_scheme.gif).
Слева на ней расположен наш МК. К нему подключено питание: Vcc - "+", "GND" - "земля" (аналогично "-" батарейки). У ATtiny2313 это, соответственно, ножки 20 и 10. Если у вас другой МК, то подключение питания и расположение всех остальных контактов смотрите в даташите. К 1 контакту - RESET - подключен резистор на 10 кОм, соединяющий его с Vcc, и ключ, соединяющий с землей. Это - типовое подключение. Таких типовых схем несколько для МК, и они существуют и для других схем. Многие из них есть в
даташите (то есть сам производитель рекомендует подключать именно так), поэтому даташит следует читать. Вышеупомянутый ключ соответствует reset'у на компьютере - когда нажимаем на эту кнопку, МК перезагружается. Это аналогично тому, что мы выключили МК и включили снова.
Еще одном типовое подключение - это подсоединенный к ногам 4 и 5 кварц и два конденсатора 12-20 пФ от тех же ног на землю. Кварц нужен для генерации тактового сигнала. Это как метроном, которым пользуются начинающие музыканты - он задает "ритм" работы МК. Чем выше частота кварца, тем быстрее будут идти в МК вычисления. Однако бесконечно увеличивать частоту мы не можем - у каждого МК есть предельная частота, указанная в даташите. Предельная частота также зависит от напряжения - чем выше напряжение,
тем большую частоту мы можем подать. Так, у ATtiny2313 "безопасная", как она называется в документации, частота изменяется от 10 МГц при 2,7 В до 20 МГц при 5,5 В. Следует упомянуть, что МК серий Tiny и Mega не требуют внешнего кварца в обязательном порядке, так как имеют внутренний генератор, от которого могут тактироваться. Тем не менее их можно настроить и на работу от внешнего генератора при помощи так называемых fuse bits, то есть битов конфигурации, или установок. Про установки я расскажу в одном из следующих
выпусков рассылки.
Теперь обратим внимание на ножки 2 и 3. К ним подключены фотоэлементы, соединяющие эти ноги с землей. Фотоэлементы и бамперы (контактные) - одни из простейших сенсоров. Принцип работы их тоже прост: пока фотоэлемент в тени, его сопротивление велико, и на соответствующей ножке высокий уровень напряжения, то есть логическая "1". Когда на ф/э попадет свет, его сопротивление понизится, и на ножке будет низкий уровень напряжения, т.е. логический "0". В программе, которую мы будем прошивать в МК,
мы будем считывать значение битов, соответствующих 2 и 3 ножкам. Каждый бит может иметь значение либо 0, либо 1. Мы сможем узнать, освещен ли каждый фотоэлемент.
Бамперы подключены к ножкам 6 и 7 аналогично с точки зрения схемы. На роботе бампер будет представлять из себя две пластины из жести (у меня - из латуни :)), которые замыкаются, если робот уперся в препятствие. Кстати, скоро я выложу на сайт фотографии робота, бамперы там тоже будут. :) Однако с точки зрения программы их подключение немного отлично от подключения фотоэлементов. Дело в том, что они подключены к ножкам, соответствующим прерываниям. Прерывание - это довольно полезная штука. Пока
робот спокойно едет по полу, наша программа работает, и мы в ней не проверяем значение битов, соответствующих бамперам, даже не задумываемся о нем. Но если мы разрешили в нашей программе прерывания, и какой-то бампер замкнулся, и на одной из ножек, соответствующих прерываниям, появился лог. "0", то выполнение нашей программы, что бы она сейчас ни делала, прервется, и управление перейдет специальной процедуре. В ней мы обработаем отъезд от препятствия. Если вы плохо знакомы с программрованием и это все непонятно,
то можете особо не заморачиваться - опять же, в одном из следующих выпусков я расскажу о написании программы для робота.
Итак, основные принципы работы схемы робота мы разобрали. Теперь осталась вторая, не менее интересная часть - написание программы. Ну и конечно, продолжение моей эпопеи :). Ждите следующего выпуска!
Хотите тоже сделать робота? Я могу Вам в это существенно помочь.
Вы можете заказать у меня комплект деталей, необходимых для создания этой конструкции. В него входят элементы, используемые в схеме моего робота. Также к пакету прилагается небольшой набор для изготовления печатной платы, инструкция по сборке и CD-диск, содержащий необходимое программное обеспечение, документацию на некоторые детали и просто полезные статьи. Возможны различные варианты комплектации, соответствующие Вашим пожеланиям.
По вопросам приобретения комплекта обращайтесь на e-mail detektiv1@narod.ru.