【STM32平衡小车】电磁巡线技术的发展及电磁巡线介绍(一)

发布者:RadiantDreams最新更新时间:2021-09-24 来源: eefocus关键字:STM32  平衡小车 手机看文章 扫描二维码
随时随地手机看文章

一、常见的路径识别

路径识别方法主要有两大类,一类是依靠红外光电传感器,一类是依靠摄像头。


红外光电传感器以其体积小、价格低廉、安装灵活方便且不受环 境可见光干扰等特点得到了广泛的应用。 对于该类传感器来说,相应于不同的路面条件(主要是黑白度),接收管接收到地面漫反射 红外线后其两端电压将有所不同,即传感器接收管正对白色路面,则其电压较高,若正对黑 色的路径标记线,则电压较低。

因此,基于这个原理可以提出一种比较常见的路径离散识别 算法:通过普通 I/O 端口将接收管电压读入单片机,根据端口输入的高低电平逻辑来判断 该传感器是否处于路径标记线上方, 再筛选出所有处于标记线上方的传感器, 便可以大致判 断此时车身相对道路的位置,确定路径信息。


二、离散路径识别方法的分析

这种离散算法简便易行, 对硬件及算法要求都比较低, 在传感器数目较多的情况下也可以实 现较高的识别准确性。 但它的一个致命缺陷在于路径信息只是基于间隔排布的传感器的离散 值,对于两个相邻传感器之间的 “盲区” 无法提供有效的距离信息,其路径识别精度极大地受制于传感器数目及其间距。


离散路径识别算法仍有其难以克服的固有缺陷。由于离散算法得到的路径信息为离散值,如果直接应用到转向及车速控制策略中,势必造成转向及车速调节的阶跃式变化,这将会对赛车的性能产生以下不利影响:其一,转向 及车速控制僵硬,对路径变化反应不灵敏,同时易产生超调及振荡现象;其二,舵机输出转 角相对于路径为阶跃式延迟响应, 对于追求高速性能的高车速短决策周期控制策略来说, 很 可能因为舵机响应不及而造成控制失效。


三、解决离散的盲区阶跃问题的方法

为了解决以上问题,一方面可以从路径识别算法上着手,寻找识别精度高,不受传感器数目 限制,识别信息连续的路径识别算法;另一方面也可以从控制算法上着手,寻找基于离散路径信息的连续控制算法。


四、连续化的实现

着眼于第一条思路, 提出一种将有限间隔排布传感器采集的数 据连续化的方法,来实现连续路径识别。


光电传感器特性 该连续化方法主要是建立在对光电传感器特性的深入研究的基础上。 事实上,红外光电传感器特性并非如前文所述那样简单(白区高电压,黑线低电压),其电 压大小与传感器距离黑色路径标记线的水平距离有定量关系:离黑线越近,电压越低,离黑 线越远,则电压越高,(具体的对应关系与光电管型号以及离地高度有关)。


因此, 只要掌握了传感器电压—偏移距离特性关系, 就可以根据传感器电压上的大小确定各 传感器与黑色标记线的距离(而不是仅仅粗略判断该传感器是否在线上),进而获得车身相 对路径标记线的位置,得到连续分布的路径信息。

关键字:STM32  平衡小车 引用地址:【STM32平衡小车】电磁巡线技术的发展及电磁巡线介绍(一)

上一篇:【STM32平衡小车】STM32定时器配置为编码器模式
下一篇:【STM32平衡小车】电磁巡线归一化算法(二)

推荐阅读最新更新时间:2024-11-04 00:39

STM32 Cotex-M3处理器系列编程】定时器输出PWM波
//使用定时器TIM4的3通道CH3输出占空比为25%的PWM波 #include stm32f10x.h int main(void) { // SystemInit(); //配置IO口 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE,ENABLE);//IO口使能设置 GPIO_InitTypeDef GPIO_InitStructure; //定义结构体 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //TIM3的C
[单片机]
STM32 MCU的技术特点和应用前景
引言: 随着物联网和智能家居的快速发展,微控制器单元(Microcontroller Unit,MCU)在各种电子产品和系统中扮演着重要角色。作为一种高度集成的芯片,MCU结合了中央处理器(Central Processing Unit,CPU)、随机存取存储器(Random Access Memory,RAM)、Flash存储器以及其他周边设备。本文将介绍STM32 MCU的技术特点和应用前景。 一、STM32 MCU概述: STM32系列微控制器是由意法半导体(STMicroelectronics)公司开发的。该系列MCU基于ARM Cortex-M内核,具有高性能、低功耗、高集成度和易用性等特点。它们广泛应用于汽车、医疗
[单片机]
STM32单片机中使用SPI通信的方法
  在本教程中,我们将使用 STM32F103C8 的 Blue Pill 板替换一个 Arduino 板,并将使用 SPI 总线与 Arduino 板进行通信。在这个STM32 SPI 示例中,我们将使用Arduino UNO作为 Slave,STM32F103C8 作为 Master,两个16X2 LCD 显示器分别连接在一起。两个电位器还与STM32(PA0)和Arduino(A0)相连,通过改变电位器来确定主机到从机和从机到主机的发送值(0到255)。   STM32F103C8中的SPI   比较 Arduino 和 STM32F103C8 Blue Pill 板中的 SPI 总线,STM32 有2 条 SPI 总线
[单片机]
在<font color='red'>STM32</font>单片机中使用SPI通信的方法
一个低功耗应用的案例分析
‍‍‍某STM32用户反馈,他使用STM32L031芯片开发产品遇到低功耗异常的问题。 基本软硬件及开发环境如下: 硬件:STM32L031、外部晶振32.768 软件:STM3CUBE、MDK5、HAL库 他在产品中用到了STOP低功耗模式。在让芯片进入STOP之前,先关闭了ADC外设。 代码是这样的: HAL_ADC_DeInit‍(&hadc); HAL_PWR_EnterSTOPMode(‍‍PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI); 他发现按照上述操作进入STOP模式后的功耗,比开机时不开启ADC模块时的功耗要大,而且发现在进STOP之前,有没有HAL_ADC_DeInit(
[单片机]
一个低功耗应用的案例分析
STM32之启动文件详解
在嵌入式应用程序开发过程里,由于使用C语言编程,基本很少涉及到机器底层寄存器的执行过程,一般都会直接在main函数里开始写代码,似乎main成为了理所当然的起点,尽管从C程序的角度来看程序都是直接从main函数开始执行。然而,MCU上电后,是如何寻找到并执行main函数这一问题却很自然的被忽略了!事实上微控制器是无法从硬件上去定位main函数的入口地址,因为使用C语言作为开发语言后,变量/函数的地址便由编译器在编译时自行分配,因此main函数的入口地址在编译后便不一定是一个绝对地址。MCU上电后又是如何寻找到这个入口地址呢?以前接触无论是PIC、AVR、MSP430或是51过程中都没涉及到启动文件的配置,仅仅只有熔丝位或配置字是需
[单片机]
STM32系列第9篇--外部中断
STM32的每个IO都可以作为外部中断输入。 STM32的中断控制器支持19个外部中断/事件请求: 线0~15:对应外部IO口的输入中断。 线16:连接到PVD输出。 线17:连接到RTC闹钟事件。 线18:连接到USB唤醒事件。 每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用的状态位。 线0~15和IO口映射关系: GPIOx.0映射到EXTI0 GPIOx.1映射到EXTI1 … GPIOx.15映射到EXTI15 外部中断一般配置步骤: 1、初始化IO口为输入。 GPIO_Init(); 2、 开启IO口复用时钟。 RCC_APB2PeriphClockCmd(RCC_
[单片机]
STM32】串口通信出现乱码(使用官方标准库)
开发板:stm32f407VET6 开发环境:keil5 MDK 为了使文章的内容完整,增加了一下原因的叙述,没有兴趣的话可以直接跳转到 问题解决 问题产生 最近学习了一下32的串口通信,串口配置还是很简单的,不过后面串口调试助手上面出现的乱码。很让人头疼。 当然第一时间去百度寻求解决办法。 百度搜索总结: 在程序不出现问题的情况下,一定是外部晶振设置的问题。但是也要排查下面
[单片机]
【<font color='red'>STM32</font>】串口通信出现乱码(使用官方标准库)
STM32中断优先级void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)
void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct) { u32 tmppriority = 0x00, tmpreg = 0x00, tmpmask = 0x00; u32 tmppre = 0, tmpsub = 0x0F; /* Check the parameters */ assert(IS_FUNCTIONAL_STATE(NVIC_InitStruct- NVIC_IRQChannelCmd)); assert(IS_NVIC_IRQ_CHANNEL(NVIC_InitStruct- NVIC_IRQChannel)); assert(IS_NVIC_PREE
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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