標題: 地磁監測系統控制作 ardunio下位機+LabVIEW上位機程序 [打印本頁]
作者: jialinx 時間: 2015-9-14 12:06
標題: 地磁監測系統控制作 ardunio下位機+LabVIEW上位機程序
本帖最后由 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前面板


作者: 山東索亞敏 時間: 2015-10-11 06:43
精采,找了好半天了
作者: 51hei電控2112311 時間: 2016-5-1 15:51
This is my project!
作者: cr8526 時間: 2018-10-21 00:19
ardunio下位機的硬件和程序呢?????
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |