Compare commits
14 Commits
60384d4367
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| 8441446e44 | |||
| 3efeafc55e | |||
| acbe26eb50 | |||
| 93d17833d1 | |||
| 35b3726f46 | |||
| 148d7a1c43 | |||
| f916a02d5a | |||
| 4a6cfc9974 | |||
| f28ec4994d | |||
| c1856220b1 | |||
| e6a2c24338 | |||
| 2500f3e09b | |||
| 979278d437 | |||
| e02c0a5591 |
49
diagnostics-old/ColorSensorDiagnostics.py
Normal file
49
diagnostics-old/ColorSensorDiagnostics.py
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
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())
|
||||||
49
diagnostics-old/DriveBaseDiagnostics.py
Normal file
49
diagnostics-old/DriveBaseDiagnostics.py
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
from pybricks.hubs import PrimeHub
|
||||||
|
from pybricks.pupdevices import Motor
|
||||||
|
from pybricks.parameters import Button, Color, Direction, Port, Side, Stop
|
||||||
|
from pybricks.robotics import DriveBase
|
||||||
|
from pybricks.tools import wait, StopWatch
|
||||||
|
|
||||||
|
from usys import stdin
|
||||||
|
from uselect import poll
|
||||||
|
|
||||||
|
hub = PrimeHub()
|
||||||
|
port_map = {
|
||||||
|
"A": Port.A,
|
||||||
|
"B": Port.B,
|
||||||
|
"C": Port.C,
|
||||||
|
"D": Port.D,
|
||||||
|
"E": Port.E,
|
||||||
|
"F": Port.F,
|
||||||
|
}
|
||||||
|
leftmotorport = input("Enter the left motor port: ")
|
||||||
|
left_motor = Motor(port_map[leftmotorport], Direction.COUNTERCLOCKWISE)
|
||||||
|
rightmotorport = input("Enter the right motor port: ")
|
||||||
|
right_motor = Motor(port_map[rightmotorport],Direction.CLOCKWISE) # Specify default direction
|
||||||
|
|
||||||
|
# DriveBase configuration
|
||||||
|
WHEEL_DIAMETER = 68.8 # mm (adjust for your wheels)
|
||||||
|
AXLE_TRACK = 180 # mm (distance between wheels)
|
||||||
|
drive_base = DriveBase(left_motor, right_motor, WHEEL_DIAMETER, AXLE_TRACK)
|
||||||
|
drive_base.settings(600, 500, 300, 200)
|
||||||
|
drive_base.use_gyro(True)
|
||||||
|
# Register the standard input so we can read keyboard presses.
|
||||||
|
keyboard = poll()
|
||||||
|
keyboard.register(stdin)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
# Check if a key has been pressed.
|
||||||
|
if keyboard.poll(0):
|
||||||
|
# Read the key and print it.
|
||||||
|
key = stdin.read(1)
|
||||||
|
print("You pressed:", key)
|
||||||
|
if(key == "W"):
|
||||||
|
print("Insert robot go forward code here")
|
||||||
|
elif(key == "A"):
|
||||||
|
print("Insert robot go left code here")
|
||||||
|
elif(key == "S"):
|
||||||
|
print("Insert robot go backwards code here")
|
||||||
|
elif(key == "D"):
|
||||||
|
print("Insert robot go right code here")
|
||||||
|
else:
|
||||||
|
print("That key doesn't do anything.")
|
||||||
33
diagnostics-old/HubDiagnostics.py
Normal file
33
diagnostics-old/HubDiagnostics.py
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
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
|
||||||
|
from pybricks import version
|
||||||
|
from OtherFunctions import vprint
|
||||||
|
import usys
|
||||||
|
|
||||||
|
print("Pybricks version information:", version)
|
||||||
|
print("MicroPython information:", usys.implementation)
|
||||||
|
print("MicroPython version:", usys.version)
|
||||||
|
class HubDiagnostics:
|
||||||
|
def __init__(self):
|
||||||
|
self.hub = PrimeHub()
|
||||||
|
self.port_map = {
|
||||||
|
"A": Port.A,
|
||||||
|
"B": Port.B,
|
||||||
|
"C": Port.C,
|
||||||
|
"D": Port.D,
|
||||||
|
"E": Port.E,
|
||||||
|
"F": Port.F,
|
||||||
|
}
|
||||||
|
def testLightSources(self, verbose):
|
||||||
|
v = verbose
|
||||||
|
hub.display.off()
|
||||||
|
for x in range(5):
|
||||||
|
for y in range(5):
|
||||||
|
vprint(f"Turning on pixel at position {x}, {y}...", v)
|
||||||
|
display.pixel(x, y, brightness=100)
|
||||||
|
wait(100)
|
||||||
|
vprint(f"Turning off pixel at position {x}, {y}...", v)
|
||||||
|
display.pixel(x, y, brightness=0)
|
||||||
@@ -131,11 +131,11 @@ class MotorDiagnostics:
|
|||||||
print("\n FINAL MOTOR STATISTICS")
|
print("\n FINAL MOTOR STATISTICS")
|
||||||
final = (test180 + test540 + test1000) / 3
|
final = (test180 + test540 + test1000) / 3
|
||||||
print("Final motor health score:", str(final) + "%")
|
print("Final motor health score:", str(final) + "%")
|
||||||
if final < 80:
|
if final < 65:
|
||||||
print("Your motor is in need of attention. Make sure to clean it regularly and charge the Prime Hub.")
|
print("Your motor is in need of attention. Make sure to clean it regularly and charge the Prime Hub.")
|
||||||
elif final < 90:
|
elif final < 85:
|
||||||
print("Your motor is in OK condition. Make sure to clean it regularly and charge the Prime Hub.")
|
print("Your motor is in OK condition. Make sure to clean it regularly and charge the Prime Hub.")
|
||||||
elif final < 97:
|
elif final < 95:
|
||||||
print("Your motor is in great condition!")
|
print("Your motor is in great condition!")
|
||||||
else:
|
else:
|
||||||
print("Your motor is in AMAZING condition!!!")
|
print("Your motor is in AMAZING condition!!!")
|
||||||
2
diagnostics-old/OtherFunctions.py
Normal file
2
diagnostics-old/OtherFunctions.py
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
def vprint(string, verbose):
|
||||||
|
print("[LOG (verbose enabled)]", string)
|
||||||
Reference in New Issue
Block a user