在前面(废话):金沙滩的板子入门51单片机,有幸见过学长的各种小车视频,亿点点羡慕,于是在期末考试前计划寒假上手尝试,刚好学校社团又有比赛

材料:

  1. 小车套件(包含底盘,轮子,减速电机,若干铜柱螺丝螺帽)

  2. 循迹模块 TCRT5000 灵敏度可调 有DO和AO输出

3.单片机STC89C52 及51单片机最小系统板


4.电机驱动模块 L298N

5.电源 18650锂电池 及 三节串联电池座



6.杜邦线若干(公公母母)
7.面包板 循迹模块需供电,单片机电源输出不够,需将正负极接到面包板再从面包板接出给模块供电(后期若想加上超声波模块也必然要用到面包板)

组装小车套件:

(贴纸特别难凘,我妈教我用热吹风吹一下能丝滑不少)

(固定电机的螺帽有点难拧,要有耐心,可以先把螺帽转进去一点,然后用手掐住螺帽,另一边用螺丝刀拧)
切记螺帽在内侧,不然会卡轮子

(轮子也有点难安)
但是这种套件便宜

接线:


正面三个座:

红线接电池盒正极输入
黄线输出5v接单片机正极
电源、l298n、单片机需共地

*侧边两个座(2)

分别接两个电机(不必区分正负,可通过程序控制正反转)

天蓝色框起来的四个引脚分别 IN1 IN2 IN3 IN4
接单片机引脚

sbit IN1 = P1^0;
sbit IN2 = P1^1;
sbit IN3 = P1^2;
sbit IN4 = P1^3;IN1 = 0; IN2 = 1;IN3 = 0; IN4 = 1;//IN1、2  IN3、4  分别控制左右轮//一个0一个1可实现简单的电机转动//后面用 PWM 控制转速

循迹:

赛道图解

模块:
因为没有adc,所以我接的是循迹模块的AO口,
检测到黑线时(反射回来的红外线强度较小)
输出1 ,反之输出0
灵敏度可通过旋钮调节
这里我是用了五路红外传感器
排列分别是(中间三个凑得比较紧)

left_2 left_1 mid right_1 right_2

sbit mid = P0^1;
sbit left_2 = P0^2;
sbit left_1 = P0^3;
sbit right_1 = P0^4;
sbit right_2 = P0^5;

循迹思路简述(比较low):
只有中间一路检测到黑线时,直行

left1/right1 检测到黑线时
左/右 微调(这里如果是小转弯的话我发现之路小车走直道摆动幅度会比较大)

left2/right2 检测到黑线时
较大幅度 左/右 调整
(至于多大幅度我是自己慢慢调的)

以上基本上可以应付小弯

至于直角弯(偶尔会瞎)
简单的

但是我发现这样有时候会直接冲过去
大概是因为小车过直角弯前车生并不是很正的
(也可能是我的车的问题)
然后我就把条件改成了这样(好像也没有好多少

if( ((uchar)left_2 + (uchar)left_1 + (uchar)mid >= 2)  && right_1==0 && right_2==0)turn_90left();
if(left_2==0 && left_1==0 && ( (uchar)right_2 + (uchar)right_1 + (uchar)mid >= 2) )turn_90right();

然后还有一个十字路口
这个效果比较好

if(((uchar)left_2 + (uchar)left_1 + (uchar)mid + (uchar)right_1 + (uchar)right_2) >= 5) //stopstop();   //五路中有四路检测到黑线就停

我是设置了一个变量open
放在while(1)里面一直刷

if(left_2==0 && right_2==0 && (mid==1 | left_1==1 | right_1==1)) open=1;

并且电机控制那一块将open作为开启条件
这样检测到十字路口后

open=0 电机会停

但是由于惯性车子仍然会往前开一点
(这里尝试过使用一点延时,但其实不用)
惯性足以越过十字路口
这时候 在while(1)里面的open

(由于前面还有路)open又会等于1

小车又会动起来(看起来只是稍微顿了一下)
而当T字停车线前面没有黑线了
满足不了那个open置1的条件
小车就会稳稳停下

转向
左右轮差速实现转向
直角的时候左右轮正反转,看起来有点像原地转头

中断代码(里面放的有点多了感觉)

void interruptT0() interrupt 1
{static uchar time = 0;TH0 = T0RH;TL0 = T0RL;
//行驶控制============================
//motor_left/right 左右轮转速if(time>20) time=0;if(time < motor_left && open){if(left_flag == 0){IN1 = 0; IN2 = 1; //正转}else{IN1 = 1; IN2 = 0; //反转}}else{IN1 = 0; IN2 = 0;}if(time < motor_right && open){if(right_flag == 0){IN3 = 0; IN4 = 1; //正转}else{IN3 = 1; IN4 = 0; //反转}}else{IN3 = 0; IN4 = 0;}time++;
}

其实要求里还有避障,但是我还没弄好

大一寒假&&第一次做&&第一次写

基于51单片机的红外循迹小车相关推荐

  1. 基于STC89c52rc单片机的红外循迹小车

    循迹小车 由于要准备明年的恩智浦飞思卡尔智能车比赛,飞思卡尔智能车用的是K60系列的单片机,以我目前的阶段来说还处于学习阶段,所以先试着用51单片机做一个智能循迹小车.学习一下小车硬件以及软件程序,这 ...

  2. 基于51单片机的红外循迹模块

    目录 循迹模块介绍及原理 部分程序 结合小车的全部程序 循迹模块介绍及原理 这里使用的四路循迹模块 部分端口介绍 主板的OUT1-4端分别连接单片机的IO口,用于检测输出电平 主板另一排针侧的VCC ...

  3. 基于51单片机实现红外循迹

    红外循迹外观: 红外循迹原理:         红外循迹模块原理还是很简单的,和许多光电传感器原理一样,当发射器发射出去的光被接收器接收到后,模块上对应的LED灯点亮,此时相应的输出引脚输出低电平:如 ...

  4. 51单片机 简易光电循迹小车

    前言 应学校暑期课程要求,也作为和小组成员完成一次对51单片机的练手,制作了简易的光电小车,完成了循迹功能,下面包括较为详细的小车搭建过程以及完整代码. 硬件部分准备 电源 可充电的电池组是智能车的唯 ...

  5. 基于STC89C52RC单片机制作的红外循迹小车(4个传感器)

    单片机:基于STC89C52RC单片机制作的红外循迹小车(4个传感器) 个人感觉红外循迹小车和那些遥控小车的区别就是信号发射不同:遥控小车是通过遥控器发出信号执行相应的动作,而红外循迹是通过红外传感器 ...

  6. 基于MSP432控制的红外循迹爬坡小车设计报告

    基于MSP432控制的红外循迹爬坡小车设计报告 竞赛选题:坡道行驶电动小车(C题) 摘要 本小车基于TI的MSP432平台,设计了可以沿指定路线在坡道上循迹行驶的四轮小车.小车采用L298N驱动芯片控 ...

  7. 【电路】基于单片机智能睡眠枕系统设计-基于单片机音乐喷泉制作设计-基于单片机智能温控风扇调速系统设计-基于单片机智能自动循迹小车控制系统设计-基于数字电路的4人投票系统设计(仿真,报告)毕设课设资料

    1620基于单片机智能睡眠枕系统设计-文档+PPT+PCB图+原理图+源码 智能睡眠枕主要由lcd屏幕.蓝牙.压力传感器.蜂鸣器.单片机等等组成,用户可通过四个独立按键进行操控(四个按键从左至右为1. ...

  8. 【C51开发应用】基于C51单片机开发的循迹灭火机器人

    基于C51单片机开发的循迹灭火机器人 一.作品摘要 二.系统设计步骤 三.方案设计 3.1   小车主体设计 3.1.1   购买玩具小车进行改装 3.1.2   自己设计小车主体结构 3.2   电 ...

  9. 基于arduino的5路循迹小车(2)

    基于arduino的5路循迹小车(2) 小车5路红外循线 接第一篇链接 https://blog.csdn.net/weixin_45984029/article/details/103437347 ...

最新文章

  1. 批处理 设置电脑最佳性能_批处理最佳做法
  2. Oracle解锁scott账号
  3. 【连载】如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(1)
  4. 现代的 “Hello, World”,可不仅仅是几行代码而已
  5. 0918类对象重载,作业2
  6. vb.net程序可以在触摸屏上运行么_简单PLC编程台达PLC模拟量程序
  7. M1 Pro MacBook Pro下载Android11源码
  8. ffmpeg转码测试命令
  9. P2627 [USACO11OPEN]Mowing the Lawn G (单调队列优化dp)
  10. 联想售后服务偷换主板
  11. Android FFMpeg 播放器
  12. Enterprise Architect:绘制基本包图(详细步骤)
  13. YOLOX代码 loss计算过程 详细注释版
  14. jenkins调用shell脚本实现自动上线完整项目---此项目中用到了git parameter、choise parameter参数化构建(五)
  15. ubuntu 18.04+GTX30系列显卡+TensorFlow-gpu1.15
  16. linux中lpr命令
  17. 云管平台 — vRealize Suite
  18. 红米k40怎样开启NFC步骤分享
  19. 第十八章 使用系统监视器 -设置系统监视器选项
  20. 福特试验电子围栏限速

热门文章

  1. Integrated Product Development
  2. hudson搭建经验总结
  3. 关于虚拟机上fedora14不能上网的问题解决
  4. 采集快手APP的10个经典方法
  5. Excel黑科技——Sum、indirect、Row的使用
  6. 基于HAL库创建Keil工程模板
  7. [vSphere]VCSA控制台修改root口令及关闭特定报警等操作
  8. Java Build工具Ant与Maven之比较
  9. 机器学习(六)——高斯判别法(GDA)
  10. Telnet 发邮件