为了账号安全,请及时绑定邮箱和手机立即绑定

【树莓派智能家居】超声波测距(Python2代码控制)

标签:
Python
正文之前

这是计算机控制系统的课程设计,巨坑,但是没办法,还是要做,主要是要做控制器,但是我以前搞过这个超声波模块的小玩具。所以索性做个智能家居的玩意来玩。这一篇是打头阵的。中心在后头,不过鉴于我很久没有出文了。所以还是要写点东西咯~~

正文

1、 硬件准备

HC-SR04超声波模块


相关的说明可以参考下面的内容:

HC-SR04超声波测距模块说明书_图文_百度文库
HC-SR04超声波模块测距离 送全套资料 购买地址
超声波模块HC-SR04简介以及编程_天涯海角_新浪博客

2 、主要技术参数:

1:使用电压:DC5V              
2:静态电流:小于2mA     
3:电平输出:高5V                
4:电平输出:底0V
5:感应角度:不大于15度       
6:探测距离:2cm-450cm</a>
7:高精度:可达0.3cm             
8:板大小:4.5*2.0CM</a>

3、 管脚介绍

VCC,超声波模块电源脚,接5V电源即可
Trig,超声波发送脚,高电平时发送出40KHZ出超声波
Echo,超声波接收检测脚,当接收到返回的超声波时,输出高电平
GND,超声波模块GND

4、 接线

树莓派第2只脚为5V,给超声波模块供电树莓派也就是第一行第二列
第39只脚为GND,与超声波模块共地第二十行第一列
树莓派第1、3只脚分别为GPIO2和GPIO3,分别作发送和接收用,分别与Trig和Echo相连接。第二行第一列,第三行第一列

下面借个图,我自己的还没拍

5、 控制代码(python2.7.9)

1.  #! /usr/bin/python
2.  # -*- coding:utf-8 -*-
3.  import RPi.GPIO as GPIO
4.  import time
5.  def checkdist():
6.          #发出触发信号
7.          GPIO.output(2,GPIO.HIGH)
8.          #保持15us的超声波发射,避免能量太低无法返回
9.          time.sleep(0.000015)
10.         #然后置位2号管脚低电平,即停止发射超声波
11.         GPIO.output(2,GPIO.LOW)
12.         while not GPIO.input(3):
13.                pass
14.         #发现高电平时开时计时
15.         t1 = time.time()
16.         #如果有检测到反射返回的超声波,那么就持续计时,否则就跳出循环,计时结束
17.         while GPIO.input(3):
18.                 pass
19.         #高电平结束停止计时
20.         t2 = time.time()
21.         #返回距离,单位为米
22.         return (t2-t1)*340/2
23. GPIO.setmode(GPIO.BCM)
24. #第3号针,GPIO2
25. GPIO.setup(2,GPIO.OUT,initial=GPIO.LOW)
26. #第5号针,GPIO3
27. GPIO.setup(3,GPIO.IN)
28. time.sleep(2)
29. try:
30.         while True:
31.                 print 'Distance: %0.2f m' %checkdist()
32.                 time.sleep(0.5)
33. except KeyboardInterrupt:
34.         GPIO.cleanup()

上面是在树莓派的随意位置编辑保存的代码。直接复制粘贴即可(我这儿的你得把数字去了),然后python xxx.py 就ok了~

正文之后

ok 溜了溜了。没啥意思!~ 后面难一点的出来了继续更文

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消