当前位置:首页 > 作文大全 >

基于PCF8591t的智能小车追光系统的设计

发布时间: 2022-03-23 09:29:48 浏览:

摘 要:本文提出了一种应用于智能小车的光源位置及光强检测的设计方案。该方案由硅光电池、A/D及D/A转换器PCF8591t完成光信号的采集和转换,由单片机完成数据处理和小车运动控制。使小车能够根据光源位置、光线强弱的变化实现快速寻光。

关键词:PCF8591t 硅光电池 单片机 智能追光小车

中图分类号:TP311文献标识码:A文章编号:1007-9416(2011)04-0148-03

1、引言

随着机器人控制技术的发展和成熟,智能小车作为其中的典型代表广泛应用于科研、生活、教学等各个方面。仅从历年省级乃至全国的电子设计大赛的比赛项目中都可以看到智能小车的身影。智能小车通过所搭载的各类传感器来实现避障、巡线、防碰撞、追光、搬运等各类功能,而相关控制功能实现的好坏于传感器的性能有着密不可分的关系。本方案旨在设计一种可应用于智能小车上的结构简单、使用方便、性能稳定的光源及光强检测模块。

2、总体设计方案

如图1所示。

在本方案中,光源的检测由分布在小车车身不同位置的多个硅光电池来实现,将所采集的光源信号送至PCF8591t进行A/D转换,而后由单片机依据转换后的信号作出判断来控制小车的运动,从而实现小车追光运动。其中光源检测电路的数目可依据实际情况进行选择。

3、硬件设计方案

3.1 光源信号采集电路

这部分电路主要实现光源信号的采集,目前很多智能小车对于光信号的检测通常采用光敏电阻来实现,但光敏电阻的检测结果容易受到周围环境的影响,而且由于光敏电阻本身的特点,使检测结果与实际光强无法呈线性关系,使得检测结果误差较大。而专门的光强检测芯片价格又较高,如需在一台小车上配置多个检测芯片的话,这将是一笔不小的开销。

本方案中采用硅光电池进行光信号检测,硅光电池两侧的输出电压能够跟随外界光线强弱变化,而且光电池具有响应速度快,使用方便,频率范围宽,价格低的优点。其应用电路如图2所示,图中光电池两端的电压经过隔离和放大后,得到5V以内的模拟电压输出。图中运放采用通用运放LM358或LM324均可。

如图2所示。

3.2 A/D转换电路

这部分电路完成对光源信号采集电路输出的模拟电压进行A/D转换,其转换结果送至单片机进行处理。电路如图3所示,PCF8591t是Philips(飞利浦)公司生产的具有I2C总线接口的8位A/D及D/A转换器。内部有4路A/D转换输入,1路D/A模拟输出,最高转换速率达11KHz,不过该芯片的基准参考电压需要外接,图3所示电路的参考电压采用芯片本身的供电电压DC+5V。

I2C总线是Philips公司推出的串行总线,它与传统的通信方式相比具有读写方便、结构简单、可维护性好、易实现系统扩展、易实现模块化标准化设计、可靠性高等优点。在与CPU的信息传输过程中仅靠时钟线SCL和数据线SDA就可以实现。PCF8591t的引脚功能如表1所示。

3.2.1 PCF8591t的地址控制字

PCF8591t的地址控制字具体格式描述如表2所示。其中,I2C总线协议规定A/D器件高四位地址为1001,低三位地址为引脚地址A0~A2,由硬件电路决定,地址控制字的最后一位为方向位/,对A/D器件进行读操作时为1,进行写操作时为0。

为描述简单起见,在本方案中,仅分别在智能小车的左前方、右前方共安装了二个光电池,采集后的光源信号分别送至PCF8591t的二个模拟输入通道AIN0和AIN1,故使用一片PCF8591t完全满足要求,此时电路中A0~A2做接地处理,则此时PCF8591t的器件写地址为90H,器件读地址为91H。

3.2.2 PCF8591t的转换控制字

转换控制字用于实现器件的各种功能.如模拟信号由哪几个通道输入、是选择A/D转换功能还是选择D/A转换功能等。控制字节存放在控制寄存器中,总线操作时为主控器发送的第二字节。其格式如表3所示。

其中:D1、DO两位是A/D通道编号:00、01、10、11分别代表通道0~通道3

D2自动增益选择,该位为1时,对当前通道转换后自动切换至下一通道进行转换,为0时不自动进行通道转换,此时可通过软件修改转换通道。

D5、D4模拟量输入选择:00为四路单输入、01为三路差分输入(分别为前三个通道AIN0~AIN2与最后一个通道AIN3的差分输入)、10为两路单端输入(AIN0、AIN1)与一路差分输入配合(AIN2-AIN3)、ll为两路差分输入(AIN0-AIN1、AIN2-AIN3)。

D6 模拟输出允许位,A/D转换时设置为0(此时地址控制字最低位D0此时设置为1),D/A转换时设置为1(此时地址控制字最低位D0此时设置为0)。

3.2.3 PCF8591t的A/D转换

在进行A/D转换时,需要遵循标准的I2C写读时序,其数据读取操作格式和逻辑操作波形时序如图4所示,对PCF8591进行写读操后便立即启动A/D转换,并读出A/D转换结果。其中DATA BYTE N为A/D的转换结果,分别对应于前一个数据读取期间所采样的模拟电压。A/D转换结束后,先发送一个非应答信号位,再发送结束信号位。

需要注意的两个问题:其一,上电复位后地址控制字和转换控制字均为为OOH,在A/D转换时须设置控制字,即须在读操作之前进行控制字节的写入操作。其二,由于在读周期中读出的第一个字节为前一次的转换结果,若需读取当前转换值,应多读一个字节。上电复位后读出的第一字节为80H。

4、软件设计方案

本方案中,智能小车上共安装了二个光电池,其信号放大电路的输出端分别作为PCF8591t的二路模拟信号输入,分别接于AIN0~AIN1。在进行光源检测时,读取每个输入端的A/D转换结果,然后进行综合判断就可以确定当前光源位置,以此来控制小车的运动,实现追光。其中完成单通道A/D转换及光源判断及运动控制部分的流程图如图5所示。

A/D转换的部分程序如下:

unsigned charad_conversion(unsigned char addr,unsigned char ch)

{ unsigned char i;

start( );

write_byte(addr);// 发PCF8591t写地址

ack( );

write_byte(ch);// 发PCF8591t转换控制字

ack( );

stop( );

start( ):

write_byte(addr+1);// 发PCF8591t读地址

ack( );

i=read_byte( );// 读取前一次转换数据

…………

returni;

}

其中,由于考虑到光电池及电路元件参数的分散性,所以在进行左右侧的转换值比较时,设定了容差范围,当两侧转换结果的差值在容差范围以内时,认为此时两侧的光强是一样的,小车可保持当前运动状态。实际应用时,应根据所选用的光电池特性和放大电路参数进行实际测量,以确定合适的容差范围。

同时,对于小车的运动控制,可采用PWM原理对小车进行调速,以此可方便的控制小车的运行速度和方向。

5、结论

采用本方案设计的智能小车追光系统,在实际应用中效果理想,性能稳定。而且由于PCF8591t在一片芯片中集成了4路A/D和1路D/A转换功能,且模拟输入有单端和差分方式可选,故给设计提供了很大的灵活性。而且芯片的通讯协议为I2C总线方式,在使用中为电路的设计提供了很大的方便,也为系统芯片有限的I/O口提供了最大的使用效率,同时具有读写操作简单,速度快,性能稳定,扩展方便等优点,还可以和其它I2C总线接口的器件构建功能较为全面的传感器系统,这一点在智能控制领域有着较为广阔的应用前景。

参考文献

[1] 何立民.I2C总线应用系统设计[M].北京:北京航空航天大学出版社,1995.

[2] 马忠梅.单片机的C语言应用程序设计(第四版)[M].北京:北京航空航天大学出版社,2007.

[3] 周剑利,郭建波,崔涛.具有I2C总线接口的A/D芯片PCF8591及其应用[J].微计算机信息,2005,21(7):150-151.

作者简历:施芸:1975.7,女,大学本科,副教授,主要从事单片机应用技术和智能控制方面的工作

相关热词搜索: 小车 智能 设计 系统 PCF8591t

版权所有:无忧范文网 2010-2024 未经授权禁止复制或建立镜像[无忧范文网]所有资源完全免费共享

Powered by 无忧范文网 © All Rights Reserved.。冀ICP备19022856号