基于stm32的巡线避障智能小车设计

一、任务简述

主要介绍了一种采用四轮驱动的智能小车的设计方法,并对其进行了实验研究,各模块将采集到的相关数据传送至STM32控制器,之后利用红外传感器和超声波传感器进行实时检测路面状况,对数据进行分析、处理,可实现路径规划、实时避障等功能。本设计的创新点在于:通过运用红外传感器,实现指定路线的巡线避障。

关键词:STM32;STM32F103C8T6核心板;红外传感器;巡航避障

二、说明书目录

摘要

ABSTRACT

1. 绪论

1.1 智能小车的开发背景和意义:

1.2 国内外研究现状

第2章 硬件设计

2.1智能小车的单片机主控模块

2.2 智能小车的电机驱动模块

2.3蓝牙串口电路设计

2.4复位电路设计

2.5 智能小车的电源电路模块

2.6 智能小车的红外循迹模块

2.7 智能小车的红外避障模块

2.8 舵机的设计

第3章  软件设计

3.1智能小车的循迹模块程序的设计

3.2智能小车的红外避障模块程序的设计

3.3智能小车的蓝牙串口程序如下:

第4章 系统测试与分析

4.1智能小车的实物制作

4.2 智能小车的调试

第5章 总结与展望

5.1 总结

5.2 展望

致谢

参考文献

附录1

附录2

附录3

三、总体设计

四、软件设计 

 

void app_IRAvoid(void)
{
	int IRL1 = 1, IRR1 = 1;
	bsp_GetIRavoid(&IRL1, &IRR1);//右侧检测到
  	if( IRL1 == HIGH && IRR1 == LOW)
    {
      	Car_SpinLeft(3000, 3000);
    }//左侧检测到
    else if ( IRL1 == LOW && IRR1 == HIGH)
    {
      	Car_SpinRight(3000, 3000);
    }
	  //左右均未检测到
    else if (IRL1 == HIGH && IRR1 == HIGH)
    {   
		Car_Run(3000);
	 }
//左右均检测到
    else if(IRL1 == LOW && IRR1 == LOW) 
    {  
		Car_SpinRight(3000, 3000);
		delay_ms(500);
	 }	
}

附录2
智能小车巡线功能代码:
void app_LineWalking(void)
{
	int LineL1 = 1, LineL2 = 1, LineR1 = 1, LineR2 = 1;
	bsp_GetLineWalking(&LineL1, &LineL2, &LineR1, &LineR2);	//获取黑线检测状态	
	if( (LineL1 == LOW || LineL2 == LOW) && LineR2 == LOW) //左大弯
    {
      	Car_SpinLeft(3500, 3500);
		delay_ms(80);
    }
    else if ( LineL1 == LOW && (LineR1 == LOW || LineR2 == LOW)) //右大弯
	{ 
      	Car_SpinRight(3500, 3500);
		delay_ms(80);
    }  
    else if( LineL1 == LOW ) //左最外侧检测
    {  
		Car_SpinLeft(3000, 3000);
		delay_ms(10);
	}
    else if ( LineR2 == LOW) //右最外侧检测
    {  
		Car_SpinRight(3000,3000);
		delay_ms(10);
	}
    else if (LineL2 == LOW && LineR1 == HIGH) //中间黑线上的传感器微调车左转
    {   
		Car_Left(2500);   
	}
	else if (LineL2 == HIGH && LineR1 == LOW) //中间黑线上的传感器微调车右转
    {   
		Car_Right(2500);   
	}
    else if(LineL2 == LOW && LineR1 == LOW) // 都是黑色加速前进
    {  
		Car_Run(3000);
	}	
}


附录3
蓝牙串口的代码如下:
void app_bluetooth_deal(void)
{
	if (newLineReceived)
   	{
		Protocol();
	}	// 切换不同的功能模式,功能模式显示
	switch (g_modeSelect)
	{
		case 1: break; 								//暂时保留
		case 2: app_LineWalking(); break; 			//巡线模式
		case 3: app_iravoid.();  break;  	          //红外避障模式
	default:break;
	}
	
	//让小车串口平均每秒发送收集的数据给收集手机蓝牙apk
	//避免串口打印数据速度过快,造成apk无法正常运行
	if (g_modeSelect == 0 && g_Boolfire == 0)
	{
		if (g_count >= 100000)
		{ 
			g_count = 0;
			serial_data_postback();
		}		
	}

}

有需要私聊,微信:lwfw123456789

### 回答1: 基于STM32避障循迹小车是一个利用STM32微控制器控制的智能小车,具备避障和循迹功能。以下是对该小车的毕业答辩问题的回答: 1. 为什么选择STM32作为控制器? 选择STM32作为控制器的原因有以下几点:首先,STM32微控制器具备强大的计算和控制能力,能够处理并控制多个传感器、执行器等外部组件。其次,STM32具备广泛的外设和丰富的软件库,为开发避障和循迹功能提供了良好的支持。此外,STM32的成本适中,易于购买和学习使用。 2. 避障原理是什么? 避障功能是通过使用超声波传感器或红外线传感器来检测障碍物,并基于检测结果采取相应措施避免碰撞。当传感器检测到障碍物时,控制器会通过算法判断障碍物的距离和位置,并向电机发出信号以控制小车进行避障动作,如停止、后退、转向等。 3. 循迹原理是什么? 循迹功能通过使用巡线传感器(例如红外线传感器)来检测轨道上的黑线,进而控制小车在轨道上行驶。传感器会输出信号告知控制器是否检测到黑线,控制器通过算法判断传感器输出的信号,然后控制电机以适当的方式使小车保持沿着黑线行驶。 4. 在设计和实现过程中遇到了哪些挑战? 设计和实现过程中遇到的主要挑战包括:首先,在避障方面,需要选择合适的传感器并进行准确的测距和障碍物识别算法的开发和调试。其次,在循迹方面,需要设计合适的巡线传感器电路和编写稳定可靠的循迹控制算法。此外,还需要解决电机控制、电路连接和程序调试等诸多问题。 5. 该小车的应用前景是什么? 基于STM32避障循迹小车具有广泛的应用前景。可广泛应用于室内导航、无人仓储物流、智能家居等领域。此外,通过增加其他模块或传感器,还可以实现更复杂的功能,如语音识别、图像处理等。 ### 回答2: 基于STM32避障循迹小车是我们团队在毕业设计中完成的项目,下面我将回答与此相关的问题。 首先,我们选择STM32作为控制器的原因是STM32系列具有强大的计算能力和丰富的外设资源,可满足小车控制系统对实时性和稳定性的要求。 在避障方面,我们采用了红外避障传感器组和超声波模块,通过检测前方障碍物的距离和方向,及时调整小车的行进路线,使其能够根据环境实时进行避障操作。 在循迹方面,我们使用了红外循迹传感器组,通过检测黑色赛道上的红外线信号,确定小车的行驶方向,以保持小车沿着预定的路径前进。 控制部分,我们利用STM32的定时器和中断功能,编写了相应的驱动程序,实现了对车轮电机的精确控制,使小车能够按照设定的速度和方向前进,同时实现避障和循迹功能。 在软件设计方面,我们使用Keil MDK开发环境进行程序的编写和调试,通过使用C语言编程实现了小车的控制逻辑和算法,同时利用LCD显示屏和按键等外设,便于用户对小车进行操作和监控。 总结起来,基于STM32避障循迹小车是一个具备强大计算能力和稳定性的智能小车系统,通过集成多种传感器和采用合理的算法,实现了避障和循迹功能,具有一定的实用价值和应用前景。我们在设计过程中充分考虑了硬件和软件的整合,通过合理的分工和协作,保证了项目的顺利进行和最终的成功完成。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

5132毕业设计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值