Update final/main4.py

This commit is contained in:
2025-10-09 22:57:18 +00:00
parent 0664a619b3
commit c2204e71ab

View File

@@ -9,82 +9,11 @@ left_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE)
right_motor = Motor(Port.B) right_motor = Motor(Port.B)
left_arm = Motor(Port.C, Direction.COUNTERCLOCKWISE) 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(550,700,100,100) drive_base.settings(550,700,100,100)
drive_base.use_gyro(True) drive_base.use_gyro(True)
color_sensor = ColorSensor(Port.F)
color_sensor = ColorSensor(Port.F) hub.speaker.volume(50) # Set the volume of the speaker
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)
# Celebration sound types # Celebration sound types
class CelebrationSound: class CelebrationSound:
@@ -107,7 +36,6 @@ async def play_victory_fanfare():
for freq, duration in notes: for freq, duration in notes:
await hub.speaker.beep(freq, duration) await hub.speaker.beep(freq, duration)
await wait(50) await wait(50)
async def play_level_up(): async def play_level_up():
"""Upward scale for level completion""" """Upward scale for level completion"""
notes = [ notes = [
@@ -124,7 +52,6 @@ async def play_level_up():
for freq, duration in notes: for freq, duration in notes:
await hub.speaker.beep(freq, duration) await hub.speaker.beep(freq, duration)
await wait(20) await wait(20)
async def play_success_chime(): async def play_success_chime():
"""Simple success notification""" """Simple success notification"""
notes = [ notes = [
@@ -136,7 +63,6 @@ async def play_success_chime():
for freq, duration in notes: for freq, duration in notes:
await hub.speaker.beep(freq, duration) await hub.speaker.beep(freq, duration)
await wait(50) await wait(50)
async def play_ta_da(): async def play_ta_da():
"""Classic "ta-da!" sound""" """Classic "ta-da!" sound"""
notes = [ notes = [
@@ -147,14 +73,12 @@ async def play_ta_da():
for freq, duration in notes: for freq, duration in notes:
await hub.speaker.beep(freq, duration) await hub.speaker.beep(freq, duration)
await wait(100) await wait(100)
async def play_power_up(): async def play_power_up():
"""Rising power-up sound""" """Rising power-up sound"""
for freq in range(200, 800, 50): for freq in range(200, 800, 50):
await hub.speaker.beep(freq, 50) await hub.speaker.beep(freq, 50)
await wait(10) await wait(10)
await hub.speaker.beep(1000, 200) await hub.speaker.beep(1000, 200)
async def play_rickroll_inspired(): async def play_rickroll_inspired():
"""Fun 80s-style dance beat inspired sound""" """Fun 80s-style dance beat inspired sound"""
# Upbeat bouncy rhythm # Upbeat bouncy rhythm
@@ -167,7 +91,6 @@ async def play_rickroll_inspired():
for freq, duration in pattern: for freq, duration in pattern:
await hub.speaker.beep(freq, duration) await hub.speaker.beep(freq, duration)
await wait(50) await wait(50)
async def celebrate_mission_complete(sound_type=CelebrationSound.SUCCESS_CHIME): async def celebrate_mission_complete(sound_type=CelebrationSound.SUCCESS_CHIME):
""" """
Main celebration function to call after completing a mission. Main celebration function to call after completing a mission.
@@ -204,16 +127,78 @@ async def celebrate_mission_complete(sound_type=CelebrationSound.SUCCESS_CHIME):
hub.light.off() hub.light.off()
async def main(): async def Run1():
"""Use color sensor to select runs""" await multitask(left_arm.run_angle(1000, 300), right_arm.run_angle(1000,500))
print("Place colored object in front of sensor:") await drive_base.straight(320)
print("RED=Run1, GREEN=Run2, BLUE=Run3, YELLOW=Test")
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 multitask(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)
while True: while True:
await celebrate_mission_complete(CelebrationSound.LEVEL_UP) await celebrate_mission_complete(CelebrationSound.LEVEL_UP)
color_reflected_percent = await color_sensor.reflection() color_reflected_percent = await color_sensor.reflection()
print(color_reflected_percent) print(color_reflected_percent)
@@ -224,33 +209,26 @@ async def main():
print('Running Mission 1') print('Running Mission 1')
await Run1() await Run1()
await celebrate_mission_complete(CelebrationSound.VICTORY_FANFARE) await celebrate_mission_complete(CelebrationSound.VICTORY_FANFARE)
elif color_detected == Color.WHITE: elif color_detected == Color.WHITE:
print('Running Mission 2') print('Running Mission 2')
await Run2() await Run2()
await celebrate_mission_complete(CelebrationSound.RICKROLL_INSPIRED) await celebrate_mission_complete(CelebrationSound.RICKROLL_INSPIRED)
elif color_detected == Color.YELLOW: elif color_detected == Color.YELLOW:
print('Running Mission 3') print('Running Mission 3')
await Run3() await Run3()
await celebrate_mission_complete(CelebrationSound.SUCCESS_CHIME) await celebrate_mission_complete(CelebrationSound.SUCCESS_CHIME)
elif color_detected == Color.BLUE: elif color_detected == Color.BLUE:
print('Running Mission 5') print('Running Mission 5')
await Run5() await Run5()
await celebrate_mission_complete(CelebrationSound.POWER_UP) await celebrate_mission_complete(CelebrationSound.POWER_UP)
elif color_detected == Color.RED: elif color_detected == Color.RED:
print('Running Mission 6') print('Running Mission 6')
await Run6() await Run6()
await celebrate_mission_complete(CelebrationSound.LEVEL_UP) await celebrate_mission_complete(CelebrationSound.LEVEL_UP)
else: else:
hub.light.off() hub.light.off()
left_motor.stop() left_motor.stop()
right_motor.stop() right_motor.stop()
await wait(100) #prevent loop from iterating fast await wait(100) #prevent loop from iterating fast
# Main execution loop # Main execution loop
run_task(main()) run_task(main())