课设-基于51单片机的智能小车(循迹+避障+APP控制)

article/2025/8/3 14:22:23

51单片机课设—智能小车

    • 一、课设任务
    • 二、硬件设计及相关传感器模块
      • 1、车模
      • 2、51单片机
      • 3、红外循迹模块
      • 4、电机及驱动
      • 5、蓝牙模块
      • 6、硬件搭建
    • 三、程序代码
      • 1、main.c文件
      • 2、motor.c文件
    • 四、我的大学--“造车”史

在这里插入图片描述

注:本设计资源可在微信公众号:“Kevin的学习站” 中获取!如有问题,可以加我QQ:643470489一起交流哦!

一、课设任务

使用51单片机设计一台智能小车,可以实现循迹、避障、手机APP控制等功能!

二、硬件设计及相关传感器模块

1、车模

在这里插入图片描述

2、51单片机

可以使用最小系统板,也可以使用自己的学习板
在这里插入图片描述

3、红外循迹模块

在这里插入图片描述
红外循迹的原理:

4、电机及驱动

在这里插入图片描述

5、蓝牙模块

在这里插入图片描述

6、硬件搭建

原则:硬件搭建的不好,会让我们在调试过程中遇到很多玄学问题,比如:杜邦线接触不良,杜邦线短路等等,为了调试更加舒服,在搭建硬件平台时,接口要做一些处理,比如接口处用热熔胶粘好,防止脱落,布线要尽量整齐一些,如果要参加智能车类的比赛,一个好的布线布局,会让你的对手瞬间感受到压力!

在这里插入图片描述

三、程序代码

1、main.c文件

#include "reg52.h"
sbit KEY1 = P3^3;
sbit KEY2 = P3^4;
sbit KEY3 = P3^6;
sbit KEY4 = P3^7;
sbit OUT1 = P2^4;//避障左       
sbit OUT2 = P2^5;//循迹左      
sbit OUT3 = P2^6;//循迹右    
sbit OUT4 = P2^7;//避障左   extern void delay_ms(unsigned int n);
extern void go_stop(void);
extern void go_up(void);
extern void go_back(void);
extern void go_left(void);
extern void go_right(void);
extern void go_upleft(unsigned int n);
extern void go_upright(unsigned int n);
extern void go_backleft(unsigned int n);
extern void go_backright(unsigned int n);
unsigned char recv;void uart_init(void)
{/*波特率设置*/TMOD = 0x20;//设置定时器T1的工作方式-2,即8位自动装填定时器TH1 = 0xFD;//波特率为9600TL1 = 0xFD;	TR1 = 1;//打开定时器T1/*串口设置*/SM0 = 0;//设置串口工作方式1SM1 = 1;REN = 1;//使能串口接收允许位ES  = 1;//使能串行中断允许位EA  = 1;//使能中断允许位
}/*把str指向的字符串发送到串口,长度为len个字节*/
void uart_send(unsigned char *str,int len)
{unsigned char i;for(i=0;i<len;i++){SBUF = str[i];//对SBUF进行写操作while(TI == 0);//等待发送完成TI = 0;}
}void remote_control(void)
{while(1){switch(recv){case 0:go_stop();break;case 1:go_up();break;case 2:go_back();break;case 3:go_left();break;case 4:go_right();break;case 5:go_upleft(6);break;case 6:go_upright(6);break;}}
}
//红外循迹
void search_path(void)
{while(1){if(OUT2==0 && OUT3==0)//两个红外探测器没有再黑线中{go_up();}else if(OUT2==1 && OUT3==0)//左边的红外探测器在黑线中{go_left();}else if(OUT2==0 && OUT3==1)//右边的红外探测器在黑线中{go_right();}else if(OUT2==1 && OUT3==1)//到达终点{go_back();}}
}
//红外避障
void auto_avoid(void)
{while(1){if(OUT1==1 && OUT4==1)//没有障碍物{go_up();}else if(OUT1==0 && OUT4==1)//左边有障碍物{go_backleft(4);}else if(OUT1==1 && OUT4==0)//右边有障碍物{go_backright(4);}else if(OUT1==0 && OUT4==0)//前面有障碍物{go_stop();}}
}
void main(void)
{unsigned char ATcmd[]={"AT+NAME=GEC-zhangxueyou\r\n"};uart_init();if(KEY1 == 0)//修改蓝牙设备{uart_send(ATcmd,sizeof(ATcmd));delay_ms(1000);}else if(KEY2 == 0)//手机遥控模式{remote_control();}else if(KEY3 == 0)//循迹模式{search_path();}else if(KEY2 == 0)//自动避障模式{auto_avoid();}}void uart_isr(void)  interrupt 	4 //串口中断处理函数
{if(RI == 1)//由接收完成引发中断{RI = 0;recv = SBUF;//对SBUF进行读操作SBUF = recv;while(TI == 0);TI = 0;}
}

2、motor.c文件

#include "reg52.h"sbit La = P2^1;
sbit Lb = P2^0;
sbit Ra = P2^3;
sbit Rb = P2^2;void delay_ms(unsigned int n)//延时
{unsigned char i;while(n--){for(i=0;i<113;i++);}
}
void go_stop(void)//停止
{La = 0;Lb = 0;Ra = 0;Rb = 0;
}void go_up(void)//前进
{La = 1;Lb = 0;Ra = 1;Rb = 0;delay_ms(100);
}void go_back(void)//后退
{La = 0;Lb = 1;Ra = 0;Rb = 1;delay_ms(100);
}void go_left(void)//原地左转
{La = 0;Lb = 1;Ra = 1;Rb = 0;delay_ms(100);
}void go_right(void)//原地右转
{La = 1;Lb = 0;Ra = 0;Rb = 1;delay_ms(100);
}void go_upleft(unsigned int n)//前进左偏
{unsigned int i=30;Ra = 1;Rb = 0;Lb = 0;while(i--){La = 1;delay_ms(n);La = 0;delay_ms(10-n);}
}
void go_upright(unsigned int n)//前进右偏
{unsigned int i=30;La = 1;Lb = 0;Rb = 0;while(i--){Ra = 1;delay_ms(n);Ra = 0;delay_ms(10-n);}
}void go_backleft(unsigned int n)//后退左偏
{unsigned int i=200;Ra = 0;Rb = 1;La = 0;while(i--){Lb = 1;delay_ms(n);Lb = 0;delay_ms(10-n);}
}
void go_backright(unsigned int n)//后退右偏
{unsigned int i=200;La = 0;Lb = 1;Ra = 0;while(i--){Rb = 1;delay_ms(n);Rb = 0;delay_ms(10-n);}
}

四、我的大学–“造车”史

我记得我是从大一上学期开始我的“造车史”的吧,当时是参加学校冬令营培训,使用51单片机完成的人生的第一台智能车,在小组团队比赛中,我的小车的成绩还不错,哈哈哈,后面参加了学校组织的循迹小车竞赛,与相差0.1s的差距拿了个二等奖;造第二台车是大二的第一学期,当时学完STM32想要做点东西练练手,于是使用STM32又做了台车,不过资料都不见了!大二学校冬令营当时我们作为学长又带领了学弟学妹们又做了51小车;到了大二下学期,准备第十五全国大学生智能汽车竞赛,又是造车哈,当时选的题目是AI电磁智能车,这次高大上了哈,用的是NXP-RT1064的MCU,使用深度学习算法+传统PID控制让智能车以最快的速度跑完赛道,赛后的成绩是9秒多吧,唉。。。其实可以更快的,比赛就是这样,有时候需要天时地利人和!综合自己的“造车”史,最后的感悟就是:有时候结果不一定重要,注重过程,把握过程中的每一个细节,把相关的原理都搞懂,然后多练习、多做总结,这才是最大的收获!
顺便在这里提一下,对参加智能车项目的学弟学妹们的一些建议吧:

1、硬件平台一定要搭好,尽量少用杜邦线,它本身信号就不太稳定,智能车相对来说模块比较多了,如果使用杜邦线,硬件出了问题很难查出来,会把你心态搞死!可以考虑用FPC接口,电源接口、电机接口可以用XT60接口。

在这里插入图片描述
在这里插入图片描述

2、电源要设计好,像使用开关稳压电源时注意下面几点:

①、 要明确电源的输入输出电主电路,把输入输出的元器件进行分离,注意大小电容的放置(先大后小原则);
②、布局要紧凑,采用一字或者L型布局方式;
③、如果系统需要多路开发电源工作时,尽量使相邻电感之间垂直放置,这样可以降低电磁干扰;
④、其他器件采用就近原则放置;
⑤、开关电源内部的信号连接线要加粗,一般采用10mil;
⑥、反馈电路部分,要远离干扰源和大电流的平面,反馈电源要从滤波电路里面取;
⑦、PCB布局时要注意电感下尽量不要布线,电感下要挖铜皮,不要增加电感的出线宽度。

不然效果如下图:

在这里插入图片描述
在这里插入图片描述

布局布线多参考芯片数据上的Layout。
在这里插入图片描述
推荐几家电源管理芯片做的比较好的公司:TI-德州仪器、ADI-亚德诺半导体、安森美、立锜科技。根据需求选择吧,比如方案既需要开关稳压的高效,又需要线性稳压的低纹波,就可以考虑电荷泵电路——优势:消除电感器问题、在更低的输入电压下提供更高效率,以及缩减解决方案尺寸。总之电源一定要设计好!

3、相关外设要做隔离,比如电机、舵机这类的要做隔离,不然容易烧核心板,都是痛苦的教训啊!

4、如果要使用干簧管进行停车,尽量自己设计好PCB,不要嫌麻烦;

5、PCB形状可以根据车模结构去设计,外设接口尽量使用连接性比较好的;

6、自己的车可以适当加点个性的东西哈,比如设计个前灯,尾灯什么的,寓意:快到只能让你看到车尾灯残影!哈哈哈

下面找了几台硬件搭的不错的智能车图片,仅供参考!

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

接下来的学习生涯里希望自己继续“造车”之路,在这个无人驾驶爆火的时代,补补脑洞,填填坑!
立个flag:做一台无人驾驶小车!等有时间就开始入坑,从主控、电机、电机驱动、电源模块、slam、双目识别、定位、路径规划等方面慢慢入手,我想这才算得上真正的造车吧!

声明:文中有关图片来源于互联网,如有侵权,请联系作者删除,谢谢合作!

想要获取更多资源,可以关注公众号:Kevin的学习站,之前听到过一句很有意思的话:“天下代码都在抄,抄来抄去有提高”,希望此文对您有一定的帮助,整理不易,但您的点赞、关注、收藏就是对我最大的鼓励!

在这里插入图片描述


http://chatgpt.dhexx.cn/article/N6rovUTA.shtml

相关文章

基于51单片机智能小车循迹功能的实现

基于51单片机智能小车循迹功能的实现 目录 基于51单片机智能小车循迹功能的实现一、思路&#xff08;仅供参考&#xff09;二、部分硬件模块介绍1、L298n电机驱动模块2、两路红外循迹模块 三、实现1、代码2、运行视频(...注意&#xff1a;该视频有声音&#xff01;&#xff01;…

基于51单片机的循迹小车

在大学期间&#xff0c;单片机是部分学生的专业课之一&#xff0c;在学完课本上枯燥的知识后&#xff0c;需要实践加强巩固。简单且综合性尚可的循迹小车必然是实践的首要选择。下面将主要从机械、电控、代码三个部分对以51单片机为主控芯片的循迹小车进行简述 目录 1.总体介…

51单片机智能蓝牙小车

作为大一电子小趴菜&#xff0c;在和队友学习制作蓝牙小车过程中遇到了许多困难。本文既为大家避坑&#xff0c;也作为团队总结。 这篇文章分为两部分 1&#xff0c;组装篇 2&#xff0c;代码篇 思维导图&#xff1a; 组装篇 先准备好一块电源拓展板&#xff0c;用于为电机驱…

浅谈51单片机简易循迹小车制作方案

目录 省流助手&#xff08;方案清单&#xff09; 前言 一、小车模型 二、电机 三、电源 1、电池&#xff1a; 2、PCB电源选择&#xff1a; 3、MCU供电方案&#xff1a; 4、MCU和电机的供电方案&#xff1a; 四、主控MCU最小系统 五、电机驱动 1、让电机动起来&#xff1a;&…

基于51单片机制作的蓝牙小车

基于51单片机制作的蓝牙小车 这是本人&#xff08;小菜鸡一枚&#xff09;于大一寒假所做的小玩意&#xff0c;以展现我这几月所学&#xff0c;这也是我发的第一篇博客&#xff0c;准确来说这可能是我搞51单片机的巅峰所做了&#xff0c;因为部长说以后要学stm32开发板了&…

【项目实战】基于STM32单片机的智能小车设计(有代码)

【1】背景意义 近些年随着国民生活水平的提升&#xff0c;以小车为载体的轮式机器人进入了我们的生活&#xff0c;尤其是在一些布线复杂困难的安全生活区和需要监控的施工作业场合都必须依赖轮式机器人的视频监控技术。因此&#xff0c;基于嵌入式技术的无线通信视频监控轮式机…

51单片机小车(附源码)

算是做的第一个比较完整的序幕项目&#xff0c;用到的模块不多&#xff0c;更多时间花在调试硬件封方面&#xff0c;比如电池带不动电机导致51单片机重启。 项目框图 项目流程图 通过蓝牙发送指令控制小车的前进、后退、转向、调速等功能。 在小车运动过程中黄灯亮起&#xff…

单片机智能小车

单片机智能小车&#xff1a; 基于单片机控制的自主寻迹电动小车的设计&#xff1a; 摘 要:针对小车在行驶过程中的寻迹要求&#xff0c;设计了以AT89C51单片机为核心的控制电路&#xff0c;采用模块化的设计方案&#xff0c;运用色标传感器、金属探测传感器、超声波传感器、霍尔…

51单片机寻迹小车

# 基于51单片机的循迹小车(详细讲解源码) 作为一名学生&#xff0c;这里我就简单谈谈我们小组做这个循迹小车的一个过程。主要是实现小车寻黑线行驶的这样一个功能&#xff0c;速度可以调节(定时器中断模拟PWM波实现) 一丶硬件部分 小车的主体框架是一个三轮的外在形态 电源…

【51单片机实例】智能小车(一)--------小车的前进、后退和停止

51智能小车系列 智能小车&#xff08;二&#xff09;-------- 小车的红外遥控调速 智能小车&#xff08;三&#xff09;-------- 小车的红外循迹 文章目录 前言一、硬件选择1.1 小车底盘1.2 电机1.3 51单片机最小系统板1.4 L298N双路电机驱动模块1.5 电源1.6 杜邦线 二、硬件连…

51单片机蓝牙小车(精要版)

51单片机蓝牙小车&#xff08;精要版&#xff09; 实现&#xff1a;通过手机与小车的蓝牙通信&#xff0c;实现手机控制小车前后左右的移动。 这是博主学了51单片机第一次做的单片机项目&#xff0c;选择了许多人喜欢的蓝牙小车作为第一个项目。 准备材料&#xff1a; 1.小…

51单片机项目设计:51单片机蓝牙小车制作教程,新手必做!(手机控制前后左右行走)

哔哩哔哩项目展示视频&#xff1a;https://www.bilibili.com/video/BV1Wy4y1z7a5 QQ交流群1&#xff1a;981140834 QQ交流群2&#xff1a;473982062 QQ交流群3&#xff1a;718245727 QQ交流群4&#xff1a;598455837 csdn资料链接&#xff1a;https://download.csdn.net/downl…

51单片机智能小车

最近学校举办了一个智能小车比赛&#xff0c;比赛内容为用手机蓝牙控制小车拥有5个功能&#xff0c;分别是超声波舵机避障&#xff0c;测距&#xff08;显示在LCD1602上&#xff09;&#xff0c;红外跟随&#xff0c;循迹还有蓝牙控制小车前进后退左转又转以及停止。 文章目录 …

51单片机智能循迹小车的通俗易懂讲解

. . 从上面导航图&#xff0c;我们可以看到&#xff0c;智能小车&#xff0c;共分为三步 外部检测&#xff0c;控制中心&#xff0c;轮子输出控制。 等于人的 . . 因为单片机控制中心和轮子输出控制是一样的&#xff0c;只有前面的外部检测&#xff0c;换个模块工作而已。 . …

基于51单片机四路循迹小车

文章目录 一. 任务要求二. 系统原理三. 整体方案1. 控制模块最小系统去除AD网格线 2. 电机驱动模块3. 电源模块4. 循迹模块5. 超声波测距模块 四. 车体实物图五. 软件实现 这学期开设的51单片机课程的课程设计即将验收&#xff0c;今天开始正式着手做循迹小车~ 一. 任务要求 二…

51单片机循迹小车

一.材料 1.51单片机开发板 2.L298N电机 3.红外循迹模块 4.直流电机 5.电池&#xff08;提供电源&#xff0c;选用的是三节18650锂电池&#xff09; 6.杜邦线 7.两个主动轮&#xff0c;一个万向轮 8.小车底板&#xff08;亚克力板&#xff09; 二.实现效果 使小车在两…

【51单片机实例教程】智能小车(一)让你的小车跑起来

文章目录 前言 一、硬件 1.小车底盘 2.51单片机最小系统板 3.L298N双路电机驱动板 二、仿真模拟图 三、代码部分 1.直行 2.后退 3.左转圈 4.右转圈 总结 前言 智能小车的项目非常多&#xff0c;比如说循迹避障、蓝牙遥控、视觉控制&#xff08;这一块用51单片机比较…

基于51单片机的循迹小车(初学者必备!!!)

基于51单片机的循迹小车 文章目录 基于51单片机的循迹小车 前言一、系统概述1.工作原理2.控制系统结构框图 二、循迹小车硬件1.电机驱动模块2.循迹模块 三、循迹小车软件四、源码&#xff08;仅供参考&#xff09; 前言 该小车采用单片机STC89C52作为主控制核心&#xff0c;通过…

单片机小车

*## 单片机小车 本周作为单片机新手的我制作了我的第一个作品—单片机小车 一 元件&#xff1a;1.单片机最小系统板 2.杜邦线 3.USB转TTL CH340模块STC单片机下载线刷机板USB转串口 4.智能小车配件 红外寻迹 5.智能小车51单片机套件底盘组装寻迹避障开发板编程循迹机器人配件 …

51单片机之智能小车(避障、跟随、循迹)

目录 基本概述 硬件组成 功能 关键字 模块介绍 电机模块L9110S 循迹模块&#xff08;TCRT5000传感器&#xff09; 红外避障模块 测速模块 小车 移动小车&#xff08;控制电机转动&#xff0c;使小车前进、后退、左转、右转 &#xff09; 遥控小车&#xff08; 使…