Difference between revisions of "Matrix - Ultrasonic Ranger"
(→硬件连接) |
(→编译运行测试程序) |
||
Line 94: | Line 94: | ||
|} | |} | ||
− | == | + | ==Compile & Run Test Program== |
− | + | Boot your ARM board with Debian and copy the matrix code: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
$ apt-get update && apt-get install git | $ apt-get update && apt-get install git | ||
$ git clone https://github.com/friendlyarm/matrix.git | $ git clone https://github.com/friendlyarm/matrix.git | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | If your cloning is done successfully a "matrix" directory will be generated. | |
− | + | Compile and install Matrix: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
$ cd matrix | $ cd matrix | ||
Line 108: | Line 108: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Run test program: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
$ matrix-ultrasonic_ranger | $ matrix-ultrasonic_ranger | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Note: this module is not plug and play therefore before running the module please make sure it is connected to an ARM board.<br> | |
− | + | Here is what you should observe:<br> | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
The distance is 24 cm | The distance is 24 cm |
Revision as of 13:48, 28 June 2016
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 Compile & Run Test Program
Boot your ARM board with Debian and copy the matrix code:
$ apt-get update && apt-get install git $ git clone https://github.com/friendlyarm/matrix.git
If your cloning is done successfully a "matrix" directory will be generated.
Compile and install Matrix:
$ cd matrix $ make && make install
Run test program:
$ matrix-ultrasonic_ranger
Note: this module is not plug and play therefore before running the module please make sure it is connected to an ARM board.
Here is what you should observe:
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