基于ARM的电脑鼠控制系统研究

发布者:NatureLover最新更新时间:2012-04-16 来源: 电子元器件应用关键字:红外检测  PWM  空心杯直流电机 手机看文章 扫描二维码
随时随地手机看文章
1 电脑鼠工作原理
    电脑鼠周围安装六组红外传感器,分别感知左方、左前方、前方、右前方、右方,发射端发射一定频率的红外线,接收端通过六个方向的反射波来判断是否有障碍物,实时地储存单元格的资料,通过六组红外传感器反馈的迷宫信息,控制电脑鼠完成避障、转弯、加速等动作,运用智能算法对迷宫的部分单元格或全部单元格进行遍历,并将迷宫的信息以有效的数据结构存储,微控制器根据这些记录信息运用迷宫高效算法找到一条最优化路径,从而实现从起点到终点的最大化冲刺。

2 硬件电路设计
    为完成迷宫探测和冲刺任务,电脑鼠需具备以下各功能模块:ARM微处理器作为控制核心协调各功能模块正常工作;电机及驱动模块实时控制电机启动、制动;红外检测模块负责红外线探测感知;电源为整个系统供电稳定电压,陀螺仪及指南针模块确定电脑鼠方位,根据走过的距离,从而解析出所在坐标。硬件组成如图1所示。

a.jpg


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调节脉冲占空比进行调速。[page]

b.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所示。

c.jpg

[page]

    本设计进行了硬件电路改进,由STM32定时器输出三路PWM信号,每两组红外发射管共用一路PWM信号,遇到障碍物后返回,红外接收管进行信号采集,通过选频放大器对有用信号进行放大处理,送入STM32的12位逐次逼近型AD转换器。由于整流滤波有延时,所以此处采用交流采样,ADC在最高速采样的时候需要1.5十12.5个ADC周期,在14M的ADC时钟下达到1Msps的速度。红外测距电路如图4所示,当接收管接收到红外线,D2导通,并且反射越强,D2阻值越小,没有收到红外线时,D2阻值无穷大,相当于截止;R3和R4两个10K电阻提供2.5V的直流偏置。

d.jpg



3 软件系统设计
    软件模块是系统的重要组成部分,电脑鼠通过红外检测获取周围信息,完成前进、转弯、冲刺、停止等基本动作,此外还要通过以获取信息实现最优路径的搜寻并完成最后的冲刺。本设计才用模块化设计,通过主程序调用各个功能子程序,主程序流程图和中断流程图如图5(a)(b)所示。

e.jpg

[page]

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。

f.jpg


    (2)迷宫墙壁由空心的白色塑料做成,有很大一部分红外光发生透射,加之日光影响,因此如法给发射管套用黑色外管,减少外界干扰;由ARM微处理器产生PWM信号送人红外发射管,接收管接收经过调制的红外信号;用三极管实现电平转换,调节电位器增加发射功率,使信号调整放大到A/D转换的最佳量程范围内,获得期望的处理精度。通过实验多次测量,得到一组红外测量距离与输出电压的数据,以障碍物距离S为横坐标,选频放大后的电压值U为纵坐标,用matlab绘制曲线,电压值与距离关系式为U=0.1195+4.5962*S-1,如图7所示。

g.jpg


    (4)利用STM32定时器功能,通过软件编程调制出需要的PWM信号,以此控制电机、发射红外,图8是Timer4的CH1通道输出频率为38kHz,占空比为30%的PWM信号。

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

关键字:红外检测  PWM  空心杯直流电机 引用地址:基于ARM的电脑鼠控制系统研究

上一篇:基于ARM单片机的小车显示系统设计
下一篇:基于ARM9处理器的嵌入式音频系统设计

推荐阅读最新更新时间:2024-03-16 12:58

AVR单片机入门系列(26)AVR PWM OC2
系统功能 AVR内部脉宽调制OC2输出实验,用LED指示PWM的频率,在PWM速度较低时,可观察到LED的闪烁。 硬件设计 AVR主控电路原理图 软件设计 //目标系统: 基于AVR单片机 //应用软件: ICC AVR /*01010101010101010101010101010101010101010101010101010101010101010101 ---------------------------------------------------------------------- 实验内容: AVR内部脉宽调制输出实验,用LED指示PWM的频率,在PWM速度较低时,可观察到LED的闪烁。 --
[单片机]
【技术】模拟/PWM调光搭配得宜 LED照明色彩更缤纷
类比式 LED 调光设计简单且成本低,但不适合需要稳定色温的应用;数位式PWM调光色温控制较佳,但须搭配MCU,增加系统成本。设计人员应考量应用需求,选择最适合的调光方案,方能达到理想的 LED照明 色彩及亮度。   在建筑、区域与崁灯等 照明 应用中,色彩准确度非常重要,而发光二极体(LED)很适合提供准确色彩。LED颜色可随着混合红、蓝、绿、黄、白等各色而异;当多种色彩混合时,亮度必须调整。本文针对多种LED混色的调光技巧进行介绍。   准确频道亮度调控 LED实现丰富色彩   每颗LED晶体只能发出单色光,若希望创造其他色彩,可运用红、绿、蓝三原色的LED灯混合,只要切换红、绿、蓝LED频道,即可产生七种基本色彩(红、绿
[电源管理]
【技术】模拟/<font color='red'>PWM</font>调光搭配得宜 LED照明色彩更缤纷
PWM功率单元在完美无谐波高压变频器中的应用
1 引言   随着变频调速技术的发展,作为大容量传动的高压变频调速技术得到了广泛应用。高压电动机利用高压变频器可以实现无级调速,既可满足生产工艺过程对电动机调速控制的要求,又可节约能源,降低生产成本[1]。自1994年美国罗宾康公司推出第一代完美无谐波高压变频器以来,由于其性能好、可靠性高、维修简单等优点,在欧美、日本、中国等市场一直处于领先地位,完美无谐波高压变频器较之普通高压变频器,无论从变频器控制性能、可靠性保证、制造工艺等方面都提高了很大的一个档次[1]。但是,到目前为止,这种完美高压变频器的功率单元的整流部分采用单向二极管串联,逆变器部分输出采用多电平移相式pwm技术,每个功率单元脉冲控制都是采用pwm控制,逆变器的控制脉
[嵌入式]
STM32F103C6T6_PWM控制直流电机
代码: PWM.h #ifndef __PWM_H #define __PWM_H void PWM_Init(); void PWM_SetCompare3(uint16_t Compare); #endif 电机里面也是线圈和磁铁,所以在PWM的驱动下,会发出蜂鸣器的声音 当单片机设置的PWM之频率在我们人耳所能接收的范围时,我们按住正在旋转的电机,会听到明显的嗡嗡声(蜂鸣器的声音) 消除的方法: 加大PWM频率,当PWM频率足够大时,超出人耳的范围,就听不到了。减小预分频器,这样才不会影响占空比 人耳的收音频率范围:20Hz到20kHz。 修改为:TIM_TimeBaseInitStructure.TIM_Pr
[单片机]
STM32F103C6T6_<font color='red'>PWM</font>控制<font color='red'>直流电机</font>
从0学ARM-基于Exynos4412的pwm详解
一、什么是PWM PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%. 二、PWM信号输出输出和作用 1. 如果要实现PWM信号输出如何输出呢? 1)可以直接通过芯片内部模块输出PWM信号,前提是这个I/O口要有集成的pwm控制器,只需要通过对应的寄存器即可,这种自带有PWM输出的功能模块在程序设计更简便,同时数据更精确。 2)但是如果IC内部没有
[单片机]
从0学ARM-基于Exynos4412的<font color='red'>pwm</font>详解
基于MSP430f5529 编码电机测速 接收脉冲数 PWM调速 CCS编译器 代码分析
前言:2022年TI杯大学生电子设计竞赛,小车跟随行驶系统(C题)要求:设计一套小车跟随行驶系统,采用TI的MCU,由一辆领头小车和一辆跟随小车组成,要求小车具有循迹功能,且速度在0.3~1m/s可调......本文着重介绍速度在0.3~1m/s可调的一种实现方式。 正文: 一、首先了解编码电机测速的原理(移步下方链接,不过多赘述) 霍尔增量式编码器左右车轮线速度的计算_许你一世阳光yyds的博客-CSDN博客 二、获取关键参数,及oled使用 由此我们得知,我们需要获取的关键数据为编码电机 轮子转动一个脉冲走过的距离(m/脉) 这个参数可以是 1. 从你所购买电机的店铺获得;2. 自己做实验测出来。下面我们从
[单片机]
STM32PWM实现呼吸灯-库函数
最让我头大的是初始化函数的各个参数的设置,在这里给出pwm_init的模板 pwm.h: #include pwm.h void TIM14_PWM_init(u32 arr, u32 psc) //arr为定时器的自动装载值(决定周期),cnt达到arr时io要置0,psc为预分频系数 { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; TIM_OCInitTypeDef TIM_OCInitStructure; RCC_APB1PeriphClockCmd(RCC_AP
[单片机]
基于I2C接口的LED驱动器设计与实现
   LED 无疑是当前最热的一个应用,无论是手持设备、游戏机、 霓虹灯 、广告牌等等,眩目的色彩及高质的光亮,总能第一时间吸引人的眼球。在当前众多的LED控制器面前,如何选择一款功能丰富且性价比又高的产品来迎合自己的设计,无疑是摆在每个设计师面前的问题。   最简单的 LED驱动 ,我们可以用普通的I/O来实现。但I/O控制只能实现LED的 ON 与OFF,无法用来进行混光、闪烁等功能,而且每个LED都需要占用一个单独的I/O资源,无疑性价比很低。我们也可以用专用的大电流LED控制器来设计,但昂贵的成本首先会成为问题,而且设计复杂,程度也会跟着各种干扰的出现相应地提高。基于这些,恩智浦( NXP )推出一系列使用I2C 接口 的L
[家用电子]
基于I2C接口的LED驱动器设计与实现
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved