基于光学传感器的智能玩具小车设计.docx
- 文档编号:10520385
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:17
- 大小:461.99KB
基于光学传感器的智能玩具小车设计.docx
《基于光学传感器的智能玩具小车设计.docx》由会员分享,可在线阅读,更多相关《基于光学传感器的智能玩具小车设计.docx(17页珍藏版)》请在冰点文库上搜索。
基于光学传感器的智能玩具小车设计
基于光学传感器的智能玩具小车设计
1系统总体方案设计
系统总体框图如图2-1所示。
总的系统设计由传感器、单片机、电机驱动等三个部分电路组成。
图2-1系统总体框图
系统总的原理图设计如图2-2所示:
在传感器部分,本设计采用了ETOMS-ET21X111传感器来检测目标的信号,读取目标的移动坐标数据。
ET21X111传感器是一款能够读取一定范围内指定目标的三维坐标数据(X、Y、Z),并通过RS232串行输出端口来输出数据。
在单片机部分,本设计采用了C8051F330D单片机来接收传感器传送来的数据,控制驱动电机芯片,使小车的两路直流电机实现前进、后退、左转、右转的功能。
C8051F330D单片机是一片内部资源丰富,运行速度快,应用广泛,内部有三路PWM可供使用。
在本设计中,只需利用一个IO端口就可控制四种电机运行方式。
在电机驱动部分,本设计采用了L293D驱动芯片,L293D是一种直流电机控制器件,一片驱动芯片L293D可以驱动两个电机,可以对电机进行正反转操作,可以方便单片机的操作,可以满足直流电机速度增减的要求。
图2-2总的原理图设计
2系统硬件设计
2.1传感器部分电路设计
传感器周边详细的接口电路如下图3-1所示,从图3-1中可知EO4~EO7为高,这是曝光设置为硬件拉高,也可以在软件中设置。
IC正常工作时,坐标数据由RS232端口输出。
注意图中的4个LED为红外LED。
IC工作电压是3.3V,系统采用5V供电。
IC采用3.58MHz外接晶振,上电自动复位后即可正常工作。
ET21X111芯片采用28引脚的PLCC封装,使用芯片时,须将微型光学镜头安插在芯片顶部的矩形凹槽中。
这样才能使芯片正常工作。
图3-1传感器部分电路原理图
2.1.1传感器芯片介绍
ET21X111是一款内含CMOS影像传感阵列、信号处理电路和8位微控制器的集成传感芯片;具有集成度高、功耗低和体积小的优点;可广泛应用于各种低分辨率图像信号采集、移动目标侦查和字图辨认等应用系统中。
et21x111的性能特点
高速资料输出,每秒输出坐标资料高达75frame,有了如此高的坐标资料输出,我们就可以非常灵活精准的对小车进行控制,因为每一个细微的改变都会被感测器捕捉到。
低电压工作,电压范围:
2.V-3.5V。
它几乎能和所有的普通的微控器(MCU)共用电源。
而且也很容易让我们选择电池方案。
28PIN采用PLLCorBQFN封裝。
11mm×11mm大小。
和大多数感测器的封装形式相同,ET21X111采用的是PLLC封裝,也即BQFN封裝。
采用标准RS232串行资料输出格式输出坐标值。
坐标的输出順序依次是XYZ,並且有编码对应。
非常容易掌握,且不会出错。
使用外部振荡器,范围0.5MHz~12MHz,通常采用3.58MHz。
外部振荡器的大小你可以根据自己的实际情況進行选择,通常频率越高,输出资料的速度就会越快。
一般选择的是3.58MHz的晶振。
具有可控制曝光介面EO4~EO7。
EO4~EO7這四个介面是用于曝光控制的,当然我们既可以用软件进行控制,也可以用硬件的方式进行控制。
根据自己的需要选择合适的即可。
et21x111的引脚功能
传感器ET21X111引脚如图3-2所示
图3-2ET21X111的引脚图
VDD:
供电电压。
GND:
接地。
AVDD:
类似于供电电压端。
AGND:
类似于接地端。
/RESET:
系统复位。
EO(7:
4):
感光时间选择。
选择方式如表3-1所示:
表3-1感光时间选择
EO7~EO4
感光时间
1111
255个感光单元
1000
143个感光单元
0001
31个感光单元
0000
15个感光单元
/STR:
A/D转换指示信号。
FS:
帧指示信号。
VOUTS:
影象资料输出。
BS,BG:
工作模式选择。
选择方式如表3-2所示:
表3-2工作模式和数据输出方式选择
BS,BG
元件类型
数据输出模式
00
32*32像素
等效亮点输出模式,有背景消躁功能
10
32*32像素
行扫描成像输出模式,有背景消躁功能
01
32*32像素
等效亮点输出模式,没有背景消躁功能
11
32*32像素
行扫描成像输出模式,没有背景消躁功能
RS232:
串行输出数据信号。
LED-EN:
二次感光源控制调LED控制。
当LED-EN输出低电平时,可用来控制点亮红外LED二极管的驱动电路。
XTL-IN:
晶体振荡器的输入端。
XTL-OUT:
晶体振荡器的输出端。
VRT:
最高电压范围电阻的AD转换器连接电容器到地。
VRM:
最高电压范围电阻的AD转换器连接电容器到地。
VRB:
电压底部的参考电阻的AD转换器等于电压的VREF(参考电压传感器)连接电容器到地。
ET21X111的工作方式
ET21X111传感器有两种工作模式:
行扫描成像输出模式(ROWData)和等效亮点输出模式(XYCoordinate)。
改变芯片引脚的连接可以选择其工作模式。
等效亮点输出模式:
传感器按一定的算法对采集到的1帧图像信号全部进行计算。
计算结果是得到一组可以表征该帧图像特征的数据(称为等效亮点)。
传感器输出该点的数据,即等
效亮点的坐标(X、Y)和亮度(Z)。
ET21X111芯片采用28引脚的PLCC封装。
ET21X111芯片由CMOS传感阵列、模拟信号放大与处理模块、A/D转换模块、状态控制模块和算法模块五部分构成,如图3-3所示。
图3-3ET21X111传感器的构成
CMOS传感阵列感光后,每个感光单元中的CMOS晶体管会发生电荷变化,形成一个模拟电压。
该模拟电压经过放大以后,由A/D转换模块转换成数字信号。
芯片内置的微控制器按照外接引脚电平的选择,确定芯片的工作模式、参数设置、输出方式、系统复位、图像信号处理、算法处理以及RS232串行协议处理等。
背景消噪功能:
对影像目标进行二次感光,其中有一次是添加红外光时的感光,将二次感光所得到的图像信号相减,可以抵消CMOS器件本身的噪声。
无论对成像或是等效亮点模式都可以通过改变引脚选择使用。
当需要二次感光时,芯片输出引脚LED_EN输出低电平,可使用该信号去控制点亮红外LED二极管的驱动电路,传感器芯片会自动对二次感光的信号进行处理,达到消除背景噪声的目的。
2.2单片机部分电路设计
单片机周边控制电路详细设计如图3-4所示。
RS232接收传感器坐标数据输入。
IC工作于3.3V电压,上电后自动复位。
系统时钟采用12MHz外接晶振。
图3-4单片机部分电路原理图
2.2.1单片机芯片介绍
C8051F单片机是完全集成混合信号系统级芯片(SOC),具有与8051兼容的高速CIP-51内核,于MCS-51指令集完全兼容,可以使用标准803×805X汇编器和编译器进行软件开发。
除了具有标准8051的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其它数字外设及功能部件。
这些外设或功能部件包括模拟多路选择器、可编程增益放大器、ADC、DAC、电压比较器、电压基准、温度传感器、SMBUS、12C、UART、SPI、定时器、可编程计数器、定时器阵列(PCA)、数字I/O端口、电源监视器、看门狗定时器(WDT)和时钟振荡器等。
所有器件都有内置的FLASH程序存储器和256字节的内部RAM,有些器件内部还有位于外部数据存储器空间的RAM,即XRAM。
C8051F单片机的引脚功能:
C8051F单片机的引脚图如图3-5所示:
图3-5单片机的引脚图
引脚说明:
VDD:
电源
GND:
地
/RST(C2CK):
器件复位,内部上电或VDD监视器的漏极开路输出。
一个外部电源可以通过该引脚驱动为低电平(至少10us)来启动一次系统复位。
(C2调试接口的时钟信号)。
P2.0(C2D):
端口P2.0(C2调试接口的双向数据信号)。
P0.0(VREF):
端口P0.0(外部VREF输入)数字I/O或模拟输入。
P0.1(IDA0):
端口P0.1(IDA0输出)数字I/O或模拟输入模拟输出。
P0.2(XTAL1):
端口P0.1(外部时钟输入,对于晶体或陶瓷谐振器,该隐教师外部振荡器电路的反馈输入)数字I/O或模拟输入。
P0.3(XTAL2):
端口P0.3(外部时钟输出,该引脚是晶体或陶瓷谐振器的激励驱动器。
对于CMOS时钟、电容或RC振荡器配置,该引脚是外部时钟输入)。
P0.4:
端口P0.4数字I/O或模拟输入。
P0.5:
端口P0.5数字I/O或模拟输入。
P0.6(CNVSTR):
端口P0.6(ADC0外部转换启动输入或IDA0更新源驶入)。
P0.7:
端口P0.7数字I/O或模拟输入。
P1.0:
端口P1.0数字I/O或模拟输入。
P1.1:
端口P1.1数字I/O或模拟输入。
P1.2:
端口P1.2数字I/O或模拟输入。
P1.3:
端口P1.3数字I/O或模拟输入。
P1.4:
端口P1.4数字I/O或模拟输入。
P1.5:
端口P1.5数字I/O或模拟输入。
P1.6:
端口P1.6数字I/O或模拟输入。
P1.7:
端口P1.7数字I/O或模拟输入。
工作方式:
ADC0的最高转换速度为200ksps。
ADC0的转换时钟由系统时钟分频得到,分频数由ADC0CF寄存器的AD0SC位决定(转换时钟为系统时钟/(AD0SC+1),0≤AD0SC≤31)。
C8051F单片机的主要特点
C8051F单片机使用Silabs的专利CIP-51核。
CIP-5核采用流水线结构,机器周期由标准8051F的12个系统时钟同期降为1个系统时钟周期,处理能力大大提高。
在采用相同振荡器频率的情况下,C8051F单片机的峰值执行速度的标准8051的12倍。
CIP-51扩展了标准的中断系统,这个扩展的中断系统可以提供22个中断源(标准8051F只有7个中断源)允许大量的模拟和数字外设中断微控制器。
一个中断驱动的系统需要较少的MCU干预,却有更高的执行频率。
在设计一个多任务实时系统时,这些增加的中断源是非常有用的。
C8051F单片机可有多达7个复位源:
一个片内VDD监视器、一个看门狗定时器、一个时钟丢失检测器、一个由比较器O提供的电压检测器、一个强制软件复位、CNVSTR引脚及外部复位引脚。
外部复位引脚是双向的,可接受外部复位或将内部产生的上电复位信号输出到外部复位引脚。
除了VDD监视器复位和外部引脚复位以外,每个复位源都可以由用户用软件禁止。
C8051F单片机内部有一个能独立工作的时钟发生器件并具有外部振荡器驱动电路。
在复位后内部时钟发生器被默认为系统时钟。
外部振荡器可以使用晶体、陶瓷谐震器、电容、RC电路或外部时钟源产生系统时钟。
如果需要,时钟源可以在运行期间在内部振荡器和外部振荡器之间切换。
这种时钟切换功能在低功耗系统中是非常有用的,它允许MCU从一个低频率(节电)外部晶体源运行,当需要时再周期性地切换到高速的内部振荡器。
C8051F单片机中具有可在系统和在应用编程的FLASH程序存储器。
在应用编程特性允许将FLASH存储器用于非易失性数据存储,并可以通过用户软件对FLASH编程,这就允许现场更新8051固件,为产品的软件升级提供了极大的方便。
FLASH存储器还具有安全机制,可以保护程序代码和数据,以防止程序或数据被读取或意外改写。
C8051F单片机具有片内JTAG和调试电路,通过4脚的JTAG接口并使用安装在最终应用系统中的器件就可以进行非侵入式、全速的在系统调试。
Silabs调试系统支持观察和修改存储器和寄存器、支持断点、观察点、堆栈指示器和单步执行。
调试时不需要额外的目标RAM、程序存储器、定时器或通信通道,并且所有的模拟和数字外设都正常的工作。
当MCU单步执行或遇到断点而停止运行时,所有的外设(ADC除外)都停止运行,以保持同步。
对于开发和调试嵌入式应用来说。
该系统的调试功能比采用标准MCU仿真器要优越得多。
标准的MCU仿真器要使用在板仿真芯片和目标电缆,还需要在应用板上有MCU的插座。
Silabs的调试环境既便于使用又能保证精确模拟外设的性能。
2.3电机驱动电路设计
在本设计中,马达的选用没有特别的要求,只需要普通的直流马达,采用PWM控制即可。
马达驱动电路设计如图3-6所示:
图3-6电机驱动电路原理图
电机驱动使能由引脚1、2EN控制电机1;引脚3、4EN控制电机2,当EN引脚置为高电平,与之相对应的电机就处于使能状态,从而激活电机控制输出。
与VCC2端口隔离的VCC1端口可提供逻辑输入,以减小电源功耗。
L293D可以工作在0℃~70℃的范围内。
2.3.1电机驱动芯片介绍
L293D是一种直流电机控制器件,该器件具有外围电路简单、易于集成、控制等特点。
该器件具有4个大电流半H驱动结构,这种结构可以在4.5V~36V电压的下提供高达600mA的电流。
该器件主要用于驱动感性负载,如继电器、螺线管、直流或者双极性步进电机等。
L293D具有如下特性:
●每个电机可提供高达600mA的驱动电流;
●每个驱动提供高达1.2A的脉冲电流;
●宽电压范围4.5V~36V;
●隔离的逻辑电平电源;
●热耗少;
●内部ESD保护;
●抗噪性能好。
L293D的引脚排列如图3-7所示。
图3-7L293D引脚图
引脚1A、2A、3A、4A为控制信号输入端,用于控制电机的工作状态。
而引脚1Y、2Y、3Y、4Y为电机控制输出端,用于直接控制电机的动作。
该器件的所有输入与TTL兼容,其输出采用达林顿晶体管接收器和伪达林顿源构成的“图腾柱”驱动电路。
3系统软件设计
3.1软件设计方法选择
用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。
C语言的特点:
(1)简洁紧凑、灵活方便。
C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。
它把高级语言的基本结构和语句与低级语言的实用性结合起来。
C语言可以象汇编语言一样对立、字节和地址进行操作,面这三者是计算机最基本的工作单元。
鉴于此,本次单片机程序就采用C语言编写,采用C51编译器实现。
3.2软件设计的工作原理
由于智能小车在运行的过程中,需要一边读取传感器传过来的坐标数据,一边控制马达的PWM输出。
传感器会每12MS输出一次坐标资料,所以最好的方式是采用中断来读取传感器资料,而在没有资料输出的时间做PWM输出的动作。
3.3系统程序流程图
3.3.1系统主流程图
系统主流程图如图4-1所示。
系统上电后,首先进行初始化,对单片机的寄存器进行设置,使能中断标志寄存器,等待中断。
图4-1主程序流程图
3.3.2系统中断流程图
中断处理子程序的流程如图4-2所示:
图4-2中断流程图
3.4主要程序设计
主程序的设计:
由于单片机内部已经有三路PWM输出,第四路PWM输出利用定时器0来得到。
接收到到数据后,先要对数据的高三位进行判断,001-X;000-Y;010-Z,确定数据后就对数据进行处理:
连续取十个数据,用冒泡法对数据进行从小到大排序并取中间四个数据的平均值,从而得到一个比较准确稳定的数据。
保存数据后等待中断。
中断子程序的设计:
中断产生时进入中断处理子程序,首先要关闭中断标志且保护好现场,然后读取并解析XYZ坐标值,分成以下几种情况。
(1)判断X轴变化,如果X值在大于0小于等于2时,马达不左右转动,然后再判断Z轴坐标值的变化,如果Z值也在大于0小于等于2时,马达不前后转动。
(2)如果X轴坐标值大于2,判断Z轴坐标,若Z值大于2,则反转右马达,之后左右马达后转;若Z值小于0,则正转左马达,之后左右马达前转;否则马达不转动。
(3)如果X轴坐标值小于0,判断Z轴坐标,若Z值大于2,则反转左马达,之后左右马达后转;若Z值小于0,则正转右马达,之后左右马达前转;否则马达不转动。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 光学 传感器 智能 玩具 小车 设计