Itnewsrussia.ru

Анализ современных технологий

Охрана труда.

. Были разработаны алгоритмы, обеспечивающие управление системой приводов и реализующие как супервизорное, так и автоматическое управление;

. Были спроектированы и реализованы схемы универсальных контроллеров;

. Было разработано программное обеспечение микроконтроллеров.

. Была разработана система управления высокого уровня;

. Был проведен ряд экспериментов по управлению шагающим роботом;

. Были рассчитаны экономические показатели;

. Были разработаны меры безопасности.

ПРИЛОЖЕНИЯ

. Принципиальная схема контроллера

. Листинг программы контроллера

/*****************************************************: Программа подчинённого контроллера / XPod

Timer1: ШИМ: управление: 1.07

Date : 11.07.2011: 16.12.2011Иванов Н.В.: МИЭМ:type : ATmega88type : Applicationfrequency : 7,372800 MHzmodel : SmallSRAM size : 0Stack size : 256

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

#include <mega48.h>

#include <stdio.h>

#include <delay.h>

#include "m48lib.h"

#include "usart48.h"

#include "shim48fx.h"

#include " \mxpdlib.h"

#include " \mxpdproto.h"

//----------------------------------------------------------currAng = {0, 0, 0, 0, 0, 0, 0, 0};goalAng = {0, 0, 0, 0, 0, 0, 0, 0};

// Начальное положение манипулятораstartAng = {0, 0, 0, 0, 0, 0, 0, 0};

// Массив флагов для управления сервоприводамиneedrotate = {0, 0, 0, 0, 0, 0, 0, 0};

#define AStepDefault 2 // Начальное значение шага изменения угла поворотаAStep = AStepDefault; // Шаг угла поворотаTICK_CNT = 0;wasBlocked = 0; // Флаг блокировки движенияADCVAL = {0,0,0,0,0,0,0,0};

// Маска и значение прерывания операции CMD_SET_INT

BYTE INT_MASK = 0x00;INT_VALUE = 0xFF;SetStartPos(void); void timer2_ovf_isr(void)

// Рабочий таймер (7200 Hz)

// Эффективная частота - 28 Hz (7200/255) Hz / T2Div = 10 Hz

{

#define EFreq2 20 // 20 эффективная частота, Hz

#define T2Div2 (W_T2_FREQ/EFreq2)

int i;int CN = 0;n, bvalue;=W_TCNT2_RESET_VAL;++;(CN>=T2Div2) CN=0; else return;

//if(TICK_CNT%2) cmdIndic=1; else cmdIndic=0; //Этот индикатор нужен для диагностики ошибки

//if(TICK_CNT%2) out1=1; else out1=0;_CNT++;

// Пищалка(PIP_CNT>0) PIP_CNT--;SOUND = 0;= REGIST;

// Проверяем датчики блокировки(i=0;i<8;i++)

{= (REGIST & (1<<i));(n)

{= ADCVAL;(bvalue>=(unsigned char)REGIST) // Блокируем движение

{= 1;(!wasBlocked)

{= 1;();;

};

}

}

}= 0;= 0;

// Управляем сервомашинками(i=0;i<fxPWM_CH_NUM;i++)

{(currAng!=goalAng)

{ |= (BYTE)(1<<i); // Установить разряд i в '1'(abs(currAng-goalAng)<AStep)

{=goalAng;

}

{(currAng<goalAng)=currAng+AStep; = currAng - AStep;

}

// Выставляем флаг

//ShimSetAng(i, currAng); = 1;

}

{

// Гасим флаг = 0;

// Команда отработана &= (BYTE)(~(1<<i)); // Установить разряд i в '0'

}

}

}SetStartPos(void)

// Установить в начальное положение

{i;(i=0;i<fxPWM_CH_NUM;i++)

{(i, startAng); = currAng = startAng; = 0x00;

}

}StopAllServo(void) Перейти на страницу: 7 8 9 10 11 12 13 14 15 16 17

Популярное:

Исследование аналого-цифрового преобразователя с помощью Elvis Цель настоящей работы исследование процессов протекающих в аналого-цифровых преобразователях (АЦП) с помощью комплекта виртуальных измерительных приборов для учебных лабораторий «NI ELVIS». В качестве исследуемого АЦП разработан лабораторный стенд. Для конкретизации поставленных выше целей определим актуальность поставленной задачи ...