- •ВВЕДЕНИЕ
- •1. ОБЗОР НАУЧНО-ТЕХНИЧЕСКОЙ ЛИТЕРАТУРЫ
- •2.1. Комплектующие
- •2.1.1. Микроконтроллер
- •2.1.2. Шасси и электропривод
- •2.1.3. Радиомодуль
- •2.1.4. Датчик температуры и влажности воздуха
- •2.1.5. Инерциальный датчик
- •2.1.6. Модуль вычисления глобального местоположения
- •2.1.7. Ультразвуковой дальномер
- •2.1.8. Модуль измерения радиоактивного фона
- •2.2. Взаимодействие комплектующих
- •2.3. Сопряжение уровней логических сигналов
- •2.4. Интерфейс прямого доступа к памяти
- •2.5. Последовательный интерфейс UART микроконтроллера
- •2.6. Последовательный интерфейс i2c микроконтроллера
- •3.1. Многозадачность
- •3.2. Комбинированная многозадачность средствами ОСРВ
- •3.3. Управление тактовой частотой микроконтроллера
- •3.4. Работа с последовательным интерфейсом UART
- •3.5. Работа с последовательным интерфейсом I2C
- •3.6. Управление по радиоканалу
- •3.7. Вывод телеметрии
- •3.8. Передвижение роботизированного устройства
- •3.9. Измерение температуры и влажности воздуха
- •3.10. Вычисление ориентации в пространстве
- •3.10.1. Получение измерений инерциального датчика
- •3.10.2. Калибровка датчика
- •3.10.3. Преобразование данных инерциального датчика
- •3.11. Вычисление глобального местоположения
- •3.12. Следование по маршруту
- •3.12.1. Вычисление направления на точку маршрута
- •3.12.2. Удержание направления на точку маршрута
- •3.13. Программа дистанционного управления
- •3.13.1. Описание программы
- •ЗАКЛЮЧЕНИЕ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК
- •ПРИЛОЖЕНИЕ 1
- •Принципиальная электрическая схема отладочной платы
- •ПРИЛОЖЕНИЕ 2
- •Принципиальная электрическая схема драйвера электродвигателей
- •ПРИЛОЖЕНИЕ 3
- •Принципиальная электрическая схема радиомодуля
- •ПРИЛОЖЕНИЕ 4
- •ПРИЛОЖЕНИЕ 5
- •Принципиальная электрическая схема инерциального датчика
- •ПРИЛОЖЕНИЕ 6
- •Принципиальная электрическая схема датчика глобального местоположения
- •ПРИЛОЖЕНИЕ 7
- •Принципиальная электрическая схема ультразвукового дальномера
- •ПРИЛОЖЕНИЕ 8
- •Принципиальная электрическая схема измерителя радиации
- •ПРИЛОЖЕНИЕ 9
- •Принципиальная электрическая схема платы сопряжения
- •ПРИЛОЖЕНИЕ 10
- •Принципиальная электрическая схема Arduino DUE
- •Схема распиновки Arduino DUE
- •Редактор Е. А. Кусаинова
- •Подписано в печать 26.10.2020.
- •ФГБОУ ВО «Воронежский государственный технический университет»
- •394026 Воронеж, Московский просп., 14
большим количеством данных о своей окружающей среде и близлежащих окрестностях позволила роботу реагировать на незапланированные события и объекты.
•Роботизированная собака AIBO от Sony была представлена в 1999 году. АИБО был способен взаимодействовать с людьми. Затем Sony также показала своих роботов Sony Dream, маленьких гуманоидных роботов в разработке для развлечения.
•Знаменитый робот ASIMO Honda был выявлен как самый передовой результат проекта гуманоидов Honda в 2000 году. ASIMO может бегать, ходить, общаться с людьми, взаимодействовать с окружающей средой, распознавать голос и позу.
•3 и 24 января марсоходы Spirit и Opportunity приземляются на поверхность Марса. Запущенный в 2003 году, эти два робота будут ездить во много раз больше, чем первоначально ожидалось, и все еще работают.
•В 2005 году Honda представила обновленную версию ASIMO, которая имеет новые модели поведения и возможности.
•Четырехногий робот под названием «Морская Звезда», который был сп о- собен к самостоятельному моделированию и обучению ходить после повреждения, был создан в Корнельском университете в 2006 году.
2. АППАРАТНАЯ РЕАЛИЗАЦИЯ РОБОТИЗИРОВАННОГО УСТРОЙСТВА
2.1. Комплектующие
2.1.1.Микроконтроллер
Внастоящее время существует большое разнообразие вычислительных устройств, ориентированных на применение в решении различных задач. В рамках данной работы наиболее подходящим решением является использование микроконтроллера как центрального узла всей системы. Это связано с тем, что микроконтроллеры, по сравнению с микропроцессорами и другими программируемыми вычислительными устройствами (ПЛИС, вентильные матрицы
идр.), сразу имеют в своем составе физическую реализацию различных интерфейсов передачи данных, а также определенное количество встроенной памяти программ и данных. Микроконтроллеры также часто называют «Система на кристалле». Это означает, что они представляют из себя полностью независимую микросхему с минимальным набором требуемых внешних элементов, в большинстве своем связанных с питанием и тактированием. Данный факт существенно снижает сложность реализации устройства за счет применения меньшего числа компонентов. Но далеко не все микроконтроллеры подходят для использования в рамках данной работы. Основными критериями при выбо-
11
ре микроконтроллера являются доступность, цена, вычислительные возможности, а также трудоемкость программирования.
Первоначально на этапе разработки роботизированного устройства предполагалось применять микроконтроллер ATMega328 [2] на базе платформы Arduino [3]. Его основные характеристики приведены в табл. 2.1. Данный микроконтроллер разработан по технологии КМОП с низким энергопотреблением, его ядро основано на архитектуре RISC с 8-бит шиной данных. Большинство инструкций выполняются за один период тактовой частоты. Имеется возможность аппаратного генерирования сигналов широтно-импульсной модуляции, что необходимо для управления определенными модулями роботизированного устройства. Данный микроконтроллер в настоящее время широко используется в самых разнообразных задачах, а также для него написано большое количество свободно распространяемого программного обеспечения в виде библиотек для работы с периферией и прочего. Другим несомненным преимуществом применения данного микроконтроллера является наличие разработанной на его базе отладочной платы, которая обеспечивает еще большую гибкость использования возможностей микроконтроллера, а также ускоряет время разработки за счет применения готовых внешних подключаемых модулей.
|
Таблица 2.1 |
|
Основные характеристики микроконтроллера ATMega328 |
||
|
|
|
Параметр |
Значение |
|
Разрядность шины данных |
8 бит |
|
Тактовая частота ядра |
не более 20 МГц |
|
Количество портов ввода/вывода |
23 |
|
Объем памяти программ |
32 кБ |
|
Объем памяти данных |
16 кБ |
|
Аппаратные интерфейсы обмена данными |
I2C, SPI, Uart |
|
Напряжение питания |
1.8 … 5.5 В |
|
Рабочая температура |
-40 … +85º |
|
Однако после более глубокого изучения характеристик и возможностей микроконтроллера было выявлено, что его применение в рамках поставленной задачи является затруднительным. Для взаимодействия микроконтроллера с радиомодулем и датчиком определения глобального местоположения в пространстве в обоих случаях используется последовательный интерфейс передачи данных. Микроконтроллер имеет в своем составе два таких интерфейса, однако в случае использования отладочной платы один из них используется для записи программы в память. Таким образом, невозможно осуществить одновременную работу всех устройств совместно с возможностью отладки. В связи с этим было принято решение использовать более производительный микроконтроллер другого семейства.
12
В результате дальнейшего анализа решено использовать микроконтроллер STM32F407ZGT6. Данный микроконтроллер имеет расширенную RISC архитектуру на базе ядра ARM-Cortex M4 с 32-бит системной шиной. Среди основных особенностей данного микроконтроллера можно выделить наличие блока вычислений с плавающей точкой, наличие возможности использования прямого доступа к памяти при передаче данных, а также поддержку инструкций цифровой обработки сигналов. Микроконтроллер STM32F407ZGT6 в настоящее время менее распространен по сравнению с ATMega328, для него нет того количества свободно распространяемого программного обеспечения. Тем не менее, использование STM32F407ZGT6 открывает большой потенциал возможностей для роботизированного устройства, а также последующих его модификаций. Основные характеристики микроконтроллера приведены в табл. 2.2.
|
Таблица 2.2 |
|
Основные характеристики STM32F407ZGT6 |
||
|
|
|
Параметр |
Значение |
|
Разрядность шины данных |
32 бит |
|
Тактовая частота ядра |
не более 168 МГц |
|
Количество портов ввода/вывода |
100 |
|
Объем памяти программ |
1 Мб |
|
Объем памяти данных |
192 кБ |
|
Аппаратные интерфейсы обмена дан- |
3xI2C, 2хSPI, 6xUart, CAN, |
|
ными |
LIN, IRDA, USB |
|
Напряжение питания |
2 … 3.6 В |
|
Рабочая температура |
-40 … +85º |
|
Структурная схема микроконтроллера STM32F407ZGT6 (далее – микроконтроллера) изображена в прил. 1. Корпус микроконтроллера с обозначением выводов изображен на рис. 2.1.
Микроконтроллер имеет в своем составе внушительный набор периферийных устройств. Его тактирование может осуществляться как от внешнего источника с максимально допустимой частотой до 25 МГц, так и от внутреннего RC-генератора 16 МГц.
Внешнее тактирование является более предпочтительным, так как при этом можно обеспечить большую стабильность тактовой частоты. Тактирование ядра и периферийных устройств осуществляется раздельно и может настраиваться программным путем, благодаря чему имеется возможность обеспечить относительно малое энергопотребление. Частота тактового генератора может быть использована непосредственно либо после преобразования в умножителе с фазовой автоподстройкой (PLL), благодаря чему тактирование ядра можно считать стабильным даже на предельных частотах. Максимальная стабильная частота на выходе умножителя 168 МГц.
13
Рис. 2.1. Корпус микроконтроллера STM32F407ZGT6 [5]
Таймеры могут работать как счетчики импульсов тактовой частоты, в режиме захвата сигнала, а также в режиме генерирования сигнала с широтноимпульсной модуляцией. Всего микроконтроллер имеет 17 таймеров. Характеристики и параметры таймеров приведены в табл. 2.3.
Таблица 2.3
Параметры таймеров микроконтроллера
Тип |
Расш. |
Общего назначения |
|
|
|
Баз. |
||
Номер |
TIM1 |
TIM2 |
TIM3 |
TIM9 |
TIM10 |
TIM12 |
TIM13 |
TIM6 |
|
TIM8 |
IM5 |
TIM4 |
|
TIM11 |
|
TIM14 |
TIM7 |
Разреш- |
16 бит |
32 бит |
16 бит |
16 бит |
16 бит |
16 бит |
16 бит |
16 бит |
ение |
|
|
|
|
|
|
|
|
счета |
|
|
|
|
|
|
|
|
Предде- |
от 1 до |
65536 |
|
|
|
|
|
|
литель |
|
|
|
|
|
|
|
|
ПДП |
Да |
а |
Да |
Нет |
Нет |
Нет |
Нет |
Да |
Каналы |
4 |
4 |
4 |
2 |
1 |
2 |
1 |
0 |
Компле- |
Да |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
Нет |
ментар- |
|
|
|
|
|
|
|
|
ный вы- |
|
|
|
|
|
|
|
|
ход |
|
|
|
|
|
|
|
|
Макс. |
84 |
42 |
42 |
84 |
84 |
42 |
42 |
42 |
частота |
|
|
|
|
|
|
|
|
интер- |
|
|
|
|
|
|
|
|
фейса |
|
|
|
|
|
|
|
|
Макс. |
168 |
84 |
84 |
168 |
168 |
84 |
84 |
84 |
частота |
|
|
|
|
|
|
|
|
таймера |
|
|
|
|
|
|
|
|
14
Для взаимодействия с внешними устройствами в состав микроконтроллера включены шесть последовательных интерфейсов UART. Их характеристики представлены в табл. 2.4.
|
|
|
|
|
|
Таблица 2.4 |
|
|
Характеристики последовательных интерфейсов UART |
||||||
|
|
|
|
|
|
|
|
Имя |
USART1 |
USART2 |
USART3 |
USART4 |
USART5 |
USART6 |
|
Стандарт. |
Да |
Да |
Да |
Да |
Да |
Да |
|
ф-ции |
|
|
|
|
|
|
|
LIN |
Да |
Да |
Да |
Да |
Да |
Да |
|
SPI |
Да |
Да |
Да |
Нет |
Нет |
Да |
|
мастер |
|
|
|
|
|
|
|
IrDA |
Да |
Да |
Да |
Да |
Да |
Да |
|
Смарт |
Да |
Да |
Да |
Нет |
Нет |
Да |
|
карты |
|
|
|
|
|
|
|
Макс. ско- |
5.25 |
2.62 |
2.62 |
2.62 |
2.62 |
5.25 |
|
рость |
Мбит/с |
Мбит/с |
Мбит/с |
Мбит/с |
Мбит/с |
Мбит/с |
|
(оверсем- |
|
|
|
|
|
|
|
плинг 16) |
|
|
|
|
|
|
|
Макс. ско- |
10.5 |
5.25 |
5.25 |
5.25 |
5.25 |
10.5 |
|
рость |
Мбит/с |
Мбит/с |
Мбит/с |
Мбит/с |
Мбит/с |
Мбит/с |
|
(оверсем- |
|
|
|
|
|
|
|
плинг 8) |
|
|
|
|
|
|
|
Микроконтроллер имеет в своем составе три последовательных интерфейса передачи данных I2C, которые могут работать как в режиме ведущего, так и в режиме подчиненного. Поддерживается стандартный режим передачи (скорость до 100 кбит/с), а также быстрый режим (скорость до 400 кбит/с). Имеется возможность использования 7-бит и 10-бит режимов адресации устройств на шине.
Каждый вывод портов ввода/вывода общего назначения может быть программно сконфигурирован как вход, выход (в том числе выход с открытым стоком) либо вывод с альтернативной функцией. Дополнительно в каждом режиме имеется возможность настроить подтяжку вывода к напряжению питания, к общему выводу, либо оставить вывод в «плавающем» состоянии.
Ко всему прочему, имеется ряд полезных функций, например, аппаратное вычисление циклического избыточного кода (CRC32).
Для обеспечения работоспособности микроконтроллера необходимо обеспечить его бесперебойным стабилизированным питанием, а также подключить генератор тактовой частоты. Структурная схема системы управления питанием микроконтроллера показана на рис. 2.2.
15
VDD – напряжение источника питания цифровой части микроконтроллера, лежащее в пределах от 1.8 до 3.6 вольт. VREF – напряжение питания аналоговой части микроконтроллера (в роботизированном устройстве не используется, поэтому цифровая и аналоговая часть имеют общий источник). Два домена питания используются для обеспечения снижения помех цифровой части схемы на аналоговую. Кроме того, к микроконтроллеру может быть подключено батарейное питание, благодаря чему становиться возможным использовать часы реального времени, а также режимы пониженного энергопотребления и спящий режим. Батарейное питание в роботизированном устройстве в данный момент не используется.
Между каждой из ближайших пар выводов VDD и VSS в обязательном порядке установка блокировочных конденсаторов для снижения помех по питанию. Невыполнение данного условия может привести к непредсказуемой работе роботизированного устройства либо к спонтанным перезагрузкам микроконтроллера.
Рис. 2.2. Схема системы питания микроконтроллера [5]
16
Подключение тактового генератора в виде керамического резонатора к микроконтроллеру схематично показано на рис. 2.3. Максимальная частота внешнего источника составляет 25 МГц. При помощи аналогичной схемы возможно подключение низкочастотного генератора 32 кГц к соответствующим выводам для питания часов реального времени.
Рис. 2.3. Схема подключение источника тактирования к микроконтроллеру [5]
Микроконтроллер в роботизированном устройстве используется в составе специализированной отладочной платы, внешний вид которой изображен на рис. 2.4.
Рис. 2.4. Отладочная плата микроконтроллера [5]
На плате установлен стабилизатор напряжения 3.3 В для питания микроконтроллера, кварцевый резонатор 8 МГц для тактирования, а также набор соединителей для подключения внешних устройств. Принципиальная схема отладочной платы микроконтроллера приведена в прил. 1.
Дополнительно на плате имеется набор тактовых кнопок, две из которых могут быть запрограммированы для исполнения желаемой функции, одна для сброса микроконтроллера и одна для выбора памяти микроконтроллера при запуске. Установлен разъем MicroUSB 2.0, позволяющий работать на полной скорости и поддерживающий режим OTG. В левой части платы расположен разъем для подключения дисплея, а также карты памяти Flash (в данной работе не используются).
17