【NanoPi NEO Plus2试用体验】+超声波测距

  • makeWorks
  • LV3工程师
  • |      2017-09-03 22:22:28
  • 浏览量 2679
  • 回复:3
1、安装gpio库 注意这里安装没有采用原始的gpio库,而是git clone后修改了gpio.py文件,因为原始的方式打印了调试信息,影响了观察数据
sudo git clone https://github.com/vitiral/gpio.git
查看下载的文件,并打开目录,修改gpio.py文件 保存并安装gpio库
sudo python setup.py install
2、连接超声波模块和pi 3、测试代码
#!/usr/bin/python

# -*- coding:utf-8 -*-



'''

HC-SR04         NanoPI NEO2 Pi

VCC     <->     5V(Pin4)  

GND     <->     GND(Pin6)

TRIG    <->     GPIOG7

ECHO    <->     GPIOG6

'''



'''

测距时,被测物体的面积不少于0.5平方米且平面尽量要求平整,否则会影响测量结果。

测距原理:

1.外部给模块TRIG引脚提供一个10us以上脉冲触发信号;

2.模块内部将发出8个40KHz周期电平并检测回波;

3.模块一旦检测到有回波信号则输出回响信号,回波信号的脉冲宽度与所测的距离成正比。脉冲持续的时间就是超声波从发射到返回的时间。

测试距离 = 高电平持续的时间 * 声速 / 2

'''



import gpio as GPIO

import time



# BCM GPIO编号

TRIG = 199

ECHO = 198



def checkdist():

    GPIO.output(TRIG, True)

    time.sleep(0.000015)

    GPIO.output(TRIG, False)

    while not GPIO.input(ECHO):

        pass

    t1 = time.time()

    while GPIO.input(ECHO):

        pass

    t2 = time.time()

    return (t2 - t1) * 340 / 2

    

def setup():

    #采用BCM编号

    GPIO.setup(TRIG, GPIO.OUT, initial=False)

    GPIO.setup(ECHO, GPIO.IN)

    time.sleep(2)



if __name__ == '__main__':

    setup();

    print 'init done!'

    try:

        while True:

            print 'Distance: %0.2f m' %checkdist()

            time.sleep(0.5)

    except KeyboardInterrupt:

        GPIO.cleanup()
4、运行结果
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:1
great_CC 2017-09-10
有超声波测距探头了,就差个NanoPi了,:lol
1   回复
举报
发布
黄莨元 回复 2017-09-10
谁都差。。。。。。。。。。。。。。
0   回复
举报
汉云 回复 2017-09-21
可以测试下精度啊
0   回复
举报
x
收藏成功!点击 我的收藏 查看收藏的全部帖子