气味循迹可以从事寻找有毒有害气体泄漏源、寻找爆炸源等相关工作,受到科研人员高度关注,发展十分迅速。同时,随着人们日常生活智能化程度的增强,具有智能控制系统的小车、机器人层出不穷,而这些智能体将在未来工业生产和日常生活中扮演更重要的角色。智能车,是一种能感知环境和自动有目的地行驶的综合系统。我们也可以这样认为,智能车也是智能机器人的一种形式,它的双腿我们用轮子代替,因而更加简单实现和控制。
耗时长、跟随性能差是当下智能气味循迹车在循迹过程中普遍存在着的情况。本文介绍的智能气味循迹车的控制核心是STC12单片机,能自动感知附近特定的气味,并应用
PID算法调节舵机,控制方向遵循气味来向前行,实验结果显示能有效缩短循迹时间,改善智能车的跟随性能。
1 硬件系统及其工作原理
1.1 硬件系统设计
智能车的系统(图1)的组成模块有:电源模块(变压稳压)、控制处理模块、传感器模块(探寻气味)、转向控制模块、电机驱动模块和状态显示模块等。控制处理模块为STC12 C5A单片机,由ULN2003APC驱动电机,采用后轮驱动,舵机由单片机直接控制,而舵机控制前轮转向。部分电路图(图2)和电路板实物图(图3)如下。
1.2 工作原理简介
本设计中,智能小车先由气味传感器感知两个方向的气味浓度,传送给单片机的AD口,由单片机进行判断,判断两个方向的浓度高低,然后通过PID算法,控制舵机打出偏角,跟随轨迹前行。
2 芯片配置及其功能
2.1 单片机STC12C5A60S2介绍
STC12C5A60S2引脚图如图4所示。
此单片机具有如下配置:RAM拥有1 280字节,具备40个通用I/O口,复位后为准双向口/弱上拉。具有EEPROM、看门狗功能。5.0 V单片机为:11~17 MHz,3.3 V单片机为:8~12 MHz。Power Down模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCPO/P1.3,CCPO/P1.3。
双串口,RxD2/P1.2,TxD2/P1.3。
气味传感器是气味循迹小车的关键模块,气体感应的准确性关系着小车最终能否寻找到气味源。本实验采用一个MS5100传感器。MS5100通电后,圆圈内的金属化合物能感知特定气味,其电阻随气味浓度升高而降低,则增大,输送给单片机的AD口,因为单片机能判断此气味传感器所处位置的气味浓度。(电路图如图5)
2.2 舵机模块
本设计中舵机(图2中舵机部分)采用PWM信号(脉宽调制信号)作为控制信号,控制周期为20 ms,拥有0.5~2.5 ms的脉冲宽度,以及0~180度的舵盘偏移角度,呈线性变化。也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。
2.3 电机驱动模块
由于单片机提供的电流无法直接驱动小车上的直流电机,故本设计采用外接驱动芯片达林顿管,即ULN2003作为电机驱动(图2中电机驱动部分),控制电机转动。此芯片能承受较高的工作电压和电流,采用编程产生有序的PWM波,对电机进行控制,能达到速度可调的效果。
2.4 指示灯显示模块
本设计中采用发光二极管,将将传感器的采集结果直接输出,可直观了解到各个传感器的工作情况。通过对观察传感器工作情况与的行驶小车状态,可判断小车是否正常工作。
2.5 电源模块
本设计中单片机、电机驱动等元器件的正常工作均需要稳定的电压,因此采用LM7805和LM7806并配上稳压滤波电路分别将干电池的电源直接变压成5 V和6 V的直流电源,来提供单片机、舵机、电机等元件工作所需电源。
3 实验
智能车追踪气味源的关键在于快速地分析气味的流向,并迅速准确地控制舵机打出偏角。然而在连续转弯时,由于曲率变化过大,加上小车具有一定的速度,舵机响应又需要一定的时间,所以在实际中经常出现小车来不及掉头而随意冲撞的情况。本设计中采用PID算法来控制舵机转向,在智能车对气味的跟随性能上有明显改善,能实现快速准确地控制(图8)。PID算法公式:
其中:Kp为比例控制参数;
KI为积分控制参数;
KD为微分控制参数。
关键字:单片机 PID 气味 循迹小车
引用地址:
基于PID控制算法的气味循迹车设计
推荐阅读最新更新时间:2024-03-16 14:47
STM32F103单片机使用DMA功能读取ADC采样数据
使用DMA功能操作外设时,可以极大的简化代码,提高程序的执行效率。特别是在需要频繁操作的外设上。比如现在要采集单片机16个ADC通道的电压值,就可以使用DMA功能,直接将ADC通道转换好的值,传输到数组中。需要操纵ADC的值时,直接去数组中拿数据就行。不需要再去判断ADC数据转换是否结束。下面直接通过代码来实现。 首先初始化ADC,这里将ADC的16个采样通道全部开启。 void ADC1_Init ( void ) { GPIO_InitTypeDef GPIO_InitStructure; ADC_InitTypeDef ADC_InitStructure; RCC_APB2PeriphCloc
[单片机]
基于PIC单片机及图像处理技术设计的智能台球机器人
设计摘要 台球源于英国,它是一项在国际上广泛流行的高雅室内体育运动。随着各种运动的兴起发展,台球以其内涵高雅、放松身心的特点越来越受大家欢迎。依靠单片机技术的日益成熟,基于单片机的小型化高精度控制过程的广泛应用,色度学、先进光电成像技术、计算机技术和图像处理技术的飞速发展和电机驱动技术、传感器技术以及控制技术的不断发展,我们计划设计可以与人对打的台球智能机器人,使人们可以在即使一个人的情况之下也可以享受台球带来的娱乐、休闲。 我们这次设计的智能台球机器是以PIC单片机为核心的控制系统,结合了图像处理技术,PIC单片机控制电机系统,以及机械机构设计技术等方面的知识,利用了各种芯片来实现对台球系统的图像采集处理技术,同时,使用各种
[单片机]
C2000™ 实时 MCU 实现功能安全和网络安全的电动汽车动力总成
使用 C2000™ 实时 MCU 实现功能安全和网络安全的电动汽车动力总成 本技术文章系与 Prometo 功能安全和网络安全高级顾问 Jürgen Belz 共同编写。 从内燃机 (ICE) 过渡到电动汽车 (EV),需要至少新增五个电气/电子/可编程电子 (E/E/PE) 系统。图 1 描绘了电动汽车中的这些系统。 图 1:典型电动汽车动力总成方框图 为了实现零尾气排放并减少对化石燃料的持续依赖,电动汽车开始在充电站“补充能量”。这些电动汽车充电站可使用太阳能和风能等可再生能源转化成电能,从而增加电动汽车对环境的积极影响。车载充电器与高压电池形成一个功能单元,确保快速、高效充电,同时保护电池免于过度充电。国际标
[嵌入式]
AT89S51单片机计数器的设计
1.实验任务 利用AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,用来指示当前计数的数据;用P1.4-P1.7作为预置数据的输入端,接四个拨动开关K1-K4,用P3.6/WR和P3.7/RD端口接两个轻触开关,用来作加计数和减计数开关。具体的电路原理图如下图所示 2.电路原理图 图4.12.1 3.系统板上硬件连线 (1).把“单片机系统”区域中的P1.0-P1.3端口用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L4上;要求:P1.0对应着L1,P1.1对应着L2,P1.2对应着L3,P1.3对应着L4; (2).把“单片机系统”区域中的P3.0/RXD,P3.1/TXD,P3.2/IN
[单片机]
C51单片机串行口中断服务程序
//出入均设有缓冲区,大小可任意设置。 //可供使用的函数名: //char getbyte(void);从接收缓冲区取一个byte,如不想等待则在调用前检测inbufsign是否为1。 //getline(char idata *line, unsigned char n); //获取一行数据回车结束,已处理backspce和delete,必须定义最大输入字符数 //putinbuf(uchar c);模拟接收到一个数据 //putbyte(char c);放入一个字节到发送缓冲区 //putbytes(unsigned char *outplace,j);放一串数据到发送缓冲区,自定义长度 //putstring(unsign
[单片机]
基于SOPC技术的医用呼吸机主控系统
呼吸机是可以代替人的呼吸功能或辅助人的呼吸功能的仪器。它适用于呼吸衰竭、甚至停止呼吸的病人做人工呼吸之用。它能帮助病人纠正缺氧和排出二氧化碳,是挽救某些危重病人生命的重要工具。 现有的呼吸机产品,其主控系统大多基于单片机来实现,对于功能强一些的产品就需要使用高端单片机,这样使得系统的成本比较高,而且外围的接口模块较多,结构复杂。使用SOPC(可编程片上系统)技术设计主控系统,可充分利用IP核的强大功能,精简外设数量,与此同时只占用了很小部分的资源,大大提高了系统的性价比。 本文利用SOPC技术设计了持续气道正压通气呼吸机的主控系统,使用了Altera公司的Nios II软核处理器以及一些通用的IP核,笔者基于Avalo
[医疗电子]
选择PIC单片机的四大理由
本人从事单片机应用系统的开发已有多年,使用过多种型号的PIC单片机,深感PIC单片机使用起来确实很方便: 1、 PIC单片机采用精简指令集,中档产品仅需35条指令,入门门槛低,而在使用过程中绝不会感到不方便。 2、PIC单片机的数据线和指令线各自独立,代码效率高,是传统51系列单片机的2-3倍,除几个跳转类指令外均为单周期指令,在 计算延时时间时非常方便。 3、PIC单片机外围接口十分丰富,能满足绝大部分应用系统的需求;比如PIC16F877A包含8路ADC,1个CCP、PWM、USART、SSP、 I2C/SPI,3个定时/计数器,1个硬件WDT等接口,8K FLASH程序存储器、256字节EEPROM,能满足较复杂
[单片机]
单片机中断问题30例及解决办法
1、单片机外中断INT0为下降沿触发,当中断被触发后cpu执行中断程序,若本次中断的程序还未执行完INT0又来了一个相同的下降沿中断信号怎么办?cpu会怎么处理?若是定时器中断呢?串口中断呢?求解释 答:再来一个INT0信号不会执行。相同的优先级不会打断正在执行的中断。 一. 如果是高优先级的中断来了,会打断低优先级的正在执行的中断而执行高优先级的中断。 51单片机的默认(此时的IP寄存器不做设置)中断优先级为: 外部中断0 定时/计数器0 外部中断1 定时/计数器1 串行中断; 当同时有几种中断到达时,高优先级中断会先得到服务。 例如:当计数器0中断和外部中断1(优先级 计数器0中断 外部中断1)同时到达时,会进入计时
[单片机]