Чтение онлайн

ЖАНРЫ

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

Пак Дэниэл Дж.

Шрифт:

 current_RPM = (unsigned int)(pulse_count/0.032768);

 // Изменить число прерываний RTI в счетчике

 RTI_int_count = RTI_int_count + 1;

 if (RTI_int_count == 10) // Изменить на ЖКИ значение после 10 прерываний RTI

 {

display_count_LCD(current_RPM); // Изменить показания ЖКИ

RTI_int_count=0; // Сбросить счетчик прерываний RTI

 }

 // Изменить значение скорости двигателя

 if (current_RPM < desired_motor_RPM) PWM_duty_cycle = PWM_duty_cycle + 1; //
Ускорить двигатель

 else PWM_duty_cycle = PWM_duty_cycle - 1; // Замедлить двигатель

 // Изменить скорость двигателя с помощью ШИМ

 PWDTY0 = PWM_duty_cycle; //коэффициент заполнения

 old_count = new_count;

 RTIFLG = 0x80; //сбросить флаг прерывания RTI

}

//********************************************************************

// Initialize_RTI: конфигурирует регистры связанные с RTI

//- Регистр управления RTI (RTICTL):

// - разрешение RTI, флаг RTIE

// - установка периода RTI на 32.768 мс

// - сброс RTI, бит RTIF регистре Флагов RTI (RTIFLG)

//********************************************************************

void initialize_RTI(void) {

 RTICTL = 0x86; // Установить период RTI 32.768 мс

 RTIFLG = 0x80; // сброс RTI

}

//********************************************************************

// Initialize_RTI_PA: инициализация 68HC12 аккумулятора импульсов PA

//********************************************************************

void initialize_PA(void) {

 TIOS = 0x00; // конфигурировать канал 7 для работы в качестве счетчика

 TCTL1 = 0x00; // импульсов оптического кодера

 OC7M = 0x00; // Включить бит разрешения таймера

 TSCR = 0x80; // Установить разрешение для аккумулятора по фронту

//импульса,

 PACTL = 0x50; // Режим счета событий

}

/********************************************************************/

//initialize_PWM: генерировать сигнал ШИМ 976 Гц с */

// коэффициентом заполнения 67.2% */

/********************************************************************/

void initialize_PWM(void) {

 PWTST =0x00; /*установить ШИМ в режим нормальной работы */

 PWCTL =0x00; /*установить выравнивание по левой границ */

 PWCLK = 0x28; /*без конкатенации, разделить clk на 32 */

 PWPOL = 0x01; /*состояние : высокое затем переход к низкому */

 DDRP = 0xFF; /*установить порт PORTP как выходной */

 PWEN = 0x01; /*разрешение
на ШИМ для канала 0 */

 PWPER0= 0xFF; /* установить период равным 256 */

 PWDTY0= PWM duty_cycle; /* установить коэффициент заполнения равным 172 */

}

/********************************************************************/

7.4.6. Испытания

Установка для испытания системы стабилизации скорости вращения была показана на рис. 7.18. Это — очень сложная система, содержащая целый ряд компонентов и микроконтроллерную систему 68HC12. Чтобы гарантировать успешную работу системы, настоятельно рекомендуется применять обсужденный в главе 2 метод измерений. Собрав и запустив всю систему, можно включить двигатель на умеренную нагрузку, и убедиться, что система стабилизирует скорость вращения на уровне в 1600 об/мин.

7.5. Парящий робот

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

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

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

Цель этого проекта состояла в том, чтобы разработать и изготовить автономную систему парящего робота, управляемую микроконтроллером 68HC9S12. Наиболее трудным аспектом системы является проблема стабильного положения робота, которое должно постоянно поддерживаться контроллером. На рис. 7.21 показана фотография робота на базе парящей рамы. Этот проект был создан студентом старших курсов.

Рис. 7.21. Робот на базе парящей рамы

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

Парящий робот должен удовлетворять следующим общим требованиям:

1. Быть автономным;

2. Иметь рабочую область размером 16x16 футов. (40,6x40,6 см);

3. Весить не больше, чем 2,5 фунта (1,14 кг);

4. Обладать собственными средствами взлета и посадки;

5. Использовать двигатели постоянного тока;

6. Поднимать до 4,5 фунтов (2,05 кг), включая собственный вес;

7. Поддерживать постоянную высоту парения;

8. Осуществлять движение во всех направлениях;

Поделиться с друзьями: