电子发烧友网>嵌入式技术>嵌入式设计应用> > 正文

基于STC89C52和nRF24L01的智能小车设计

2017年12月15日 15:21 次阅读

  智能小车,是一个集环境感知、规划决策、自动行驶等功能于一体的综合系统。它可以适应不同环境,不受温度、湿度等条件的影响,完成危险地段、人类无法介入等特殊情况下的任务,因此在军事、航空、探险等领域有着极其重要的应用。但随着应用的深入,在很多场合下需要多个小车之间可以实时通信,协作开展工作。基于上述考虑,本文基于STC89C52和nRF24L01开发设计了一款具备无线通信功能的智能小车。该小车不仅具备循线、避障等功能,而且在一定距离范围内可以实时无线通信,协作开展相关工作。

  1系统设计

  1.1系统整体方案设计

  基于STC89C52和nRF24L01的智能小车设计涉及到传感器的应用、无线数据传输等,系统总体方案如图1所示。

基于STC89C52和nRF24L01的智能小车设计

  整个系统由单片机最小控制系统、电源模块、电机及驱动、无线通信模块、模式选择模块、循迹模块以及避障模块等。智能小车上电后,可由模式选择模块来确定小车的工作模式(作为主机或从机、循迹或避障等);循迹、避障模块是根据相应传感器所检测数据来执行相应动作。为了使多个小车能够同时协调工作,需要获取对方的精确定位,这里可建立坐标系并根据运行情况实时更新坐标,并通过设计通信模块及相应通信方式来实现小车之间的通信。

  1.2特征信号选择

  要实现自动行驶,智能小车的传感系统必须通过各类传感器,获取小车的状态特征、道路环境特征两类特征信号。

  1.2.1小车特征参数

  小车在共同工作时需要明确对方位置及行驶模式,从而可以获得信息采集点坐标。特征状态包括如下参数:

  行驶模式,由拨码开关确定的行驶模式。

  小车坐标,小车当前位置相对于上电地点的坐标。

  程序标志位,标志数据是否接收完数据。

  方向,小车当前状态与x轴方向的夹角。设上电时车身前方为x轴方向,逆时针旋转90°为y轴方向。单位脉冲转角,微控制器输出单位脉冲小车所转角度,数据需测量得到。

  单位脉冲位移,微控制器输出单位脉冲小车改变位移,数据需测量得到。脉冲数,小车运动时微控制器所输出脉冲数。

  1.2.2环境特征参数

  实际工作时,两车需获知对方所处状态,故无线传输数据中应包括环境特征参数。环境状态包括以下参数:

  状态位,小车在运行过程中检测到标志线后状态标志。

  道路状态,由激光传感器读取的道路状态。

  障碍物状态,由光电传感器读取的障碍物状态。绝对位移,两车之间的相对位置。

  1.2.3参数定义及计算

  对程序中各个参数的定义见表1。

基于STC89C52和nRF24L01的智能小车设计

  小车方向的计算公式如式(1)所示:

  angle=angle±n*Δangle(1)

  坐标的计算公式如式(2),式(3)所示:

  x=x+cosα*n*Δs(2)

  y=y+sinα*n*Δs(3)

  绝对位移的计算公式如式(4)所示:L0=(x 1-x2)2+(y1-y2)2(4)

  2系统硬件实现

  2.1单片机最小控制系统

  STC89C5是一种低功耗、高性能CMOS 8位微控制器,具有8K在系统可编程FLASH存储器。具有以下标准功能:8KB FLASH,512BRAM,32bI/O口线,看门狗定时器,内置4KB E2PROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。此次设计传感器共需要控制器I/O口20个(传感器6个,电机4个,无线模块6个,拨码开关4个),对输出处理速度要求并不高,STC89C52芯片的I/O口,中断及定时器完全可以满足其功能要求。

  2.2电机驱动

  由于单片机输出电流无法直接驱动电机,本系统采用基于TB6560芯片的步进电机驱动用以驱动步进电机。

  TB6560是东芝公司推出的低功耗、高集成两相混合式步进电机驱动芯片。其主要特点有:内部集成双全桥MOSFET驱动;最高耐压40V,单相输出最大电流3.5A(峰值);具有整步、1/2,1/8,1/16细分方式;内置温度保护芯片;具有过流保护;采用HZIP25封装。

  基于TB6560的驱动电路中步进电机控制信号有3个(CLK,CW,ENABLE),分别由微控制器的P0.0,P0.1端控制电机的方向(转向时输出电平类型相反,前进时输出电平类型相同),P0.2,P0.3控制电机的转速,本电路中使能端始终接+5V。

  2.3通信模块

  本系统的无线通信模块采用nRF24L01无线模块。nRF24L01是一款内置频率合成器、功率放大器晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术的新型单片射频收发器件。工作于2.4~2.5GHz ISM频段,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA;接收时,工作电流只有12.3mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。

  由模式选择模块确定小车的主、从机模式后,主机检测到相应标志线后发送数据,从机接收到数据后应答并反馈回自身信息,并执行相应程序。

  nRF24L01无线模块原理图如图3所示,CE引脚功能为使能发射或接收,由P1.0控制;CSN,SCK,MOSI,MISO为SPI引脚端,微处理器可通过P1.1,P1.2,P1.3,P1.4来配置nRF24L01;IRQ为中断标志位,由P1.5控制。

基于STC89C52和nRF24L01的智能小车设计

基于STC89C52和nRF24L01的智能小车设计

  2.4循迹模块

  循迹模块采用3个激光传感器,型号为HLSD-2010B,分别置于小车左、右、前方,通过P2.5,P2.6,P2.7控制。

  HLSD-2010B激光传感器的工作电压为5V,工作电流最大为30mA,信号输出方式为直接电平输出。

  激光传感器真值表见表2,控制器对于不同的测量值会执行不同的动作。

  2.5避障模块

  避障模块采用4个光电传感器,型号为E18-D80NK分别置于车体前方位置。

基于STC89C52和nRF24L01的智能小车设计

  光电传感器E18的技术参数工作电压5V,消耗电流DC小于25mA,响应时间小于2ms,指向角小于等于15°,有效距离为3~80cm可调,工作环境温度为-25~55℃。

  根据不同环境可将智能小车避障运动分为四种情况,如图4所示。

  基于STC89C52和nRF24L01的智能小车设计

  (1)只有1,2号红外传感器检测到障碍物,此时小车向右运动,若3,4号传感器检测到则向左运动方向运动。

  (2)当前方发现障碍物,1,4号均未检测的障碍物时,令小车向右运动。

  (3)当4个红外传感器都测到障碍物时,小车先倒退,然后向右运动。

  (4)若1,4检测到障碍物而1,3没有检测到障碍物,小车并不改变方向仍按直线行走。

  2.6电源模块

  本系统采用2节容量为2 250mA·h,额定电压为3.6V的锂电池供电。由于系统中单片机、循迹模块及避障模块的工作电压为5V,无线模块工作电压为3.3V,设计过程中采用两个由LM2596芯片构成的DC-DC稳压模块。

  原理图如图5所示,对于微控制器稳压模块,输入为7.2V,输出为5.0V;对于nRF24L01稳压模块,输入为5.0V,输出为3.3V。

  基于STC89C52和nRF24L01的智能小车设计

12下一页全文

本文导航

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

基于NRF24L01的智能车控制系统设计

摘要:针对智能车的控制系统, 选用STC89C52作为整个系统的主控芯片, 并进行硬件电路设计;以NREF24L01作为无线...
发表于 2021-08-23 07:49 0次阅读
基于NRF24L01的智能车控制系统设计

STC89C52/80C52芯片的内部结构是怎样构成的

STC89C52/80C52芯片的内部结构是怎样构成的? STC89C52/80C52芯片有哪些基本参数? ...
发表于 2021-08-20 07:18 0次阅读
STC89C52/80C52芯片的内部结构是怎样构成的

ICM20602陀螺仪模块例程-STC89C52

ICM20602陀螺仪模块的51例程-STC89C52
发表于 2021-08-19 18:54 101次阅读
ICM20602陀螺仪模块例程-STC89C52

控制小车走直线 精选资料分享

函数实现void go_up(void){}void turn_right(void){}#ifndef _CAR_H_#define _CAR_H_sbit LEFT_A=P1^0;...
发表于 2021-08-18 07:31 0次阅读
控制小车走直线  精选资料分享

如何利用树莓派去设计一个物联网智能小车

如何利用树莓派去设计一个物联网智能小车? 基于树莓派的物联网智能小车应具备哪些功能? ...
发表于 2021-08-18 07:22 0次阅读
如何利用树莓派去设计一个物联网智能小车

基于STM32智能小车视觉控制导航的设计

第 25 卷    第 9 期                  &...
发表于 2021-08-17 06:40 0次阅读
基于STM32智能小车视觉控制导航的设计

C51模块化编程

程序没有问题,不知道为什么怎么出不来? ...
发表于 2021-08-16 15:45 371次阅读
C51模块化编程

润和智能小车套件相关资料在哪里

润和开发板的相关资料,实在是不好找,官网淘宝都没找到完整资料,一度怀疑,润和出开发板的目的是不是为了开发者的学...
发表于 2021-08-16 11:17 314次阅读
润和智能小车套件相关资料在哪里

怎样去设计基于stm32的智能小车

基于stm32的智能小车作品(循迹避障蓝牙)(下)五、避障小车制作1.超声波模块接线2.工作原理3. 超声波避障程序六、蓝牙...
发表于 2021-08-16 06:31 0次阅读
怎样去设计基于stm32的智能小车

stm32基础项目——智能小车(红外避障)精选资料分享

前言:小车的避障功能可以通过红外或者超声波模块来实现,这里先讲讲使用红外对管来实现,超声波的实现涉及到定时器的...
发表于 2021-08-11 06:59 0次阅读
stm32基础项目——智能小车(红外避障)精选资料分享

STC系列单片机不断电和远程烧写技巧有哪些

对于大多数电子爱好者来说,单片机程序烧写并不陌生,对于STC这个品牌也很熟悉。本文要介绍的是STC系....
发表于 2021-06-06 16:41 446次阅读
STC系列单片机不断电和远程烧写技巧有哪些

基于STC89C52单片机的LED显示器设计

随着LED 显示屏在广告领域的广泛应用,控制系统也在逐步发展。由于控制系统是基于嵌入式微处理器而开发....
发表于 2021-05-01 17:30 689次阅读
基于STC89C52单片机的LED显示器设计

基于STC89C52的定时开关系统设计

本文介绍了一种以STC89C52单片机、DS1302,1602液晶显示为核心,具备调节时间,设置开启....
发表于 2021-02-15 16:49 1141次阅读
基于STC89C52的定时开关系统设计

升压型STC离线程序烧写器设计方案

本电路是借鉴stc官方离线烧写器原理图增加了升压电路,输出36v电压 ,可为需要高压供电的板子烧写程....
发表于 2021-01-12 11:41 756次阅读
升压型STC离线程序烧写器设计方案

基于STC8单片机的环境监测系统设计

功能介绍: 采用STC8F1K08S2单片机,能够测量甲醛、温湿度、PM2.5。 使用0.96寸OL....
发表于 2020-12-25 16:44 1077次阅读
基于STC8单片机的环境监测系统设计

基于STC89C52单片机的校园食堂RFID一卡...

产品功能描述: 本系统由STC89C52单片机、RFID读卡器模块、液晶LCD1602显示、按键及电....
发表于 2020-12-07 13:44 1524次阅读
基于STC89C52单片机的校园食堂RFID一卡...

基于51单片机的蓝牙风扇智能小车设计

本设计由STC89C52单片机电路+蓝牙模块电路+L298N电机驱动电路+DS18B20温度检测电路....
发表于 2020-11-02 17:47 1368次阅读
基于51单片机的蓝牙风扇智能小车设计