mirror of
https://github.com/pybricks/pybricks-api.git
synced 2026-09-11 09:05:07 +00:00
46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
#!/usr/bin/env pybricks-micropython
|
|
from pybricks.parameters import Port
|
|
from pybricks.iodevices import Ev3devSensor
|
|
|
|
|
|
class MySensor(Ev3devSensor):
|
|
"""Example of extending the Ev3devSensor class."""
|
|
|
|
def __init__(self, port):
|
|
"""Initialize the sensor."""
|
|
|
|
# Initialize the parent class.
|
|
super().__init__(port)
|
|
|
|
# Get the sysfs path.
|
|
self.path = "/sys/class/lego-sensor/sensor" + str(self.sensor_index)
|
|
|
|
def get_modes(self):
|
|
"""Get a list of mode strings so we don't have to look them up."""
|
|
|
|
# The path of the modes file.
|
|
modes_path = self.path + "/modes"
|
|
|
|
# Open the modes file.
|
|
with open(modes_path, "r") as m:
|
|
# Read the contents.
|
|
contents = m.read()
|
|
|
|
# Strip the newline symbol, and split at every space symbol.
|
|
return contents.strip().split(" ")
|
|
|
|
|
|
# Initialize the sensor
|
|
sensor = MySensor(Port.S3)
|
|
|
|
# Show where this sensor can be found
|
|
print(sensor.path)
|
|
|
|
# Print the available modes
|
|
modes = sensor.get_modes()
|
|
print(modes)
|
|
|
|
# Read mode 0 of this sensor
|
|
val = sensor.read(modes[0])
|
|
print(val)
|