8—基于FPGA(ZYNQ-Z2)的多功能小车—软件设计—寻迹模块、寻光模块、跟随模块

目录

1.寻迹模块  

2.寻光模块

3.跟随模块


1.寻迹模块  

寻迹模块的实现需要两个TCRT5000传感器。简单地说,检测到黑线输出低电平,检测到白线输出高电平。因此两个TCRT5000放在黑色地面的白线循迹线左右,左边检测到白线左转,右边检测到白线右转,都是黑的前进,都是白线停止。算法比较容易实现。

 

OUT信号输出,黑色为0,白色为1
VCC5V供电
GND接地

代码如下:

     //寻迹模式    
       else if(data==8'b11111000) begin
            ledout<=4'b0011;//亮两个LED
             Mode_Control<=0;//遥控模式标志符清零
            if((track[1]==1'b1)&&(track[2]==1'b1))//未寻到黑线,俩轮直接前进
                mode<=2;//直行T16
            else if((track[1]==1'b0)&&(track[2]==1'b1))//左传感寻到黑线,右传感未寻到,右轮动
                mode<=4;//右转
            else if((track[1]==1'b1)&&(track[2]==1'b0))//右传感寻到黑线,右传感未寻到,左轮动
                mode<=3;//左转
               else mode<=0;//两个黑线,不符要求,停止运行
            end

2.寻光模块

  寻光模块我使用的是TEMT6000,它能检测环境光,并且根据光强输出0-5V不同的电压。光强越大,电压越大。

S信号输出,0-5V,光越强越大
G接地
V5V供电

 

  在具体实现中,由于FPGA没有内置AD模块,因此需要外接AD模块。但是考虑到IO口的数量以及实现的复杂度,我决定直接检测输出的电压值。

  将光源放在两个TEMT6000的中间,这时会输出两个电压未知的高电平,这时让小车直行;将光源放在靠左边,这时左边高电平,右边低电平(电压都未知),这时让小车左转,右侧同理。这样就能实现小车跟随光线转动、移动。

具体代码如下:

       //寻光模式 
       else if(data==8'b10000000) begin
            ledout<=4'b1111;//亮四个LED
            Mode_Control<=0;//遥控模式标志符置高
            if((Light[1]==1'b1)&&(Light[0]==1'b1))//同时感应光线
                mode<=2;//直行
            else if((Light[1]==1'b1)&&(Light[0]==1'b0))//左边感应到光线,右边没有感应到光线
                mode<=4;//左转
            else if((Light[1]==1'b0)&&(Light[0]==1'b1))//右边感应到光线,左边没有感应到光线
                mode<=3;//右转
               else mode<=0;//都没有感应到光线,停止运行
            end          

3.跟随模块

为了实现小车的实时跟随,我在校车前方放置了超声波模块进行测距,如果距离小于20CM就执行,大于20CM就停止。简单的算法便能实现小车跟随人直行的实现。

 接口之前已介绍。

代码如下:

    //避障模式
       if(data==8'b11111110) begin
            ledout<=4'b0001;//亮一个LED
             Mode_Control<=0;//遥控模式标志符清零
            if (distance_reg <= DISTANCE_THRESHOLD) begin//如果距离小于阈值
                   mode<=1;//
            end else begin//如果距离大于阈值
                   mode<=0;//
                   end
            end

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

贡橙小白鼠

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

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

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

打赏作者

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

抵扣说明:

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

余额充值