Files
pynamics/diagnostics/FullDiagnostics.py

66 lines
4.7 KiB
Python
Raw Normal View History

2025-12-19 22:41:25 +00:00
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()
from BatteryDiagnostics import BatteryDiagnostics
from MotorDiagnostics import MotorDiagnostics
from ColorSensorDiagnostics import ColorSensorDiagnostics
2026-01-09 19:20:14 +00:00
from DriveBaseDiagnostics import DriveBaseDiagnostics
2025-12-19 22:41:25 +00:00
battery = BatteryDiagnostics(HUB)
motor = MotorDiagnostics(HUB, Motor)
colorsensor = ColorSensorDiagnostics(HUB, ColorSensor)
2026-01-09 19:20:14 +00:00
drivebase = DriveBaseDiagnostics(HUB, Motor, DriveBase)
2025-12-19 22:41:25 +00:00
CLEARCONFIRM = input("Clear the console before proceeding? Y/N (default: yes): ")
if(CLEARCONFIRM == "Y" or CLEARCONFIRM == "y" or CLEARCONFIRM == "yes" or CLEARCONFIRM == ""):
print("Clearing console... \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n")
print("""
2026-01-09 00:04:11 +00:00
The free and open source diagnostics tool for LEGO® Education SPIKE Prime robots, designed for FIRST Lego League.
Developed by Team 65266, Lego Dynamics.
2025-12-19 22:41:25 +00:00
"""
)
while True:
print("\nWhich diagnostic do you want to perform?")
print("Enter 'b' for battery diagnostics")
print("Enter 'm' for motor diagnostics")
print("Enter 'cs' for color sensor diagnostics")
print("Enter 'q' to quit")
choice = input("Your choice: ").strip().lower()
if choice == "b":
print("-----------------------BATTERY DIAGNOSTICS-----------------------")
print("This test will check the battery voltage and current. It will measure these over a period of 3 seconds and provide average and deviation values. Your voltage should be above 7800 mV for optimal performance.")
input("Press Enter to begin the battery diagnostics.")
battery.printAll()
print("Battery diagnostics completed.")
elif choice == "m":
print("------------------------MOTOR DIAGNOSTICS------------------------")
motor.fullTest()
print("Motor diagnostics completed.")
2026-01-09 00:04:11 +00:00
2025-12-19 22:41:25 +00:00
elif choice == "q":
2026-01-09 00:04:11 +00:00
print("Diagnostics completed successfully. Exiting program.")
2025-12-19 22:41:25 +00:00
break
elif choice == "cs":
print("---------------------COLOR SENSOR DIAGNOSTICS---------------------")
colorsensor.printAll()
print("Color sensor diagnostics completed.")
2026-01-09 19:20:14 +00:00
elif choice == "db":
print("----------------------DRIVE BASE DIAGNOSTICS----------------------")
drivebase.printAll()
print("Drivebase diagnostics completed.")
2025-12-19 22:41:25 +00:00
else:
print("Invalid choice. Please enter 'b', 'm', or 'q'.")