2 Commits

Author SHA1 Message Date
1dec912abb Update missions/tip the scale.py 2025-10-24 00:11:38 +00:00
9e0c82b26b Update missions/tip the scale.py 2025-10-23 00:52:26 +00:00
8 changed files with 32 additions and 220 deletions

View File

@@ -22,7 +22,4 @@ Load the master file into PyBricks, then send it over to the robot. Then you hol
## License ## License
GNU General Public License GNU General Public License
You can take inspiration from our code, but you can't take our exact code. You can take inspiration from our code, but you can't take our exact code.
Read LICENSE for more information.

View File

@@ -1,116 +0,0 @@
from pybricks.hubs import PrimeHub
from pybricks.pupdevices import Motor, ColorSensor
from pybricks.parameters import Port, Stop, Color, Direction
from pybricks.robotics import DriveBase
from pybricks.tools import wait, StopWatch, multitask, run_task
import asyncio
hub = PrimeHub()
left_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE)
right_motor = Motor(Port.B)
atarm1 = Motor(Port.E, Direction.COUNTERCLOCKWISE)
atarm2 = Motor(Port.F)
drive_base = DriveBase(left_motor, right_motor, wheel_diameter=56, axle_track=112)
color_sensor = ColorSensor(Port.C)
drive_base.settings(300, 500, 300, 200)
Color.ORANGE = Color(10, 100, 100)
Color.MAGENTA = Color(321, 100, 86)
async def Run1():
left_arm.run_angle(1000, 300)
right_arm.run_angle(1000,500)
await drive_base.straight(320)
await right_arm.run_angle(5000,-500, Stop.HOLD)
await right_arm.run_angle(5000,500, Stop.HOLD)
await right_arm.run_angle(5000,-500, Stop.HOLD)
await right_arm.run_angle(5000,500, Stop.HOLD)
await right_arm.run_angle(5000,-500, Stop.HOLD)
await drive_base.turn(-20)
await drive_base.straight(275)
await drive_base.turn(20)
await drive_base.straight(63)
await drive_base.turn(-30)
right_arm.run_angle(50,500)
await drive_base.turn(45)
await drive_base.straight(-135)
await drive_base.turn(-60)
await drive_base.straight(90)
await left_arm.run_angle(1000,-450)
await drive_base.straight(-145)
await left_arm.run_angle(1000,450)
await drive_base.straight(10)
await drive_base.turn(35)
await drive_base.straight(-500)
async def Run2():
await drive_base.straight(200)
await drive_base.turn(-20)
await drive_base.straight(525)
await drive_base.turn(60)
await drive_base.straight(50)
await right_arm.run_angle(2000,1000)
await drive_base.straight(-50)
await drive_base.turn(45)
await drive_base.straight(50)
await right_arm.run_angle(350,-1000)
await drive_base.turn(-100)
await drive_base.straight(-600)
async def Run3():
await drive_base.straight(915)
await drive_base.turn(-90)
await drive_base.straight(60)
await left_arm.run_angle(10000,-15000)
await drive_base.straight(-60)
await drive_base.turn(85)
await drive_base.straight(2000)
async def Run5():
await drive_base.straight(420)
await right_arm.run_angle(300,-100)
await drive_base.straight(-100)
await right_arm.run_angle(300, 100)
await drive_base.straight(-350)
async def Run6():
await drive_base.straight(420)
await right_arm.run_angle(300,-100)
await drive_base.straight(-100)
await right_arm.run_angle(300, 100)
await drive_base.straight(-350)
async def main():
if color_sensor.color() == Color.ORANGE:
await Run1()
if color_sensor.color() == Color.GREEN:
await Run2()
if color_sensor.color() == Color.WHITE:
await Run3()
if color_sensor.color() == Color.YELLOW:
await Run5()
if color_sensor.color() == Color.BLUE:
await Run6()
print(f'Detected color: {color_sensor.color()}')
# Main execution loop
while True:
run_task(main())
wait(100)

View File

@@ -1,45 +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, run_task
hub = PrimeHub()
# Initialize both motors. In this example, the motor on the
# left must turn counterclockwise to make the robot go forward.
left_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE)
right_motor = Motor(Port.B)
arm_motor = Motor(Port.D, Direction.CLOCKWISE)
arm_motor_left= Motor(Port.C, Direction.CLOCKWISE)
# Initialize the drive base. In this example, the wheel diameter is 56mm.
# The distance between the two wheel-ground contact points is 112mm.
drive_base = DriveBase(left_motor, right_motor, wheel_diameter=68.8, axle_track=180)
print('The default settings are: ' + str(drive_base.settings()))
drive_base.settings(300,1000,300,750)
# Optionally, uncomment the line below to use the gyro for improved accuracy.
drive_base.use_gyro(True)
async def main():
await drive_base.straight(519)
await arm_motor_left.run_angle(300, -100)
await arm_motor_left.run_angle(300, 500)
await drive_base.straight(180)
await drive_base.turn(-37)
await drive_base.straight(50)
await arm_motor.run_angle(300, -400)
await drive_base.straight(-150)
await drive_base.turn(135)
await drive_base.straight(50)
await arm_motor.run_angle(300, 400)
await drive_base.straight(-75)
await arm_motor.run_angle(300, 300)
await drive_base.turn(-50)
await drive_base.straight(162)
await arm_motor.run_angle(100, -200)
await drive_base.straight(30)
await arm_motor.run_angle(50,-500)
run_task(main())

View File

@@ -1,34 +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
from pybricks.tools import run_task, multitask
hub = PrimeHub()
left_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE)
right_motor = Motor(Port.B)
left_arm = Motor(Port.C, Direction.COUNTERCLOCKWISE)
right_arm = Motor(Port.D)
drive_base = DriveBase(left_motor, right_motor, wheel_diameter=68.8, axle_track=180)
drive_base.settings(600,500,300,200)
drive_base.use_gyro(True)
async def main():
await drive_base.straight(200)
await drive_base.turn(-20)
await drive_base.straight(525)
await drive_base.turn(60)
await drive_base.straight(50)
await right_arm.run_angle(2000,1000)
await drive_base.straight(-50)
await drive_base.turn(45)
await drive_base.straight(50)
await right_arm.run_angle(350,-1000)
await drive_base.turn(-100)
await drive_base.straight(-600)
run_task(main())

View File

@@ -30,14 +30,14 @@ async def main():
await right_arm.run_angle(5000,-500, Stop.HOLD) await right_arm.run_angle(5000,-500, Stop.HOLD)
await drive_base.turn(-20) await drive_base.turn(-20)
await drive_base.straight(277) await drive_base.straight(275)
await drive_base.turn(20) await drive_base.turn(20)
await drive_base.straight(65) await drive_base.straight(63)
await drive_base.turn(-30) await drive_base.turn(-30)
right_arm.run_angle(50,500) right_arm.run_angle(50,500)
await drive_base.turn(45) await drive_base.turn(45)
await drive_base.straight(-145) await drive_base.straight(-135)
await drive_base.turn(-60) await drive_base.turn(-60)
await drive_base.straight(90) await drive_base.straight(90)
await left_arm.run_angle(1000,-450) await left_arm.run_angle(1000,-450)
@@ -45,5 +45,5 @@ async def main():
await left_arm.run_angle(1000,450) await left_arm.run_angle(1000,450)
await drive_base.straight(10) await drive_base.straight(10)
await drive_base.turn(35) await drive_base.turn(35)
await drive_base.straight(-600) await drive_base.straight(-500)
run_task(main()) run_task(main())

View File

@@ -1,5 +1,4 @@
# ---JOHANNES--- # ---JOHANNES---
# THIS CODE IS NOT USED ANYMORE AND SHOULD NOT BE USED!!!!!!
from pybricks.hubs import PrimeHub from pybricks.hubs import PrimeHub
from pybricks.pupdevices import Motor, ColorSensor, UltrasonicSensor, ForceSensor from pybricks.pupdevices import Motor, ColorSensor, UltrasonicSensor, ForceSensor
from pybricks.parameters import Button, Color, Direction, Port, Side, Stop from pybricks.parameters import Button, Color, Direction, Port, Side, Stop

View File

@@ -15,28 +15,34 @@ left_arm = Motor(Port.C, Direction.COUNTERCLOCKWISE)
right_arm = Motor(Port.D) right_arm = Motor(Port.D)
drive_base = DriveBase(left_motor, right_motor, wheel_diameter=68.8, axle_track=180) drive_base = DriveBase(left_motor, right_motor, wheel_diameter=68.8, axle_track=180)
drive_base.settings(300,1000,300,200) drive_base.settings(600,500,300,200)
#drive_base.use_gyro(True) drive_base.use_gyro(True)
async def main(): async def main():
left_arm.run_angle(500,200) left_arm.run_angle(600,200)
right_arm.run_angle(500,200) right_arm.run_angle(500,200)
await drive_base.straight(70) await drive_base.straight(70)
await drive_base.turn(-55) await drive_base.turn(-70)
await drive_base.straight(900) await drive_base.straight(900)
await drive_base.turn(92.5) await drive_base.turn(115)
await drive_base.straight(75) await drive_base.straight(75)
await drive_base.straight(21) await drive_base.straight(33)
await right_arm.run_angle(500,-250) await right_arm.run_angle(500,-250)
await right_arm.run_angle(500,250) await right_arm.run_angle(500,250)
await drive_base.turn(55) await drive_base.turn(66)
await drive_base.straight(7)
await left_arm.run_angle(300,-400) await left_arm.run_angle(560,-390) #going down
print('turning now...')
await drive_base.turn(40) # turning right
await left_arm.run_angle(-410,-400) #lift a little bit
await drive_base.turn(46.5) await drive_base.turn(-46.5) #ma din din din dun
await drive_base.turn(-40) await drive_base.turn(-40)
await drive_base.straight(900) await drive_base.straight(900)
run_task(main()) run_task(main())

View File

@@ -1,5 +1,5 @@
# Guys please use the same setup code and put into the imports for consistency # Guys please use the same setup code and put into the imports for consistency
script_names = ["Run1.py", "Run2.py", "Run3.py", "Run5.py", "Run6.py"] # This is a list of the files of the mission runs script_names = ["untitled14.py", "untitled13.py"] # This is a list of the files of the mission runs
content = "" content = ""
imports = """ imports = """
from pybricks.hubs import PrimeHub from pybricks.hubs import PrimeHub
@@ -72,7 +72,7 @@ function_calls = []
# Define colors properly - one per script # Define colors properly - one per script
colors = [ colors = [
'Color.ORANGE', 'Color.GREEN', 'Color.WHITE', 'Color.ORANGE', 'Color.GREEN', 'Color.BLACK', 'Color.WHITE',
'Color.YELLOW', 'Color.BLUE', 'Color.MAGENTA', 'Color.RED', 'Color.BROWN' 'Color.YELLOW', 'Color.BLUE', 'Color.MAGENTA', 'Color.RED', 'Color.BROWN'
] ]
@@ -96,7 +96,7 @@ for i, f_name in enumerate(script_names):
m.write(func_def) m.write(func_def)
# Assign one color per script # Assign one color per script
color_condition = colors[i] color_condition = colors[i % len(colors)]
function_calls.append({ function_calls.append({
'name': func_name, 'name': func_name,
'is_async': is_async, 'is_async': is_async,
@@ -120,10 +120,10 @@ with open("main.py", 'a') as m:
m.write(f" await {func_info['name']}()\n") m.write(f" await {func_info['name']}()\n")
else: else:
m.write(f" {func_info['name']}()\n") m.write(f" {func_info['name']}()\n")
m.write(" \n") m.write(" return # Exit after running one function\n")
# Add a default case # Add a default case
m.write(" \n") m.write(" # Default case - no matching color detected\n")
m.write(" print(f'Detected color: {color_sensor.color()}')\n") m.write(" print(f'Detected color: {color_sensor.color()}')\n")
# Write the main loop # Write the main loop
@@ -132,3 +132,8 @@ with open("main.py", 'a') as m:
m.write("while True:\n") m.write("while True:\n")
m.write(" run_task(main())\n") m.write(" run_task(main())\n")
m.write(" wait(100)\n") m.write(" wait(100)\n")
print("Script merger completed successfully!")
print("Functions created:")
for func_info in function_calls:
print(f" - {func_info['name']}() triggered by {func_info['color']} (from {func_info['filename']})")