Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 2160.pdf
Скачиваний:
28
Добавлен:
30.04.2022
Размер:
9.07 Mб
Скачать

3.7. Вывод телеметрии

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

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

 

 

Таблица 3.14

 

 

Сообщения телеметрии

 

 

 

Сообщение

Описание

 

(ASCII код)

 

1

POS

Текущая позиция роботизированного устройства

2

DIR

Текущее ориентация в пространстве роботизированного

 

 

устройства

3

INERTRAW

Необработанные показания инерциального датчика

4

MEAS

Результаты измерений датчиков

Рассмотрим структуру первого сообщения (табл. 3.15). Оба параметра являются числами с плавающей точкой содержат информацию о текущем местонахождении роботизированного устройства.

 

Таблица 3.15

 

Параметры сообщения POS

 

 

 

Параметр

Описание

latitude

Широта, в которой находится роботизированное устройство

 

longitude

Долгота, в которой находится роботизированное устройство

 

Параметры второго сообщения приведены в табл. 3.16. Все параметры являются целыми числами.

 

Таблица 3.16

 

Параметры сообщения DIR

 

 

 

Параметр

Описание

pitch

Величина крена роботизированного устройства в градусах

 

roll

Величина тангажа роботизированного устройства в градусах

 

yaw

Величина рысканья роботизированного устройства в градусах

 

62

Параметры третьего сообщения приведены в табл. 3.17. Все параметры являются целыми числами, закодированными в шестнадцатеричной системе счисления символами ASCII. Данный тип сообщения может использоваться при калибровке инерциального датчика.

Таблица 3.17

 

Параметры сообщения INERTRAW

 

 

Параметр

Описание

ax

Измерения акселерометра по оси X

ay

Измерения акселерометра по оси Y

az

Измерения акселерометра по оси Z

gx

Измерения гироскопа по оси X

gy

Измерения гироскопа по оси Y

gz

Измерения гироскопа по оси Z

hx

Измерения магнитометра по оси X

hy

Измерения магнитометра по оси Y

hz

Измерения магнитометра по оси Z

Параметры четвертого сообщения приведены в табл. 3.18. Первые два параметра являются десятичными числами с плавающей точкой, последний параметр представляет собой целое число.

 

Таблица 3.18

 

Параметры сообщения MEAS

 

 

 

Параметр

Описание

temp

Измеренная величина температуры воздуха, градусов

 

hum

Измеренная величина влажности воздуха, процентов

 

rad

Измеренный радиационный фон, мкР в час

 

Таким образом, рассмотрены основные виды сообщений телеметрии роботизированного устройства. Описаны структура сообщений и их параметры. Приведенные сообщения используются в программе дистанционного управления, описанной в последующих разделах.

3.8.Передвижение роботизированного устройства

Вразделе 2.1.2 описаны принципы передвижения роботизированной платформы, описана работа драйвера электродвигателей, а также сигналы управления. Рассмотрим управление передвижением из программы микроконтроллера.

63

При любом изменении параметров передвижения роботизированного устройства необходимо использовать функцию MyDriveSetControl (). Функция имеет два параметра: скорость движения вперед и скорость поворота направо. Диапазон значений параметров от -127 до 127. При использовании отрицательных значений, соответственно, параметры определяют скорость движения назад и влево. При передаче параметров, выходящих за указанные пределы функция автоматически производит их ограничение. Функция осуществляет пересчет значений данных параметров в сигналы, подаваемые на драйвер электродвигателей.

Рассмотрим процедуру инициализации привода MyDriveInit () в программе микроконтроллера. Первым этапом происходит настройка выводов. Все действия аналогичны описанным ранее. Выводы настраиваются как выходы с подтяжкой к питанию. Для управления направлением вращения электродвигателей необходимо произвести запись комбинации из табл. 2.5 в соответствующие разряды регистра ODR порта GPIOD (см. схему электрическую принципиальную из прил. 1).

Рассмотрим формирование сигналов разрешения вращения (EnA и EnB). Их микроконтроллер генерирует непрерывно. Данные сигналы представляют собой прямоугольные импульсы с широтно-импульсной модуляцией. Для их формирования используется таймер TIM4. Настройка таймера осуществляется путем заполнения структур TIM_InitStruct и TIM_OC_InitStruct с последующей передачей их в качестве параметров функций LL_TIM_Init () и LL_TIM_OC_Init (). Данные функции осуществляют запись необходимых значений в регистры таймера. После выполнения процедуры инициализации появляется возможность полноценно управлять передвижением роботизированного устройства.

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

 

 

 

+ , < 0

,

 

(3.2)

 

 

 

 

 

 

 

;

 

(3.1)

 

 

 

,

< 0

 

 

за скорость движения вперед;

 

 

 

 

 

– скорость

где

– скорость вращения левой пары электродвигателей;

 

рота вправо.

 

 

 

 

 

 

 

 

отвечающий

вращения правой

пары электродвигателей;

 

– параметр,

 

параметр, отвечающий за скорость пово-

Значения, вычисленные по формулам (3.1) и (3.2) ограничиваются до диапазона -127..127 и заносятся в регистр сравнения таймера. Таким образом,

64

изменяется скважность сигналов управления разрешением вращения электродвигателей (EnA и EnB).

Сигналы управления направлением вращения (In1 – In4) логические и вычисляются следующим образом:

0,

иначе;

(3.3)

(3.4)

0,

;

 

иначе;

(3.5)

0,

иначе.

(3.6)

0,

иначе

 

Таким образом, в данном разделе описано управление передвижением роботизированным устройством из программы микроконтроллера. Рассмотрен процесс пересчета требуемых параметров передвижения в сигналы управления электродвигателями.

3.9. Измерение температуры и влажности воздуха

Датчик температуры и влажности воздуха подключен к микроконтроллеру посредством последовательного интерфейса передачи данных I2C2. К этому же интерфейсу предусмотрена возможность подключения дополнительных датчиков и устройств (до 127 в теории, на практике данное число будет отличаться и зависеть от величины сопротивления подтягивающих резисторов шины).

Рассмотрим процесс получения данных с датчика. Процедура инициализации шины I2C уже была описана в предыдущих разделах. Для работы с датчиком температуры и влажности используется отдельная задача ОСРВ. В программе микроконтроллера данная задача описана функцией mySHT3x_Play (). Задача начинает свою работу только после инициализации всей периферии микроконтроллера и завершается при выключении питания.

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

Сперва передается адрес датчика (0x44), затем команда чтения данных. Чтение может быть двух видов. Для первого вида команда имеет вид 0x2400. После передачи команды датчик производит измерения не моментально, а в те-

65

чение некоторого времени. При этом если попытаться во время измерения прочитать данные, то датчик не будет отвечать и выдаст событие NACK на линию. После завершения измерений датчик подтверждает команду чтения событием ACK. Во время измерений шина свободна и, таким образом, имеется возможность взаимодействия с другими устройствами. Второй вид команды имеет вид 0x2C06. В данном случае после отправки команды датчик переходит в режим «clock stretching». При этом линия тактирования SCL шины притягивается к земле до тех пор, пока производится измерение. В результате данная команда не позволяет осуществлять обмен с другими устройствами во время измерений.

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

 

 

 

= 45 + 175 216 1,

 

 

 

(3.7)

 

 

 

= 100 16

 

,

 

 

 

(3.8)

ратуры,

 

 

 

градусах Цельсия;

 

 

 

где

 

– значение температуры в2

1

 

 

– показание темпе-

 

измеренное датчиком;

 

– влажность воздуха в процентах;

 

– по-

 

 

 

 

датчиком.

 

 

 

 

казание влажности, измеренное

 

 

 

 

 

 

Рис. 3.5. Последовательность чтения показаний температуры и влажности [19]

66