STM32智能小车之 循迹

           一般小车实现了跑动之后,接着要做的就是让它按照我们设定的路线进行巡线走路,那么就要用到循迹模块了。网上循迹模块很多的,有好多种,原理就那样,就是利用红外传感原理。小车能够按照黑线走是因为当红外线的光照到黑线上时会被吸收,从而检测部到信号,而照到白线时可以反射回去,也就可以接受得到,因此,空值起来也很简单,一句话,检测和模块相连管脚的电平的高低。

哪么我就来说说,该怎样检测呢。

通过相应的函数读取管脚的电平值就行了。

   GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_12)== 1

这里就是检测下,GPIOD 12管脚的值是否等于1,进而进行相应的动作,空值小车的转向。左边检测到了,说明小车往左偏,应该向左偏;右边类似。很简单吧。嘻嘻!

最重要的其实还是控制循迹模块的这些管脚,首先对他们进行的一系列的初始化操作。因为要判断这些管脚的状态,因此,在初始化的时候应该讲他们全部设置成浮空输入。关于管脚的4中初始化状态,具体可以参考stm32参考手册,里面讲的很详细,4种输入,4种输出。

下面贴出初始化的代码:

/****************************************************************************
  * @函数名:Traction_GPIO_Configuration(void)
  * @描述:  小车循迹管脚初始化
  * @输入:  无
  * @输出:  无
	* @返回值:无
  ****************************************************************************/
void Traction_GPIO_Configuration(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);//使能PD端口时钟

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14; //PD.11~PD.14端口配置
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
	GPIO_Init(GPIOD, &GPIO_InitStructure);
	//GPIO_SetBits(GPIOD,GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);					 				//PD.11.....PD14 输出高电平
}

上面的函数主要是对所控制的管脚进行了相应的初始化。其他的操作,就是读每个控制管脚的值了,然后进行相应的操作。

我用的循迹模块是这个型号的,我觉得还行。

凑活能用!

一直在坚持,一直没放弃……

时间: 2024-10-29 19:09:55

STM32智能小车之 循迹的相关文章

stm32智能小车之路

       最近学习了stm32,带着兴趣想做一个智能小车.不得不承认自己还是一个实实在在的菜鸟,好多知识到了用处都不会了,看了半天,才看懂.在网上看了下,全是关于51的,stm32的很少,而且也是很详细,看了还是不懂,自己既然做完了,拿出来和大家分享下,互相学习,希望大家提出点意见.         非常感谢CSDN,让我学到了很多的知识,里面的牛人太多了,给我提供了丰富的资源,作为回报,我也把自己的想法和一些经验(我自认为的)写出来,给没有头绪或不会的人来学习下,希望你们不要走我走过的弯路

stm32智能小车之路之小车启动

       首先,安装完小车后最激动的还是想让他跑动,那么就开始吧.写个简单的程序测试下电机是否正常.打开keil软件新建一个工程,具体简历keil工程不会的请百度,或者call我,我有简历Keil工程的文档,保证你会的.       第一初始化管脚,来进行控制电机,输出高低电平,方可让电机转动. /******************************************************************************* * 函数名字 : GPIO_Conf

arduino小车入门教学——第三天(循迹)

大家好,我是小编. 继上一节内容点击打开链接 我今天讲arduino循迹小车. 循迹模块原理:红外对管的工作原理是利用红外线对颜色的反射 率不一样,将反射信号的强弱转化成电流信号.黑白寻迹模块在检测 到黑色高电平有效,检测到白色是为低电平有效,检测高度为0 -3cm. 注:在电路中你可以使用旋钮电位器来调黑白寻迹的灵敏度. 红外对管在机器人设计,工业制造中应用十分广泛.可利用红外 对管制作黑白寻迹机器人.工业计数传感器等等. 使用方法: 1.P1 传感器接口有3 根排针,分别是SR.SM.SL

黑白线循迹小车利用STM32F407与三个红外对管实现

小车循迹模块编程思路 所用模块:LM399红外对管循迹模块 特征:可同时搭载4个红外对管,进行黑白线检测 检测:当它探寻到黑线时候,DX口输出TTL电平接近于VCC电压 当它探寻到白线时候,DX口输出TTL电平近似为0.1V 实现功能: 让小车始终沿着黑线跑动,可以沿着黑线转弯(弯度测试),在黑线上可以设置断点,长度自己设定,路过间断线时,依然可以自主循迹到有黑线位置,并继续跑动.   初步想法: 无论是两个轮子的解构还是四轮结构,利用后面两个轮子作为主动轮,前面两个轮子作为从动轮.所以就得实现

第二天:SLAM智能小车DIY乐趣-小车控制stm32软件基础

SLAM智能小车DIY乐趣-小车控制stm32软件基础 ####写在前面#### 前面介绍了小车控制stm32硬件基础,本文就来介绍配套的小车控制stm32软件基础.关于stm32开发相关的基础知识这里就不多说了,有需要的小伙伴可以查阅相关资料进行学习,这里重点从小车控制项目入手,直接进行跟实际需求相关的开发.本文主要内容: 1) 电机控制 2) 编码器数据读取 3) 串口数据收发 4) 电机速度PID控制 5) 周期性控制 6) 小车控制软件整体框图 ####正文#### 1.电机控制 电机控

智能小车资料大全分享给大家

今天给大家分享一下智能小车的资料,包括制作流程.原理图设计和源码等,不下于60辆智能小车的制作经验.其中历届智能小车的开发资料就有90个文件了. 分享的智能小车类型包括:Bluetooth控制两轮小车:智能小车配套程序,循迹.红外避障综合程序资料大全:智能车系统解决方案:STM32两轮自平衡小车资料:STM32两轮自平衡小车系统毕设:自平衡小车控制(stc12+mpu6050程序):寻迹实验小车,arduino开发板DIY红外避障小车:面部跟随机器人小车:蓝牙小车,支持APP控制:nrf24l0

Arduino智能小车制作报告

Arduino智能小车制作报告 制作成员:20135224陈实  20135208贺邦  20135207王国伊 前提: Arduino,是一个开源的单板机控制器,采用了基于开放源代码的软硬件平台,构建于开放源代码 simple I/O接口版,并且具有使用类似Java,C语言的Processing Wiring开发环境.选择Arduino作为智能小车的控制板,因为它的小巧但功能强大,能够方便的和传感器还有各种电子元件连接,而且还能和很多软件如Flash.Processing进行连接互动,但是最重

Arduino智能小车--只是随便一搞

在某宝宝买的智能小车,挺精致的,开心的连接上打印机的线,结果端口都没有反应, 查了一下发现是少了驱动,博主用的mac os10.12.3 CH34x_Install_V1.4.pkg 安装好之后我们再启动arduino 就可以看到新的端口了,选择他,我们就可以进行上传代码了. 只是对附赠源码进行了一下整理... 这个用到了红外遥控,需要一个IRremote库,打包资源在csdn下载里边自行下载,内附说明.感谢智宇科技--链接 感谢智宇科技--链接 感谢智宇科技--链接 感谢智宇科技--链接 链接

Arduino智能小车--仅仅是随便一搞

在某宝宝买的智能小车,挺精致的,开心的连接上打印机的线,结果port都没有反应, 查了一下发现是少了驱动,博主用的mac os10.12.3 CH34x_Install_V1.4.pkg 安装好之后我们再启动arduino 就能够看到新的port了,选择他,我们就能够进行上传代码了. 仅仅是对附赠源代码进行了一下整理. .. 这个用到了红外遥控,须要一个IRremote库.打包资源在csdn下载里边自行下载,内附说明.感谢智宇科技--链接 感谢智宇科技--链接 感谢智宇科技--链接 感谢智宇科技