Difference between revisions of "Matrix - Ultrasonic Ranger"

From FriendlyELEC WiKi
Jump to: navigation, search
(运行测试程序)
Line 29: Line 29:
 
[[File:Ultrasonic Ranger.png|thumb|matrix Ultrasonic Ranger]]
 
[[File:Ultrasonic Ranger.png|thumb|matrix Ultrasonic Ranger]]
  
 +
==硬件连接==
 +
===连接NanoPi M1===
 +
参考下图连接模块:<br>
 +
[[File:Matrix-Ultrasonic_Ranger_nanopi_m1.jpg|frameless|600px|Matrix-Ultrasonic_Ranger_nanopi_m1]]
 +
 +
连接说明:
 +
{| class="wikitable"
 +
|-
 +
|Matrix-Ultrasonic_Ranger || NanoPi M1
 +
|-
 +
|S    || Pin7
 +
|-
 +
|V    || Pin4
 +
|-
 +
|G    || Pin6
 +
|}
 +
 +
===连接NanoPi 2===
 +
参考下图连接模块:<br>
 +
[[File:Matrix-Ultrasonic_Ranger_nanopi_2.jpg|frameless|600px|Matrix-Ultrasonic_Ranger_nanopi_2]]
 +
 +
连接说明:
 +
{| class="wikitable"
 +
|-
 +
|Matrix-Ultrasonic_Ranger || NanoPi 2
 +
|-
 +
|S    || Pin7
 +
|-
 +
|V    || Pin4
 +
|-
 +
|G    || Pin6
 +
|}
 +
 +
===连接NanoPi M2 / NanoPi 2 Fire===
 +
NanoPi M2和NanoPi 2 Fire的40 Pin引脚定义是一模一样的,所以它们操作Matrix配件的步骤是一样的,这里仅以NanoPi M2为例。<br>
 +
参考下图连接模块:<br>
 +
[[File:Matrix-Ultrasonic_Ranger_nanopi_m2.jpg|frameless|600px|Matrix-Ultrasonic_Ranger_nanopi_m2]]
 +
 +
连接说明:
 +
{| class="wikitable"
 +
|-
 +
|Matrix-Ultrasonic_Ranger || NanoPi M2
 +
|-
 +
|S    || Pin7
 +
|-
 +
|V    || Pin4
 +
|-
 +
|G    || Pin6
 +
|}
 +
 +
===连接NanoPC-T2===
 +
参考下图连接模块:<br>
 +
[[File:Matrix-Ultrasonic_Ranger_NanoPC-T2.jpg|frameless|600px|Matrix-Ultrasonic_Ranger_NanoPC-T2]]
 +
 +
连接说明:
 +
{| class="wikitable"
 +
|-
 +
|Matrix-Ultrasonic_Ranger || NanoPC-T2
 +
|-
 +
|S    || Pin15
 +
|-
 +
|V    || Pin29
 +
|-
 +
|G    || Pin30
 +
|}
 +
 +
==编译运行测试程序==
 +
启动开发板并运行Debian系统,进入系统后克隆Matrix代码仓库:
 +
<syntaxhighlight lang="bash">
 +
$ apt-get update && apt-get install git
 +
$ git clone https://github.com/friendlyarm/matrix.git
 +
</syntaxhighlight>
 +
克隆完成后会得到一个名为matrix的目录。
 +
 +
编译并安装Matrix:
 +
<syntaxhighlight lang="bash">
 +
$ cd matrix
 +
$ make && make install
 +
</syntaxhighlight>
 +
 +
运行测试程序:
 +
<syntaxhighlight lang="bash">
 +
$ matrix-ultrasonic_ranger
 +
</syntaxhighlight>
 +
注意:此模块并不支持热插拔,启动系统前需要确保硬件连接正确。<br>
 +
运行效果如下:<br>
 +
<syntaxhighlight lang="bash">
 +
The distance is  24 cm
 +
</syntaxhighlight>
 +
将超模波模块的正面对准待测距物体,测距完毕后程序会打印距离值。
 +
 +
==代码说明==
 +
所有的开发板都共用一套Matrix代码,本模块的测试示例代码为matrix-ultrasonic_ranger,内容如下:
 +
<syntaxhighlight lang="c">
 +
int main(int argc, char ** argv)
 +
{
 +
    int distance = -1;
 +
    int pin = GPIO_PIN(7);
 +
    int board;
 +
 +
    if ((board = boardInit()) < 0) {
 +
        printf("Fail to init board\n");
 +
        return -1;
 +
    }
 +
    if (board == BOARD_NANOPI_T2)
 +
        pin = GPIO_PIN(15);
 +
   
 +
    system("modprobe "DRIVER_MODULE);
 +
    if (Hcsr04Init(pin) == -1) {
 +
        printf("Fail to init hcsr04\n");
 +
        goto err;
 +
    }
 +
    if (Hcsr04Read(&distance) != -1) {
 +
        printf("The distance is %3d cm\n", distance);
 +
    } else {
 +
        printf("Faid to get distance\n");
 +
    }
 +
    Hcsr04DeInit();
 +
err:
 +
    system("rmmod "DRIVER_MODULE);
 +
   
 +
    return 0;
 +
}
 +
</syntaxhighlight>
 +
API说明参考维基:[[Matrix API reference manual/zh|Matrix API reference manual]] <br>
 +
 +
<!---
 
==Download Matrix Source Code==
 
==Download Matrix Source Code==
 
All the matrix modules' code samples are open source. They are maintained on GitHub - https://github.com/friendlyarm/matrix.git <br>
 
All the matrix modules' code samples are open source. They are maintained on GitHub - https://github.com/friendlyarm/matrix.git <br>
Line 280: Line 407:
  
 
==Connect to Arduino==
 
==Connect to Arduino==
 
+
--->
 
==Resources==
 
==Resources==
  

Revision as of 13:41, 28 June 2016

查看中文

1 Introduction

Ultrasonic Ranger01
  • The Matrix-Ultrasonic_Ranger is used to measure the distance.
  • The module's sensor emits a sound wave, which bounces off a reflective surface and returns to the sensor. Then, using the amount of time it takes for the wave to return to the sensor, the distance to the object can be computed.

2 Features

  • 5V Power
  • Range: 5 cm - 300 cm,Accuracy: 1 cm
  • One wire gpio
  • PCB Dimension (mm): 20 x 40

超声波PCB

  • Pin Description:
Pin Description
S GPIO
V Supply Voltage 5V
G Ground

3 Basic Device Operation

  • The sensor emits a 40kHz, 6 mm sound wave, which bounces off a reflective surface and returns to the sensor. The receiver converts ultrasound waves to electrical signals in mV.
  • The master sends a signal to the module starting to emit a sound wave. After the module receives the returned signal it will will generate a high level indicating the elapsed time and the distance will be calculated by distance = (elapsed time * speed of sound)/2.
matrix Ultrasonic Ranger

4 硬件连接

4.1 连接NanoPi M1

参考下图连接模块:
Matrix-Ultrasonic_Ranger_nanopi_m1

连接说明:

Matrix-Ultrasonic_Ranger NanoPi M1
S Pin7
V Pin4
G Pin6

4.2 连接NanoPi 2

参考下图连接模块:
Matrix-Ultrasonic_Ranger_nanopi_2

连接说明:

Matrix-Ultrasonic_Ranger NanoPi 2
S Pin7
V Pin4
G Pin6

4.3 连接NanoPi M2 / NanoPi 2 Fire

NanoPi M2和NanoPi 2 Fire的40 Pin引脚定义是一模一样的,所以它们操作Matrix配件的步骤是一样的,这里仅以NanoPi M2为例。
参考下图连接模块:
Matrix-Ultrasonic_Ranger_nanopi_m2

连接说明:

Matrix-Ultrasonic_Ranger NanoPi M2
S Pin7
V Pin4
G Pin6

4.4 连接NanoPC-T2

参考下图连接模块:
Matrix-Ultrasonic_Ranger_NanoPC-T2

连接说明:

Matrix-Ultrasonic_Ranger NanoPC-T2
S Pin15
V Pin29
G Pin30

5 编译运行测试程序

启动开发板并运行Debian系统,进入系统后克隆Matrix代码仓库:

$ apt-get update && apt-get install git
$ git clone https://github.com/friendlyarm/matrix.git

克隆完成后会得到一个名为matrix的目录。

编译并安装Matrix:

$ cd matrix
$ make && make install

运行测试程序:

$ matrix-ultrasonic_ranger

注意:此模块并不支持热插拔,启动系统前需要确保硬件连接正确。
运行效果如下:

The distance is  24 cm

将超模波模块的正面对准待测距物体,测距完毕后程序会打印距离值。

6 代码说明

所有的开发板都共用一套Matrix代码,本模块的测试示例代码为matrix-ultrasonic_ranger,内容如下:

int main(int argc, char ** argv)
{
    int distance = -1;
    int pin = GPIO_PIN(7);
    int board;
 
    if ((board = boardInit()) < 0) {
        printf("Fail to init board\n");
        return -1;
    }
    if (board == BOARD_NANOPI_T2)
        pin = GPIO_PIN(15);
 
    system("modprobe "DRIVER_MODULE);
    if (Hcsr04Init(pin) == -1) {
        printf("Fail to init hcsr04\n");
        goto err;
    }
    if (Hcsr04Read(&distance) != -1) {
        printf("The distance is %3d cm\n", distance);
    } else {
        printf("Faid to get distance\n");
    }
    Hcsr04DeInit();
err:
    system("rmmod "DRIVER_MODULE);
 
    return 0;
}

API说明参考维基:Matrix API reference manual

7 Resources

8 Update Log

8.1 Feb-23-2016

  • Added the description for "NanoPi 2 branch" in Section 4
  • Added Section 5: Connect to NanoPi 2