粤嵌学习笔记(四)

/*-----------------------循迹 + 避障 ----------------------------*/

循迹:
    
    yl-70
        1、分为一个大的红色的主控板
        2、红外对管
        
        (1)红外传感器
            红外传感器对环境光线的适应力强
            其具有一对红外线发射和接收管
            对接收到的信号通过比较器电路处理后,输出一个低电平信号
            
            有效距离:
                2 ~ 60cm
            
            工作电压:
                3.3V~5V
            
            参数说明:
                当检测到前方有障碍物  ,电路板上的红色指示灯点亮
                out端口持续输出低电平信号
                
            特点:
                对黑色物体的探测距离小
                对白色物体的探测距离大
            
        
        (2)、主控板:
            
            接线原理:
                
                需要10根线
            
            灵敏度调节:
                
                    “顺加逆见”
            
            
        
        使用的注意事项:
            
            1、探头不要对着阳光 , 光线会对模块进行干扰
            2、灵敏度不宜调节过高 , 容易误触发
            3、有时候会发现LED信号灯微亮 , 这个情况没有触发 , 输出端还是高电平
            
        
        (3)循迹和避障:
            
            避障:
                如果小车前面有障碍物 , 红外接收对管 接收到的光线会减少 , 输出低电平
                    没有的话 , 高电平
            
            循迹:    
                如果我们的地面是“白色” , 接收到的光线是比较多的, 高电平
                如果遇到黑色地面 , 接收光线减少 , 低电平
                
        
        
    任务:
        1、实现避障和循迹
        2、同时 , 边制作PPT , 答辩 , 答辩会抽题目(1月3日中午 , 根据实际情况可以调整)
        3、进行拍视频 , 避障和循迹过程(拍视频 , 录下来)
                项目工程不要删掉 , 需要提交代码
            
            成果:
                PPT , 视频 , 还有 代码(所调用的函数, 一定要用.c结尾)
提示:
            
        1、4 个 红外传感器 , 一对用来循迹 ,一对用来避障 ,循迹的模块需要将LED发射管用手掰弯90°指向地面
        
        2、建议先实现循迹模块 ,避障其实不是最关键的 , 所以只需先用到两个 红外传感器
        
        3、先提示硬件如何配置:
                两个红外传感器 ,分别装在车头 , 中间间隔大概 几厘米(赛道贴好后 ,再调节)
                
                所以黑色的循迹胶布 就在两个传感器的中间 , 正常执行是红外对管能收到正常的
                光线 ,不会输出低电平
                
                当某个红外传感器下方遇到黑色胶带 ,就会发出低电平
                
                所以利用这个电平触发 , 我们用外部中断的方式进行编程
                
        4、程序实现:
                
                51单片机有两个外部中断 , 对用的哪个引脚 ,(请看原理图)
                
                所以在中断初始化函数中  , 需要初始化两个中断源 , 并使得中断系统导通
                
                中断初始化 , 设置为低电平触发, 还是下降沿触发 , 请思考
                
                写两个中断服务函数 , (中断服务函数的序号)
                
                那么中断服务函数用来干什么?
                    
                    用来改变某个小轮的两个引线的其中一个引线的电平。
                    
                    
                    因为主程序肯定是直行对不对!
                    
                    所以中断服务函数 就是让某个轮子不转。
                        实现转弯。
                
                
                //左转
                void go_left()
                {
                    La = 1;
                    Lb = 0;
                    Ra = 1;
                    Rb = 0;
                    delay_ms(10);        //为什么这里要有延时 ,因为传感器在车头 , 所以不要太提早转向
                    La = 0;
                    Lb = 0;
                    delay_ms(10);        //这里的延时函数 , 就是控制小车转弯的时间 ,
                }
 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

香自寒来

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

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

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

打赏作者

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

抵扣说明:

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

余额充值