本帖最后由 jialinx 于 2015-9-14 12:07 編輯
地磁監(jiān)測系統(tǒng)控制中心平臺 一實驗要求 1、利用Labview控制前端地磁監(jiān)測儀(利用單片機模擬)進(jìn)行地磁總場F,分量(X、Y、Z)的采集與串口傳輸。 2、根據(jù)采集數(shù)據(jù)計算地磁場磁偏角和磁傾角、分量的校正(總場數(shù)據(jù)校正分量數(shù)據(jù))。 3、能夠?qū)崟r顯示當(dāng)前地磁要素(總場、分量、磁偏角和磁傾角)曲線,并能進(jìn)行數(shù)據(jù)的本地txt文件存儲。 二實驗分析 1利用ardunio串口發(fā)送功能向電腦發(fā)送地磁總場F,分量(X、Y、Z)數(shù)據(jù),并可以接受上位機控制,每發(fā)送一組數(shù)據(jù),ardunio開發(fā)板上led燈閃亮一次。 2寫LabVIEW上位機程序,上位機既可以發(fā)送命令,又可以接受ardunio上傳的數(shù)據(jù)。根據(jù)采集數(shù)據(jù)計算地磁場磁偏角和磁傾角、分量的校正(總場數(shù)據(jù)校正分量數(shù)據(jù))。并用示波器顯示出來。 3將當(dāng)前地磁要素(總場、分量、磁偏角和磁傾角)和當(dāng)前時間存儲在txt文件中。 三實驗步驟1下位機部分 因為ardunio集成串口發(fā)送功能,故可以用簡單程序完成串口接受發(fā)的功能。程序如下所示: char led = 13; //定義LED燈為引腳13 uint8_t i=0; static uint16_t cichang[10][4]= //定義十組數(shù)據(jù) {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()=='#') //當(dāng)單片機接收到“#”后,開始發(fā)送一組數(shù)據(jù) { digitalWrite(led, HIGH); //LED閃亮一次表示一組數(shù)據(jù)發(fā)送完成 for(uint8_t j=0;j<4;j++) Serial.print(cichang[ i][j]); digitalWrite(led, LOW); ++i; if(i>=10) //依次發(fā)送十組數(shù)據(jù) i=0; } } 2上位機部分2.1串口配置:配置串口文件寫入?yún)^(qū)域和波特率。 2.2數(shù)據(jù)采集開始:用一個條件語句表示是否啟動串口發(fā)送程序,既數(shù)據(jù)采集是否開始。 2.3啟動開關(guān):啟動是否接受串口的數(shù)據(jù) 
2.4包頭包尾判斷:只有LabVIEW檢測到包頭包尾才處理數(shù)據(jù),否則丟失數(shù)據(jù)

2.45提取串口信息:將下位機發(fā)送的數(shù)據(jù)經(jīng)過處理得到地磁總場F,分量(X、Y、Z)數(shù)據(jù)。 2.6數(shù)據(jù)處理:運用數(shù)學(xué)公式,將得到的數(shù)據(jù)整理加工,得到實際需要的地磁要素(總場、分量、磁偏角和磁傾角)。 2.7數(shù)據(jù)顯示:將處理后的數(shù)據(jù)格式化后放入虛擬式示波器顯示。 2.8數(shù)據(jù)儲存:將得到的地磁要素(總場、分量、磁偏角和磁傾角)和當(dāng)前時間儲存在txt文件中。 2.9前面板


|