Читаем Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С полностью

• Электронная версия популярной игры в «15».

Рис. 7.1. Старинный сундук, с несколькими ящиками. В лотки ящиков мы уложили инструментальные средства, рассмотренные в предшествующих главах


В конце главы мы рассмотрим также процедуру программирования Flash-памяти с помощью отладочной платы «B32».

7.1. Система привода робота, движущегося вдоль стенок лабиринта

7.1.1. Описание проекта

В техническом задании на этот проект, предлагается разработать автономный робот, который мог бы проходить через неизвестный лабиринт. Робот должен двигаться через лабиринт, находя стенки лабиринта с помощью инфракрасных (ИК) локаторов (пар излучатель-приемник), и принимая решения, продвигаться вперед или назад, чтобы продолжить путь через лабиринт. При своем движении робот должен также избегать «мин» (магнитов), скрытых в полу лабиринта. Робот обнаруживает «мины» с помощью датчика Холла. Если робот обнаруживает «мину», то он останавливается, дает задний ход и объезжает ее.

Конструкция робота приведена на рис. 7.2. Корпус его состоит из двух легких связанных вместе алюминиевых платформ. На нижней платформе расположены два двигателя постоянного тока, приводящие в движение два больших колеса, установленных с обеих сторон корпуса. При использовании этой конструкции с двумя колесами, робот может управляться подобно танку. То есть, чтобы выполнить поворот по часовой или против стрелки на двигатели подаются сигналы. Два маленьких ролика с обеих сторон от робота используются, чтобы обеспечить его равновесие и устойчивость. Находясь в покое, робот опирается на три точки. На верхней платформе установлены пять ИК пар излучатель-приемник, которые позволяют роботу обнаружить стенки прямо перед собой и с любой стороны от корпуса. Верхняя платформа содержит также отладочную плату с микроконтроллером 68HC12, которая используется, чтобы принимать входные сигналы, вырабатывать решения, основанные на этих сигналах, и формировать сигналы управления двигателями для реализации этих решений. На нижней пластине робота установлен датчик Холла, позволяющий обнаруживать магнитные «мины».

Рис. 7.2.

Робот, движущийся вдоль стенок лабиринта 

Робот оборудован двумя основными колесами, с приводом от двигателей постоянного тока. Когда робот движется вперед, он постоянно следит за положением стенок, используя инфракрасные локаторы (пары излучатель-приемник), и за «минами», скрытыми в полу, с помощью датчика Холла.


Чтобы начать движение через неизвестный лабиринт, робот помещается вблизи от его входа. Предназначение робота состоит в том, чтобы проходить через лабиринты, избегая столкновения со стенками и контакта с «минами», скрытыми в полу. Робот едет вперед, когда на оба двигателя поступает одинаковое постоянное напряжение. Когда робот движется вперед с помощью двигателей постоянного тока, он непрерывно проверяет свое положение относительно стенок и магнитов с помощью пяти ИК локаторов и датчика Холла.

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

Рис. 7.3. Робот, разработанный, чтобы обнаруживать близлежащие стенки

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


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

• Аналого-цифровое преобразование выходных сигналов ИК-датчиков;

• Создание алгоритма поворота робота, позволяющего определить, в каком направлении он должен повернуть в ответ на сигналы ИК-датчиков;

• Разработка функций управления приводом, осуществляющих движение робота вперед и назад и повороты влево или вправо;

• Создание механизма для обработки выходных сигналов датчика Холла;

• Обеспечение функции, позволяющей останавливаться, давать задний ход и обходить обнаруженную «мину»;

• Отображение выполняемых функций на символьном ЖК индикаторе.

7.1.2. Подсистемы 68HC12, используемые в проекте

Перейти на страницу:

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных