找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于ARM Cortex-M3的电脑鼠控制系统研究

[复制链接]
admin 发表于 2013-3-24 17:34:19 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
电脑鼠(micromouse)是一种由微处理器控制的集环境感知、动态决策与规划、行为控制与执行等多种功能于一体的微型机器人。目前大多数电脑鼠采用Luminarv Micro Stellaris R系列LM3S101、LM3S102、LM3S615或者单片机微控制器,其红外检测模块采用了一体式红外传感器,只能判断有无障碍物,无法进行测距;电机部分采用步进电机,耗电大、速度慢;此外软件系统多采用传统中左或中右算法,效率较低。本文设计了基于Cortex-M3内核的32位ARM芯片STM32F103RCT6作为运算控制中心,由其产生PWM信号调制红外发射接收实现测距,配套空心杯直流电机,通过改进智能迷宫算法,使电脑鼠出色高效地完成迷宫搜寻及冲刺任务。

1 电脑鼠工作原理
     电脑鼠周围安装六组红外传感器,分别感知左方、左前方、前方、右前方、右方,发射端发射一定频率的红外线,接收端通过六个方向的反射波来判断是否有障碍物,实时地储存单元格的资料,通过六组红外传感器反馈的迷宫信息,控制电脑鼠完成避障、转弯、加速等动作,运用智能算法对迷宫的部分单元格或全部单元格进行遍历,并将迷宫的信息以有效的数据结构存储,微控制器根据这些记录信息运用迷宫高效算法找到一条最优化路径,从而实现从起点到终点的最大化冲刺。

2 硬件电路设计
     为完成迷宫探测和冲刺任务,电脑鼠需具备以下各功能模块:ARM微处理器作为控制核心协调各功能模块正常工作;电机及驱动模块实时控制电机启动、制动;红外检测模块负责红外线探测感知;电源为整个系统供电稳定电压,陀螺仪及指南针模块确定电脑鼠方位,根据走过的距离,从而解析出所在坐标。硬件组成如图1所示。
   
   
2.1 电源模块
     电源调节器件通常使用线性稳压器件(如LM7805),具有输出电压可调、稳压精度高的优点,但是其线性调整工作方式在工作有较大的“热损耗”,导致电源利用率不高、满足不了便携低功耗需求。开关电源调节器,不同于线性稳压器件,以完全导通或关断的方式工作,通过控制开关管的导通与截止时间,有效的减少工作中的“热损耗”,提高了电源利用率。本设计中电源模块为系统提供三种不同的电压,12V电源用于驱动电机,使用开关式电源LM2596将12V直流电压降到5V给红外模块、人机交互模块供电,再通过AMS1117将5V降到3.3V,供ARM处理器及其他模块使用。
2.2 微处理器模块
    微处理器是整个控制系统的核心,它完成从红外检测模块获取路径信息,采集瞬时速度,进行数据处理,控制算法运算,输出实时控制量等功能。为了保证系统的实用性和易扩展性,本控制系统采用意法半导体推出的“增强型”系列STFM32F103RCT6,STM32F103xx增强型系列使用高性能的ARM Correx-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。所有型号的器件都包含2个12位的ADC、3个通用16位定时器和一个PWM定时器,还包含标准和先进的通信接口:多达2个I2C和SPI、3个USART、一个USB和一个CAN,在存储容量和运算速度方面满足要求。
2.3 电机及驱动模块
    为提高系统功率、降低功耗,驱动电路采用基于脉宽调制方式的集成电路芯片L298N。比较常见的是15脚Muliwart封装的L298N,内部包含四通道逻辑驱动电路,即内含两个H桥的高电压大电流双全桥式驱动器,可以驱动和控制两个直流电机,芯片采用供给电机电源和逻辑电平电源的双电源供电,可接受标准TTL逻辑电平信号,驱动46V,2A以下的电机,并可驱动电感性负载。其中ENA、ENB是控制使能端,IN1、IN 2、IN3、IN4是控制电平输入端,电路如图2所示。本设计中采用空心杯直流电机,它具有突出的节能特性、灵敏方便的控制特性和稳定的运行特性,最大效率一般在70%以上,部分产品可达到90%以上;起动、制动迅速,响应极快;其重量、体积相对减少1/3-1/2,通过PWM调节脉冲占空比进行调速。
    20121107050712769984047.jpg
   
2.4 红外检测模块
     红外检测模块主要负责迷宫环境监测和处理。红外线经调制后由发射管发出,接收管接收迷宫墙壁反射光,根据接收反射信号强弱来判断与隔墙的距离。本系统相对传统红外检测方法做如下特点:
(1)红外传感器由原来的5组增加到6组。除了正前、正左、正右以及正前方两个45度斜角外,正前方增加1组红外传感器,通过正前方两组传感器信息的融合实现路口45度斜走,相对于以往的90度直角调整,节约了时间,提高了效率。
(2)采用基于双T选频网络的放大器设计,红外传感器根据反射信号的强弱实现电脑鼠与障碍物之间的测距。以往使用的是一体化红外接收传感器(如IRM8601S),其接收头内部集成自动增益控制电路、带通滤波电路、解码电路及输出驱动电路,但由于检测信号输出的是数字信号,只能判断有或无障碍物,不能根据检测信号输出的强度计算距离。本设计中采用基于双T选频网络和TLC084组成的选频放大设计,实现频率不同增益不同,对有用信号进行放大处理,滤除或抑制无用信号。
(3)发射三种频率调制波,减少信号之间的干扰。6组传感器分为三组,正左和正右两组传感器负责检测电脑鼠是否走在中线上,以便及时做出姿势校正;左前方和右前方两组传感器主要检查前方是否有路口;前方两组传感器配合电机,协同工作实现45度转弯。红外光发射频率越高,传播距离相对越远,在本设计中由于迷宫墙壁之间距离16.8cm(单元格18cm.墙壁厚度1.2cm),而电脑鼠的宽度一般为10cm左右,车体距两边墙体的距离只有3cm左右,所以正左方和正右方发射频率选择为33kHz,左前方和右前方发射35kHz,正前方距离最远,发射频率为38kHz。具体如图3所示。
    20121107050712832484048.jpg
       本设计进行了硬件电路改进,由STM32定时器输出三路PWM信号,每两组红外发射管共用一路PWM信号,遇到障碍物后返回,红外接收管进行信号采集,通过选频放大器对有用信号进行放大处理,送入STM32的12位逐次逼近型AD转换器。由于整流滤波有延时,所以此处采用交流采样,ADC在最高速采样的时候需要1.5十12.5个ADC周期,在14M的ADC时钟下达到1Msps的速度。红外测距电路如图4所示,当接收管接收到红外线,D2导通,并且反射越强,D2阻值越小,没有收到红外线时,D2阻值无穷大,相当于截止;R3和R4两个10K电阻提供2.5V的直流偏置。
    20121107050712879354049.jpg
   
3 软件系统设计
    软件模块是系统的重要组成部分,电脑鼠通过红外检测获取周围信息,完成前进、转弯、冲刺、停止等基本动作,此外还要通过以获取信息实现最优路径的搜寻并完成最后的冲刺。本设计才用模块化设计,通过主程序调用各个功能子程序,主程序流程图和中断流程图如图5(a)(b)所示。
    20121107050712926234050.jpg
   4 实验验证及分析
(1)红外传感器测距系统中使用基于选频网络的放大设计,由于电阻电容选用国标,无法使中心频率恰好落在38kHz,双T选频网络中心频率f0=1/2πRC,选择R/C=10k/430pF,f0=37kHz,用multisim仿真出的幅频特性如图6所示,搭建硬件实验电路,中心频率并未落在37kHz而是30kHz,减小RC值多次试验,当R/C=9.1k/430pF,中心频率落在38kHz。
    20121107050712988724051.jpg
   
(2)迷宫墙壁由空心的白色塑料做成,有很大一部分红外光发生透射,加之日光影响,因此如法给发射管套用黑色外管,减少外界干扰;由ARM微处理器产生PWM信号送人红外发射管,接收管接收经过调制的红外信号;用三极管实现电平转换,调节电位器增加发射功率,使信号调整放大到A/D转换的最佳量程范围内,获得期望的处理精度。通过实验多次测量,得到一组红外测量距离与输出电压的数据,以障碍物距离S为横坐标,选频放大后的电压值U为纵坐标,用matlab绘制曲线,电压值与距离关系式为U=0.1195+4.5962*S-1,如图7所示。
    20121107050713035604052.jpg
   
(4)利用STM32定时器功能,通过软件编程调制出需要的PWM信号,以此控制电机、发射红外,图8是Timer4的CH1通道输出频率为38kHz,占空比为30%的PWM信号。

5 结束语
     本文设计了基于STM32F103RCT6的电脑鼠控制系统,在matlab、muhisim仿真基础上,确定了选频网络的RC参数,并通过实验得到距离与电压值的关系图,体现了对称RC双T网络良好的选频特性;电机及驱动模块选用效率高、响应快的空心杯直流电机。经试验验证,该设计方案可以满足系统要求。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-26 11:59 , Processed in 0.056262 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表