本帖最后由 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前面板


|