Следующий вдоль линии робот на MSP430G2


Робот, следующий вдоль линии (белой или черной), является одним из самым популярных проектов робототехники для начинающих. В данной статье мы рассмотрим создание подобного робота на основе платы MSP430G2 launchpad от компании Texas Instruments. В нашем проекте он будет следовать вдоль черной линии. Если вы только начинаете свое знакомство с платой MSP430G2 рекомендуем прочитать статью про начало работы с ней.

Внешний вид следующего вдоль линии робота на MSP430G2

Ранее на нашем сайте мы уже рассматривали создание подобного робота на основе других микроконтроллеров (плат):

Необходимые компоненты

  1. Плата MSP430G2 LaunchPad (купить на AliExpress).
  2. Модуль драйвера двигателя L298D.
  3. Инфракрасные датчики (купить на AliExpress).
  4. Шасси робота.
  5. Соединительные провода.
  6. Источники питания 3.3v и 5v-12v.

Внешний вид компонентов для сборки робота показан на следующем рисунке.

Внешний вид компонентов для сборки робота

Принцип работы робота следующего вдоль линии

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

Отражение света от светлой поверхности

Поглощение света темной поверхностью

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

В нашем проекте при обнаружении инфракрасными датчиками светлой поверхности на микроконтроллер MSP430 будет подаваться логическая 1, а при обнаружении темной поверхности – логический 0.

Общие принципы работы проекта

Структурная схема работы нашего проекта робота, следующего вдоль линии, показана на следующем рисунке.

Структурная схема работы нашего проекта робота, следующего вдоль линии

Рассмотрим назначение основных элементов данной структурной схемы.

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

Секция управления. Плата MSP430 Launchpad управляет всеми процессами в нашем роботе. Сигналы с выходов компараторов поступают на ее входы P1_3 и P1_4, она считывает их и дает соответствующие команды на управление роботом.

Секция двигателей. Содержит драйвер двигателей и два электродвигателя постоянного тока. Драйвер двигателей необходим в нашей схеме в связи с тем что контакты платы MSP430 Launchpad не могут обеспечить достаточный ток для управления двигателями. В качестве дайвера двигателей мы используем микросхему L298d.

Движения робота

Принцип работы робота, следующего вдоль линии, достаточно прост. Датчики робота обнаруживают (чувствуют) линию и передают соответствующие сигналы на MSP430. А плата MSP430 в соответствии с этими сигналами управляет двумя моторами, движущими робота.

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

Робот движется прямо

Если левый датчик обнаруживает черную линию, то робот поворачивает влево.

Робот должен повернуть влево

Если правый датчик обнаруживает черную линию, то робот поворачивает вправо..

Робот должен повернуть вправо

Если оба датчика обнаруживают черную линию, робот останавливается.

Робот должен остановиться

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

Схема проекта

Схема следующего вдоль линии робота на основе платы MSP430G2 представлена на следующем рисунке.

Схема следующего вдоль линии робота на основе платы MSP430G2Как видите, она достаточно проста. Выходы компараторов (инфракрасных датчиков) непосредственно подключены к цифровым контактам P1_3 и P1_4 платы MSP430G2. Входные контакты драйвера двигателей IN1, IN2, IN3 и IN4 подключены к контактам платы P1_5, P2_0, P2_1, P2_2 соответственно. Первый двигатель подключен к контактам OUT1 и OUT2 драйвера двигателей, а второй – к ее контактам OUT3 и OUT4. Для питания всей схемы проекта за исключением драйвера двигателей мы используем напряжение 3.3v, драйвер двигателей мы запитываем от напряжения 8v (можно использовать любое напряжение в диапазоне 5v-12v).

Внешний вид собранной конструкции проекта показан на следующем рисунке.

Внешний вид собранной конструкции проекта

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

Схема для сборки инфракрасного датчика

Объяснение кода программы

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

В программе первым делом мы дадим осмысленные имена используемым контактам, с которых производится считывание сигналов с инфракрасных датчиков и управление двигателями.

Примечание: датчики могут быть активными в состоянии low или high, поэтому первым делом уточните тип выхода датчика, после этого закомментируйте/раскомментируйте соответствующий activeLowMode. Для активного состояния HIGH закомментируйте макрос activeLowMode.

Далее, в функции setup, мы задаем режим (направление) работы для используемых контактов. А затем, в функции loop, мы проверяем выходы с инфракрасных датчиков и передаем соответствующие управляющие сигналы на вращение двигателей.

Логика управления двигателями нашего робота представлена в следующей таблице.

Логика управления двигателями нашего робота

Исходный код программы

Видео, демонстрирующее работу проекта

(Проголосуй первым!)
Загрузка...
26 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *