本帖最后由 xjallen 于 2016-6-13 20:44 编辑
【Raspberry Pi 3试用体验】用Python驱动HC_SR04超声测距模块
树莓派一直以来是兼容最多拓展模块的神器,HC_SR04是普遍常用的超声测距模块。HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。
基本工作原理:
(1)采用IO口TRIG触发测距,给最少10us的高电平。
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2。
连接方式: 树莓派3的第2只脚为5V,与超声波模块VCC连接,为其供电。 树莓派3的第39只脚为GND,与超声波模块GND连接,共地。 树莓派3的第3只脚为GPIO2,与超声波模块Trig连接,接受数据。 树莓派3的第5只脚为GPIO3,与超声波模块Echo连接,发送数据。
树莓派3上电开机,在终端输入“nano hc_sr04”。
用Python写一段驱动HC_SR04超声模块测距的程序。
写完后,键盘上摁“Ctrl+O”保存。
再摁键盘上的回车,出现hc_sr04程序(双击可打开修改),之后键盘上摁“Ctrl+C”回到终端界面。
终端输入“python hc_sr04”,执行程序。
测试图。
双击hc_sr04程序,即可对其修改和调试。
树莓派3的GPIO扩展,用python程序控制HC-SR04超声波测距模块,连接方便,操作简单,非常适合新手入门学习和进阶开发,而且全面向下兼容所以树莓派扩展配件,真可谓实力不俗,期待日后的发现。 附:代码
- #! /usr/bin/python
- # -*- coding:utf-8 -*-
- import RPi.GPIO as GPIO
- import time
- def checkdist():
- GPIO.output(2,GPIO.HIGH)
- time.sleep(0.000015)
- GPIO.output(2,GPIO.LOW)
- while not GPIO.input(3):
- pass
- t1 = time.time()
- while GPIO.input(3):
- pass
- t2 = time.time()
- return (t2-t1)*340/2
- GPIO.setmode(GPIO.BCM)
- GPIO.setup(2,GPIO.OUT,initial=GPIO.LOW)
- GPIO.setup(3,GPIO.IN)
- time.sleep(2)
- try:
- while True:
- print 'Distance: %0.2f m' %checkdist()
- time.sleep(0.5)
- except KeyboardInterrupt:
- GPIO.cleanup()
复制代码
|