2.5.3 • Published 9 years ago
mmm-usonic v2.5.3
mmm-usonic
A high performance, memory mapped, Node.js API for the HC-SR04 ultrasonic sensor connected to a Raspberry Pi. It's the updated version of clebert's r-pi-usonic API.
Getting Started
Installation
npm install mmm-usonic --saveIntegration
var usonic = require('mmm-usonic');API
usonic.init(callback)
Creates the memory mapping with a device-specific memory offset.
You must call this function only once and before any other function.
usonic.init(function (error) {
if (error) {
...
} else {
...
}
});usonic.createSensor(echoPin, triggerPin, timeout)
Creates a new ultrasonic sensor function and returns it. The measurement timeout has a default value of 750 µs.
var sensor = usonic.createSensor(24, 23, 450);sensor()
Returns the distance in cm if no measurement timeout occurs, and -1 otherwise.
var distance = sensor();Example
This example needs access to the physical memory, so it must run as root.
sudo node examples/surveyor.js
Raspberry Pi GPIO Pin Layout
Raspberry Pi Model A/B (Rev 1.0)
| Assignment | Pin | Pin | Assignment |
|---|---|---|---|
| 3.3V | 1 | 2 | 5V |
| GPIO 0 (SDA0) | 3 | 4 | 5V |
| GPIO 1 (SCL0) | 5 | 6 | GROUND |
| GPIO 4 | 7 | 8 | GPIO 14 (TXD0) |
| GROUND | 9 | 10 | GPIO 15 (RXD0) |
| GPIO 17 | 11 | 12 | GPIO 18 |
| GPIO 21 | 13 | 14 | GROUND |
| GPIO 22 | 15 | 16 | GPIO 23 |
| 3.3V | 17 | 18 | GPIO 24 |
| GPIO 10 (SPI_MOSI) | 19 | 20 | GROUND |
| GPIO 9 (SPI_MISO) | 21 | 22 | GPIO 25 |
| GPIO 11 (SPI_SCLK) | 23 | 24 | GPIO 8 (SPI_CE0_N) |
| GROUND | 25 | 26 | GPIO 7 (SPI_CE1_N) |
Raspberry Pi Model A/B (Rev 2.0)
| Assignment | Pin | Pin | Assignment |
|---|---|---|---|
| 3.3V | 1 | 2 | 5V |
| GPIO 2 (SDA1) | 3 | 4 | 5V |
| GPIO 3 (SCL1) | 5 | 6 | GROUND |
| GPIO 4 | 7 | 8 | GPIO 14 (TXD0) |
| GROUND | 9 | 10 | GPIO 15 (RXD0) |
| GPIO 17 | 11 | 12 | GPIO 18 |
| GPIO 27 | 13 | 14 | GROUND |
| GPIO 22 | 15 | 16 | GPIO 23 |
| 3.3V | 17 | 18 | GPIO 24 |
| GPIO 10 (SPI_MOSI) | 19 | 20 | GROUND |
| GPIO 9 (SPI_MISO) | 21 | 22 | GPIO 25 |
| GPIO 11 (SPI_SCLK) | 23 | 24 | GPIO 8 (SPI_CE0_N) |
| GROUND | 25 | 26 | GPIO 7 (SPI_CE1_N) |
Raspberry Pi Model B+ / Raspberry Pi 2 Model B
| Assignment | Pin | Pin | Assignment |
|---|---|---|---|
| 3.3V | 1 | 2 | 5V |
| GPIO 2 (SDA1) | 3 | 4 | 5V |
| GPIO 3 (SCL1) | 5 | 6 | GROUND |
| GPIO 4 | 7 | 8 | GPIO 14 (TXD0) |
| GROUND | 9 | 10 | GPIO 15 (RXD0) |
| GPIO 17 | 11 | 12 | GPIO 18 |
| GPIO 27 | 13 | 14 | GROUND |
| GPIO 22 | 15 | 16 | GPIO 23 |
| 3.3V | 17 | 18 | GPIO 24 |
| GPIO 10 (SPI_MOSI) | 19 | 20 | GROUND |
| GPIO 9 (SPI_MISO) | 21 | 22 | GPIO 25 |
| GPIO 11 (SPI_SCLK) | 23 | 24 | GPIO 8 (SPI_CE0_N) |
| GROUND | 25 | 26 | GPIO 7 (SPI_CE1_N) |
| ID_SD | 27 | 28 | ID_SC |
| GPIO 5 | 29 | 30 | GROUND |
| GPIO 6 | 31 | 32 | GPIO 12 |
| GPIO 13 | 33 | 34 | GROUND |
| GPIO 19 | 35 | 36 | GPIO 16 |
| GPIO 26 | 37 | 38 | GPIO 20 |
| GROUND | 39 | 40 | GPIO 21 |
Related Links
Running Tests
To run the test suite first install the development dependencies:
npm installthen run the tests:
npm test