基于Basys3的数字测距仪:采用传感器和FPGA逻辑,提供快速,准确,实时的距离测量
扫描二维码
随时随地手机看文章
你有没有想过,停车传感器、障碍物探测机器人,甚至是自动水龙头等日常设备是如何如此准确地测量距离的?我想探索同样的想法,但使用FPGA来实现,其中一切都发生在硬件逻辑层面,而不是依赖于微控制器。这个项目就是这样开始的。
我使用Basys 3 FPGA开发板和流行的HC-SR04超声波传感器构建了一个距离测量系统。目标很简单:触发超声波传感器,使用FPGA逻辑测量回波时间,并将其实时转换为可读距离。
但在FPGA上实现这一点带来了有趣的挑战。与Arduino不同的是,它没有内置延迟函数或定时器——我们自己设计定时器硬件。我实现了:
•脉冲发生器发送10 μs的触发信号
•使用Basys 3的100兆赫时钟的回声计时计数器
•一个有限状态机(FSM)来控制工作流
•把时钟周期换算成厘米的距离计算器
•7段显示驱动器实时显示测量距离
结果呢?一个完全硬件级的距离测量系统,以令人印象深刻的速度和精度输出物体的距离。最令人满意的时刻是看着7段显示随着物体的移动而瞬间更新。
这个项目让我明白:
•超声波传感器是如何在信号层面工作的,
•如何在Verilog/VHDL中设计时序电路;
•FSMs如何有效地控制硬件操作,
•以及fpga与微控制器相比提供了多少控制和精度。
在未来的版本中,我计划添加:
•过滤去噪;
•VGA图形距离显示,
•以及一个UART接口,将结果流式传输到PC机。
代码
本文编译自hackster.io





