事先声明:这篇文章只适合想偷一下懒的朋友,没有太多的技术含量,纯粹分享一下有趣的事,哈哈哈。
日常·牢骚:这两天在调试自动驾驶,最简单的避障无非就是循迹加超声避障咯。也有师兄提议说,可以用激光雷达,绘制出一张小地图,这样可以让小车在一定范围内实现闭合区间的自动驾驶,但是这对我来说难度太高,而且激光雷达也是价格不菲,所以还是老老实实用循迹加避障。(还没完全做出来,做出来也分享给大家,先留个彩蛋)第一次用超声波还是遇到了挺多问题的,时序以及模块探测的距离挺难调的,在这里就跟大家说一种“笨”方法(只能避障,不能测距)。
超声波模块大概有两种:
第一种模块会比第二种贵几块钱。在这里就说一下第一种,这种主要利用串口通信,怎么通信就不讲了,讲一下怎么用“笨”方法实现避障就好了。这种模块比第二种模块多出了一个out的引脚,这个引脚在设定的距离内输出高电平,距离外输出低电平。如何不用写程序就能设定距离呢,看一下下面这个图片。(这种模块有一个设置键,用来设置out的探测距离,如:当前距离为1米,按下设置键后松开,则保存1米为参考值,下次感应距离在1米内out端口输出高电平,以外输出低电平)注:将5v GND OUT(接到IO上) 连接到开发板就好,其他两个可以不用理会,悬空就好。
程序如下:
看一下效果:
用8行代码实现超声波避障
考虑到一些朋友会用第二种模块,在这里也也给一下第二种模块的程序吧(可测距):
基于Robei:(FPGA)超声波避障