树莓派william hill官网
直播中

xjallen

11年用户 737经验值
擅长:可编程逻辑 嵌入式技术 光电显示 RF/无线
私信 关注
[经验]

【Raspberry Pi 3试用体验】用Python驱动HC_SR04超声测距模块

本帖最后由 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。
IMG_20160610_060541.jpg

连接方式:
        树莓派3的第2只脚为5V,与超声波模块VCC连接,为其供电。
        树莓派3的第39只脚为GND,与超声波模块GND连接,共地。
        树莓派3的第3只脚为GPIO2,与超声波模块Trig连接,接受数据。
        树莓派3的第5只脚为GPIO3,与超声波模块Echo连接,发送数据。
IMG_20160610_065918.jpg
树莓派3上电开机,在终端输入“nano hc_sr04”。

IMG_20160610_065748.jpg
用Python写一段驱动HC_SR04超声模块测距的程序。

IMG_20160610_065800.jpg
写完后,键盘上摁“Ctrl+O”保存。

IMG_20160610_065856.jpg
再摁键盘上的回车,出现hc_sr04程序(双击可打开修改),之后键盘上摁“Ctrl+C”回到终端界面。

IMG_20160610_071113.jpg
终端输入“python hc_sr04”,执行程序。

IMG_20160610_071341.jpg IMG_20160610_071345.jpg IMG_20160610_071348.jpg IMG_20160610_071357.jpg
测试图。

IMG_20160610_071217.jpg IMG_20160610_071229.jpg
双击hc_sr04程序,即可对其修改和调试。

       树莓派3的GPIO扩展,用python程序控制HC-SR04超声波测距模块,连接方便,操作简单,非常适合新手入门学习和进阶开发,而且全面向下兼容所以树莓派扩展配件,真可谓实力不俗,期待日后的发现。
附:代码
  1. #! /usr/bin/python
  2. # -*- coding:utf-8 -*-

  3. import RPi.GPIO as GPIO
  4. import time

  5. def checkdist():
  6.     GPIO.output(2,GPIO.HIGH)
  7.     time.sleep(0.000015)
  8.     GPIO.output(2,GPIO.LOW)
  9.     while not GPIO.input(3):
  10.                pass
  11.       t1 = time.time()
  12.      while GPIO.input(3):
  13.                pass
  14.      t2 = time.time()
  15.      return (t2-t1)*340/2
  16. GPIO.setmode(GPIO.BCM)
  17. GPIO.setup(2,GPIO.OUT,initial=GPIO.LOW)
  18. GPIO.setup(3,GPIO.IN)

  19. time.sleep(2)
  20. try:
  21.          while True:
  22.                   print 'Distance: %0.2f m' %checkdist()
  23.                   time.sleep(0.5)
  24. except KeyboardInterrupt:
  25.          GPIO.cleanup()



回帖(8)

曲终人散

2016-6-10 18:26:20
怎么感觉Pi 什么编程需要都能用呢
举报

xjallen

2016-6-10 19:23:52
引用: @曲终人散@ 发表于 2016-6-10 18:26
怎么感觉Pi 什么编程需要都能用呢

恩 Linux下喜欢用哪个语言用哪个语言
举报

曲终人散

2016-6-10 22:41:35
引用: xjallen 发表于 2016-6-10 19:23
恩 Linux下喜欢用哪个语言用哪个语言

好东西,以后用空接触接触这个家伙
举报

可乐丸子

2016-6-13 20:23:45
引用: xjallen 发表于 2016-6-10 19:23
恩 Linux下喜欢用哪个语言用哪个语言

代码发上来吧
举报

更多回帖

发帖
×
20
完善资料,
赚取积分