0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于無線收發(fā)模塊和ATMEGA16單片機實現(xiàn)車載智能實時監(jiān)測系統(tǒng)的設計

牽手一起夢 ? 來源:東北大學 ? 作者:陸振林 ? 2021-03-26 11:17 ? 次閱讀

系統(tǒng)功能及應用

本系統(tǒng)主要完成將智能車行駛過程中的各種狀態(tài)信息(如傳感器亮滅,車速,舵機轉(zhuǎn)角,電池電量等)實時地以無線串行通信方式發(fā)送至上位機處理,并繪制各部分狀態(tài)值關于時間的曲線。有了這些曲線就不難看出智能車在賽道各個位置的狀態(tài),各種控制參數(shù)的優(yōu)劣便一目了然了。尤為重要的是對于電機控制PID參數(shù)的選取,通過速度—時間曲線可以很容易發(fā)現(xiàn)各套PID參數(shù)之間的差異。對于采用CCD 傳感器的隊伍來說,該系統(tǒng)便成為了調(diào)試者的眼睛,可以見智能車之所見,相信對編寫循線算法有很大幫助。而且還可以對這些數(shù)據(jù)作進一步處理,例如求取一階導數(shù),以得到更多的信息。

系統(tǒng)的硬、軟件設計

設計方案主要分成三部分:車載數(shù)據(jù)采集系統(tǒng),無線數(shù)傳系統(tǒng),上位機數(shù)據(jù)處理系統(tǒng)。系統(tǒng)基本構(gòu)建如圖1所示。

基于無線收發(fā)模塊和ATMEGA16單片機實現(xiàn)車載智能實時監(jiān)測系統(tǒng)的設計

圖1智能實時監(jiān)測系統(tǒng)結(jié)構(gòu)框圖與流程圖

車載數(shù)據(jù)采集系統(tǒng)

車載數(shù)據(jù)采集系統(tǒng)主要由單片機負責采集賽車行駛過程中的速度、傳感器狀態(tài)、電池電壓、舵機轉(zhuǎn)角等信息。為了使監(jiān)測系統(tǒng)不占用S12單片機的內(nèi)部資源并且支持熱插拔,我們將除供電之外的監(jiān)測系統(tǒng)與智能車控制系統(tǒng)相分離。我們選擇ATMEL公司的ATMEGA16

單片機作為該數(shù)據(jù)采集系統(tǒng)的處理器。二值型光電傳感器信號的采集直接使用該單片機的I/O口進行采集,連續(xù)型光電傳感器、電池電壓及CCD攝像頭信號則采用該單片機的A/D口進行采集,速度信息則通過光電編碼器和該單片機的計數(shù)器來采集。采集到的數(shù)據(jù)每20ms向上位機發(fā)送一次。

無線數(shù)傳系統(tǒng)

下位機向上位機傳輸?shù)氖且悦?0ms傳輸一組包含了光電編碼器值(speed),電池電壓(battery),舵機轉(zhuǎn)角值(angle),傳感器當前狀態(tài) (sensor)的數(shù)據(jù),如果是在理想狀態(tài)下,上位機接收到的應是上述各值循環(huán)出現(xiàn)的周期性數(shù)據(jù),此時上位機只需將這些數(shù)據(jù)按順序裝入各自的數(shù)組并畫圖即可。但在實際的無線傳輸過程中可能出現(xiàn)數(shù)據(jù)丟失現(xiàn)象。因此加入適當?shù)臄?shù)據(jù)校驗是必要的,否則會出現(xiàn)數(shù)據(jù)裝入錯誤,造成畫圖的混亂。我們在實際過程中是在每組數(shù)據(jù)中加入0x00,0xff的幀頭,當數(shù)據(jù)出現(xiàn)錯誤時,則舍棄該幀數(shù)據(jù)。

數(shù)據(jù)的無線收發(fā)部分采用的是SUNRAY公司的QC96型無線收發(fā)模塊,該模塊可以收發(fā)波特率為9600bps的串行數(shù)據(jù),距離可達100m。

上位機的數(shù)據(jù)接收及處理

上位機部份主要由四個模塊構(gòu)成:

·數(shù)據(jù)接收模塊

功能:上位機通過串口采集下位機發(fā)送的原始數(shù)據(jù)。

實現(xiàn):VC++中實現(xiàn)串口通信一般有二種方式,分別是MSComm控件和Windows API函數(shù)。MSComm簡潔易用,適用于比較簡單的系統(tǒng),Windows API函數(shù)應用較廣但比較復雜繁瑣,由于此模塊的串口通信功能相對簡單,本系統(tǒng)采用前者。在實際過程中使用的是事件驅(qū)動的方式,這種方法響應及時,可靠性高,并且比查詢法占用更少的資源。

·存儲模塊

功能:可直接存儲采集到的原始數(shù)據(jù),以備以后更多的分析處理。

實現(xiàn):在每個OnComm事件被觸發(fā)后,將串口接收到的數(shù)據(jù)直接存入temp臨時文件,并且可以在用戶的要求下將temp臨時文件里的值存儲到指定文件。

·數(shù)據(jù)的分析和處理模塊

功能:將采集到的原始數(shù)據(jù)進行用戶選定的分析和處理,主要包括丟棄錯誤數(shù)據(jù),以及去除幀頭并進行數(shù)據(jù)裝入任務,同時也可以對已保存的數(shù)據(jù)進行分析和處理。

實現(xiàn):將temp臨時文件或用戶指定文件的數(shù)據(jù)讀出并裝入,以下為主要程序代碼

void CChuankokjDlg::find_data(car_data c_data[], BYTE c_source[], int c_length)

{

int i=“0”;

while(i

{ if((c_source[ i]==0x00)&&(c_source[i+1]==0 xff)&&(c_source[i+6]==0x0 0)&&(c_source[i+7]==0xff))//判斷幀頭并進行數(shù)據(jù)裝入

{

c_data[length].speed_data=c_source[i+2];

c_data[length].battary_data=c_source[i+3];

c_data[length].direcTIon_data=c_source[i+4];

c_data[length].sensor_data=c_source[i+5];

i=“i”+1;

}

else

i++;

}

}

·圖形顯示模塊

功能:以圖形界面來顯示處理后的數(shù)據(jù),以便更直觀地觀察智能車的運行狀態(tài)。

實現(xiàn):將上一模塊中裝入各數(shù)組的數(shù)據(jù)在用戶的選擇的模式下進行畫圖,可以只看一幅圖,也可以將四幅圖放在一起進行對比觀看。實際的運行界面及效果如圖2。

圖2 圖形顯示介面運行模塊

結(jié)語

該系統(tǒng)通過添加無線收發(fā)模塊,將智能車的實時狀態(tài)信息傳到上位機上,通過VC++編程,用圖象直觀形象地將其表現(xiàn)出來,很好地達到了對智能車狀態(tài)實時監(jiān)測的目的,極大地方便了我們調(diào)節(jié)PID等智能車參數(shù),對賽道記憶算法的研究提供了很大的幫助。

責任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2541

    文章

    49945

    瀏覽量

    747450
  • 單片機
    +關注

    關注

    6023

    文章

    44376

    瀏覽量

    628309
  • 監(jiān)測系統(tǒng)

    關注

    8

    文章

    2612

    瀏覽量

    81078
收藏 人收藏

    評論

    相關推薦

    基于ATmega16單片機的包裹智能分揀系統(tǒng)設計如何仿真?

    畢業(yè)設計題目是基于 ATmega16單片機的包裹智能分揀系統(tǒng)設計大致內(nèi)容是 本系統(tǒng)采用ATmega16
    發(fā)表于 12-03 19:19

    Atmega16單片機實用程序Atmega16單片機實用程序

    Atmega16單片機實用程序Atmega16單片機實用程序/************************************************/************
    發(fā)表于 07-13 09:14

    如何實現(xiàn)Atmega16單片機串口通信呢

    串口通信需要使用到的內(nèi)部寄存器有哪些?如何實現(xiàn)Atmega16單片機串口通信呢?
    發(fā)表于 09-23 07:47

    基于ATmega16單片機的干式變壓器智能溫度控制器設計

    基于ATmega16單片機的干式變壓器智能溫度控制器設計 介紹一種由ATmega16單片機構(gòu)成的干式變壓器
    發(fā)表于 10-15 21:49 ?1517次閱讀
    基于<b class='flag-5'>ATmega16</b><b class='flag-5'>單片機</b>的干式變壓器<b class='flag-5'>智能</b>溫度控制器設計

    基于ATmega16無線溫度監(jiān)測系統(tǒng)

    為解決問題,設計了一種基于單片機無線收發(fā)模塊無線溫度監(jiān)控系統(tǒng),結(jié)合溫度傳感器可以很方便構(gòu)建一
    發(fā)表于 05-25 09:46 ?1153次閱讀
    基于<b class='flag-5'>ATmega16</b>的<b class='flag-5'>無線</b>溫度<b class='flag-5'>監(jiān)測</b><b class='flag-5'>系統(tǒng)</b>

    基于ATmega16單片機實時溫度采集與分析系統(tǒng)

    提出了一種基于ATmega16單片機與溫度傳感器相結(jié)合的實時溫度采集與分析系統(tǒng)。本系統(tǒng)介紹了以ATmeg
    發(fā)表于 05-09 15:36 ?375次下載
    基于<b class='flag-5'>ATmega16</b><b class='flag-5'>單片機</b>的<b class='flag-5'>實時</b>溫度采集與分析<b class='flag-5'>系統(tǒng)</b>

    ATmega16單片機實用程序

    ATmega16單片機實用程序,共21個??芍苯右浦?,添加應用。
    發(fā)表于 11-09 14:25 ?33次下載

    ATmega16單片機中文用戶手冊

    ATmega16單片機中文用戶手冊 適合于初學者快速上手
    發(fā)表于 12-08 11:43 ?18次下載

    基于ATmega16和nRF2401的無線射頻收發(fā)系統(tǒng)設計

    基于ATmega16和nRF2401的無線射頻收發(fā)系統(tǒng)設計。
    發(fā)表于 01-25 10:28 ?17次下載

    ATMEGA16單片機實現(xiàn)的數(shù)控頻率計原理圖

    ATMEGA16單片機實現(xiàn)的數(shù)控頻率計原理圖
    發(fā)表于 07-25 09:49 ?0次下載

    ATMEGA16單片機模塊電路圖與PCB源文件

    ATMEGA16單片機模塊電路圖與PCB源文件
    發(fā)表于 11-03 15:50 ?0次下載

    ATmega16單片機教程之ATmega16單片機定時器的分析與設計應用概述

    本文檔的主要內(nèi)容詳細介紹的是ATmega16單片機教程之ATmega16單片機定時器的分析與設計應用概述主要內(nèi)容包括了:1、單片機定時器的基
    發(fā)表于 12-07 08:00 ?14次下載
    <b class='flag-5'>ATmega16</b><b class='flag-5'>單片機</b>教程之<b class='flag-5'>ATmega16</b><b class='flag-5'>單片機</b>定時器的分析與設計應用概述

    如何實現(xiàn)ATMEGA16單片機與PC的通信

    ATMEGA16與PC的通信實驗1//PC發(fā)送一個字符給單片機,單片機收到后既在發(fā)光二極管進行顯示,同時將其回傳給PC//
    發(fā)表于 12-14 15:14 ?1410次閱讀

    使用ATMEGA16單片機實現(xiàn)矩陣鍵盤的掃描程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用ATMEGA16單片機實現(xiàn)矩陣鍵盤的掃描程序免費下載。
    發(fā)表于 09-06 17:27 ?5次下載
    使用<b class='flag-5'>ATMEGA16</b><b class='flag-5'>單片機</b><b class='flag-5'>實現(xiàn)</b>矩陣鍵盤的掃描程序免費下載

    Atmega16單片機串口通信

    Atmega16單片機串口通信Atmega16單片機串口通信串口通信需要使用到的內(nèi)部寄存器程序代碼Atmega16
    發(fā)表于 11-15 13:21 ?13次下載
    <b class='flag-5'>Atmega16</b><b class='flag-5'>單片機</b>串口通信