Matrix - Ultrasonic Ranger/zh

From FriendlyELEC WiKi
Revision as of 06:33, 7 September 2015 by Jjm (Talk | contribs) (特性)

Jump to: navigation, search

English

1 介绍

Ultrasonic Ranger01
  • 超声波传感器是利用超声波的特性研制而成的传感器。超声波是一种振动频率高于声波的机械波,它具有频率高、波长短、绕射现象小,特别是方向性好、能够成为射线而定向传播等特点。超声波对液体、固体的穿透本领很大,尤其是在阳光不透明的固体中,它可穿透几十米的深度。
  • 超声波传感器是利用超声波的特性研制而成的传感器。超声波碰到杂质或分界面会产生显著反射形成反射成回波,碰到活动物体能产生多普勒效应。主要可以用于测量距离、温度测量、高亮度测量。

2 特性

  • 5V供电
  • 5cm-300cm,精度1cm
  • 单根gpio操作
  • PCB尺寸(mm):20x40

超声波PCB

  • 引脚说明:
名称 描述
S GPIO
V 电源5V
G

3 工作原理

  • 经发射器发射出长约6mm,频率为40KHZ的超声波信号。此信号被物体反射回来由接收头接收,接收头实质上是一种压电效应的换能器。它接收到信号后产生mV级的微弱电压信号。
  • 初始化时将trig和echo端口都置低,首先向给 trig 发送至少10 us的高电平脉冲(模块自动向外发送8个40K的方波),然后等待,捕捉 echo 端输出上升沿,捕捉到上升沿的同时,打开定时器开始计时,再次等待捕捉echo的下降沿,当捕捉到下降沿,读出计时器的时间,这就是超声波在空气中运行的时间,按照 测试距离=(高电平时间*声速(340M/S))/2 就可以算出超声波到障碍物的距离。
matrix Ultrasonic Ranger

4 使用方法

4.1 连接

GND针脚: 接地
VCC: 接5V
S: GPIO PIN1
  • 连接到NanoPi

NanoPi+ur

  • 连接到TINY4412 SDK 1506

tiny4412+ur

4.2 Linux下的C示例

#include <stdio.h>
#include <unistd.h>
#include "libfahw.h"
 
int main(int argc, char ** argv)
{
    int distance = -1;
 
    int echoPin = TINY4412_GPIO_PIN1;
    int triggerPin = TINY4412_GPIO_PIN2;
 
    if (Hcsr04Init(echoPin, triggerPin) == -1) {
        printf("Fail to init hcsr04\n");
    }
 
    if (Hcsr04Read(&distance)==0 && distance != -1) {
        printf("Get distance: %3d cm\n", distance);
    } else {
        printf("Faid to get distance\n");
    }
    Hcsr04DeInit();
    return 0;
}

4.3 编译并运行示例

git clone http://github.com/friendlyarm/fa-hardware.git
cd fa-hardware
cd demo
cd matrix-ultrasonic_ranger
make

将编译生成的hcsr04通过ftp上传到开发板上运行即可测试。

5 相关资料