|
之前在做类似项目时做的参考文件,内容看图片,很齐全的了
Intel提供了一系列第6代Intel® Core™处理器和Intel® Xeon®处理器,包括最近发布的分别搭载Intel®Iris™ Pro Graphics P580和P55的Intel® Xeon® E3-1578L v5和E3-1558L v5处理器。这些处理器能够实时处理多达2个4k HEVC输出流或多达15个全高清-HEVC流。 对于使用视频分析并需要迅速将片段传输给相关人员以提醒潜在事故的监控系统,这样的性能至关重要。 这些事故可以是有人在停车场闲逛、将商品装进钱包或提包、将背包丢弃在机场或其他运输站场。
高速球型摄像机介绍:
高速球型摄像机是一种智能化摄像机前端,全名叫高速智能化球型摄像机,或者一体化高速球智能球,或者简称快球,简称高速球。高速球集成了云台系统、摄像头系统和通讯系统,云台系统是指电机带动的旋转部分,通讯系统是指对电机的控制和通讯系统,云台系统是指电机带动的旋转部分,通讯系统是指对电机的控制以及对图像和信号的处理部分,摄像机系统是指采用的一体机机心。
具体来讲,高速球采用“精密微分步进电机”实现高速球的快速、准确的定位、旋转;将摄像机叠加了OSD(on-screen display)菜单的图像传输出来。通信系统连接上位机和MCU,实现操作者对云台和摄像机的控制。通讯协议通常采用PELCO(派尔高)的传输协议。
本设计主要描述了uPD781146的使用,步进电机的驱动,OSD菜单的叠加,以及PELCO-P通信协议的实现等。
高速智能球型摄像机方案款图:
源程序:
- #include "driver.h"
- #include "TAU.h"
- #include "DELAY.H"
- #include "OSD.H"
- #include "TLC5620.H"
- #include "math.h"
- #include "Serial.H"
- #include "OSD.h"
- void System_Init(void);
- U16 ii,jj;
- //const U8 H_Motor_PA[16] = {40,137,220,255,255,255,220,137,40,137,220,255,255,255,220,137};
- //const U8 H_Motor_PB[16] = {235,235,200,117,20,117,200,235,235,235,200,117,20,117,200,235};
- void main(void)
- {
- System_Init();
- Motor_Check();
- init_upd6464a();
- while(1)
- {
- Display_Angle(Pan_Angle,Tilt_Angle);
- delay_x1ms(50);
- }
- }
-
- void System_Init(void)
- {
-
- U16 i,j;
-
-
- DI();
- Clock_Init();
-
- PM0.1 = 1;
-
- //DA
- TLC5620_Init();
- //timer
- TAU_Init();
-
- //485
- SAU1_Init();
- UART3_Start();
-
- //osd
- init_upd6464a();
- //var
-
- clock = 0;
- round = 0;
- Pan_Run_Stop_Flag = 0;
- Tilt_Run_Stop_Flag = 0;
- Pan = 0;
- Pan_Last = 0;
- Tilt = 0;
- Tilt_Last = 0;
- Pan_Clock = 0;
- Tilt_Clock = 0;
- First_Run_Pan = 0;
- First_Run_Tilt = 0;
- Pan_Angle = 0;
- Tilt_Angle = 0;
- Receive_Flag = 0;
-
-
- Micro_Step = 128;
- for(i = 0;i<(4*Micro_Step);i++)
- {
- H_Motor_PA_128[i] = (U8)((fabs(sin(3.1415*i/(2*Micro_Step))))*255);
- H_Motor_PC_128[i] = (U8)((fabs(sin(3.1415*i/(2*Micro_Step))))*255);
- H_Motor_PB_128[i] = (U8)((fabs(cos(3.1415*i/(2*Micro_Step))))*255);
- H_Motor_PD_128[i] = (U8)((fabs(cos(3.1415*i/(2*Micro_Step))))*255);
-
- }
-
- Micro_Step = 64;
- for(i = 0;i<(4*Micro_Step);i++)
- {
- H_Motor_PA_64[i] = (U8)((fabs(sin(3.1415*i/(2*Micro_Step))))*255);
- H_Motor_PC_64[i] = (U8)((fabs(sin(3.1415*i/(2*Micro_Step))))*255);
- H_Motor_PB_64[i] = (U8)((fabs(cos(3.1415*i/(2*Micro_Step))))*255);
- H_Motor_PD_64[i] = (U8)((fabs(cos(3.1415*i/(2*Micro_Step))))*255);
-
- }
-
- Micro_Step = 32;
- for(i = 0;i<(4*Micro_Step);i++)
- {
- H_Motor_PA_32[i] = (U8)((fabs(sin(3.1415*i/(2*Micro_Step))))*255);
- H_Motor_PC_32[i] = (U8)((fabs(sin(3.1415*i/(2*Micro_Step))))*255);
- H_Motor_PB_32[i] = (U8)((fabs(cos(3.1415*i/(2*Micro_Step))))*255);
- H_Motor_PD_32[i] = (U8)((fabs(cos(3.1415*i/(2*Micro_Step))))*255);
-
- }
-
- Micro_Step = 16;
- for(i = 0;i<(4*Micro_Step);i++)
- {
- H_Motor_PA_16[i] = (U8)((fabs(sin(3.1415*i/(2*Micro_Step))))*255);
- H_Motor_PC_16[i] = (U8)((fabs(sin(3.1415*i/(2*Micro_Step))))*255);
- H_Motor_PB_16[i] = (U8)((fabs(cos(3.1415*i/(2*Micro_Step))))*255);
- H_Motor_PD_16[i] = (U8)((fabs(cos(3.1415*i/(2*Micro_Step))))*255);
-
- }
- Micro_Step = 8;
- for(i = 0;i<(4*Micro_Step);i++)
- {
- H_Motor_PA_8[i] = (U8)((fabs(sin(3.1415*i/(2*Micro_Step))))*255);
- H_Motor_PC_8[i] = (U8)((fabs(sin(3.1415*i/(2*Micro_Step))))*255);
- H_Motor_PB_8[i] = (U8)((fabs(cos(3.1415*i/(2*Micro_Step))))*255);
- H_Motor_PD_8[i] = (U8)((fabs(cos(3.1415*i/(2*Micro_Step))))*255);
-
- }
-
- TLC5620_SetOutput_2(CHL0,255,CHL1,255);
- TLC5620_SetOutput_2(CHL2,255,CHL3,255);
-
- Motor_Init();
-
- delay_x1ms(600);
-
-
- EI();
-
-
-
-
-
-
- /*
- for(i = 60000;i> 1;i--)
- {
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 0;//low
- Delay(1);
- //delay_x1ms(1);
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 1;//high
- Delay(1);
- //delay_x1ms(1);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 1;
- Delay(1);
- //delay_x1ms(1);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 0;
- Delay(1);
- //delay_x1ms(1);
- }
- for(i = 10000;i> 1;i--)
- {
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 0;//low
- Delay(1);
- //delay_x1ms(1);
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 1;//high
- Delay(1);
- //delay_x1ms(1);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 1;
- Delay(1);
- //delay_x1ms(1);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 0;
- Delay(1);
- //delay_x1ms(1);
- }*/
- /*
-
- for(i = 20000;i> 19950;i-=40)
- {
-
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 0;//low
- j = i;
- Delay(j);
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 1;//high
- j = i-10;
- Delay(j);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 1;
- j = i-20;
- Delay(j);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 0;
- j = i-30;
- Delay(j);
- }*/
- /*
- while(1)
- {
-
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 0;//low
- Delay(400);
- //delay_x1ms(1);
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 1;//high
- Delay(400);
- //delay_x1ms(1);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 1;
- Delay(400);
- //delay_x1ms(1);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 0;
- Delay(400);
- //delay_x1ms(1);
-
-
- }
- */
- //TLC5620_SetOutput(CHL0,00);
- //TLC5620_SetOutput(CHL1,00);
-
-
-
- //TAU_Channel3_Start();
- /*
- while(1)
- {
-
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 0;//low
- Delay(1490);
- //delay_x1ms(1);
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 1;//high
- Delay(1490);
- //delay_x1ms(1);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 1;
- Delay(1490);
- //delay_x1ms(1);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 0;
- Delay(1490);
- //delay_x1ms(1);
-
-
- }
- */
-
-
-
- //delay_x1ms(100);
- //Motor_Init();
-
- //MOTOR_PWMA = 0;//high
- //MOTOR_PWMB = 0;//low
-
-
- //Motor_Init();
-
- //for(j = 1000;j<=500;j-=50)
- //{
- /*
- for(i = 1000;i>= 400;i-=200)
- {
-
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 0;//low
- Delay(i);
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 1;//high
- Delay(i-50);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 1;
- Delay(i-100);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 0;
- Delay(i-150);
-
-
- }
- */
-
-
- /*
-
- for(i = 900;i> 800;i-=20)
- {
-
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 0;//low
- Delay(i);
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 1;//high
- Delay(i-5);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 1;
- Delay(i-10);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 0;
- Delay(i-15);
-
-
- }
- while(1)
- {
-
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 0;//low
- Delay(250);
- //delay_x1ms(1);
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 1;//high
- Delay(250);
- //delay_x1ms(1);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 1;
- Delay(250);
- //delay_x1ms(1);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 0;
- Delay(250);
- //delay_x1ms(1);
-
-
- }
- for(i = 500;i> 100;i--)
- {
- for(j = 0;j<10;j++)
- {
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 0;//low
- Delay(i);
- MOTOR_PWMA = 1;//high
- MOTOR_PWMB = 1;//high
- Delay(i);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 1;
- Delay(i);
- MOTOR_PWMA = 0;
- MOTOR_PWMB = 0;
- Delay(i);
- }
- }
- */
-
- //}
- //MOTOR_PWMA_PM = 1;//high
- //MOTOR_PWMB_PM = 1;//low
- /*
- TLC5620_SetOutput(CHL0,255);
- TLC5620_SetOutput(CHL1,255);
-
- for(i = 0;i< 500;i++)
- {
-
-
- TOE0 &= ~TAU_CH5_OUTPUT_ENABLE & ~TAU_CH6_OUTPUT_ENABLE;
- TAU_Channel5_ChangeDuty(100);
- TAU_Channel6_ChangeDuty(0);
-
- TOE0 |= TAU_CH5_OUTPUT_ENABLE;
- TOE0 |= TAU_CH6_OUTPUT_ENABLE;
- Delay(400);
-
-
-
-
- TOE0 &= ~TAU_CH5_OUTPUT_ENABLE & ~TAU_CH6_OUTPUT_ENABLE;
- TAU_Channel5_ChangeDuty(100);
- TAU_Channel6_ChangeDuty(100);
- TOE0 |= TAU_CH5_OUTPUT_ENABLE;
- TOE0 |= TAU_CH6_OUTPUT_ENABLE;
- Delay(400);
-
-
-
-
-
- TOE0 &= ~TAU_CH5_OUTPUT_ENABLE & ~TAU_CH6_OUTPUT_ENABLE;
- TAU_Channel5_ChangeDuty(0);
- TAU_Channel6_ChangeDuty(100);
- TOE0 |= TAU_CH5_OUTPUT_ENABLE;
- TOE0 |= TAU_CH6_OUTPUT_ENABLE;
- Delay(400);
-
-
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
下载:
高速智能球型摄像机方案设计.rar
(1.47 MB, 下载次数: 9)
|
评分
-
查看全部评分
|