已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于nRF905的无线智能车系统设计摘 要:介绍了一种基于nrf905的智能车无线遥控系统的实现方案。系统利用16位单片机mc9s12xs128作为核心处理芯片,光电编码器作为速度传感元件,mc33886作为直流电机的驱动芯片,通过nrf905无线控制收发模块来控制智能车的速度与方向;系统采用了增量型pid控制与模糊控制来实现智能车的闭环控制,以提高智能车的稳定性及快速性;通过rs232串口,可以在pc机上对智能车进行远程控制。关键词:智能小车 mc9s12xs128 pid控制 nrf905智能车已经在工业、农业、医疗、科研、国防及服务业等行业得到了一定的应用,特别是在军事领域的侦查、巡逻、战场运输、扫雷以及艰苦工作环境中的信息采集等众多方面,智能车发挥着重要的作用。本系统主要是通过nrf905无线模块将智能车行驶过程中的各种状态信息发送给上位机,上位机将所发来的信息进行实时处理之后,再对智能车进行控制,从而实现pc对智能车的远程控制。1 系统的硬件设计1.1 系统的硬件总体结构如图1所示,整个系统硬件结构主要由飞思卡尔车模、电源模块、mc9s12xs128、c8051f340单片机、光电编码器、lcd1602液晶显示屏、nrf905和pc组成。采用嵌入式程序设计方法,在pc机上将控制指令通过串口发送给c8051f340,由c8051f340的spi口将控制指令写到无线芯片的发射寄存器内,通过nrf905无线模块将数据发射出去。系统的控制模块如图2所示,在接收端nrf905将接受的数据通过spi口写入mc9s12xs128处理器,mc9s12xs128通过内部a/d采集光电编码器产生的脉冲信号,与接受到的控制指令进行比较处理,产生两个独立的占空比可调的pwm波形,用于驱动舵机和电机模块,实现对智能车速度与方向的控制,利用液晶模块可显示智能车当前的速度与所行驶的路程。除此之外,还可以通过按键来发送控制指令,实现智能车的远程控制。(见图1、图2)1.2 mc9s12xs128微控制器简介mc9s12xs128微控制器采用了增强型16位s12处理器,内部有8kb的ram, 2kb 的eeprom, 128kb的flash,外部晶振16m,通过内部pll可得40m总线时钟。有8路独立的pwm,16路12位a/d,有控制局域网模块的can总线,支持spi、sci、i2c串口通讯模式,其性能能够满足本设计的需求,该器件具有良好的稳定性,外围电路简单,功能强大。同时它支持freescale特有的背景调试模式(bdm),可以进行在线系统调试,使开发效率大大提高。1.3 无线收发模块nrf905是挪威nordic vlsi公司推出的单片射频收发器,可工作在 433/868/915mhz国际通用ism频段,频道之间的转换时间为650us,gmsk/gfsk调制和解调;由于采用了dds+pll频率合成技术,频率稳定性好,灵敏度高,达到-100dbm;最大发射功率达+10dbm,数据传输速率可达100kbit/s。天线可采用pbc 环形天线或单端鞭状天线,在开阔地带传输距离最远可达1km以上。nrf905有两种工作模式和两种节能模式,如表1 所示,分别为掉电模式、待机模式、shock- burst rx接收模式和shock- burst tx发送模式,这几种模式由外界cpu 通过控制nrf905 的3个引脚pwr_up、 trx_ce 和tx_en的高低电平来决定。2 系统的软件设计无线控制智能小车主要由无线数据收发器nrf905、mcu、小车和液晶显示部分组成。无线数据收发器nrf905与mcu之间通过spi进行通信,mc9s12xs128通过pid算法控制智能小车的速度与方向。因此,软件设计的重点是nrf905数据的收发和智能车的速度、方向控制,且都用c语言编写。2.1 nrf905程序设计2.1.1 nrf905数据的发送过程当微控制器要发送数据时,将接收机的地址和发送数据通过spi 接口传输给nrf905模块;微控制器设置trx_ce和tx_en管脚同时置为高电平,启动发送端的nrf905模块为发送模式。发送端的nrf905模块发送过程包括射频寄存器开启,数据打包,数据包发送;当数据包发送结束时,数据发送完成管脚(dr管脚)会变成高电平;如果auto_retran被设置为高,nrf905模块将连续地发送数据包,直到trx_ce 被设置为低;trx_ce被设置为低时,nrf905模块数据包发送过程结束并回到待机模式。2.1.2 nrf905数据的接收过程系统接受数据的工作流程如图4所示。首先,微控制器控制trx_ce为高电平、tx_en为低电平,nrf905模块进入接收模式。当nrf905模块检测到与接收频率相同的载波时,设置载波检测管脚(cd管脚)为高电平;当nrf905 模块接收到有效的地址时,设置地址匹配管脚(am 管脚)为高电平;当一个正确的数据包接收完毕后,nrf905模块自动去掉数据包的字头、地址和crc 校验码,然后将数据接受完成管脚置为高电平;微控制器将trx_ce 设置为低电平;微控制器通过spi 接口以一定的速率提取数据包中的有效接收数据;最后,当所有的有效数据接收完毕,微控制器控制nrf905模块数据接收完成管脚(dr管脚)和地址匹配管脚(am管脚)为低电平;nrf905进入待机模式。无论是发送端还是接受端,mcu都需要通过spi配置nrf905,设定无线发送模块的发射频率、波段、发射功率、地址码、地址位数、数据位数和crc。因为数据准备位dr关系到数据是否已经发送和接受完成,所以系统采用了边沿捕获中断来检测dr的电平变化,以保证nrf905发送和接受的实时性。nrf905具体的配置函数和边沿捕获中断函数如下:/*-nrf905配置函数-*/rfconfig rxtxconf =10, /设置频道0x6c, /ch_no,配置频段在433mhz0x0c, /输出功率为10db,不重发,节电为正常模式0x44, /地址宽度设置,为4字节0x04,0x04, /接收发送有效数据长度为4字节0xcc,0xcc,0xcc,0xcc, /接收地址0x58, /crc充许,8位crc校验,外部时钟信号不使能,16m晶振;/*-边沿捕获中断函数-*/void pji_init(void)ddrj_ddrj0=0;ppsj_ppsj0=1; /中断边沿选择寄存器piej_piej0=1; /开启中断#pragma code_seg _near_seg non_bankedvoid interrupt 24 portj_isr(void) unsigned char i;rxpacket(); / 接受数据pifj_pifj0=1; / 清标志位2.2 控制程序设计小车的控制是系统软件设计的核心之一,其控制主要体现在速度控制和角度控制方面。速度控制使用了经典的增量式pid算法,考虑到角度的模糊性,角度的控制,使用了角度偏差的线性控制。2.2.1 速度控制系统通过串口和无线模块nrf905给智能车发送速度控制指令,速度控制包括启动、加速、减速、停止。这里给出了一个简单的控制指令的形成策略,系统采用了1128共128级调速,1表示pwm的占空比为0%,128表示pwm的占空比为100%。当pwm的占空比为0%时,小车停止;当pwm的占空比为100%时,小车全速行驶;当pwm的占空比增加时,小车加速;当pwm的占空比减少时,小车减速。为了避免智能车因速度过大而导致振荡或不能及时响应速度控制指令等现象,系统利用了增量式pid控制速度。增量式pid是指数字控制器输出控制量的增量u(k),以下是增量式pid控制算法:由(1)式可以看出,如果计算机控制系统采用恒定的采样周期t,一旦确定了a、b、c,再根据前后三次测量的偏差值,就可以求出控制量的增量u(k)。如果t过大,系统会出现响应慢和智能车滞后的现象;如果t过小,系统会因mcu的a/d转换速度跟不上,出现采集信号失真的现象。考虑到智能车的响应速度和扰动信号的周期,我们设定采样周期t=20ms,并采用临界比例法和经验法确定了增量式pid的三个参数值a=1,b=8,c=0.15。速度控制的关键是如何建立pid返回的增量值与pwm占空比之间的关系,使得小车能够及时、稳定、准确的响应nrf905发来的速度控制指令,即让车模以最快的反应速度达到所期望的速度。车轮每前进一段距离时,光电编码器会产生一定数目的脉冲,mcu利用pit对脉冲进行计数,由公式(2)便可计算出当前的速度值。其中车轮的直径是52mm,cur_num是mcu采集到的脉冲数,差速器齿轮齿数是75,光电编码器齿轮齿数是26,光电编码器每转脉冲数为100,速度测量采样周期是20ms,车速的单位是m/s。程序每进入一次速度控制函数,首先读出与编码器连接的脉冲累加器计数寄存器 pacn的值,计算出当前速度,再与期望的速度比较,并将两速的差值送入pid函数计算出控制量的增量u(k),如果u(k)的值为负,表明小车车速快于期望值,需要减速;反之如果u(k)的值为正,说明小车需要加速。加减速的急缓程度根据u(k)值的大小决定。减速就是电机正转的pwm值递减,如果速度差很大,便要启动电机反转以迅速达到减速的目的。加速的过程是对电机正转 pwm累加的过程,但是要对 pwm 限定范围,加速的急缓只是每次累加的量大小不同。具体实现步骤如图3所示。2.2.2 方向控制智能车的方向控制决定了车体运行过程中的姿态,同时在很大程度上决定了在实际运行中的速度。舵机控制可以说是整个程序的关键部分,舵机控制必须具备响应时间短,稳态误差小等优点。考虑到角度的模糊性,我们使用了角度偏差的线性控制,通过试验表明角度偏差的线性控制对被控对象的参数变化具有较强的鲁棒性。系统利用信号脉宽进行舵机转向调节,其调节角度为+45?啊?45?埃婊穆龀蹇刂菩藕胖芷谖?0ms。舵机转向角度为0?笆保隹砦?.52ms,占空比为7.6%;舵机转向角度为-45?笆保隹砦?.070ms,占空比为5.35%;舵机转向角度为+45?笆保隹砦?.970ms,占空比为9.85%。为了更好的控制智能车的转向,系统采用了十六进制0x900xe9共90个等级作为角度调节。当上位机通过无线模块nrf905给智能车发送0x90指令时,智能车舵机顺时针旋转45?埃迪蛴易坏狈?xbc指令时, 智能车舵机转向角度为0?埃抵毕咝惺唬坏狈?xe9指令时, 智能车舵机逆时针旋转45?埃迪蜃笞坏狈?x81时,智能车开始向后行驶,同时启动报警功能。公式(3)给出了如何将无线模块nrf905接收到十六进制指令转换成舵机所需的脉宽,具体公式如下:其中temp1为脉宽,初始值为1.52ms,nrf905rxbuf0是所接收到的十六进制数。3实验结果分析本系统可完成如下任务:(1)通过按键可以无线控制智能车的启动,加速,减速,转向,后退,停止;(2)通过pc也可以实现以上的控制,并能实现智能车任意角度的转向,具有报警功能;(3)显示智能车的当前速度和所行驶的路程。系统对智能车速度和方向进行了分级控制,用1128指令控制智能车的速度,用144233指令来控制智能车的方向,图4是在pc端给智能车发送的速度与方向指令。智能车在行驶的过程中能够实时显示当前车的速度与所行驶的路程,因此我们可以很容易知道出小车的运动情况,这给系统的调试工作带来了极大的便利,图5是通过液晶显示智能车的当前速度和所行驶的路程。5 结论本文介绍的无线控制智能小车系统,通过单片射频收发器nrf905发送和接受指令,结合pid控制算法,实现远程无线控制智能小车。系统通过实际通信验证,运行稳定,通信可靠存,整个系统具有体积小、功耗低以及通信距离远等优点,具有广泛的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年济南护理职业学院单招职业倾向性测试必刷测试卷附答案解析
- 2026年抚顺师范高等专科学校单招职业适应性考试必刷测试卷及答案解析(夺冠系列)
- 2026年南充文化旅游职业学院单招职业适应性考试必刷测试卷及答案解析(名师系列)
- 2026年北京社会管理职业学院单招职业适应性测试必刷测试卷附答案解析
- 2026年南京信息职业技术学院单招职业技能考试必刷测试卷及答案解析(名师系列)
- 2020-2025年国家电网招聘之电工类考前冲刺试卷B卷含答案
- 2026年四川文轩职业学院单招职业技能测试必刷测试卷及答案解析(夺冠系列)
- 2026年厦门软件职业技术学院单招职业倾向性测试必刷测试卷及答案解析(名师系列)
- 2026年哈尔滨电力职业技术学院单招职业适应性考试必刷测试卷及答案解析(名师系列)
- 2026年信阳学院单招职业倾向性测试必刷测试卷带答案解析
- 2025至2030中国专网通信行业市场现状分析及有效策略与实施路径评估报告
- 夏洛特烦恼讲解
- 2025年全国保安员考试题库(含参考答案)
- 2025年广东省公务员考试(行政执法专业和申论)综合练习题及答案
- 麦当劳供应链优化与成本控制案例研究
- 2025年中级农艺师试题及答案
- 护理继续教育管理
- 2025年播音主持专业即兴评述考试题目含答案
- 2025至2030中国连锁便利店行业项目调研及市场前景预测评估报告
- 银行集中作业管理办法
- DGJ08-70-2021 建筑物、构筑物拆除技术标准
评论
0/150
提交评论