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