本帖最后由 jialinx 于 2015-9-14 12:07 编辑
地磁监测系统控制中心平台 一实验要求 1、利用Labview控制前端地磁监测仪(利用单片机模拟)进行地磁总场F,分量(X、Y、Z)的采集与串口传输。 2、根据采集数据计算地磁场磁偏角和磁倾角、分量的校正(总场数据校正分量数据)。 3、能够实时显示当前地磁要素(总场、分量、磁偏角和磁倾角)曲线,并能进行数据的本地txt文件存储。 二实验分析 1利用ardunio串口发送功能向电脑发送地磁总场F,分量(X、Y、Z)数据,并可以接受上位机控制,每发送一组数据,ardunio开发板上led灯闪亮一次。 2写LabVIEW上位机程序,上位机既可以发送命令,又可以接受ardunio上传的数据。根据采集数据计算地磁场磁偏角和磁倾角、分量的校正(总场数据校正分量数据)。并用示波器显示出来。 3将当前地磁要素(总场、分量、磁偏角和磁倾角)和当前时间存储在txt文件中。 三实验步骤1下位机部分 因为ardunio集成串口发送功能,故可以用简单程序完成串口接受发的功能。程序如下所示: char led = 13; //定义LED灯为引脚13 uint8_t i=0; static uint16_t cichang[10][4]= //定义十组数据 {48107,27903,28103,27905, 48018,25120,30502,28126, 47980,28146,25167,29846, 48048,27103,26480,29892, 48012,25109,28045,31023, 48023,27203,29892,27735, 48045,28103,26309,30204, 48092,28023,27012,29103, 48108,27974,28123,28133, 47977,28034,27988,2789, }; void setup() { Serial.begin(9600); //打开串口 pinMode(led, OUTPUT); //LED引脚定义为输出 } void loop() { if(Serial.read()=='#') //当单片机接收到“#”后,开始发送一组数据 { digitalWrite(led, HIGH); //LED闪亮一次表示一组数据发送完成 for(uint8_t j=0;j<4;j++) Serial.print(cichang[ i][j]); digitalWrite(led, LOW); ++i; if(i>=10) //依次发送十组数据 i=0; } } 2上位机部分2.1串口配置:配置串口文件写入区域和波特率。 2.2数据采集开始:用一个条件语句表示是否启动串口发送程序,既数据采集是否开始。 2.3启动开关:启动是否接受串口的数据
2.4包头包尾判断:只有LabVIEW检测到包头包尾才处理数据,否则丢失数据
2.45提取串口信息:将下位机发送的数据经过处理得到地磁总场F,分量(X、Y、Z)数据。 2.6数据处理:运用数学公式,将得到的数据整理加工,得到实际需要的地磁要素(总场、分量、磁偏角和磁倾角)。 2.7数据显示:将处理后的数据格式化后放入虚拟式示波器显示。 2.8数据储存:将得到的地磁要素(总场、分量、磁偏角和磁倾角)和当前时间储存在txt文件中。 2.9前面板
|