前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >树莓派Raspberry+超声波模块测距

树莓派Raspberry+超声波模块测距

作者头像
周星星9527
发布2020-11-11 13:07:31
5110
发布2020-11-11 13:07:31
举报

Talk is cheak,show me the code!

代码语言:javascript
复制
import RPi.GPIO as GPIO
import time

makerobo_TRIG = 11  # 超声波模块Tring控制管脚
makerobo_ECHO = 12  # 超声波模块Echo控制管脚

# 超声波模块初始化工作
def makerobo_setup():
  GPIO.setmode(GPIO.BOARD)      # 采用实际的物理管脚给GPIO口
  GPIO.setwarnings(False)       # 忽略GPIO操作注意警告
  GPIO.setup(makerobo_TRIG, GPIO.OUT) # Tring设置为输出模式
  GPIO.setup(makerobo_ECHO, GPIO.IN)  # Echo设置为输入模式

# 超声波计算距离函数
def ur_disMeasure():

  GPIO.output(makerobo_TRIG, 0)  # 开始起始
  time.sleep(0.000002)           # 延时2us

  GPIO.output(makerobo_TRIG, 1)  # 超声波启动信号,延时10us
  time.sleep(0.00001)            # 发出超声波脉冲
  GPIO.output(makerobo_TRIG, 0)           # 设置为低电平

  
  while GPIO.input(makerobo_ECHO) == 0: # 等待回传信号
    us_a = 0
  us_time1 = time.time()                # 获取当前时间
  while GPIO.input(makerobo_ECHO) == 1: # 回传信号截止信息
    us_a = 1
  us_time2 = time.time()                # 获取当前时间

  us_during = us_time2 - us_time1          # 转换微秒级的时间

  # 声速在空气中的传播速度为340m/s, 超声波要经历一个发送信号和一个回波信息,
  # 计算公式如下所示:
  return us_during * 340 / 2 * 100        # 求出距离

# 循环函数
def makerobo_loop():
  while True:
    us_dis = ur_disMeasure()   # 获取超声波计算距离
    print (us_dis, 'cm')       # 打印超声波距离值
    print ('')
    time.sleep(0.3)            # 延时300ms 

# 资源释放函数
def destroy():
  GPIO.cleanup() # 释放资源

# 程序入口
if __name__ == "__main__":
  makerobo_setup() # 调用初始化函数
  try:
    makerobo_loop() # 调用循环函数
  except KeyboardInterrupt: # 当按下Ctrl+C时,将执行destroy()子程序。
    destroy() # 释放资源

连线如下图,待测试:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 传输过程数值模拟学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档