树莓派Python编程实现超声波动态雷达图
2023-06-21牟晓东
牟晓东
超声波传感器能检测与前方障碍物间的距离,如果将它固定于360 度旋转的舵机上持续采样,就能将采样获取的数据绘制成雷达图进行动态展示。
1.实验器材及连接
树莓派3B+ 和古德微扩展板各一块,HC-SR04 超声波传感器一个,4 路8 线电滑环一个,360 度舵机一个,红色、绿色LED 灯各一支;还需要电烙铁和热熔枪各一把。
用热熔枪将滑环中央的转子底端与舵机输出转子进行固定,注意二者的中心点要尽量吻合,防止旋转时偏心。再将滑环中央转子的顶端与超声波传感器顶端固定好,也要中心对齐。接着,将滑环外围的定子圈的四根线与古德微扩展板的20 号和21 号(共四个引脚)进行连接,红线接电源正极VCC,黑线接地GND,橙红色线接Trig 信号发射端,棕色线接Echo信号回声端。滑环中央转子4 根引线分别与超声波传感器的四个引脚进行对应连接(电烙铁点锡);将舵机固定好之后,连接线插入扩展板的18 号引脚,注意黑色、红色和棕黄色三根线分别与GND、VCC和信号控制D 端连接;然后,将红色和绿色LED 灯按照“长腿正、短腿负”的规则分别插入扩展板的5 号和6 号引脚;最后,给树莓派插入数据线,通电启动操作系统(如图1)。
2.Python代码编程
(1)库模块的导入与变量初始化
首先, 导入GPIO Zero 、Matplot Lib等库模块: “from gpiozero import LED , Servo , Distance Sensor ”“ importnumpyasnp”“importmatplotlib”"impor tmatplotlib.pyplot as plt”和“importtime”; 然后进行LED 灯、舵机和超声波传感器实例的初始化操作:“ Red _ LED= LED ( 5 ) ”“ Green_LED=LED(6)”“servo=Servo(18)”和“sensor=DistanceSensor(echo=21,trigger=20,max_distance=4)”, 并且通过语句“servo.mid()”控制360 度舵机以中速带动超声波传感器向一个方向开始旋转;再设置雷达图绘制画布的宽度和高度,大小分别为8 和6(单位为英寸):“plt.figure(figsize=(8,6))”;……
