|
Линейный следящий робот
Статьи публикуются по мере поступления. Для упорядоченного тематического
поиска воспользуйтесь блоком "Карта сайта"
Робототехника - это отрасль технологии, которая занимается проектированием, строительством, эксплуатацией и применением роботов, а также компьютерными системами для их контроля, сенсорной обратной связи и обработки информации. Слово robotics происходит от Runaround, короткого рассказа, опубликованного в 1942 году Исааком Азимовым. Робот - это электромеханическая машина, которая управляется компьютерной программой или электронными схемами. Система робота содержит датчики, системы управления, манипуляторы, источники питания и программное обеспечение, все вместе работающие для выполнения заданной задачи. Один из самых простых автономных роботов, которые вы можете построить, - это линия, следующая за роботом (LFR). Цель этого учебника AVR - часть 23 - помочь вам построить линейку следующего робота, используя недорогой чип AVR, который может следовать произвольному пути! Наш LFR довольно хороший линейный следящий робот, состоит из недорогих электромеханических деталей, электронных компонентов и микросхемы на основе микросхем.Ниже перечислены основные требования:
- Робот-шасси
- Робот-моторы
- Кастерные пули
- Робот-колеса
- ИК-сенсорные карты
- IC L293D
- IC Atmega8
- Зажимы для двигателей, переключатели, держатели для батарей, батареи, небольшие электронные компоненты, винты и гайки и т. Д.
Логику линейного следящего можно разделить на два (чувствительных и управляющих) сегмента. Сначала логика LFR отслеживает траекторию дорожки вперед. На втором этапе логика управляет двумя приводными двигателями (слева и справа) в соответствии с состоянием информированной дорожки. Инфракрасная сенсорная карта содержит инфракрасные светодиоды и инфракрасные фотодиоды. Двухканальный контроллер двигателя - это простой чип H-Bridge L293D. Мозг линейного следящего робота - это один микроконтроллер Atmega8.
Прежде всего, прикрепите двигатели, зажимы и колеса, как показано здесь. Затем прикрепите две пули заклинателя (спереди и сзади) в нижней части корпуса. Наконец, сверлите подходящие отверстия в шасси, чтобы соответствовать всем остальным частям, таким как готовая печатная плата, карты датчиков, держатель батареи, прокладки для печатных плат, поддерживающие зажимы и т. Д.
Держатель батареи может быть установлен на задней части шасси, рядом с пулеметом.Лучшим местом для основной печатной платы является верхняя часть корпуса. Карты инфракрасного датчика (слева и справа) должны быть установлены на передней стороне корпуса в направлении вниз, чтобы инфракрасные сенсорные компоненты (светоотправитель и приемник) могли удобно улавливать нижний путь.
Заметьте, наш LFR следует по пути с черной дорожкой на белой поверхности. Чтобы правильно отслеживать дорожку, инфракрасные датчики должны быть размещены на корпусе таким образом, чтобы они были очень близки к уровню дорожки. Убедитесь, что расстояние между двумя картами инфракрасного датчика (слева и справа) должно быть на 3-6 мм больше ширины маркировки на дорожке.
Как описано выше, наш LFR - простой робот, который будет следовать черной линии на белом фоне. Этот LFR на основе чипов на базе AVR имеет очень простую логику, обсуждаемую ниже, используя if-else в псевдокоде.
IF (левая сторона LFR вот-вот коснется левой стороны дорожки)
Поверни направо;
ELSE IF (Правая сторона LFR вот-вот коснется правой стороны дорожки)
Поворот влево;
ELSE
Двигаться вперед;
Если оба инфракрасных датчика (слева и справа) находятся на белой поверхности, LFR будет двигаться вперед, и если оба датчика находятся на черной поверхности, LFR остановится.Когда левый датчик находится на белом и правый датчик находится на черном, LFR будет поворачиваться вправо. Аналогично, когда правый датчик находится на белом и левый датчик находится на черном, LFR будет левым поворотным. Эти четыре случая являются единственно возможными условиями для базового линейного следящего робота.На нашем LFR есть две инфракрасные сенсорные карты (слева и справа) в нижней части корпуса для обнаружения черного отслеживания на пути. Каждая сенсорная карта представляет собой комбинацию инфракрасного светодиода, инфракрасного фотодиода и компаратора, работающего на источнике питания 5 В постоянного тока. Схема компаратора подключается с использованием одной части (½) микросхемы LM358.
В состоянии перемычки по умолчанию (JP: 1 + 2) выход карты инфракрасного датчика находится в состоянии с логическим низким (L), когда он обнаруживает черный цвет, и наоборот. Помните, нам нужны две идентичные инфракрасные сенсорные карты; один для левой стороны, а другой для правой стороны! Теперь, когда механическая часть сборки закончена, и мы завершили строительство левого и правого (L & R) инфракрасных сенсорных карт. Поскольку MCU (ATmega8) не может управлять двигателями постоянного тока напрямую, используется специальная схема драйвера двигателя. Схема привода двигателя основана на простой 16-контактной ИС (L293D), которая может управлять двумя двигателями постоянного тока независимо.
Схема схемы драйвера двигателя LFR
Как можно видеть на принципиальной схеме, контакты 4, 5, 13 и 12 LM293 (U2) подключены к GND, а штырь 16 (VSS) подключен к 5V. Штыри «chip inhibit» (1 & 9) действуют как переключающие выводы для пар ввода-вывода с левой и правой стороны драйвера двигателя соответственно. Контакт 8 (VC) получает нерегулируемый источник питания (Vcc) от цепи источника питания LFR. Примечательно, что этот чип драйвера двигателя является поддержкой PWM, означает, что если вы нанесете какое-либо напряжение в диапазоне от 0 до 5 В на любом входе, оно будет увеличено на коэффициент и будет доступно на соответствующем выходе.Четыре входных штыря (2-7-10-15) получают команды привода двигателя от MCU. Короче говоря, U2 действует как интерфейс между микроконтроллером (U3) и двигателями постоянного тока (M1 & M2), в котором инструкции от микроконтроллера входят в его входные контакты, а выходы используются для управления двигателями-роботами. Вот схема MCU, проводная вокруг нашего любимого чипа ATmega8 (U3). Первая задача - решить, какие штыри MCU будут использоваться для ввода входов с карт инфракрасного датчика и выдачи выходов в схему драйвера двигателя. В качестве упражнения я пошел на PC0 (слева) и PC3 (справа) PORT C для двух входов от двух инфракрасных сенсорных карт и штырьков PB1-PB4 PORT B в качестве выходов в схему драйвера двигателя (на самом деле только PB1 и PB4 являются важно в это время). Код написан с использованием языка C, поэтому вам нужно быть в курсе синтаксиса языка C, концепции библиотек, компилятора и т. Д. (IDE используется AVR Studio 4). Окончательный код (шестнадцатеричный код) можно записать в MCU с помощью подходящего программиста (см. Предыдущие главы этого руководства avr).
Обычно LFR питается от напряжения питания аккумулятора от 9 до 12 В, в то время как для большей части схемы требуется только 5 В. Вы можете использовать от 6 до 8 ячеек AA (или батарею 9V 6F22 - не очень хорошо для длительного использования) в качестве банка мощности LFR. Регулятор фиксированного напряжения LM7805 (U4) используется в цепи источника питания для преобразования напряжения с более высоким входным напряжением (Vcc) в нижнее значение (+ 5 В), чтобы сделать MCU счастливым. LM7805 работает даже без буферных конденсаторов, но лучше использовать конденсаторы, поскольку они будут отбрасывать колебания напряжения. Добавление одного 10nF керамического конденсатора на каждый терминал двигателя постоянного тока (+ / _) является еще одной хорошей практикой для подавления нежелательного шума, создаваемого двигателем.
Образец кода
Теперь твоя очередь. В качестве ученика вам предлагается настроить вышеуказанный код в соответствии с вашим требованием. Затем создайте шестнадцатеричный файл из кода, как описано ранее в учебнике по программированию, и сжечь код в atmega 8. Наконец, поместите батареи и поместите готовый LFR в дорожку (с линией, напечатанной на ней черным цветом). Поместите LFR по линии и включите LFR, чтобы увидеть действие!