树莓派/香橙派.Space

OrangePi Lite 系列2:使用US-015超声波模块测

2017-07-26  本文已影响374人  萌萌哒的虚耗

先来一张效果图吧:

提示

用到的工具或软件有:

准备工作

1.安装WiringPi

安装方法来自官方用户手册:

安装源码需要的编译工具

$ sudo apt-get install gcc g++ make

编译GPIO 的H3 的驱动

git clone https://github.com/kazukioishi/WiringOP.git -b h3
cd WiringOP
chmod +x ./build
sudo ./build

GPIO 打印信息

gpio -v
gpio version: 2.20
Copyright (c) 2012-2014 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty
Banana Pro Details:
Type: Banana Pro, Revision: 1.2, Memory: 1024MB, Maker: LeMaker

显示

gpio reada

2.安装 orangepi_PC_gpio_pyH3

在github上下载orangepi_PC_gpio_pyH3或者使用如下命令clone:

git clone https://github.com/duxingkei33/orangepi_PC_gpio_pyH3.git

下载完成后执行以下命令安装:

python setup.py install

若提示 Python.h No such file or directory 请运行以下命令安装 python-dev

apt install python-dev

再次执行安装命令即可

3.连接US-015模块至OrangePi Lite

US-015 模块有一个4Pin接口

从左到右依次编号1,2,3,4。它们的定义如下:

编写代码

vi length.py

from pyA20.gpio import gpio
from pyA20.gpio import port
import time
def checkdist():
    # 设置PA10为高电平,持续15微秒(大于10均可)
    gpio.output(port.PA10,1)
    time.sleep(0.000015)
    gpio.output(port.PA10,0)
    # 当PA20接收到高电平信号后开始记录时间,高电平小时候记录时间
    while not gpio.input(port.PA20):
        pass
    t1=time.time()
    while gpio.input(port.PA20):
        pass
    t2=time.time()
    # 根据超声波速度计算距离
    return (t2-t1)*340/2
# 初始化gpio
gpio.init()
# 设置PA10口为output 
gpio.setcfg(port.PA10,1)
# 设置PA20口为input
gpio.setcfg(port.PA20,0)
# 等待2秒
time.sleep(2)
while True:
    print 'Distance : %0.2f m' %checkdist()
    # 每隔三秒获取距离
    time.sleep(0.3)

最后执行

python length.py

即可看到运行结果。

简书上好像没有代码高亮,看起来不是很方便,可以去我的博客阅读体验更佳 虚耗的博客

上一篇下一篇

猜你喜欢

热点阅读