Python与硬件学习笔记:超声波
2015-11-27 17:26
513 查看
超声波
超声波是一种频率高于20000赫兹的声波,它的方向性好,穿透能力强,易于获得较集中的声能,在水中传播距离远,可用于测距、测速、清洗、焊接、碎石、杀菌消毒等。在医学、军事、工业、农业上有很多的应用。超声波因其频率下限大于人的听觉上限而得名。下图就是一个超声波模块,超声波模块就是可以发射和接收超声波的模块,今年我们就介绍一种超声波模块HC-SR04。
管脚介绍:
VCC —超声波模块电源脚,接5V电源即可
Trig—超声波发送脚,高电平时发送出40KHZ出超声波
Echo—超声波接收检测脚,当接收到返回的超声波时,输出高电平
GND —超声波模块接地脚GND
了解了基本知识后我就需要进行编程实现使用超声波模块来进行距离测量了。超声波测距的原理比较简单,利用超声波模块发射超声波,当遇到障碍物时声音就会被反弹回来被超声波模块接收到,记录发射和接收之间的时间间隔,然后乘以声速(340m/秒)除以2就是发射地到障碍物之间的距离了。
超声波测距
1、所需材料:
• 超声波模块一个
• 树莓派
• 杜邦线数根
2、引脚连接说明:
3、程序编写
ultrasonic.py
保存代码,执行程序 sudo python ultrasonic.py 在这里我们是测量了一本20cm长的书,结果如下:
超声波是一种频率高于20000赫兹的声波,它的方向性好,穿透能力强,易于获得较集中的声能,在水中传播距离远,可用于测距、测速、清洗、焊接、碎石、杀菌消毒等。在医学、军事、工业、农业上有很多的应用。超声波因其频率下限大于人的听觉上限而得名。下图就是一个超声波模块,超声波模块就是可以发射和接收超声波的模块,今年我们就介绍一种超声波模块HC-SR04。
管脚介绍:
VCC —超声波模块电源脚,接5V电源即可
Trig—超声波发送脚,高电平时发送出40KHZ出超声波
Echo—超声波接收检测脚,当接收到返回的超声波时,输出高电平
GND —超声波模块接地脚GND
了解了基本知识后我就需要进行编程实现使用超声波模块来进行距离测量了。超声波测距的原理比较简单,利用超声波模块发射超声波,当遇到障碍物时声音就会被反弹回来被超声波模块接收到,记录发射和接收之间的时间间隔,然后乘以声速(340m/秒)除以2就是发射地到障碍物之间的距离了。
超声波测距
1、所需材料:
• 超声波模块一个
• 树莓派
• 杜邦线数根
2、引脚连接说明:
树莓派 | 超声波模块 |
5V | VCC |
GPIO 23 | TRIG |
GPIO 24 | ECHO |
GND | GND |
ultrasonic.py
#!/usr/bin/python #-*- coding: utf-8 -*- import time import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) #使用BCM编码方式 #定义引脚 GPIO_TRIGGER = 23 GPIO_ECHO = 24 #设置引脚为输入和输出 GPIO.setwarnings(False) GPIO.setup(GPIO_TRIGGER,GPIO.OUT) # Trigger GPIO.setup(GPIO_ECHO,GPIO.IN) # Echo def dis(): #测距函数 GPIO.output(GPIO_TRIGGER, False) #设置trigger为低电平 time.sleep(0.5) GPIO.output(GPIO_TRIGGER, True) #设置trigger为高电平 time.sleep(0.00001) GPIO.output(GPIO_TRIGGER, False) start = time.time() #记录发射超声波开始时间 while GPIO.input(GPIO_ECHO)==0: start = time.time() while GPIO.input(GPIO_ECHO)==1: stop = time.time() #记录接收到超声波时间 elapsed = stop-start #计算一共花费多长时间 distance = elapsed * 34300 #计算距离,就是时间乘以声速 distance = distance / 2 #除以2得到一次的距离而不是来回的距离 print "Distance : %.1fcm" % distance try: #用于捕捉异常 while True: dis() #调用测距函数 time.sleep(0.5) except KeyboardInterrupt: GPIO.cleanup()
保存代码,执行程序 sudo python ultrasonic.py 在这里我们是测量了一本20cm长的书,结果如下:
相关文章推荐
- python和java中Des加密初试
- Python爬虫实战(二):爬百度贴吧
- Python 编码风格指南中译版(Google SOC)
- Ubuntu 装python3,但是不要改动系统默认python解释器的版本,源码安装的步骤
- 【Python】构造函数、析构函数与可变参数传递
- python 异常处理
- 爬虫之自动保存文档-使用python/selenium
- Python中unittest测试框架简介
- python中的含有 *args 和**kwargs的用法 作为参数的函数,参数输入问题
- numpy 常用api(一)
- 关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型
- [python]微信开发access_token数据库存储 和 socket存取
- python脚本的两种调用方式
- 史上最直白的pca教程 之 二
- 史上最直白的pca教程 之 一
- python学习系列之python装饰器基础(1)
- python的多线程简单实例理解
- Python练习程序(一)用户认证后,联系人信息查询
- wxPython界面设计器——wxformbuilde的简单教程
- python之self