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

2024-06-16

基于PCF8591t的智能小车追光系统的设计(通用6篇)

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

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

摘 要:本文提出了一种应用于智能小车的光源位置及光强检测的设计方案。该方案由硅光电池、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,女,大学本科,副教授,主要从事单片机应用技术和智能控制方面的工作。

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

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

2、总体设计方案

如图1所示。

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

3、硬件设计方案

3.1 光源信号采集电路

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

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

如图2所示。

3.2 A/D转换电路

这部分电路完成对光源信号采集电路输出的模拟电压进行A/D转换, 其转换结果送至单片机进行处理。电路如图3所示, P CF8591t是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为三路差分输入 (分别为前三个通道A IN0~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的表l PCF8591t引脚功能描述转换结果, 分别对应于前一个数据读取期间所采样的模拟电压。A/D转换结束后, 先发送一个非应答信号位, 再发送结束信号位。

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

4、软件设计方案

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

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

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

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

5、结论

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

参考文献

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

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

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

关键词:MC9S12XS128单片机;智能小车;传感器;循双线

中图分类号:TP368 文献标识码:A 文章编号:1009-2374(2013)18-0010-02

1 概述

智能车的制作是大学生锻炼动手能力、掌握课程知识和培养专业兴趣的一种很好的方式。竞赛方为了增加竞赛的趣味性与挑战性,比赛有了更新颖的方式。即:把小车由传统的循单线改为循双线,这加大了设计与调试的难度。本文针对2012年全国大学生“飞思卡尔杯”智能汽车大赛中光电组智能小车的制作,分析新规则下,如何设计系统的硬件、软件来完成循双线的效果。

2 系统总体设计方案

遵照组委会制定的竞赛规定,智能小车系统采用飞思卡尔的MC9S12XS128单片机作为核心控制单元。赛车的位置用光电传感器来采集,经单片机的I/O 口接收,由单片机处理后对赛车的运动过程进行控制。同时内部ECT模块发出PWM波,驱动直流电机对智能小车进行加速和减速控制,用舵机对赛车进行转向控制。在智能车电机输出轴上装上编码器,测量速度,达到对速度的采集和闭环控制。此外,还增加了功能选择按键作为智能车的工作方式的快速切换和显示屏用于显示信息。系统总体结构方框图如图1所示:

3 硬件电路设计方案

可靠的硬件设计是小车可以跑起来的必要条件。本次硬件电路主要是完成车身的机械组装、主板的设计以及传感器和旋转编码器的设计安装等。

3.1 主板设计

主板的设计任务主要是完成电路的电源模块、单片机外围电路、电机驱动电路、液晶模块电路等的设计。主板是小车的主体,需要合理且优化的设计才能让小车具有良好的性能。(1)电源模块。电源模块主要对电源进行管理,由于配套的电池是7.8V的,而采用的编码器、液晶、传感器等都是低于这一电压的,因此对电源进行处理是保证系统正常运行的重要因素。用LM7805将蓄电池的7.8V稳压到5V,供给单片机、激光传感器以及旋转编码器,再利用LM1117给液晶显示屏供3.3V的工作电压,这样就可以对电源进行分配与管理。(2)电机驱动。电机是带动后轮转动的装置,是智能小车的动力源。电机的驱动电路通常使用H桥式电路。典型的有MC33886、桥式驱动器TD340搭建H桥电路。本次设计选用成本相对低的MOS管IRF9540和IRF540与CMOS和非门芯片CD4011BE组成的H桥驱动电路。(3)其他。单片机外围电路的设计主要有电源、复位电路、振荡电路以及相关的保护电路的设计,与其他单片机外围电路没有太大差别,这里不累赘叙述。再次是液晶显示器的连接与安装,液晶显示器主要是用于显示所需信息,因此只要将液晶的对应引脚接上电源、地以及单片机的端口VDDF、PT3、PT4、PT5等即可。

3.2 传感器设计及安装

传感器是智能车的“眼睛”,是小车实现路径识别的关键器件。由于激光传感器性能稳定且灵敏,是光电智能车设计的首选。激光传感器由发射管和接收管组成,工作的时候,发射管发射激光,经过赛道物理面的反射由接收管接收,接收管将信号转换成电信号送给单片机。由于赛道分为黑白两色,激光传感器对颜色敏感,当检测到不同颜色时, 接收管会处于两个不同状态,表现为高低电平脉冲,单片机根据传感器搜集的路径情况,调节PWM的占空比来控制舵机的转向和电机的速度,达到控制目的。本设计中,使用两排“一字型”的传感器,各带有四个一对二(一个接收管对应两个发射管)的传感器。将激光架在车身上方,可以“看得更远”,赛道信息更丰富。传感器的距离设定在白色跑道内,当左边的传感器扫到黑线时,小车向右转,右边的传感器扫到黑线时,就左转。并且从外向内,越是靠近中间的接收管接收到变化,舵机的转向改变应该越大。

3.3 其他

硬件电路还有许多需要设计的,机身的机械组装主要是利用组委会规定车模,进行组装,并且对主销、前束、后轮距以及底盘高度进行调整,这里不多介绍。旋转编码器的安装主要是将编码器的齿轮与后轮杆上的齿轮相啮合,当电动机转动时,带动连杆与齿轮同速转动。编码器在不同的转速下,内部将产生不同频率的脉冲,送至单片机后就可以对速度进行测试并控制。

4 系统软件设计

智能小车系统的控制中心就是单片机MC9S12XS128,主要对速度传感器(旋转编码器)和位置传感器(激光传感器)采集到的信息进行处理分析,进而发出对電机和舵机的控制命令,实现对小车整体速度和转向的控制。软件设计的思路就是围绕这两点来进行的。系统通过在主程序中循环调用信号检测、信号处理、路径判断等等子功能模块,进行路径的识别,当检测到终点线的时候,小车停下来,若没有,就一直循环上面的步骤。这样小车就可以达到智能识别双线路径的控制效果。具体的软件设计流程图3所示:

5 结语

智能车的设计与制作是一项非常有趣味的实践,本文主要分析了一种新型的循双线智能车的制作方案,只重点对其硬件设计和软件设计做了详细的叙述。当然,智能车的设计制作所囊括的内容还很多,比如机械的设计、控制模块的设计和路径算法等。通过设计制作,小车可以自主识别赛道和行驶。该技术是智能机器人、智能导航的雏形,具有广泛应用前景。

参考文献

[1] 卓晴,黄开胜,邵贝贝.学做智能车——挑战“飞思卡尔”杯[M].北京:北京航空航天出版社,2007.

[2] 吴怀宇,程磊.学做智能车[M].北京:电子工业出版社,2008.

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

【关键词】FPGA 蓝牙智能小车 设计

一、设计原理

本实例以FPGA为下位机,智能手机为上位机,通过蓝牙接口实现智能手机与FPGA开发板的通信,进一步达到手机对小车的控制。现代的大部分电子产品都基于可编程的中央处理器,这些处理器都可以与蓝牙芯片进行串口通信,蓝牙技术的适用性十分广泛。基于蓝牙技术的智能控制系统,只需在载有处理器的下位机上增加蓝牙模块,配置通信协议,实现串口通信,就可以实现基于蓝牙技术的智能控制系统。

二、硬件设计

(一)电机驱动模块的设计

本系统使用L298N作为电机驱动芯片。L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以同时驱动2个二相或1个四相步进电机,接收标准TTL逻辑准位信号,且可以直接透过电源来调节输出电压。此芯片可直接由FPGA的10端口来提供模拟时序信号。ISEN A和ISEN B可与电流侦测用电阻连接来控制负载的电路;OUT1、OUT2和OUT3、OUT4之间可分别接2个步进电机;IN1~IN4输入控制电位来控制电机的正反转;使能端ENA和EN B则控制电机停转。用该芯片作为电机驱动,操作方便,稳定性好,性能优良。

(二)超声波模块的设计

本系统使用的超声波模块主要实现的功能是测距并返回数据。超声波测距模块通过发射电路和接收电路测出时间差T,然后根据公式S=CT/2算出小车距离障碍物的距离S(其中C为超声波在空气中的传播速度)。FPGA实时接收和处理距离信号,并将处理后的信号转换为控制指令。当到达警报距离时,FPGA控制电机驱动模块使小车减速;当到达极限距离时,FPGA控制电机驱动模块使小车马上左转。此处的左转是依照左手定则,当小车的前方和左方都有障碍物时,小车左转两次,实现向后运动。

(三)蓝牙模块的设计

本系统使用的蓝牙模块是SH-HC-06,利用串口UART协议进行收发数据。手机蓝牙作为客户端,小车上的蓝牙模块作为服务端。客户端通过蓝牙与服务端进行数据传输,服务端将接收到的客户端信号传给FPGA控制模块,FPGA接收并处理数据,然后再把处理后的数据发回去。发送格式为:1bit起始位,8bit数据,1bit停止位。整个通信处理过程可细分为数据接收和数据发送。

三、系统综合与仿真测试

1.超声波模块

在超声波模块仿真过程中,涉及蓝牙模块实时采集数据,但是仿真环境中无法实现。

2.砸动模块

图1为小车驱动控制模块仿真图,CLK为时钟信号输入端,RESET为重置信号输入端,PWM_Data为占空比信号输入端,Car_State为小车状态控制输入端,ENA、ENB、ENC、END为占空比输出端,IN1、IN2、IN3、IN4为小车驱动控制模块控制电机的输出端。在本次仿真中,占空比设置为20,小车状态为O时四个电机均无输出;小车状态为1时,小车前进,输出状态为1010;小车状态为2时,小车掉头,输出状态为0101;小车状态为3时,小车左转,输出状态为0110;小车状态为4时,小车右转,输出状态为1001。

四、系统总结

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

【关键词】单片机;寻光;避障;太阳能板

0.前言

智能车辆是一个集环境感知、规划决策、自动行驶等功能于一体的综合系统——它集中地运用了计算机、传感、信息、通讯、导航、人工智能及自动控制等技术——是典型的高新技术综合体。本文设计的简易智能小车就是这种综合体的一种尝试。本文利用红外传感器、超声波传感器等多种传感器,以及太阳能技术配合下——具有自动寻迹、障碍物探测、以及追踪光点等功能,可以说基本上实现了小车的智能化。

1.控制系统总体设计

小车由步进电机驱动后轮前行,通过车头的红外对管电路寻找光源,在遇到路障时通过超声波传感器电路能够检测障碍并绕道继续寻光前进。在小车行进过程中,由车顶的三个红外对管电路追踪光源,通过转动步进电机控制太阳能板旋转,并面对光源给蓄电池充电。在整个过程中,控制器控制各模块的协调运行。控制系统的结构框图如图1所示。

图1 小车系统系统框图

2.控制系統各个功能模块设计

2.1小车寻光、太阳能板追光模块

红外接收管接收光源的灵敏度较高,价格便宜,电路较简单,结合实际的应用环境,而且其结构简单,体积小巧,易于安装,完全能用多个该传感器构成高精度的控制辐射网络提高识别的可靠性、准确性。故电路采用红外接收电路,电路结构如图2。当小车在行进中,考虑到光源的固定位置,且有障碍物的影响,进而在小车的头部位置左、右、前三个侧放置五个接收管。接收管接收到光源发出的红外光时,接收管不导通,正向输入的电压大于基准电压,通过电压比较器进行比较输出高电平,接收管未接收到光源发出的红外光后,接收管导通,正向输入的电压将会小于基准电压,通过电压比较器进行比较输出低电平。单片机可直接对接收到的信号进行判断是否检测到光源,并通过对检测到的信号进行处理来决定小车的运动方向。

图2 寻光电路结构图

2.2避障模块

用超声波传感器进行避障。超声波传感器的原理是:超声波由压电陶瓷超声波传感器发出后,遇到障碍物便反射回来,再被超声波传感器接收。超声波传感器在避障的设计中应用广泛。超声波传感器有发送器和接收器,它是利用压电效应的原理将电能和超声波相互转化。超声波测距的原理一般采用渡越时间法,首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物的距离。超声波传感器具有测量一定的测量范围,一般从几厘米到几米不等。本系统采用专门的超声波传感器集成模块,通过设定一定的距离来进行避障,在设计过程中,采用两个该超声波传感器来进行较大范围的避障,从而保障小车正常行驶。

2.3太阳能板追光电路模块

设计太阳能板由八块小规格太阳能板并联而成。该电路由步进电机、太阳能板、红外接收管电路组成,电路框图如图3所示。

图3 太阳能板追光电路框图

通过固定在太阳能板上的红外接收管电路(原理图如上图图2)寻找光源,反馈信息给单片机,由控制器控制太阳能板下面的步进电机带动太阳能板来跟踪光源。

2.4太阳能板充电电路

该电路设计由太阳能板接收光源后通过充电控制器给单节锂电池(3.7V 750mA)充电,电路框图如图4所示。

图4 太阳能板充电电路框图

在充电过程中,锂电池自身具有过冲过放保护,因此电路在充电控制部分增加了反接、短路等保护模块,原理图见图5。

图5 充电控制电路原理图

2.5采样电路

采用ADC0809采集太阳能板给锂电池提供的电压值,反馈单片机控制实现小车停止前进、显示蓄电池充电状态以及小车沿自然光源方向前进等功能,其工作原理框图如图5所示。

图6 采样电路原理图

2.6电机驱动模块

采用步进电机。步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、启停的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机一个脉冲信号, 电机则转过一个步距角。因此,步进电机具有快速启停能力,如果负荷不超过步进电机所能提供的动态转矩值,就能立即使步进电机启动或反转,而且步进电机的转换精度高,驱动电路简单,非常适合定位控制系统。

本设计使用的步进电机是两项六线式,用L297和L298N驱动芯片驱动,其中单片机AT89S52通过I/O口向L297的17和18脚发送驱动控制信号,从而控制步进电机的速度及正反转。LM297、298是具有高电压大电流的全桥驱动芯片,它相应频率高,且还带有控制使能端。用该芯片作为电机驱动,操作方便,稳定性好,性能优良。电路图如图7所示。

图7 步进电机驱动电路原理图

2.7电源模块

电动小车的电机驱动电源采用12V 12A的开关电源。而单片机及各电路模块所需电源均由5V电源提供,该电路由开关电源作输入,由三端稳压芯片7805、LM317起稳压作用,2200uf电解电容、100uf和0.33uf瓷片电容起滤除纹波作用,输出+5V电源。

3.控制系统软件设计

主程序主要起到一个导向和决策功能。其设计思路根据小车所处位置的不同.确定小车的任务。总体流程图如图8所示。

图8 系统软件流程图

主要程序清单

void AD0809();//AD0809启动函数声明

voidDelay(unsignedintDelay_Time)

void init()

void main()

{

LED=1;

init();

if(xuanze==1)

{

while(1)

{

if(L2led==1&&L1led==1&&Mled==0&&R1led==1&&R2led==1)

{ EA=1;

qianjin();

if(flag8==1)

{

flag8=0;

for(i=0;i<5;i++)

{

AD0809();

SHUJV1=shujv;

if(shujv<35) shujv=35;

SHUJV1=shujv;

DY1 = (((SHUJV1-35)*255)/177)*5*2/255;

DY2 = DY1;

if(DY1>0)

{LED=0;}

if(DY2>2)

{while(1);}

}

if(ceshi==0||ceshi1==0)

{ if(ceshi==0)

{

for(i=0;i<2000;i++)

{ houtui();}

for(i=0;i<3500;i++)

{ right2();}

for(i=0;i<6000;i++)

{ qianjin();}

}

if(ceshi1==0)

{

for(i=0;i<2000;i++)

{ houtui();}

for(i=0;i<2500;i++)

{ left2();}

for(i=0;i<6000;i++)

{ qianjin();}

}

}

if(L2led==1&&L1led==0&&Mled==0&&R1led==0&&R2led==1)

if(L2led==1&&L1led==1&&Mled==1&&R1led==1&&R2led==0)

}

void ser() interrupt 1

void AD0809()//AD0809启动函数

4.结语

该小车各部分采用模块化设计,各个模块之间独立性强。核心控制部分采用可在线编程的AT89s52单片机,可以在不增加系统硬件的情况下方便地对系统进行二次开发。本文对模型小车进行了试验,实现了小车的识别路线、判断并自动躲避障碍、选择正确行进路线、寻找光源等功能。■

【参考文献】

[1]康华光.模拟电子技术[M].北京:高等教育出版社.1999:536-538.

[2]赵建领.51系单片机开发宝典[M].北京:电子工业出版社:210-213.

[3]田良,黄正谨.综合电子设计与实践[M].南京:东南大学出版社.2003:78-84.

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

关键词:红外传感器;闭环控制;避障智能小车

中图分类号:TP242 文献标识码:A 文章编号:1674-7712 (2012) 18-0001-02

随着电子技术和智能控制技术的发展,智能车已经成为自动控制领域内的一个研究热点。本文研究的智能小车可以利用传感器自动获取目标道路信息,同时还能自动避开障碍物。

一、总体设计

为了让小车精确快速的通过赛道,我们设计了整个小车的外形(图1),使小车尽量的小并且轻。所以我们选用了玻璃纤维板作为底盘,并且只使用了两个电机,用差速转弯的方式控制小车行进,并且自行设计了电路板。最大化的减小的车的体积和重量,平衡了车的整体重心。

二、硬件设计

本设计采用ST公司Cortex-M4驱动的32位闪存微处理器STM32F405作为硬件平台,配以电源模块、电机驱动模块、传感器信号输入等相应的外围电路和输入输出接口电路等,构成一套完整的硬件系统(见图2)。

(二)核心微处理器

本系统采用STM32F405作为核心微处理器,这是由ST公司年推出的ARMCortex-M4处理器,是ARM专门开发的最新嵌入式处理器。

在系统中,单片机主要执行以下工作:

1.采集紅外测障传感器信号,获取赛道路况信息;

2.采集编码器脉冲数,进行速度PID环的运算;

3.输出所需的左右轮PWM。

(三)电机驱动模块

本系统采用H桥集成芯片ZXMHC3F381N8作为电机驱动芯片,该芯片由4个MOS管集成而成,能满足系统电机的工作转矩和转速。

本智能小车中采用脉宽调制方式(即PWM,PulseWidth Modulation)来调整电机的转速和转向。脉宽调制是通过改变发出的脉冲宽度来调节输入到电机的平均电压,也就是单片机提供给电机的信号是方波,通过不同方波的平均电压不同来改变电机转速。

(四)红外测障传感器

红外测障传感器(图4)连接到主控制板板数字输入口上。通过M3螺丝将传感器模块直接固定在智能小车底盘上。

红外测障传感器在使用过程中,当前方有障碍物时,发射的红外就会被反射回来,红外接收传感器接收到反射光,认为此时传感器前方有障碍物。单片机采集到此信号后,控制小车运动。

通过调节红外测障传感器上的电位器来改变其检测距离。当顺时针旋转电位器时,红外发射变强,检测距离变远;当逆时针旋转电位器时,红外发射变弱,检测距离变近。

在使用中,红外测障传感器对于不同颜色与粗糙程度的障碍物,使用中其检测距离不一样。当障碍物颜色是黑色或深色时,会吸收大部分红外光,只反射回一小部分,有时会使红外接收传感器接收到的红外光强度不够,不足以产生有障碍的信号;当障碍物颜色是白色或浅色时,正好相反。

三、程序设计

系统电机使用闭环控制系统,在采集到编码器的脉冲信号后,进行速度PID闭环的运算。通过定期检测红外测障的数据,获得跑道数据信息后,进行路径规划,输出所需的左右轮的目标速度。加入PID运算。控制轮速以完成小车避障行驶。图5是程序流程图。

其中stateL代表左红外测障传感器状态,若为“1”则表明未检测到左边缘,反之则表明检测到左边缘;stateR代表右红外测障传感器状态,若为“1”则表明未检测到右边缘,反之则表明检测到右边缘;stateM代表中红外测障传感器状态,若为“1”则表明未检测到前边缘,反之则表明检测到前边缘。

在方向控制上,通过左右轮的转速差来控制。左轮较右轮转速快,则控制智能车右转,反之则控制智能车左转。

四、结束语

本文以追求智能车避障行驶稳定性为前提,提出了智能车的整体设计思想,硬件设计,软件设计。在机械结构方面,我们以电脑鼠作为设计思想,设计了轻巧的车体结构。在电路方面,我们以模块形式分类,在最小系统、主板、电机驱动等模块分别设计,经过不断实验,最后决定了我们最终的电路图。在程序方面,我们使用C语言编程,经过不断讨论、改进,终于设计出一套比较通用稳定的智能避障程序。在这套算法中,我们结合路况调整车速,保证在最短时间内避障跑完全程。

参考文献:

[1]卓晴.学做智能车:挑战“飞思卡尔”杯[M].北京:北京航空航天大学出版社,2007.

[2]黄志伟.STM32F32位ARM微控制器应用设计与实践[M].北京:北京航空航天大学出版社,2012.

[3]谭浩强.C程序设计[M].北京:清华大学出版社,2003.

[4]高海宾.AltiumDesigner10从入门到精通[M].北京:机械工业出版社,2012.

上一篇:双手头上向前掷实心球说课稿下一篇:我感悟,我快乐