Matrix - Ultrasonic Ranger
From FriendlyELEC WiKi
Contents
1 Introduction
- 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
- 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.
4 Applications
4.1 Connect to NanoPi M1
Refer to the following connection diagram to connect the module to the NanoPi M1:
Connection Details:
Matrix-Ultrasonic_Ranger | NanoPi M1 |
S | Pin7 |
V | Pin4 |
G | Pin6 |
4.2 Connect to NanoPi 2
Refer to the following connection diagram to connect the module to the NanoPi 2:
Connection Details:
Matrix-Ultrasonic_Ranger | NanoPi 2 |
S | Pin7 |
V | Pin4 |
G | Pin6 |
4.3 Connect to NanoPi M2 / NanoPi 2 Fire
Refer to the following connection diagram to connect the module to the NanoPi M2/ NanoPi 2 Fire:
Connection Details:
Matrix-Ultrasonic_Ranger | NanoPi M2 |
S | Pin7 |
V | Pin4 |
G | Pin6 |
4.4 Connect to NanoPC-T2
Refer to the following connection diagram to connect the module to the NanoPC-T2:
Matrix-Ultrasonic_Ranger_NanoPC-T2
Connection Details:
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