小车(蓝牙,红外,超声波,循迹)

开篇前言:小车这一块,以下是我个人认为要解释的部分。
1–.波特率-------这是一个用来两个东西之间传输数据的,属于电子类专业名词,我们这次学习小车,添加的模块例如蓝牙和超声波,都需要数据传输,所以代码中会定义这个东西。
2–.我这次整理的是每个模块单独使用,如果想做一个整合的小车,就是把我以下整理的代码合到一块,单独烧录的话,单片机会自动覆盖上一个代码,所以在模块学习完后,还是建议大家可以试试,自己做出来的真的好玩。
3–.小车这一块,我会把我都个人理解写出来,希望能帮助到大家的学习,如果有什么错误,也希望大家指出来,一块学习!

1.智能小车的整体模块框架:
单片机最小系统—L298N模块连接—电池—开关—电机
电池提供能量,最小系统编录代码,通过L298N进行一个转换,用以驱动电机进行反应输出,然后再这个框架上进行蓝牙,红外,超声波,循迹的添加。

2.L298N:
在这里插入图片描述
连接:12v连接电池盒正极,电源地接地,5v连接VCC,两个马达输出连接小车电机

3.蓝牙:
1+.蓝牙模块上的VCC接51单片机上的VCC,GND接51单片机上的GND

2+.蓝牙模块上的TXD与RXD分别接单片机上的RXD与TXD,即输出连接接收,接收连接输出。(单片机给蓝牙模块说悄悄话,你往左走,蓝牙模块照做了,然后给单片机说我走完了,求夸!)

3+代码中,蓝牙主要是为了方便手机连接,然后让小车前进forward(),后退 back(),向左 left(),向右right(),停下stop()。这里一般是下载一个手机蓝牙助手(应用商店里就有哦!)

4+.代码
(下方代码部分串口,建议配合图片一起观看)
在这里插入图片描述

#include <REGX52.H>   //头文件
sbit AIN1 = P1^1;     //定义L298N上的四个接口,方便电机驱动
sbit AIN2 = P1^2;
sbit AIN3 = P1^3;
sbit AIN4 = P1^4;
int fx = 0;    //定义一个变量
void turnleft()   //向左
{
   
	AIN1 = 1 ;    //右边电机转动,左边不动,以下同理           
	AIN2 = 0 ;     //左右控制的接口需要自行调试
	AIN3 = 0 ;
	AIN4 = 1 ;	
}

void turnright()
{
   
	AIN1 = 0 ;
	AIN2 = 1 ;
	AIN3 = 1 ;
	AIN4 = 0 ;
}

void run() {
   
	AIN1 = 1 ;
	AIN2 = 0 ;
	AIN3 = 1 ;
	AIN4 = 0 ;

}
void stop(){
   
	AIN1 = 0 ;
	AIN2 = 0 ;
	AIN3 = 0 ;
	AIN4 = 0 ;
}

void back(){
   
	AIN1 = 0 ;
	AIN2 = 1 ;
	AIN3 = 0 ;
	AIN4 = 1 ;   
}

void timer()    //定时器
{
   
   PCON = 0x00;      //单片机上管脚名的全称
   TMOD=0x20;        
   TH1 = 0xfd; 
   TL1 = 0xfd;
   TR1=1;             //开启串口          
   REN=1;             //允许接收
   SM0=0;
   SM1=1;          //串口
   EA=1;           //中断
   ES=1; 
}
void runtimer()   //运行计时器
interrupt 4 		
{
   
 
 char receive_data;		//定义数据接收	
  if(RI == 1) 			//赋值,if语句
	{
    		
		RI = 0;
		receive_data = SBUF;	//SBUF单片机数据存储处,读取存储
		if(receive_data == 'w')	   //蓝牙助手上显示的指令“w”,以下同理
		{
   
				fx = 1 ;
		}
		
		else if(receive_data == 's')
		{
   
				fx = 2 ;
		}
		
		
			else if(receive_data == 'a')
		{
   
			fx = 3 ;
		}
		
		
			else if(receive_data == 'd')
		{
   
				fx = 4 ; 
		}
		
		
		else if(receive_data == 'x')
		{
   
				fx = 0 ;
		}


   }
}
void main()    //定义主函数,运用上边描述的fx
{
   
	 timer();
 	 while(1)
  {
    			 
		if ( fx == 1 )
		{
   
			run() ;
		} else if 
  • 8
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
小车使用了红外对管循迹超声波测距,颜色传感器,直流减速电机,180°舵机,步进电机。 该资源包含小车的所有完整程序,原理图,PCB图,题目要求。 把题目简单介绍下: 寻迹智能电动车(本科大三大四题) 一、任务 设计并制作一个寻迹智能电动车,根据要求完成从出发区到终点区的任务: 二、要求 1、基本要求 (1)电动车从出发区出发(车体不得超出出发区),沿引导黑线向终点区行驶,电动车行驶过程中不可脱离黑色引导线行驶。 (2)电动车行驶过程中遇到十字路口时发出声光指示信息。 (3)电动车行驶过程中遇到障碍物。电动车必须避开障碍通过且不得与其接触。 (4)电动车到达终点后应立即停车,但全程行驶时间不能大于90秒,行驶时间达到90秒时必须立即自动停车。 2、发挥部分 (1)电动车行驶过程中遇到红色障碍物电动车必须选择向左转避开障碍物,遇到绿色障碍物电动车必须选择向右转避开障碍物。 (2)电动车避开障碍物通过不得与其接触且选择最短行驶距离到达终点区。 (3)电动车进入终点区域后,能进一步准确驶入终点区,要求电动车的车身完全进入终点区到达终点区中心。停车后,能准确显示电动车全程行驶时间和路程。 三、评分标准 项 目 满分 基本要求 完成第(1)项 10 完成第(2)项 12 完成第(3)项 15 完成第(4)项 13 发挥部分 完成第(1)项 20 完成第(2)项 12 完成第(3)项 8 其它 10 四、说明 1、场地上面铺设白纸,可用一张A0或者两张A1纸制作。 2、场地的引导线宽度2cm,可以涂墨或粘黑色胶带。示意图中的和尺寸标注线不要绘制在白纸上,出发区和终点区的边框为25cm*25cm 用签字笔细线标注。 3、电动车出发方向由测评专家指定,可选择(如图)正X方向或正Y方向。 3、障碍物可由包有红、绿色纸的长方体制作,其长、宽、高约为62mm 62mm 87mm(可用几张扑克牌制作长方体),场地上可允许有最多两个障碍物(也可只有一个,也可以放置两个同色或者不同色的障碍物,由测评专家指定),放置位置可在任意十字路口中间位置(T字路口不放置,障碍物面向电动车放置)。 4、电动车允许用玩具车改装,但不能由人工遥控,其外围尺寸(含车体上附加装置)的限制为:长度≤30cm,宽度≤20cm。 5、要求在电动车顶部明显标出电动车的中心点位置,即横向与纵向两条中心线的交点。 6、以图的左下角为坐标原点。 由于该程序是我2个月的心血,所以10分,不要嫌分多,肯定物超所值。 文件列表: 循迹主系统修正版.ddb 智能循迹小车程序 智能循迹小车程序 颜色传感器 HC-SR04超声波测距模块.pdf 步进电机工作原理及使用说明.pdf 舵机舵机的工作原理.pdf 利用单片机PWM进行舵机控制.pdf 颜色传感器产品使用手册.doc 寻迹智能电动车(本科).doc
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值