当前位置: 首页 > news >正文

网站推广seo是什么上海市人力资源网官网

网站推广seo是什么,上海市人力资源网官网,网站建设企,有哪些网站可以免费做外销1 概述 使用4个热释电传感器组成一个2X2的矩阵。通过曲线的相位差、 峰峰值等特征量来计算相关信息。本文使用STM32单片机设计、制作了热释电传感器矩阵#xff1b;使用C#.NET设计了上位机软件。为以上研究做了试验平台。 2 硬件电路设计 2.1 热释电传感器介绍 热释电红外… 1  概述 使用4个热释电传感器组成一个2X2的矩阵。通过曲线的相位差、 峰峰值等特征量来计算相关信息。本文使用STM32单片机设计、制作了热释电传感器矩阵使用C#.NET设计了上位机软件。为以上研究做了试验平台。 2 硬件电路设计 2.1  热释电传感器介绍 热释电红外探测器的信号产生原理主要是利用热释电材料的热释电效应。热释电材料是一种压电材料是不具有中心对称性的晶体如钽酸锂、硫酸三甘肽等当这类晶体发生温度变化时使得晶体内部的原子位置变化导致了晶体某一方向产生表面极化电荷的现象会使晶体两端产生一个微小的电压差。如图2.1 示意了热释电效应的基本原理。如果当温度保持不变的时候该电压会因为与空气中离散的荷中和而消失掉所以只有温度场变化时热释电传感器才会敏感变化。 图2.1热释电效应 当热释电材料表面受到经菲涅尔透镜调制过的人体红外辐射照射后晶体表面温度便会上升使垂直于自发极化轴方向的晶体单位表面上的电荷发生自极化晶体的电容值表示为两电极之间的电压便可表示为 /。通过检测这一变化微弱的电压信号可以获取温度场变化趋势。本文采用D203s型号传感器其等效电路如下图所示。当移动人体穿过其感应区时热释电传感器输出信号反应了各热释电元件接收热辐射的通量变化量之差。连续时刻当两片热释电元件接收的热辐射量差值不同时便会产生一个变化的电压输出信号。 D203s等效电路 当人体沿一定方向、一定距离移动时将产生电压输出信号。图中可以看出热释电探头的两片热释电元件分别对应两个柱形视场区域并且将其感应视场划分为盲区和高敏感区。当人体穿过其中一个敏感区域时便会对相应的热释电元件产生一个阶跃输入从而通过后续电路产生热释电压而当人体穿过两敏感区的中间盲区时由于人体红外能不能辐射到热释电元件导致不会产生对应的输出电压。因此可以根据传感器输出时域电压信号序列寻找一些可用特征以实现人体的检测、定位与识别。其中传感器输出信号与移动速度、距离等之间的关系如下所示 其中 f 为输出信号的频率HZVb 为目标移动速度m/sfb为菲涅尔透镜 焦距mm s 为敏感元件大小mm L为目标距传感器距离m。 2.2 工作原理示意图 2.2 采集电路设计 根据 PIR 传感器的工作原理当人体走过或者在菲涅尔透镜明暗相间的区域运动时会使热释电元件表面上产生微弱的电流然后由电路转换为电压信号输出这个电压信号的幅值非常小大概在 1mV 左右。信号幅值太小会导致容易受到外界环境的干扰这样采集的数据就没有分析的意义。为了减小实验误差增加数据可靠性设计了如下图所示的信号调理电路。 图2.3信号调理电路 传感器在供电时需要10K限流电阻输出需要47K的匹配电阻。在经过RC滤波电路后经过两级放大电路放大本文采用LM358运算放大器组成放大电路。一级放大和二级放大电路间采用电容耦合这样可以去掉传感器输出的直流分量。第二级放大电路倍数可调通过测试选取合适放大倍数。第二级放大电路参考电压设置在1.65V主要是因为后去ADC为0~3.3V输入。通过信号调理电路可以得到0~3.3V的电压信号方便ADC转换。 2.3单片机电路 采用DC5V供电电路内需要供电的芯片有3.3V和5V两种。其中D203S及其信号处理部分、蜂鸣器采用5V供电单片机、通信芯片等采用3.3V供电。为方便操作电源输如后增加自锁电源开关开关后设计电容滤波来提高5V电压的精度、减少文波干扰。3.3V电源使用lm1117-3.3V电源芯片该芯片可提供500ma的稳定电流足够系统使用。如图2.4(a)为电源电路部分。设计电源指示灯一个用于检测3.3V电源工作与否。 单片机最小系统如图2.4(b)所示包括了晶振电路、boot电路、以及ADC电源部分。同时设计了复位电路通过电阻、电容的充放电时间来实现单片机的复位过程。为了方便观测程序的运行与否设计了可控LED指示灯一个通过定时器控制闪烁提示使用者系统健康状况。单片机采用SW调试方式该方式仅需要4跟线就可完成程序的烧写、在线调试等功能。设计了4个独立按键用于按键操作。同时设计了一个有源蜂鸣器电路用于产生提示、告警声音。 a电源电路 b单片机电路 c外围电路 (d)按键与蜂鸣器 图2.4 单片机系统电路设计 2.4串行通信电路 串行通信指数据是一位一位按顺序传送的通信方式相对于并行通信其突出优点是只需要一对传输线缺点是传输速度较低。串行通信的传输方向通常有三种单工、半双工和全双工。单向顾名思义只允许数据向一个方向传输半双工允许两个方向传输但在同一时刻只能往一个方向传输全双工则允许双向同时传输数据。 串行通信有两种基本通信方式异步通信和同步通信。异步通信不需要传输时钟信号通信双方的时钟是各自独立的但双方必须是相同的通信速率和数据格式即相同的通信协议。其帧格式一般为起始位数据位奇偶校验位停止位。同步通信需要时钟同步双方的数据收发是同时进行的。同步通信中一般字符与字符之间没有间隙相对于异步通信不需要起始位和停止位只需要同步信号和同步开始时的同步字符。波特率也称码元速率为单位时间内传输符号的个数或载波调制状态改变次数单位是Bd(Baud)。比特率又称码率表示单位时间内传输的比特数单位是bps(bit/s)。比特率和波特率的转换关系与信号的调制方式有关通常为比特率波特率*调制位数调制位数即码元位数。在异步串行通信中由于采用二进制编码码元位数为一通常情况下比特率波特率。 串行异步通信 RS-232是美国电子工业联盟制定的串行数据通信接口标准原始编号全称是EIA-RS-232简称RS232它被广泛用于DCEData Communication Equipment 和 DTEData Terminal Equipment 之间的连接。DCE可以理解为数据通信端比如modem设备DTE可以理解为数据终端比如电脑。最早的台式电脑都会保留9针的232接口用于串口通信目前基本被USB接口取代。现在RS232接口常用于仪器仪表设备PLC以及嵌入式领域当作调试口来使用。图2.5给出了本文设计的RS232接口电路为了调试方便保留了TTL电平接口P2。 图2.5通信电路 PCB设计 3  软件设计 软件由传感器系统软件和上位机软件组成两个软件间通过异步串行通信进行数据交互。 3.1单片机软件设计 单片机软件架构如下图所示包括驱动层数据层和逻辑控制层。具体源代码参见附录 单片机程序源码 单片机软件设计流程如下图所示。首先初始化然后通过定时器定时循环采集4个热释电传感器数据然后通过串口发送给上位机。同时预留了4个按键和一个蜂鸣器用于后续工作储备。 主函数代码其它详见附录。 // 主函数 程序从这里开始 int main(void) {u8 i0,k0;u8 sum;//发送数据的校验//串口有关变量u8 number0;u8 State10x7F;u8 State20x0F;/*通信状态有关变量*///接收标志u8 nGotTDZHT0;u16 nBufTD0;u8 nGotTDZHTBY0;u16 nBufTDBY0;//主控计算机接收标志u8 nGotMPC0;u16 nBufMPC0; //串口2的一些变量初始化 Inform_OUTPUT.DATA.Frame_Head10xAA;Inform_OUTPUT.DATA.LEN14;Inform_OUTPUT.DATA.state1State1;Inform_OUTPUT.DATA.state2State2;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);delay_init(168); LED_Init();//LED初始化// 定时器初始化TIM3_Int_Init(1000-1,168-1);RS422_Init(115200);//初始化串口2用于连接工控机DMA1_Config(DMA1_Stream6,DMA_Channel_4,(u32)USART2-DR,(u32)BUF2,SENTDATA_LEN);//串口2DMA初始化Adc_Init();delay_us(2000);delay_ms(100);Beep0;//关闭beep while(1){//接收到工控机数据预留if(New_PC1) {New_PC0;nGotMPC5;nBufMPC;State2State2|0X01;}if(TIME_on1) //控制周期时间到进行ADC和数据发送{TIME_on0;//接收MIPC监控if(nGotMPC0){nGotMPC--;State2State2|0X01;}else{State2State20XFC;}// 读取ADC获得传感器采样值getAdcValues();ii1;if(i50) //控制D1亮{ i0;LED1!LED1;}//串口2给工控机发送数据Inform_OUTPUT.DATA.Sonser1ValueAdcValue[0];Inform_OUTPUT.DATA.Sonser2ValueAdcValue[1];Inform_OUTPUT.DATA.Sonser3ValueAdcValue[2];Inform_OUTPUT.DATA.Sonser4ValueAdcValue[3]; number;numbernumber%16;Inform_OUTPUT.DATA.numbernumber4; sum0;for(k1;kSENTDATA_LEN;k)//计算校验和{if(k3) continue;sum Inform_OUTPUT.ARRAY[k];}Inform_OUTPUT.DATA.checksumsum;// 发送数据memcpy(BUF2,Inform_OUTPUT,SENTDATA_LEN);DMA_ClearFlag(DMA1_Stream6, DMA_FLAG_TCIF6);// MYDMA_TxEnable(DMA1_Stream6,SENTDATA_LEN,USART2); } else{}}} 3.2  上位机软件设计 C#是一种高级编程语言当今主流开发语言占有率排名前五该语言由微软2000年推出、面世被微软誉为.NET平台最佳编程语言。C#以.NET类库为基础是兼顾系统开发与应用程序开发的最佳语言。继承了C/C简明的编程语法封装了大多数C类库。 C#.NET可以编写四类应用程序 1桌面应用程序主要包括Winform和WPF。二者都是优秀的桌面解决方案首选。Winform的使用者居多主要因为Winform控件较丰富其他语言也都用相应的winform开发环境转行C#后选择Winform入手较快。 2Windows Store 应用程序。主要应用于移动、触摸设备的开发。 3Web应用程序。通过Web浏览器可以查看的Web页面如ASP.NET。 4WCF服务。一种灵活的分布式应用程序解决方案可以通过局域网、广域网在各种操作系统间传递任何数据。 本文将使用Visual Studio 2010和C#语言开发一款基于.NET的winform应用程序。根据系统需求本文将针对应用程序在以下几个方面展开研究 1用户系统 2可视化界面 3通信系统 4数据库系统 应用程序主题框架如下图所示 考虑到程序的运行效率将采用多线程方案。在windows系统中每一个应用程序都是一个独立的进程进程之间不能共享资源。和进程类似每一个进程中独立运行的程序片段叫做线程线程间可以共享本进程中的公共资源。每个线程间是并列关系在CPU资源充足的情况下他们是并行运行的。 多线程可以提高应用程序的响应。特别是复杂的图形界面如果应用程序在等待某一资源不会按时处理图形界面这将导致图形界面出现卡顿。如果此时采用多线程技术将等待处理交给后台线程处理这样等待时间过长时就不会影响图形界面的更新。 C#通过 System.Threading.Thread类实现线程的创建和管理。创建一个线程 Thread WriteLogThread new Thread(new ThreadStart(WritingLog)); WriteLogThread.Start(); 其中线程名 WriteLogThread线程函数 WritingLog。WriteLogThread.Start()将开启线程线程启动后将调用WritingLog()函数。我将在此函数中写线程要执行的程序。具体使用请见CSDN Thread类。 3.2.1 曲线图界面 GDI全称Graphics Device Interface图形设备接口主要负责Window系统上的图形和图像输出开发人员利用其后续版本GDI内置函数可以方便在设备处理和动态显示图形图像。GDI提供的主要功能包含二维几何图形的处理、图形图像显示、排版等。System. Drawing. dll程序集中就已经封装了GDI的功能在开始使用GDI类时需在项目工程中添加System. Drawing. dll的引用通过GDI技术程序员可以编写与图形设备进行交互的Windows或Web图形应用程序应用程序与图形设备之间不能直接通信而GDI库的作用就是将程序发送的数据转换并传递给设备。 通过GDI提供的API函数可以实现曲线图的绘制。本文使用GDI、checkbox等控件实现了曲线图绘制。如下图所示具有多种颜色的曲线图曲线图上部为曲线名称图例向下有四行数字分别是鼠标当前值圈取区间最大、最小以及平均值。改曲线图可以完好的显示出实时变化的传感器曲线和各项计算结果有助于传感器数据的理解与应用。 3.2.2通信程序 软件通过SerialPort实现异步串行通讯。 由于串口不知道数据何时到达因此有线程实时读串口和事件触发方式两种串口数据的读取方法。实质事件方式也是在一个独立线程中处理的。 串口的初始化如下 建立串口处理事件 serialPort1.DataReceived new SerialDataReceivedEventHandler(this.serialPort1_DataReceived); 开启串口 serialPort1.PortName toolStripComboBox1.Text;serialPort1.BaudRate 115200;serialPort1.Open(); 串口接收处理通过接收中断处理数据中断函数如下所示其中数据处理也在其中。 private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e){int i0;if(portOpen)nbyte2rec serialPort1.BytesToRead;while (nbyte2rec 18portOpen){int res serialPort1.ReadByte();if (res 0xAA){nRecBuf;if (nBuf 15) nBuf; else nBuf 0;//recbuffer[0] 0xAA;serialPort1.Read(recbuffer, 1, 18);// byte[] cheak BytesCheck.GetCRC16ByPoly(recbuffer,0x0000, 0x8005, 0x0000,false,false,true, 1, 16);//0x8005sum recbuffer[1] recbuffer[2];for ( i 4; i 18; i){sum recbuffer[i];}sum 0xFF;if (sum ! recbuffer[3]){nErrBuf;}this.nGot 10;_nBuf recbuffer[2] 4;if (frist){frist false;RecFirstTime DateTime.Now;nBuf _nBuf;}else{if (nBuf ! _nBuf){if (_nBuf - nBuf 0){nLoseBuf _nBuf - nBuf 16;}else{nLoseBuf _nBuf - nBuf;}nBuf _nBuf;}}this.DataLen recbuffer[1];nGroup recbuffer[2] 0x0F;if (nGroup 0){//Sovalue[0] BitConverter.ToUInt16(recbuffer, 4);//Sovalue[1] BitConverter.ToUInt16(recbuffer, 6);//Sovalue[2] BitConverter.ToUInt16(recbuffer, 8);//Sovalue[3] BitConverter.ToUInt16(recbuffer, 10);RunTim(DateTime.Now-StartTime).TotalSeconds;for (i 0; i 4; i){Sovalue[i] Math.Min(4095, (int)BitConverter.ToUInt16(recbuffer, 4i*2));}RDSoValues[0] 0.05F * Kso[0] * (Sovalue[1] - D0so[0]) 0.95F * RDSoValues[0];RDSsum[0] RDSoValues[0];RDSoValues[1] 0.05F * Kso[1] * (Sovalue[0] - D0so[1]) 0.95F * RDSoValues[1];RDSsum[1] RDSoValues[1];RDSoValues[2] 0.05F * Kso[2] * (Sovalue[2] - D0so[2]) 0.95F * RDSoValues[2];RDSsum[2] RDSoValues[2];RDSoValues[3] 0.05F * Kso[3] * (Sovalue[3] - D0so[3]) 0.95F * RDSoValues[3];RDSsum[3] RDSoValues[3];coudis(RDSoValues);//disdrawlinesControl1.Lines[0].Add(RDSoValues[0]);drawlinesControl1.Lines[1].Add(vuVpp[0]);drawlinesControl1.Lines[2].Add(dis[0]*1000);drawlinesControl1.Lines[3].Add(RDSoValues[1]);drawlinesControl1.Lines[4].Add(vuVpp[1]);drawlinesControl1.Lines[5].Add(dis[1] * 1000);drawlinesControl1.Lines[6].Add(RDSoValues[2]);drawlinesControl1.Lines[7].Add(vuVpp[2]);drawlinesControl1.Lines[8].Add(dis[2] * 1000);drawlinesControl1.Lines[9].Add(RDSoValues[3]);drawlinesControl1.Lines[10].Add(vuVpp[3]);drawlinesControl1.Lines[11].Add(dis[3] * 1000);//_list_V1.Add(RunTim, RDSoValues[1]);//_list_V2.Add(RunTim, RDSoValues[0]);//_list_V3.Add(RunTim, RDSoValues[2]);//_list_V4.Add(RunTim, RDSoValues[3]);}}nbyte2rec serialPort1.BytesToRead;}} 3.2.3定时器与界面刷新 上位机与下位机一样需要定时器定时刷新、更新界面显示。 初始化定时器时间单位毫秒 timer1.Interval 100; 启动定时器 timer1.Start(); 定时中断函数函数内为界面刷新命令。 private void timer1_Tick(object sender, EventArgs e){//数据显示刷新label_S1.Text dis[0].ToString(F2) m;label_S2.Text dis[1].ToString(F2) m;label_S3.Text dis[2].ToString(F2) m;label_S4.Text dis[3].ToString(F2) m;drawlinesControl1._Refresh();//绘图控件刷新} 附录I 电路设计原理图和PCBhttps://download.csdn.net/download/w267309080/88298439 单片机软件源码https://download.csdn.net/download/w267309080/88298418 上位机软件源码https://download.csdn.net/download/w267309080/88298400
http://www.pierceye.com/news/123442/

相关文章:

  • 企业品牌网站建设方案无锡网站设计多少钱
  • 轻量级网站开发在线旅游网站平台有哪些
  • 怎么用vs做网站推广优化网站排名
  • 免费推广网站软件常宁网站建设常宁网站建设
  • 冀州市网站建设html编辑器安卓版手机版软件
  • 广州专业网站改版方案网站建设要做ui和什么
  • 做网站显示上次登录时间代码h5素材库
  • 比较有名的网站建设公司谷歌网站优化
  • 企业网站改版计划书中国制造网是做什么的
  • 非主营电子商务企业网站有哪些企业网项目建设实践
  • 颍东网站建设手机vi设计公司
  • 林哥seo网络营销seo培训
  • 如何面试网站开发网站制作交易流程
  • 绍兴网站建设冯炳良互联网营销
  • 制作企业网站怎么报价可以做我女朋友吗网站
  • 广西玉林网站建设正规公司建手机网站
  • 乐清网站制作公司招聘做私人网站 违法
  • 珠海电脑自己建网站电子商务排名
  • 怎样做网站的背景图片安卓原生开发
  • 现代电子商务网站建设技术wordpress采用的mvc
  • 台州网站建设团队如何申请建设网站域名
  • 资料查询网站建设桂林微代码网络科技有限公司
  • 做暖视频网站免费番禺网站制作技术
  • 如何做网站百度排名优化深圳市住房和建设网站
  • 汉沽做网站简单网站建设
  • 建信建设投资有限公司网站网站建设app小程序
  • wordpress文章所有图片seo中文含义
  • 免费网站建设开发个人 网站备案 幕布
  • 公司网站设计 优帮云网站开发合同注意事件有哪些
  • 网站建设费用用温州建设局老网站