Compare commits
7 Commits
dev
...
a91e79a02a
| Author | SHA1 | Date | |
|---|---|---|---|
| a91e79a02a | |||
| ffd89e5698 | |||
| 17db936432 | |||
| d3a740e705 | |||
| 960fd598c9 | |||
| f3460290e5 | |||
| 345da15b22 |
@@ -1,49 +0,0 @@
|
|||||||
from pybricks.hubs import PrimeHub
|
|
||||||
from pybricks.pupdevices import Motor, ColorSensor, UltrasonicSensor, ForceSensor
|
|
||||||
from pybricks.parameters import Button, Color, Direction, Port, Side, Stop
|
|
||||||
from pybricks.robotics import DriveBase
|
|
||||||
from pybricks.tools import wait, StopWatch
|
|
||||||
|
|
||||||
hub = PrimeHub()
|
|
||||||
class ColorSensorDiagnostics:
|
|
||||||
def __init__(self):
|
|
||||||
self.colorsensor = None
|
|
||||||
self.port_map = {
|
|
||||||
"A": Port.A,
|
|
||||||
"B": Port.B,
|
|
||||||
"C": Port.C,
|
|
||||||
"D": Port.D,
|
|
||||||
"E": Port.E,
|
|
||||||
"F": Port.F,
|
|
||||||
}
|
|
||||||
def initializeColorSensor(self):
|
|
||||||
valid_ports = {"A", "B", "C", "D", "E", "F"}
|
|
||||||
while True:
|
|
||||||
colorinput = input(
|
|
||||||
"This will test your color sensor.\n"
|
|
||||||
"Enter the port for the color sensor you would like to test (A, B, C, D, E, or F): "
|
|
||||||
).strip().upper()
|
|
||||||
if colorinput not in valid_ports:
|
|
||||||
print("Invalid port. Please enter A-F.")
|
|
||||||
continue
|
|
||||||
try:
|
|
||||||
if self.colorsensor is None:
|
|
||||||
self.colorsensor = ColorSensor(self.port_map[colorinput])
|
|
||||||
print(f"Color Sensor initialized on port {colorinput}.")
|
|
||||||
else:
|
|
||||||
print(f"Reusing existing color sensor on port {colorinput}.")
|
|
||||||
break
|
|
||||||
|
|
||||||
except OSError as e:
|
|
||||||
if e.errno == 16: # EBUSY
|
|
||||||
print(f"Port {colorinput} is already in use. Reusing existing color sensor.")
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
print(f"Error initializing color sensor on port {colorinput}: {e}")
|
|
||||||
print("Make sure a color sensor is actually connected to this port.")
|
|
||||||
self.colorsensor = None
|
|
||||||
self.colorsensor.detectable_colors(Color.RED, Color.YELLOW, Color.GREEN, Color.BLUE, Color.WHITE, Color.NONE)
|
|
||||||
def printOutput(self):
|
|
||||||
while True:
|
|
||||||
print("HSV output:", self.colorsensor.hsv)
|
|
||||||
print("Detected color:", self.colorsensor.color())
|
|
||||||
@@ -41,7 +41,7 @@ class MotorDiagnostics:
|
|||||||
# Stability: penalize deviation relative to desired
|
# Stability: penalize deviation relative to desired
|
||||||
stability = max(0, 100 - (stdev_speed / desired) * 100)
|
stability = max(0, 100 - (stdev_speed / desired) * 100)
|
||||||
|
|
||||||
# Normalize load: map 10 to 20 as baseline (around 0%), 200 as max (around 100%)
|
# Normalize load: map 10–20 as baseline (≈0%), 200 as max (≈100%)
|
||||||
baseline = 15 # midpoint of idle range
|
baseline = 15 # midpoint of idle range
|
||||||
max_observed = 200 # heavy load/stall
|
max_observed = 200 # heavy load/stall
|
||||||
normalized_load = max(0, avg_load - baseline)
|
normalized_load = max(0, avg_load - baseline)
|
||||||
Reference in New Issue
Block a user