jetson使用超声波测距模块测距实现

 超声波测距模块

四个引脚,vcc、trig、echo、gnd。vcc接GPIO 5v、trig接引脚11、echo接引脚12、gnd接地

具体代码

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()   # 获取超声波计算距离
        with open('distance.txt', 'a', encoding='utf-8') as file:
            file.write(str(us_dis))
            file.write('\t')
            file.write('cm\n')
            print (us_dis, 'cm')       # 打印超声波距离值
            print ('')
            time.sleep(1)            # 延时300ms

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值