mmm-usonic
v2.5.3
Published
A high performance, memory mapped, Node.js API for the HC-SR04 ultrasonic sensor connected to a Raspberry Pi.
Downloads
38
Maintainers
Readme
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 --save
Integration
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 install
then run the tests:
npm test