基于51单片机的红外循迹小车
在前面(废话):金沙滩的板子入门51单片机,有幸见过学长的各种小车视频,亿点点羡慕,于是在期末考试前计划寒假上手尝试,刚好学校社团又有比赛
材料:
小车套件(包含底盘,轮子,减速电机,若干铜柱螺丝螺帽)
循迹模块 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单片机的红外循迹小车相关推荐
- 基于STC89c52rc单片机的红外循迹小车
循迹小车 由于要准备明年的恩智浦飞思卡尔智能车比赛,飞思卡尔智能车用的是K60系列的单片机,以我目前的阶段来说还处于学习阶段,所以先试着用51单片机做一个智能循迹小车.学习一下小车硬件以及软件程序,这 ...
- 基于51单片机的红外循迹模块
目录 循迹模块介绍及原理 部分程序 结合小车的全部程序 循迹模块介绍及原理 这里使用的四路循迹模块 部分端口介绍 主板的OUT1-4端分别连接单片机的IO口,用于检测输出电平 主板另一排针侧的VCC ...
- 基于51单片机实现红外循迹
红外循迹外观: 红外循迹原理: 红外循迹模块原理还是很简单的,和许多光电传感器原理一样,当发射器发射出去的光被接收器接收到后,模块上对应的LED灯点亮,此时相应的输出引脚输出低电平:如 ...
- 51单片机 简易光电循迹小车
前言 应学校暑期课程要求,也作为和小组成员完成一次对51单片机的练手,制作了简易的光电小车,完成了循迹功能,下面包括较为详细的小车搭建过程以及完整代码. 硬件部分准备 电源 可充电的电池组是智能车的唯 ...
- 基于STC89C52RC单片机制作的红外循迹小车(4个传感器)
单片机:基于STC89C52RC单片机制作的红外循迹小车(4个传感器) 个人感觉红外循迹小车和那些遥控小车的区别就是信号发射不同:遥控小车是通过遥控器发出信号执行相应的动作,而红外循迹是通过红外传感器 ...
- 基于MSP432控制的红外循迹爬坡小车设计报告
基于MSP432控制的红外循迹爬坡小车设计报告 竞赛选题:坡道行驶电动小车(C题) 摘要 本小车基于TI的MSP432平台,设计了可以沿指定路线在坡道上循迹行驶的四轮小车.小车采用L298N驱动芯片控 ...
- 【电路】基于单片机智能睡眠枕系统设计-基于单片机音乐喷泉制作设计-基于单片机智能温控风扇调速系统设计-基于单片机智能自动循迹小车控制系统设计-基于数字电路的4人投票系统设计(仿真,报告)毕设课设资料
1620基于单片机智能睡眠枕系统设计-文档+PPT+PCB图+原理图+源码 智能睡眠枕主要由lcd屏幕.蓝牙.压力传感器.蜂鸣器.单片机等等组成,用户可通过四个独立按键进行操控(四个按键从左至右为1. ...
- 【C51开发应用】基于C51单片机开发的循迹灭火机器人
基于C51单片机开发的循迹灭火机器人 一.作品摘要 二.系统设计步骤 三.方案设计 3.1 小车主体设计 3.1.1 购买玩具小车进行改装 3.1.2 自己设计小车主体结构 3.2 电 ...
- 基于arduino的5路循迹小车(2)
基于arduino的5路循迹小车(2) 小车5路红外循线 接第一篇链接 https://blog.csdn.net/weixin_45984029/article/details/103437347 ...
最新文章
- 批处理 设置电脑最佳性能_批处理最佳做法
- Oracle解锁scott账号
- 【连载】如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(1)
- 现代的 “Hello, World”,可不仅仅是几行代码而已
- 0918类对象重载,作业2
- vb.net程序可以在触摸屏上运行么_简单PLC编程台达PLC模拟量程序
- M1 Pro MacBook Pro下载Android11源码
- ffmpeg转码测试命令
- P2627 [USACO11OPEN]Mowing the Lawn G (单调队列优化dp)
- 联想售后服务偷换主板
- Android FFMpeg 播放器
- Enterprise Architect:绘制基本包图(详细步骤)
- YOLOX代码 loss计算过程 详细注释版
- jenkins调用shell脚本实现自动上线完整项目---此项目中用到了git parameter、choise parameter参数化构建(五)
- ubuntu 18.04+GTX30系列显卡+TensorFlow-gpu1.15
- linux中lpr命令
- 云管平台 — vRealize Suite
- 红米k40怎样开启NFC步骤分享
- 第十八章 使用系统监视器 -设置系统监视器选项
- 福特试验电子围栏限速