ColorSensor
The LEGO® Education SPIKE™ Color Sensor can sort between eight different colors and can measure reflected and ambient or natural light.
- class buildhat.ColorSensor(port)
Color sensor
- Parameters:
port – Port of device
- Raises:
DeviceError – Occurs if there is no color 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
- get()
Extract information from device
- Returns:
Data from device
- Raises:
DeviceError – Occurs if device not in valid mode
- get_ambient_light()
Return the ambient light
- Returns:
Ambient light
- Return type:
int
- get_color()
Return the color
- Returns:
Name of the color as a string
- Return type:
str
- get_color_hsv()
Return the color
- Returns:
HSV representation
- Return type:
tuple
- get_color_rgbi()
Return the color
- Returns:
RGBI representation
- Return type:
list
- get_reflected_light()
Return the reflected light
- Returns:
Reflected light
- 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 and LED
- reverse()
Reverse polarity
- rgb_to_hsv(r, g, b)
Convert RGB to HSV
Based on https://www.rapidtables.com/convert/color/rgb-to-hsv.html algorithm
- Parameters:
r – Red
g – Green
b – Blue
- Returns:
HSV representation of color
- Return type:
tuple
- segment_color(r, g, b)
Return the color name from RGB
- Parameters:
r – Red
g – Green
b – Blue
- Returns:
Name of the color as a string
- Return type:
str
- select()
Request data from mode
- Raises:
DeviceError – Occurs if device not in valid mode
- property typeid
Type ID of device
- Returns:
Type ID
- property typeidcur
Type ID currently present
- Returns:
Type ID
- wait_for_new_color()
Wait for new color or returns immediately if first call
- Returns:
Name of the color as a string
- Return type:
str
- wait_until_color(color)
Wait until specific color
- Parameters:
color – Color to look for
Example
"""Example getting color values from color sensor"""
from buildhat import ColorSensor
color = ColorSensor('C')
print("HSV", color.get_color_hsv())
print("RGBI", color.get_color_rgbi())
print("Ambient", color.get_ambient_light())
print("Reflected", color.get_reflected_light())
print("Color", color.get_color())
print("Waiting for color black")
color.wait_until_color("black")
print("Found color black")
print("Waiting for color white")
color.wait_until_color("white")
print("Found color white")
while True:
c = color.wait_for_new_color()
print("Found new color", c)