0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于ATMEGA16单片机和CCD传感器实现智能车状态实时监测系统的设计

电子设计 来源:东北大学 作者:陆振林 2021-03-24 14:25 次阅读

系统功能及应用

本系统主要完成将智能车行驶过程中的各种状态信息(如传感器亮灭,车速,舵机转角,电池电量等)实时地以无线串行通信方式发送至上位机处理,并绘制各部分状态值关于时间的曲线。有了这些曲线就不难看出智能车在赛道各个位置的状态,各种控制参数的优劣便一目了然了。尤为重要的是对于电机控制PID参数的选取,通过速度—时间曲线可以很容易发现各套PID参数之间的差异。对于采用CCD传感器的队伍来说,该系统便成为了调试者的眼睛,可以见智能车之所见,相信对编写循线算法有很大帮助。而且还可以对这些数据作进一步处理,例如求取一阶导数,以得到更多的信息。

系统的硬、软件设计

设计方案主要分成三部分:车载数据采集系统,无线数传系统,上位机数据处理系统。系统基本构建如图1所示。

基于ATMEGA16单片机和CCD传感器实现智能车状态实时监测系统的设计

图1智能实时监测系统结构框图与流程图

车载数据采集系统

车载数据采集系统主要由单片机负责采集赛车行驶过程中的速度、传感器状态、电池电压、舵机转角等信息。为了使监测系统不占用S12单片机的内部资源并且支持热插拔,我们将除供电之外的监测系统与智能车控制系统相分离。我们选择ATMEL公司的ATMEGA16单片机作为该数据采集系统的处理器。二值型光电传感器信号的采集直接使用该单片机的I/O口进行采集,连续型光电传感器、电池电压及CCD摄像头信号则采用该单片机的A/D口进行采集,速度信息则通过光电编码器和该单片机的计数器来采集。采集到的数据每20ms向上位机发送一次。

无线数传系统

下位机向上位机传输的是以每20ms传输一组包含了光电编码器值(speed),电池电压(battery),舵机转角值(angle),传感器当前状态 (sensor)的数据,如果是在理想状态下,上位机接收到的应是上述各值循环出现的周期性数据,此时上位机只需将这些数据按顺序装入各自的数组并画图即可。但在实际的无线传输过程中可能出现数据丢失现象。因此加入适当的数据校验是必要的,否则会出现数据装入错误,造成画图的混乱。我们在实际过程中是在每组数据中加入0x00,0xff的帧头,当数据出现错误时,则舍弃该帧数据。

数据的无线收发部分采用的是SUNRAY公司的QC96型无线收发模块,该模块可以收发波特率为9600bps的串行数据,距离可达100m。

上位机的数据接收及处理

上位机部份主要由四个模块构成:

·数据接收模块

功能:上位机通过串口采集下位机发送的原始数据。

实现:VC++中实现串口通信一般有二种方式,分别是MSComm控件和Windows API函数。MSComm简洁易用,适用于比较简单的系统,Windows API函数应用较广但比较复杂繁琐,由于此模块的串口通信功能相对简单,本系统采用前者。在实际过程中使用的是事件驱动的方式,这种方法响应及时,可靠性高,并且比查询法占用更少的资源。

·存储模块

功能:可直接存储采集到的原始数据,以备以后更多的分析处理。

实现:在每个OnComm事件被触发后,将串口接收到的数据直接存入temp临时文件,并且可以在用户的要求下将temp临时文件里的值存储到指定文件。

·数据的分析和处理模块

功能:将采集到的原始数据进行用户选定的分析和处理,主要包括丢弃错误数据,以及去除帧头并进行数据装入任务,同时也可以对已保存的数据进行分析和处理。

实现:将temp临时文件或用户指定文件的数据读出并装入,以下为主要程序代码

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))//判断帧头并进行数据装入

{

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++;

}

}

·图形显示模块

功能:以图形界面来显示处理后的数据,以便更直观地观察智能车的运行状态。

实现:将上一模块中装入各数组的数据在用户的选择的模式下进行画图,可以只看一幅图,也可以将四幅图放在一起进行对比观看。实际的运行界面及效果如图2。

图2 图形显示介面运行模块

结语

该系统通过添加无线收发模块,将智能车的实时状态信息传到上位机上,通过VC++编程,用图象直观形象地将其表现出来,很好地达到了对智能车状态实时监测的目的,极大地方便了我们调节PID等智能车参数,对赛道记忆算法的研究提供了很大的帮助。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2548

    文章

    50617

    浏览量

    751571
  • 无线
    +关注

    关注

    31

    文章

    5427

    浏览量

    173043
  • 数据采集
    +关注

    关注

    38

    文章

    5889

    浏览量

    113498
收藏 人收藏

    评论

    相关推荐

    基于电磁传感器路径识别的智能车控制系统

    文中介绍一种基于电磁传感器路径识别的智能车控制系统系统采用Freescale16单片机MC9
    发表于 03-29 17:23 9424次阅读
    基于电磁<b class='flag-5'>传感器</b>路径识别的<b class='flag-5'>智能车</b>控制<b class='flag-5'>系统</b>

    基于ATmega16单片机的包裹智能分拣系统设计如何仿真?

    毕业设计题目是基于 ATmega16单片机的包裹智能分拣系统设计大致内容是 本系统采用ATmega16
    发表于 12-03 19:19

    Atmega16单片机实用程序Atmega16单片机实用程序

    Atmega16单片机实用程序Atmega16单片机实用程序/************************************************/************
    发表于 07-13 09:14

    如何实现Atmega16单片机串口通信呢

    串口通信需要使用到的内部寄存有哪些?如何实现Atmega16单片机串口通信呢?
    发表于 09-23 07:47

    基于ATmega16单片机的干式变压智能温度控制设计

    基于ATmega16单片机的干式变压智能温度控制设计 介绍一种由ATmega16
    发表于 10-15 21:49 1556次阅读
    基于<b class='flag-5'>ATmega16</b><b class='flag-5'>单片机</b>的干式变压<b class='flag-5'>器</b><b class='flag-5'>智能</b>温度控制<b class='flag-5'>器</b>设计

    基于ATmega16单片机实时温度采集与分析系统

    提出了一种基于ATmega16单片机与温度传感器相结合的实时温度采集与分析系统。本系统介绍了以
    发表于 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'>系统</b>

    ATmega16单片机实用程序

    ATmega16单片机实用程序,共21个。可直接移植,添加应用。
    发表于 11-09 14:25 33次下载

    ATmega16单片机中文用户手册

    ATmega16单片机中文用户手册 适合于初学者快速上手
    发表于 12-08 11:43 18次下载

    ATMEGA16单片机实现的数控频率计原理图

    ATMEGA16单片机实现的数控频率计原理图
    发表于 07-25 09:49 0次下载

    基于ATmega16单片机实时温度采集与分析系统[图]

    摘要: 温度是工农业生产中很重要的的参数,它直接影响到产品的质量与性能。提出了一种基于ATmega16单片机与温度传感器相结合的实时温度采集与分析
    发表于 01-17 22:02 1015次阅读

    使用16单片机和激光传感器实现寻迹智能车的软硬件设计

    智能车竞速比赛以及多种智能车的应用场合中,需要智能车沿着某条轨迹快速前进,使用普通红外传感器、激光传感器、摄像头识别均可有效提取路面轨道信息
    的头像 发表于 11-27 08:36 4084次阅读

    ATmega16单片机教程之ATmega16单片机定时的分析与设计应用概述

    本文档的主要内容详细介绍的是ATmega16单片机教程之ATmega16单片机定时的分析与设计应用概述主要内容包括了:1、
    发表于 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>定时<b class='flag-5'>器</b>的分析与设计应用概述

    如何实现ATMEGA16单片机与PC的通信

    ATMEGA16与PC的通信实验1//PC发送一个字符给单片机单片机收到后既在发光二极管进行显示,同时将其回传给PC//
    发表于 12-14 15:14 1465次阅读

    使用ATMEGA16单片机实现矩阵键盘的扫描程序免费下载

    本文档的主要内容详细介绍的是使用ATMEGA16单片机实现矩阵键盘的扫描程序免费下载。
    发表于 09-06 17:27 5次下载
    使用<b class='flag-5'>ATMEGA16</b><b class='flag-5'>单片机</b><b class='flag-5'>实现</b>矩阵键盘的扫描程序免费下载

    Atmega16单片机串口通信

    Atmega16单片机串口通信Atmega16单片机串口通信串口通信需要使用到的内部寄存程序代码Atm
    发表于 11-15 13:21 13次下载
    <b class='flag-5'>Atmega16</b><b class='flag-5'>单片机</b>串口通信