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.
npm install mmm-usonic --save
var usonic = require('mmm-usonic');
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 {
...
}
});
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);
Returns the distance in cm if no measurement timeout occurs, and -1 otherwise.
var distance = sensor();
This example needs access to the physical memory, so it must run as root.
sudo node examples/surveyor.js
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) |
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) |
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 |
To run the test suite first install the development dependencies:
npm install
then run the tests:
npm test