DistanceSensor¶
The LEGO® Education SPIKE™ Distance Sensor behaves like a conventional ultrasonic range finder but also has four LEDs that can be used to create the “eyes” of a robot. Each LED can be controlled individually.
- class buildhat.DistanceSensor(port, threshold_distance=100)¶
Distance sensor
- Parameters:
port – Port of device
- Raises:
DeviceError – Occurs if there is no distance sensor attached to port
- callback(func)¶
Set callback function
- Parameters:
func – Callback function
- property connected¶
Whether device is connected or not
- Returns:
Connection status
- static desc_for_id(typeid)¶
Translate integer type id to something more descriptive than the device name
- Parameters:
typeid – Type of device
- Returns:
Description of device
- property description¶
Device on port info
- Returns:
Device description
- deselect()¶
Unselect data from mode
- property distance¶
Obtain previously stored distance
- Getter:
Returns distance
- Returns:
Stored distance
- eyes(*args)¶
Brightness of LEDs on sensor
(Sensor Right Upper, Sensor Left Upper, Sensor Right Lower, Sensor Left Lower)
- Parameters:
args – Four brightness arguments of 0 to 100
- Raises:
DistanceSensorError – Occurs if invalid brightness passed
- get()¶
Extract information from device
- Returns:
Data from device
- Raises:
DeviceError – Occurs if device not in valid mode
- get_distance()¶
Return the distance from ultrasonic sensor to object
- Returns:
Distance from ultrasonic sensor
- Return type:
int
- property interval¶
Interval between data points in milliseconds
- Getter:
Gets interval
- Setter:
Sets interval
- Returns:
Device interval
- Return type:
int
- isconnected()¶
Whether it is connected or not
- Raises:
DeviceError – Occurs if device no longer the same
- mode(modev)¶
Set combimode or simple mode
- Parameters:
modev – List of tuples for a combimode, or integer for simple mode
- property name¶
Determine name of device on port
- Returns:
Device name
- static name_for_id(typeid)¶
Translate integer type id to device name (python class)
- Parameters:
typeid – Type of device
- Returns:
Name of device
- off()¶
Turn off sensor
- on()¶
Turn on the sensor
- reverse()¶
Reverse polarity
- select()¶
Request data from mode
- Raises:
DeviceError – Occurs if device not in valid mode
- property threshold_distance¶
Threshold distance value
- Getter:
Returns threshold distance
- Setter:
Sets threshold distance
- Returns:
Threshold distance
- property typeid¶
Type ID of device
- Returns:
Type ID
- property typeidcur¶
Type ID currently present
- Returns:
Type ID
- wait_for_in_range(distance)¶
Wait until object is closer than specified distance
- Parameters:
distance – Distance
- wait_for_out_of_range(distance)¶
Wait until object is farther than specified distance
- Parameters:
distance – Distance
- property when_in_range¶
Handle motion events
- Getter:
Returns function to be called when in range
- Setter:
Sets function to be called when in range
- Returns:
In range callback
- property when_out_of_range¶
Handle motion events
- Getter:
Returns function to be called when out of range
- Setter:
Sets function to be called when out of range
- Returns:
Out of range callback
Example¶
"""Example for distance sensor"""
from signal import pause
from buildhat import DistanceSensor, Motor
motor = Motor('A')
dist = DistanceSensor('D', threshold_distance=100)
print("Wait for in range")
dist.wait_for_in_range(50)
motor.run_for_rotations(1)
print("Wait for out of range")
dist.wait_for_out_of_range(100)
motor.run_for_rotations(2)
def handle_in(distance):
"""Within range
:param distance: Distance
"""
print("in range", distance)
def handle_out(distance):
"""Out of range
:param distance: Distance
"""
print("out of range", distance)
dist.when_in_range = handle_in
dist.when_out_of_range = handle_out
pause()