upm
0.5.1
Sensor/Actuator repository for libmraa (v0.9.1)
|
API for the DFRobot URM37 Ultrasonic Ranger. More...
The driver was tested with the DFRobot URM37 Ultrasonic Ranger, V4. It has a range of between 5 and 500 centimeters (cm). It supports both analog distance measurement, and UART based temperature and distance measurements. This driver does not support PWM measurement mode.
For UART operation, the only supported baud rate is 9600. In addition, you must ensure that the UART TX/RX pins are configured for TTL operation (the factory default) rather than RS232 operation, or permanent damage to your URM37 and/or MCU will result. On power up, the LED indicator will blink one long pulse, followed by one short pulse to indicate TTL operation. See the DFRobot wiki for more information:
(https://www.dfrobot.com/wiki/index.php?title=URM37_V4.0_Ultrasonic_Sensor_%28SKU:SEN0001%29)
An example using analog mode
An example using UART mode
Public Member Functions | |
URM37 (int aPin, int resetPin, int triggerPin, float aref=5.0) | |
URM37 (int uart, int resetPin) | |
~URM37 () | |
void | reset () |
float | getDistance (int degrees=0) |
float | getTemperature () |
uint8_t | readEEPROM (uint8_t addr) |
void | writeEEPROM (uint8_t addr, uint8_t value) |
Protected Member Functions | |
void | init () |
std::string | sendCommand (std::string cmd) |
Protected Attributes | |
mraa::Uart * | m_uart |
mraa::Aio * | m_aio |
mraa::Gpio * | m_gpioTrigger |
mraa::Gpio | m_gpioReset |
URM37 | ( | int | aPin, |
int | resetPin, | ||
int | triggerPin, | ||
float | aref = 5.0 |
||
) |
URM37 object constructor (Analog mode)
aPin | Analog pin to use |
resetPin | GPIO pin to use for reset |
triggerPin | GPIO pin to use for triggering a distance measurement |
aref | The analog reference voltage, default 5.0 |
URM37 | ( | int | uart, |
int | resetPin | ||
) |
URM37 object constructor (UART mode)
uart | Default UART to use (0 or 1). |
resetPin | GPIO pin to use for reset |
void reset | ( | ) |
Reset the device. This will take approximately 3 seconds to complete.
float getDistance | ( | int | degrees = 0 | ) |
Get the distance measurement. A return value of 65535.0 in UART mode indicates an invalid measurement.
degrees | in UART mode, this specifies the degrees to turn an attached PWM servo connected to the MOTO output on the URM37. Default is 0. Valid values are 0-270. This option is ignored in analog mode. |
float getTemperature | ( | void | ) |
Get the temperature measurement. This is only valid in UART mode.
uint8_t readEEPROM | ( | uint8_t | addr | ) |
In UART mode only, read a value from the EEPROM and return it.
addr | The address in the EEPROM to read. Valid values are between 0x00-0x04. |
void writeEEPROM | ( | uint8_t | addr, |
uint8_t | value | ||
) |
In UART mode only, write a value into an address on the EEPROM.
addr | The address in the EEPROM to write. Valid values are between 0x00-0x04. |
value | The value to write |