Compare commits
154 Commits
TwistScrim
...
e254c65c56
| Author | SHA1 | Date | |
|---|---|---|---|
| e254c65c56 | |||
| b3ec4861c7 | |||
|
|
9f5a41eace | ||
|
|
686875a066 | ||
|
|
6d54f9c2d7 | ||
| 10960a8473 | |||
| 19f79b91d1 | |||
| 1c0896cbeb | |||
| d2738e2615 | |||
| 1ee90ac2e1 | |||
| a8d8f5c8e0 | |||
| 31f482f576 | |||
| 30a5392e56 | |||
| 3b22d28e98 | |||
|
|
9cdb70dd80 | ||
|
|
c3c875e80e | ||
|
|
809789837d | ||
| 39bfe7b307 | |||
|
|
80d6300fc0 | ||
|
|
b25a2a5feb | ||
| 2d614c0e38 | |||
| c7801d17c0 | |||
| 6e82f4d476 | |||
| 0c4335993a | |||
| ff6100a964 | |||
| 974f87c4c4 | |||
| a50b0cd1d7 | |||
| 16e96693cc | |||
| acc44dac22 | |||
| 411f46d55e | |||
| 69745c053f | |||
| 214ea1c22e | |||
| 074703af1a | |||
| 9061eef311 | |||
| e924043945 | |||
| 94043eb522 | |||
| a690350d1d | |||
| 8d4b296331 | |||
| 73553b0964 | |||
| b1f378eae7 | |||
| 439aca673f | |||
| 4b7491637d | |||
| 9ca07a36a8 | |||
| 6c6b7f1f02 | |||
| b97dcf6837 | |||
| eea26150f9 | |||
| d056255994 | |||
| 5f0ffea7bc | |||
| 9a573c4eb2 | |||
| a0a4fa4792 | |||
| 14bc8d291a | |||
| b91e701f4c | |||
| debbc4e4d0 | |||
| 0c7633d92d | |||
| 3b81a3ff2b | |||
| 401033b185 | |||
| 9cdd9886e3 | |||
| 3a45721812 | |||
| a65ad1470c | |||
| b36a9f3355 | |||
| 21e8bd68c2 | |||
| 7e1d310e24 | |||
| 37b025088f | |||
| e785a8ad05 | |||
| a6bbba9419 | |||
| 8ccf8b9a5a | |||
| bb95852bf1 | |||
| 9ca160a8c7 | |||
| 882ba3e13a | |||
| 33b926cb1f | |||
| 4ff5de480d | |||
| aa062122de | |||
| 0fbb38baeb | |||
| 3e1928fcad | |||
| ef0ff44f2b | |||
| 7b539b45d0 | |||
| 9a320589ab | |||
| 4d1bd8abe3 | |||
| 1317c8e8ce | |||
| 54e8c9eba5 | |||
| 9d3d8b48e4 | |||
| 702e05e7f7 | |||
| 5427c73f1c | |||
| b41f833c5e | |||
| 3765db3001 | |||
| 94bae3c140 | |||
| dbb0749ff3 | |||
| 831b75025d | |||
| 249071f5c3 | |||
| 32a695e9ca | |||
| 2d2863726b | |||
| 1dec912abb | |||
| 12f3d97a9e | |||
| 99aa81a68c | |||
| acfe0e622e | |||
| 4ad60502b9 | |||
| 9e0c82b26b | |||
| 819b222610 | |||
| a16d5deb92 | |||
| 30bc22a457 | |||
| 1cb08a0c32 | |||
| 11acca0744 | |||
| 68aff887da | |||
| 1f2a467b9b | |||
| b3b0590bb9 | |||
| d8f1d47882 | |||
| e0061dc672 | |||
| 4496396d0b | |||
| 3ec1aafbeb | |||
| 6c9efe26f9 | |||
| cf1f8a1995 | |||
| 2567e8b8d7 | |||
| cb79ecbb95 | |||
| 59213ae3f6 | |||
| 97963488eb | |||
| b263687c3b | |||
| e32c773d58 | |||
| 50dd00cba6 | |||
| f3f99f4e94 | |||
| ce4435e7eb | |||
| b8476d4bfc | |||
| 8bd76e5692 | |||
| 9c2b3a2ad9 | |||
| 639588e253 | |||
| 48f504cbda | |||
| 51d7255cd0 | |||
| 53d13476a9 | |||
| c6783889b7 | |||
| 9eada9f151 | |||
| 79baeca507 | |||
| 8667a66ab1 | |||
|
|
bcc47c1d1b | ||
|
|
e9e40896f2 | ||
| bbbfe0078c | |||
| f69c61e796 | |||
| 8061eb71d5 | |||
| 5e1f3098f9 | |||
| 19afacd87b | |||
| 9b04c18889 | |||
| 1a3abbb4d1 | |||
| ae114667f1 | |||
| 8391619c71 | |||
| 7e2dc0b7c9 | |||
| 29bd9f0e23 | |||
| a3b04d3e00 | |||
| 2d9eb496a3 | |||
| 42090eae56 | |||
| f7072a6207 | |||
| 95c3491b44 | |||
| 47c89cba0a | |||
| b8620e37aa | |||
| 3527ee5600 | |||
| a20bf2255b | |||
| 9cff4d8626 |
12
LINEUPS.md
12
LINEUPS.md
@@ -2,14 +2,14 @@
|
||||
|
||||
## These are the line-up positions for the robot game for various missions.
|
||||
|
||||
- Mission Run #1 (Mission #1) [Right/Blue Home] - The left yellow part of the right arm attachment is positioned with its right edge on the 5th thin line from the left. Note that this is NOT positioned from the back of the robot.
|
||||
- Mission Run #1 (Run #1) [Right/Blue Home] - The left yellow part of the right arm attachment is positioned with its right edge on the 5th thin line from the left. Note that this is NOT positioned from the back of the robot. Also, when counting these lines, make sure you count from the inside curve, not the outside.
|
||||
|
||||
- Mission Run #2 (Send Over) [Right/Blue Home] - The robot should be lined up on the vertical edge of the left home. The robot's right side should be positioned on the 1st thin line from the top. Note that the 0th line is the one that is not part of the curve.
|
||||
<img src="https://codes.fll-65266.org/FLL_65266_LEGO_DYNAMICS/solutions_season_unearthed/raw/branch/do-not-merge/r1l.png" alt="Alt text" width="300"/>
|
||||
|
||||
- Mission Run #3 (Sand mission) [Right/Blue Home] - The robot should be lined up on the vertical edge of the left home. The robot's left side should be positioned on the 1/2th thin line from the bottom.
|
||||
- Mission Run #2 (Tip the scales) [Right/Blue Home] - The middle of the left edge of the robot should be positioned on the 2nd thick line from the left.
|
||||
|
||||
- Mission Run #4 (Boat mission) [Left/Red Home] - The robot should be lined up on the vertical edge of the left home. The robot's right side should be positioned on the 2nd thick line from the bottom.
|
||||
- Mission Run #3 (Send Over) [Right/Blue Home] - The robot should be lined up on the vertical edge of the right home. The robot's right edge should be positioned on the 1st thin line from the top. Note that the 0th line is the one that is in the inner curve.
|
||||
|
||||
- Mission Run #5 (Bautism) [Left/Red Home] - The robot's left edge should be positioned at the 1st thick, 2nd thin line from the left.
|
||||
- Mission Run #4 (Run #4) [Left/Red Home] - The robot's left edge should be positioned on the 2nd thick line from the left.
|
||||
|
||||
- Mission Run #6 (Not-so-heavy Lifting) [Right/Blue Home] - The robot's right edge should be positioned at the 1st thick from the right.
|
||||
- Mission Run #5 (Boat mission) [Left/Red Home] - There are two alignments for this. When sending off the robot for part 1, the robot should be facing the right home. It's right edge should be positioned at the very bottom edge of the board. Once it completes the pulling part, once it comes back begin part 2. For part 2, the middle of the robot's right side should be positioned in the middle of the 3rd thick and the 3rd thick, 1st thin lines from the top. For both runs the robot should be facing the blue home.
|
||||
73
README.md
73
README.md
@@ -14,7 +14,7 @@
|
||||
|
||||
## Project Overview
|
||||
|
||||
Welcome to the official code repository for **Team 65266 Lego Dynamics**! This repository contains all the Pybricks code powering our robot through the UNEARTHED season missions. Our modular approach allows for flexible mission execution and quick color-sensor-based run selection.
|
||||
Welcome to the official code repository for **Team 65266 - Lego Dynamics**! This repository contains all the Pybricks code powering our robot through the UNEARTHED season missions. Our modular approach allows for flexible mission execution and quick color-sensor-based run selection.
|
||||
|
||||
---
|
||||
|
||||
@@ -26,8 +26,8 @@ Welcome to the official code repository for **Team 65266 Lego Dynamics**! This r
|
||||
|-----------|--------------|
|
||||
| **Robot Name** | Optimus Prime III |
|
||||
| **Firmware** | Pybricks |
|
||||
| **Attachment Motors** | 2× Large Motors (Ports C & D) |
|
||||
| **Drive Motors** | 2× Small Motors (Ports A & B) |
|
||||
| **Attachment Motors** | 2x Large Motors (Ports C & D) |
|
||||
| **Drive Motors** | 2x Small Motors (Ports A & B) |
|
||||
| **Sensors** | Up-facing Color Sensor (Quick Start) |
|
||||
| **Attachments** | Multiple mission-specific tools |
|
||||
|
||||
@@ -46,10 +46,10 @@ Our codebase is organized for maximum efficiency and modularity:
|
||||
```
|
||||
Repository
|
||||
┣ run_1.py # Individual mission runs
|
||||
┣ run_2.py # Each file = 1+ mission completions
|
||||
┣ run_2.py
|
||||
┣ run_3.py
|
||||
┣ ...
|
||||
┗ master.py # 🎯 Combined master file with color-start logic
|
||||
┗ masterFile.py # 🎯 Combined master file with color-start logic - this changes periodically as we release new versions. Check this README if you are unsure what code should be loaded on the robot.
|
||||
```
|
||||
|
||||
### Workflow
|
||||
@@ -61,34 +61,45 @@ Repository
|
||||
|
||||
## How to Use
|
||||
|
||||
### Installation & Deployment
|
||||
### Installation & Deployment - from the server - everyday
|
||||
|
||||
1. **Load the Code**
|
||||
```bash
|
||||
# Open the master.py file in Pybricks IDE
|
||||
```
|
||||
1. Download the file codes_for_scrimmage/hazmat/mainhazmatUPD.py
|
||||
- You can do this through the repo, by using cURL, or by using git.
|
||||
- Repo - Go to [codes_for_scrimmage/hazmat/mainhazmatUPD.py](codes_for_scrimmage/hazmat/mainhazmatUPD.py) and click the "Download" button.
|
||||
- cURL or another HTTP data transferrer -
|
||||
|
||||
2. **Connect to Robot**
|
||||
- Pair your robot via Bluetooth in Pybricks
|
||||
```curl -o mainhazmatUPD.py https://codes.fll-65266.org/FLL_65266_LEGO_DYNAMICS/solutions_season_unearthed/raw/branch/main/codes_for_scrimmage/hazmat/mainhazmatUPD.py```
|
||||
- git CLI -
|
||||
|
||||
```git clone -b dev https://codes.fll-65266.org/FLL_65266_LEGO_DYNAMICS/solutions_season_unearthed.git && cd solutions_season_unearthed/codes_for_scrimmage/hazmat```
|
||||
|
||||
Then use mainhazmatUPD.py.
|
||||
|
||||
2. Open https://code.pybricks.com/ and select the "Import a file" button on the top of the left bar. Import the .py file. Pair your robot via Bluetooth in Pybricks by selecting the Bluetooth button.
|
||||
|
||||
- Import button looks like this:
|
||||

|
||||
- Bluetooth button looks like this:
|
||||

|
||||
|
||||
3. **Upload to Robot** - Click "Download and Run" or send the program to the robot
|
||||
- Run button looks like this: 
|
||||
|
||||
3. **Upload to Robot**
|
||||
- Click "Download and Run" or send the program to the robot
|
||||
|
||||
4. **Start Your Run**
|
||||
- Hold a colored LEGO brick up to the color sensor
|
||||
- Different colors trigger different mission runs!
|
||||
- If starting without Pybricks, press the center circular button on the SPIKE Prime Hub to start the program.
|
||||
- Hold a colored LEGO brick up to the color sensor.
|
||||
- Different colors trigger different mission runs - color mapping is below.
|
||||
|
||||
### Color Start System
|
||||
| Color | Mission | Celebration Sound |
|
||||
|-------|-----------|------------------|
|
||||
| Green 🟩 | Run 1 | Victory Fanfare |
|
||||
| White ⚪ | Run 2 | Rickroll Inspired |
|
||||
| Yellow 🟨 | Run 3 | Success Chime |
|
||||
| Orange 🟧 | Run 4 | Power Up |
|
||||
| Blue 🟦 | Run 5 | Power Up |
|
||||
| Red 🟥 | Run 6 | Ta-Da! |
|
||||
|
||||
> **Tip** Organize your colored bricks before the match for quick run selection!
|
||||
| Color | Mission |
|
||||
|-------|-----------|
|
||||
| ```Green 🟩 ```| Run 1 |
|
||||
| ```Purple 🟪 ```| Run 2 |
|
||||
| ```Red 🟥 ```| Run 3 |
|
||||
| ```Yellow 🟨 ```| Run 4 |
|
||||
| ```Blue 🟦 ```| Run 5 |
|
||||
| ```Orange 🟧 ```| Run 6 |
|
||||
|
||||
---
|
||||
|
||||
@@ -114,9 +125,7 @@ Team members can contribute by:
|
||||
|
||||
**GNU General Public License v3.0**
|
||||
|
||||
```
|
||||
You can take inspiration from our code, but you can't take our exact code.
|
||||
```
|
||||
|
||||
This project is licensed under GPL-3.0 - see the [LICENSE](LICENSE) file for complete details.
|
||||
|
||||
@@ -130,14 +139,8 @@ This project is licensed under GPL-3.0 - see the [LICENSE](LICENSE) file for com
|
||||
|
||||
## Contact & Support
|
||||
|
||||
**Team 65266 Lego Dynamics**
|
||||
**Team 65266 - Lego Dynamics**
|
||||
|
||||
Questions about our approach? Interested in collaboration? Reach out!
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||
Star this repo if you found it helpful!
|
||||
|
||||
</div>
|
||||
@@ -2,7 +2,7 @@ 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
|
||||
from pybricks.tools import wait, StopWatch, run_task, multitask
|
||||
|
||||
hub = PrimeHub()
|
||||
|
||||
@@ -24,22 +24,19 @@ 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 arm_motor_left.run_angle(-10000, 300)
|
||||
await arm_motor_left.run_angle(10000, 600)
|
||||
await drive_base.straight(160)
|
||||
await drive_base.turn(-30)
|
||||
await drive_base.straight(50)
|
||||
await arm_motor.run_angle(300, -400)
|
||||
await arm_motor.run_angle(3000, 3000)
|
||||
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)
|
||||
|
||||
await arm_motor.run_angle(10000, -3000)
|
||||
await drive_base.straight(-100)
|
||||
await drive_base.turn(-54)
|
||||
await arm_motor.run_angle(10000, -3000)
|
||||
await drive_base.straight(200)
|
||||
await arm_motor.run_angle(10000, 10000)
|
||||
run_task(main())
|
||||
228
codes_for_scrimmage/hazmat/HazmatCodeChanges.py
Normal file
228
codes_for_scrimmage/hazmat/HazmatCodeChanges.py
Normal file
@@ -0,0 +1,228 @@
|
||||
from pybricks.pupdevices import Motor, ColorSensor, UltrasonicSensor, ForceSensor
|
||||
from pybricks.parameters import Button, Color, Direction, Port, Side, Stop
|
||||
from pybricks.tools import run_task, multitask
|
||||
from pybricks.tools import wait, StopWatch
|
||||
from pybricks.robotics import DriveBase
|
||||
from pybricks.hubs import PrimeHub
|
||||
|
||||
# Initialize hub and devices
|
||||
hub = PrimeHub()
|
||||
left_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE)
|
||||
right_motor = Motor(Port.B)
|
||||
left_arm = Motor(Port.C)
|
||||
right_arm = Motor(Port.D)
|
||||
lazer_ranger = UltrasonicSensor(Port.E)
|
||||
color_sensor = ColorSensor(Port.F)
|
||||
|
||||
# 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)
|
||||
|
||||
WALL_DISTANCE = 300 # mm
|
||||
|
||||
async def drive_forward():
|
||||
"""Drive forward continuously using DriveBase."""
|
||||
drive_base.drive(400, 0)
|
||||
|
||||
|
||||
async def monitor_distance():
|
||||
"""Monitor ultrasonic sensor and stop when wall is detected."""
|
||||
while True:
|
||||
distance = await lazer_ranger.distance()
|
||||
print('Distancing...',distance)
|
||||
|
||||
if distance < WALL_DISTANCE:
|
||||
# Stop the drivebase
|
||||
await drive_base.stop
|
||||
print(f"Wall detected at {distance}mm!")
|
||||
break
|
||||
|
||||
# Small delay to prevent overwhelming the sensor
|
||||
await wait(50)
|
||||
|
||||
# New Section
|
||||
async def Run1(): # From M8_5.py
|
||||
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(277)
|
||||
await drive_base.turn(20)
|
||||
await drive_base.straight(65)
|
||||
await drive_base.turn(-30)
|
||||
right_arm.run_angle(50, 500)
|
||||
await drive_base.turn(45)
|
||||
await drive_base.straight(-145)
|
||||
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(-600)
|
||||
|
||||
async def Run2(): # From Heavy_lifting_final.py
|
||||
await drive_base.straight(200)
|
||||
await drive_base.turn(-20)
|
||||
await drive_base.straight(536)
|
||||
await drive_base.turn(60, Stop.HOLD)
|
||||
await drive_base.straight(30)
|
||||
await right_arm.run_angle(5000, 2900)
|
||||
await drive_base.straight(40)
|
||||
await right_arm.run_angle(5000, -4000)
|
||||
await drive_base.straight(-60)
|
||||
await drive_base.turn(-60)
|
||||
await drive_base.straight(-670)
|
||||
|
||||
|
||||
async def Run3(): # tip the scale.py
|
||||
left_arm.run_angle(600,-200)
|
||||
right_arm.run_angle(500,200)
|
||||
await drive_base.straight(70)
|
||||
|
||||
await drive_base.turn(-70)
|
||||
await drive_base.straight(900)
|
||||
await drive_base.turn(115)
|
||||
|
||||
await drive_base.straight(75)
|
||||
await drive_base.straight(33)
|
||||
await right_arm.run_angle(500,-250)
|
||||
await right_arm.run_angle(500,250)
|
||||
await drive_base.turn(66)
|
||||
await drive_base.straight(7)
|
||||
|
||||
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.straight(80)
|
||||
await drive_base.turn(-41) #ma din din din dun 67 41 21 69
|
||||
await drive_base.straight(900)
|
||||
|
||||
|
||||
async def Run4(): # From Send_Over_Final.py
|
||||
#Get to mission
|
||||
await drive_base.straight(920)
|
||||
await drive_base.turn(-90,Stop.HOLD)
|
||||
await drive_base.straight(65)
|
||||
#Solve mission
|
||||
drive_base.turn(-10)
|
||||
await left_arm.run_angle(10000, 4000)
|
||||
#Get to Red Start
|
||||
await drive_base.straight(-110)
|
||||
await drive_base.turn(90)
|
||||
# while True:
|
||||
# distance_mm = await lazer_ranger.distance()
|
||||
# print('distancing...',distance_mm)
|
||||
|
||||
# if distance_mm < 300:
|
||||
# drive_base.stop
|
||||
# break
|
||||
# else:
|
||||
# drive_base.straight(300)
|
||||
# print('running...')
|
||||
# await wait(10)
|
||||
await multitask(
|
||||
drive_forward(),
|
||||
monitor_distance()
|
||||
)
|
||||
|
||||
|
||||
|
||||
# Add Rishi's code here
|
||||
async def Run5():
|
||||
await drive_base.straight(700)
|
||||
await drive_base.turn(-18)
|
||||
await drive_base.straight(100)
|
||||
await drive_base.straight(-205)
|
||||
await drive_base.turn(63)
|
||||
await drive_base.straight(125)
|
||||
await arm_motor.run_angle(1000, -1200)
|
||||
await drive_base.straight(84)
|
||||
await arm_motor.run_angle(300, 1200)
|
||||
await drive_base.straight(-875)
|
||||
|
||||
|
||||
# Add - Adi's code here
|
||||
async def Run6():
|
||||
await drive_base.straight(500)
|
||||
await right_arm.run_angle(300,500)
|
||||
await drive_base.straight(-75)
|
||||
await right_arm.run_angle(300, -900)
|
||||
await drive_base.straight(-350)
|
||||
await wait(1000)
|
||||
await drive_base.straight(800)
|
||||
await drive_base.straight(-200)
|
||||
await drive_base.turn(-15)
|
||||
await drive_base.straight(350)
|
||||
await drive_base.turn(-94)
|
||||
await drive_base.straight(-80)
|
||||
await left_arm.run_angle(500, 900)
|
||||
await drive_base.straight(50)
|
||||
await drive_base.turn(-10)
|
||||
await drive_base.straight(50)
|
||||
await left_arm.run_angle(700, -200)
|
||||
await drive_base.turn(30)
|
||||
await drive_base.straight(-60)
|
||||
await drive_base.turn(80)
|
||||
await drive_base.straight(-900)
|
||||
|
||||
|
||||
# Function to classify color based on HSV
|
||||
def detect_color(h, s, v, reflected):
|
||||
if reflected > 4:
|
||||
if h < 4 or h > 350: # red
|
||||
return "Red"
|
||||
elif 3 < h < 40 and s > 70: # orange
|
||||
return "Orange"
|
||||
elif 47 < h < 56: # yellow
|
||||
return "Yellow"
|
||||
elif 70 < h < 160: # green - do it vertically not horizontally for accuracy
|
||||
return "Green"
|
||||
elif 210 < h < 225: # blue - do it vertically not horizontally for accuracy
|
||||
return "Blue"
|
||||
elif 260 < h < 350: # purple
|
||||
return "Purple"
|
||||
else:
|
||||
return "Unknown"
|
||||
return "Unknown"
|
||||
|
||||
|
||||
async def main():
|
||||
while True:
|
||||
h, s, v = await color_sensor.hsv()
|
||||
reflected = await color_sensor.reflection()
|
||||
color = detect_color(h, s, v, reflected)
|
||||
|
||||
if color == "Red":
|
||||
print('Running Mission 3')
|
||||
await Run3() #red
|
||||
elif color == "Orange":
|
||||
print('Running Mission 6')
|
||||
await Run6() #orange
|
||||
elif color == "Yellow":
|
||||
print('Running Mission 4')
|
||||
await Run4() #yellow
|
||||
elif color == "Green":
|
||||
print('Running Mission 1')
|
||||
await Run1() #green - vertically
|
||||
elif color == "Blue":
|
||||
print('Running Mission 5')
|
||||
await Run5() #blue - vertically
|
||||
elif color == "Purple":
|
||||
print('Running Mission 2')
|
||||
await Run2() #purple - vertically
|
||||
else:
|
||||
print(f"Unknown color detected (Hue: {h}, Sat: {s}, Val: {v})")
|
||||
await wait(10)
|
||||
# Run the main function
|
||||
run_task(main())
|
||||
@@ -12,20 +12,22 @@ 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(536)
|
||||
await drive_base.turn(60, Stop.HOLD)
|
||||
await drive_base.straight(30)
|
||||
|
||||
await drive_base.straight(915)
|
||||
await drive_base.turn(-90)
|
||||
await drive_base.straight(60)
|
||||
await left_arm.run_angle(10000,-15000)
|
||||
await right_arm.run_angle(5000,2900)
|
||||
await drive_base.straight(40)
|
||||
await right_arm.run_angle(5000,-4000)
|
||||
await drive_base.straight(-60)
|
||||
await drive_base.turn(85)
|
||||
await drive_base.straight(2000)
|
||||
|
||||
await drive_base.turn(-60)
|
||||
await drive_base.straight(-670)
|
||||
run_task(main())
|
||||
49
codes_for_scrimmage/hazmat/M8_5.py
Normal file
49
codes_for_scrimmage/hazmat/M8_5.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
|
||||
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():
|
||||
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(277)
|
||||
await drive_base.turn(20)
|
||||
await drive_base.straight(65)
|
||||
|
||||
await drive_base.turn(-30)
|
||||
right_arm.run_angle(50,500)
|
||||
await drive_base.turn(45)
|
||||
await drive_base.straight(-145)
|
||||
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(-600)
|
||||
run_task(main())
|
||||
46
codes_for_scrimmage/hazmat/Send_Over_Final.py
Normal file
46
codes_for_scrimmage/hazmat/Send_Over_Final.py
Normal file
@@ -0,0 +1,46 @@
|
||||
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)
|
||||
lazer_ranger = UltrasonicSensor(Port.E)
|
||||
|
||||
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():
|
||||
#Get to mission
|
||||
await drive_base.straight(920)
|
||||
await drive_base.turn(-90,Stop.HOLD)
|
||||
await drive_base.straight(65)
|
||||
#Solve mission
|
||||
drive_base.turn(-10)
|
||||
await left_arm.run_angle(10000,-4000)
|
||||
#Get to Red Start
|
||||
await drive_base.straight(-110)
|
||||
await drive_base.turn(90)
|
||||
await drive_base.straight(500)
|
||||
while True:
|
||||
distance_mm = await lazer_ranger.distance()
|
||||
print('distancing...',distance_mm)
|
||||
|
||||
if distance_mm < 300:
|
||||
drive_base.stop
|
||||
break
|
||||
else:
|
||||
drive_base.straight(300)
|
||||
print('running...')
|
||||
await wait(10)
|
||||
|
||||
run_task(main())
|
||||
384
codes_for_scrimmage/hazmat/hazmat_main.py
Normal file
384
codes_for_scrimmage/hazmat/hazmat_main.py
Normal file
@@ -0,0 +1,384 @@
|
||||
from pybricks.pupdevices import Motor, ColorSensor, UltrasonicSensor, ForceSensor
|
||||
from pybricks.parameters import Button, Color, Direction, Port, Side, Stop
|
||||
from pybricks.tools import run_task, multitask
|
||||
from pybricks.tools import wait, StopWatch
|
||||
from pybricks.robotics import DriveBase
|
||||
from pybricks.hubs import PrimeHub
|
||||
|
||||
# Initialize hub and devices
|
||||
hub = PrimeHub()
|
||||
|
||||
left_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE)
|
||||
right_motor = Motor(Port.B)
|
||||
|
||||
left_arm = Motor(Port.C)
|
||||
right_arm = Motor(Port.D)
|
||||
lazer_ranger = UltrasonicSensor(Port.E)
|
||||
color_sensor = ColorSensor(Port.F)
|
||||
|
||||
# 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)
|
||||
|
||||
# Color Settings
|
||||
# https://docs.pybricks.com/en/latest/parameters/color.html
|
||||
print("Default Detected Colors:", color_sensor.detectable_colors())
|
||||
|
||||
# Custom color Hue, Saturation, Brightness value for Lego bricks
|
||||
Color.MAGENTA = Color(300,100,100)
|
||||
Color.VIOLET = Color(277,68,32)
|
||||
Color.BLUE = Color(240,100,100)
|
||||
Color.CYAN = Color(180,100,100)
|
||||
|
||||
LEGO_BRICKS_COLOR = [
|
||||
Color.BLUE,
|
||||
Color.GREEN,
|
||||
Color.WHITE,
|
||||
Color.RED,
|
||||
Color.YELLOW,
|
||||
Color.MAGENTA,
|
||||
Color.VIOLET,
|
||||
Color.NONE
|
||||
]
|
||||
#Update Detectable colors
|
||||
color_sensor.detectable_colors(LEGO_BRICKS_COLOR)
|
||||
|
||||
print("Updated Detected Colors:", color_sensor.detectable_colors())
|
||||
|
||||
hub.speaker.volume(50) # Set the volume of the speaker
|
||||
|
||||
# Celebration sound types
|
||||
class CelebrationSound:
|
||||
VICTORY_FANFARE = 0
|
||||
LEVEL_UP = 1
|
||||
SUCCESS_CHIME = 2
|
||||
TA_DA = 3
|
||||
POWER_UP = 4
|
||||
RICKROLL_INSPIRED = 5
|
||||
|
||||
async def play_victory_fanfare():
|
||||
"""Classic victory fanfare"""
|
||||
notes = [
|
||||
(262, 200), # C4
|
||||
(262, 200), # C4
|
||||
(262, 200), # C4
|
||||
(349, 600), # F4
|
||||
]
|
||||
|
||||
for freq, duration in notes:
|
||||
await hub.speaker.beep(freq, duration)
|
||||
await wait(50)
|
||||
async def play_level_up():
|
||||
"""Upward scale for level completion"""
|
||||
notesold = [
|
||||
(262, 100), # C4
|
||||
(294, 100), # D4
|
||||
(330, 100), # E4
|
||||
(349, 100), # F4
|
||||
(392, 100), # G4
|
||||
(440, 100), # A4
|
||||
(494, 100), # B4
|
||||
(523, 300), # C5
|
||||
]
|
||||
notes = [
|
||||
(277, 100),
|
||||
(330, 100),
|
||||
(277, 100),
|
||||
(554, 100),
|
||||
(277, 100),
|
||||
(413, 100),
|
||||
(330, 100),
|
||||
(277, 100),
|
||||
(413, 100),
|
||||
(277, 100),
|
||||
(554, 100),
|
||||
(413, 100),
|
||||
(277, 100),
|
||||
(413, 100),
|
||||
(554, 100),
|
||||
(413, 100)
|
||||
]
|
||||
|
||||
for freq, duration in notes:
|
||||
await hub.speaker.beep(freq, duration)
|
||||
#await wait(20)
|
||||
async def play_success_chime():
|
||||
"""Simple success notification"""
|
||||
notes = [
|
||||
(523, 150), # C5
|
||||
(659, 150), # E5
|
||||
(784, 300), # G5
|
||||
]
|
||||
|
||||
for freq, duration in notes:
|
||||
await hub.speaker.beep(freq, duration)
|
||||
await wait(50)
|
||||
async def play_ta_da():
|
||||
"""Classic "ta-da!" sound"""
|
||||
notes = [
|
||||
(392, 200), # G4
|
||||
(523, 400), # C5
|
||||
]
|
||||
|
||||
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
|
||||
pattern = [
|
||||
(392, 200), (440, 200), (494, 200), (523, 200),
|
||||
(440, 200), (392, 200), (349, 200), (392, 300),
|
||||
(440, 200), (392, 200), (349, 200), (330, 400),
|
||||
]
|
||||
|
||||
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.
|
||||
Plays a sound and shows light animation.
|
||||
|
||||
Args:
|
||||
sound_type: CelebrationSound enum value (default: SUCCESS_CHIME)
|
||||
"""
|
||||
# Light show
|
||||
hub.light.on(Color.GREEN)
|
||||
|
||||
# Play the selected celebration sound
|
||||
if sound_type == CelebrationSound.VICTORY_FANFARE:
|
||||
await play_victory_fanfare()
|
||||
elif sound_type == CelebrationSound.LEVEL_UP:
|
||||
await play_level_up()
|
||||
elif sound_type == CelebrationSound.SUCCESS_CHIME:
|
||||
await play_success_chime()
|
||||
elif sound_type == CelebrationSound.TA_DA:
|
||||
await play_ta_da()
|
||||
elif sound_type == CelebrationSound.POWER_UP:
|
||||
await play_power_up()
|
||||
elif sound_type == CelebrationSound.RICKROLL_INSPIRED:
|
||||
await play_rickroll_inspired()
|
||||
else:
|
||||
await play_success_chime() # Default fallback
|
||||
|
||||
# Blink the light
|
||||
for _ in range(3):
|
||||
hub.light.off()
|
||||
await wait(100)
|
||||
hub.light.on(Color.GREEN)
|
||||
await wait(100)
|
||||
|
||||
hub.light.off()
|
||||
|
||||
WALL_DISTANCE = 200 # mm
|
||||
async def drive_forward():
|
||||
"""Drive forward continuously using DriveBase."""
|
||||
#await drive_base.straight(5000)
|
||||
drive_base.drive(400,0)
|
||||
async def monitor_distance():
|
||||
"""Monitor ultrasonic sensor and stop when wall is detected."""
|
||||
while True:
|
||||
distance = await lazer_ranger.distance()
|
||||
print('distancing...',distance)
|
||||
|
||||
if distance < WALL_DISTANCE:
|
||||
# Stop the drivebase
|
||||
await drive_base.turn(-180)
|
||||
drive_base.brake
|
||||
print(f"Wall detected at {distance}mm!")
|
||||
break
|
||||
|
||||
# Small delay to prevent overwhelming the sensor
|
||||
await wait(50)
|
||||
|
||||
async def Run1(): #From M8_5.py
|
||||
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(277)
|
||||
await drive_base.turn(20)
|
||||
await drive_base.straight(65)
|
||||
|
||||
await drive_base.turn(-30)
|
||||
right_arm.run_angle(50,500)
|
||||
await drive_base.turn(45)
|
||||
await drive_base.straight(-145)
|
||||
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(-600)
|
||||
|
||||
async def Run2(): #From Heavy_lifting_final.py
|
||||
await drive_base.straight(200)
|
||||
await drive_base.turn(-20)
|
||||
await drive_base.straight(536)
|
||||
await drive_base.turn(60, Stop.HOLD)
|
||||
await drive_base.straight(30)
|
||||
|
||||
await right_arm.run_angle(5000,2900)
|
||||
await drive_base.straight(40)
|
||||
await right_arm.run_angle(5000,-4000)
|
||||
await drive_base.straight(-60)
|
||||
|
||||
await drive_base.turn(-60)
|
||||
await drive_base.straight(-670)
|
||||
|
||||
|
||||
async def Run3(): #tip the scale.py
|
||||
left_arm.run_angle(600,200)
|
||||
right_arm.run_angle(500,200)
|
||||
await drive_base.straight(70)
|
||||
|
||||
await drive_base.turn(-70)
|
||||
await drive_base.straight(900)
|
||||
await drive_base.turn(115)
|
||||
|
||||
await drive_base.straight(75)
|
||||
await drive_base.straight(33)
|
||||
await right_arm.run_angle(500,-250)
|
||||
await right_arm.run_angle(500,250)
|
||||
await drive_base.turn(66)
|
||||
await drive_base.straight(7)
|
||||
|
||||
await left_arm.run_angle(560,-390) #going down
|
||||
await drive_base.turn(40) # turning right
|
||||
await left_arm.run_angle(-410,-400) #lift a little bit
|
||||
|
||||
await drive_base.turn(-46.5) #ma din din din dun
|
||||
await drive_base.turn(-40)
|
||||
await drive_base.straight(900)
|
||||
|
||||
async def Run4(): #From Send_Over_Final.py
|
||||
|
||||
#Get to mission
|
||||
await drive_base.straight(920)
|
||||
await drive_base.turn(-90,Stop.HOLD)
|
||||
await drive_base.straight(65)
|
||||
#Solve mission
|
||||
drive_base.turn(-10)
|
||||
await left_arm.run_angle(10000,-4000)
|
||||
#Get to Red Start
|
||||
await drive_base.straight(-110)
|
||||
await drive_base.turn(90)
|
||||
await drive_base.straight(500)
|
||||
|
||||
# while True:
|
||||
# distance_mm = await lazer_ranger.distance()
|
||||
# print('distancing...',distance_mm)
|
||||
|
||||
# if distance_mm < 300:
|
||||
# drive_base.stop
|
||||
# break
|
||||
# else:
|
||||
# drive_base.straight(300)
|
||||
# print('running...')
|
||||
# await wait(10)
|
||||
await multitask(
|
||||
drive_forward(),
|
||||
monitor_distance()
|
||||
)
|
||||
|
||||
#Add Rishi's code here
|
||||
async def Run5():
|
||||
await drive_base.straight(519)
|
||||
await left_arm.run_angle(-10000, 300)
|
||||
await left_arm.run_angle(10000, 600)
|
||||
await drive_base.straight(160)
|
||||
await drive_base.turn(-30)
|
||||
await drive_base.straight(50)
|
||||
await right_arm.run_angle(3000, 3000)
|
||||
await drive_base.straight(-150)
|
||||
await drive_base.turn(135)
|
||||
await drive_base.straight(25)
|
||||
await right_arm.run_angle(10000, -3000)
|
||||
await drive_base.straight(-100)
|
||||
await drive_base.turn(-55)
|
||||
await right_arm.run_angle(10000, -3000)
|
||||
await drive_base.straight(250)
|
||||
await drive_base.turn(-5)
|
||||
await right_arm.run_angle(10000, 7000)
|
||||
await drive_base.straight(-50)
|
||||
await drive_base.turn(45)
|
||||
await drive_base.straight(100)
|
||||
await drive_base.turn(37)
|
||||
await right_arm.run_angle(10000, -6000)
|
||||
await drive_base.straight(90)
|
||||
await right_arm.run_angle(3000, 3000)
|
||||
await drive_base.turn(-40)
|
||||
|
||||
#Add - Adi's code here
|
||||
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():
|
||||
while True:
|
||||
|
||||
#await celebrate_mission_complete(CelebrationSound.LEVEL_UP)
|
||||
color_reflected_percent = await color_sensor.reflection()
|
||||
print(color_reflected_percent)
|
||||
|
||||
|
||||
if color_reflected_percent > 0: # Make sure we actually have color reflections before checking for color
|
||||
color_detected = await color_sensor.color() # Moved this inside the if clause
|
||||
print(f'Detected color:{color_detected} : {color_detected.h}, {color_detected.s}, {color_detected.v}')
|
||||
|
||||
if color_detected == Color.GREEN:
|
||||
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.RED:
|
||||
print('Running Mission 3')
|
||||
await Run3()
|
||||
#await celebrate_mission_complete(CelebrationSound.SUCCESS_CHIME )
|
||||
elif color_detected == Color.YELLOW:
|
||||
print('Running Mission 4')
|
||||
await Run4()
|
||||
#await celebrate_mission_complete(CelebrationSound.POWER_UP)
|
||||
elif color_detected == Color.BLUE:
|
||||
print('Running Mission 5')
|
||||
await Run5()
|
||||
#await celebrate_mission_complete(CelebrationSound.LEVEL_UP)
|
||||
elif color_detected == Color.VIOLET:
|
||||
print('Running Mission 6')
|
||||
await Run6()
|
||||
else:
|
||||
hub.light.off()
|
||||
left_motor.stop()
|
||||
right_motor.stop()
|
||||
color_detected = Color.NONE
|
||||
else:
|
||||
color_detected = Color.NONE
|
||||
|
||||
await wait(1000) #prevent loop from iterating fast
|
||||
# Main execution loop
|
||||
run_task(main())
|
||||
230
codes_for_scrimmage/hazmat/mainhazmatUPD.py
Normal file
230
codes_for_scrimmage/hazmat/mainhazmatUPD.py
Normal file
@@ -0,0 +1,230 @@
|
||||
from pybricks.pupdevices import Motor, ColorSensor, UltrasonicSensor, ForceSensor
|
||||
from pybricks.parameters import Button, Color, Direction, Port, Side, Stop
|
||||
from pybricks.tools import run_task, multitask
|
||||
from pybricks.tools import wait, StopWatch
|
||||
from pybricks.robotics import DriveBase
|
||||
from pybricks.hubs import PrimeHub
|
||||
|
||||
# Initialize hub and devices
|
||||
hub = PrimeHub()
|
||||
left_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE)
|
||||
right_motor = Motor(Port.B)
|
||||
left_arm = Motor(Port.C)
|
||||
right_arm = Motor(Port.D)
|
||||
lazer_ranger = UltrasonicSensor(Port.E)
|
||||
color_sensor = ColorSensor(Port.F)
|
||||
|
||||
# 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)
|
||||
|
||||
WALL_DISTANCE = 200 # mm
|
||||
|
||||
async def drive_forward():
|
||||
"""Drive forward continuously using DriveBase."""
|
||||
drive_base.drive(400, 0)
|
||||
|
||||
|
||||
async def monitor_distance():
|
||||
"""Monitor ultrasonic sensor and stop when wall is detected."""
|
||||
while True:
|
||||
distance = await lazer_ranger.distance()
|
||||
print('Distancing...',distance)
|
||||
|
||||
if distance < WALL_DISTANCE:
|
||||
# Stop the drivebase
|
||||
await drive_base.stop
|
||||
print(f"Wall detected at {distance}mm!")
|
||||
break
|
||||
|
||||
# Small delay to prevent overwhelming the sensor
|
||||
await wait(50)
|
||||
|
||||
# New Section
|
||||
async def Run1(): # From M8_5.py
|
||||
|
||||
right_arm.run_angle(1000,450)
|
||||
left_arm.run_angle(500,-90)
|
||||
await drive_base.straight(200)
|
||||
|
||||
await drive_base.turn(-40)
|
||||
await drive_base.straight(325)
|
||||
await left_arm.run_angle(500,90)
|
||||
|
||||
await drive_base.straight(-100)
|
||||
await drive_base.straight(50)
|
||||
await left_arm.run_angle(500,-180)
|
||||
|
||||
await drive_base.straight(-90)
|
||||
left_arm.run_angle(500,180)
|
||||
await drive_base.turn(-20)
|
||||
await drive_base.turn(15)
|
||||
|
||||
await drive_base.straight(-173)
|
||||
await drive_base.turn(45)
|
||||
await drive_base.straight(120)
|
||||
left_arm.run_angle(1000,-670)
|
||||
|
||||
await right_arm.run_angle(5000,-450, Stop.HOLD)
|
||||
await right_arm.run_angle(5000,450, Stop.HOLD)
|
||||
await right_arm.run_angle(5000,-450, Stop.HOLD)
|
||||
await right_arm.run_angle(5000,450, Stop.HOLD)
|
||||
await right_arm.run_angle(5000,-450, Stop.HOLD)
|
||||
right_arm.run_angle(5000,450, Stop.HOLD)
|
||||
|
||||
await drive_base.turn(-35)
|
||||
await drive_base.straight(297)
|
||||
await drive_base.turn(63)
|
||||
await drive_base.straight(170)
|
||||
|
||||
await drive_base.turn(-80)
|
||||
await drive_base.straight(87)
|
||||
await drive_base.turn(-15)
|
||||
|
||||
await drive_base.straight(-90)
|
||||
await drive_base.turn(-100)
|
||||
await drive_base.arc(-500,None,600)
|
||||
|
||||
async def Run2(): # From Heavy_lifting_final.py
|
||||
await drive_base.straight(200)
|
||||
await drive_base.turn(-20)
|
||||
await drive_base.straight(536)
|
||||
await drive_base.turn(60, Stop.HOLD)
|
||||
await drive_base.straight(30)
|
||||
await right_arm.run_angle(5000, 2900)
|
||||
await drive_base.straight(40)
|
||||
await right_arm.run_angle(5000, -4000)
|
||||
await drive_base.straight(-60)
|
||||
await drive_base.turn(-60)
|
||||
await drive_base.straight(-670)
|
||||
|
||||
|
||||
async def Run3(): # tip the scale.py
|
||||
left_arm.run_angle(600,-200)
|
||||
right_arm.run_angle(500,200)
|
||||
await drive_base.straight(70)
|
||||
|
||||
await drive_base.turn(-70)
|
||||
await drive_base.straight(900)
|
||||
await drive_base.turn(115)
|
||||
|
||||
await drive_base.straight(75)
|
||||
await drive_base.straight(33)
|
||||
await right_arm.run_angle(500,-250)
|
||||
await right_arm.run_angle(500,250)
|
||||
await drive_base.turn(66)
|
||||
await drive_base.straight(7)
|
||||
|
||||
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.straight(80)
|
||||
await drive_base.turn(-41) #ma din din din dun 67 41 21
|
||||
await drive_base.straight(900)
|
||||
|
||||
|
||||
async def Run4(): # From Send_Over_Final.py
|
||||
|
||||
await drive_base.straight(920)
|
||||
await drive_base.turn(-90,Stop.HOLD)
|
||||
await drive_base.straight(65)
|
||||
#Solve
|
||||
drive_base.turn(-10)
|
||||
await left_arm.run_angle(10000,-4000)
|
||||
await drive_base.straight(-110)
|
||||
await drive_base.turn(90)
|
||||
|
||||
await multitask(
|
||||
drive_forward(),
|
||||
monitor_distance()
|
||||
)
|
||||
|
||||
# Add Rishi's code here
|
||||
async def Run5():
|
||||
await drive_base.straight(600)
|
||||
await drive_base.straight(-100)
|
||||
await drive_base.straight(150)
|
||||
await drive_base.turn(60)
|
||||
await drive_base.straight(100)
|
||||
await drive_base.turn(-86)
|
||||
await drive_base.straight(120)
|
||||
await drive_base.turn(-45)
|
||||
await drive_base.straight(-200)
|
||||
await drive_base.turn(75)
|
||||
|
||||
# Add - Adi's code here
|
||||
async def Run6():
|
||||
await drive_base.straight(500)
|
||||
await right_arm.run_angle(300,500)
|
||||
await drive_base.straight(-75)
|
||||
await right_arm.run_angle(300, -900)
|
||||
await drive_base.straight(-350)
|
||||
await wait(1000)
|
||||
await drive_base.straight(800)
|
||||
await drive_base.straight(-200)
|
||||
await drive_base.turn(-15)
|
||||
await drive_base.straight(350)
|
||||
await drive_base.turn(-94)
|
||||
await drive_base.straight(-80)
|
||||
await left_arm.run_angle(500, 900)
|
||||
await drive_base.straight(50)
|
||||
await drive_base.turn(-10)
|
||||
await drive_base.straight(50)
|
||||
await left_arm.run_angle(700, -200)
|
||||
await drive_base.turn(30)
|
||||
await drive_base.straight(-60)
|
||||
await drive_base.turn(80)
|
||||
await drive_base.straight(-900)
|
||||
# Function to classify color based on HSV
|
||||
def detect_color(h, s, v, reflected):
|
||||
if reflected > 4:
|
||||
if h < 4 or h > 350: # red
|
||||
return "Red"
|
||||
elif 3 < h < 40 and s > 70: # orange
|
||||
return "Orange"
|
||||
elif 47 < h < 56: # yellow
|
||||
return "Yellow"
|
||||
elif 70 < h < 160: # green - do it vertically not horizontally for accuracy
|
||||
return "Green"
|
||||
elif 210 < h < 225: # blue - do it vertically not horizontally for accuracy
|
||||
return "Blue"
|
||||
elif 260 < h < 350: # purple
|
||||
return "Purple"
|
||||
else:
|
||||
return "Unknown"
|
||||
return "Unknown"
|
||||
|
||||
|
||||
async def main():
|
||||
while True:
|
||||
h, s, v = await color_sensor.hsv()
|
||||
reflected = await color_sensor.reflection()
|
||||
color = detect_color(h, s, v, reflected)
|
||||
|
||||
if color == "Red":
|
||||
print('Running Mission 3')
|
||||
await Run3() #red
|
||||
elif color == "Orange":
|
||||
print('Running Mission 6')
|
||||
await Run6() #orange
|
||||
elif color == "Yellow":
|
||||
print('Running Mission 4')
|
||||
await Run4() #yellow
|
||||
elif color == "Green":
|
||||
print('Running Mission 1')
|
||||
await Run1() #green - vertically
|
||||
elif color == "Blue":
|
||||
print('Running Mission 5')
|
||||
await Run5() #blue - vertically
|
||||
elif color == "Purple":
|
||||
print('Running Mission 2')
|
||||
await Run2() #purple - vertically
|
||||
else:
|
||||
print(f"Unknown color detected (Hue: {h}, Sat: {s}, Val: {v})")
|
||||
await wait(10)
|
||||
# Run the main function
|
||||
run_task(main())
|
||||
42
codes_for_scrimmage/hazmat/tip the scale.py
Normal file
42
codes_for_scrimmage/hazmat/tip the scale.py
Normal file
@@ -0,0 +1,42 @@
|
||||
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(300,1000,300,200)
|
||||
|
||||
#drive_base.use_gyro(True)
|
||||
|
||||
async def main():
|
||||
left_arm.run_angle(500,200)
|
||||
right_arm.run_angle(500,200)
|
||||
await drive_base.straight(70)
|
||||
|
||||
await drive_base.turn(-55)
|
||||
await drive_base.straight(900)
|
||||
await drive_base.turn(92.5)
|
||||
|
||||
await drive_base.straight(75)
|
||||
await drive_base.straight(21)
|
||||
await right_arm.run_angle(500,-250)
|
||||
await right_arm.run_angle(500,250)
|
||||
await drive_base.turn(55)
|
||||
|
||||
await left_arm.run_angle(300,-400)
|
||||
|
||||
await drive_base.turn(46.5)
|
||||
await drive_base.turn(-40)
|
||||
await drive_base.straight(900)
|
||||
run_task(main())
|
||||
221
codes_for_scrimmage/regional-final/Final_combined.py
Normal file
221
codes_for_scrimmage/regional-final/Final_combined.py
Normal file
@@ -0,0 +1,221 @@
|
||||
from pybricks.pupdevices import Motor, ColorSensor, UltrasonicSensor, ForceSensor
|
||||
from pybricks.parameters import Button, Color, Direction, Port, Side, Stop
|
||||
from pybricks.tools import run_task, multitask
|
||||
from pybricks.tools import wait, StopWatch
|
||||
from pybricks.robotics import DriveBase
|
||||
from pybricks.hubs import PrimeHub
|
||||
|
||||
# Initialize hub and devices
|
||||
hub = PrimeHub()
|
||||
left_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE)
|
||||
right_motor = Motor(Port.B)
|
||||
left_arm = Motor(Port.C)
|
||||
right_arm = Motor(Port.D)
|
||||
lazer_ranger = UltrasonicSensor(Port.E)
|
||||
color_sensor = ColorSensor(Port.F)
|
||||
|
||||
# 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)
|
||||
|
||||
WALL_DISTANCE = 300 # mm
|
||||
|
||||
async def drive_forward():
|
||||
"""Drive forward continuously using DriveBase."""
|
||||
drive_base.drive(400, 0)
|
||||
|
||||
|
||||
async def monitor_distance():
|
||||
"""Monitor ultrasonic sensor and stop when wall is detected."""
|
||||
while True:
|
||||
distance = await lazer_ranger.distance()
|
||||
print('Distancing...',distance)
|
||||
|
||||
if distance < WALL_DISTANCE:
|
||||
# Stop the drivebase
|
||||
await drive_base.stop
|
||||
print(f"Wall detected at {distance}mm!")
|
||||
break
|
||||
|
||||
# Small delay to prevent overwhelming the sensor
|
||||
await wait(50)
|
||||
|
||||
# New Section
|
||||
async def Run1(): # From M8_5.py
|
||||
right_arm.run_angle(1000,450)
|
||||
left_arm.run_angle(500,90)
|
||||
await drive_base.straight(200)
|
||||
|
||||
await drive_base.turn(-40)
|
||||
await drive_base.straight(325)
|
||||
await left_arm.run_angle(500,-90)
|
||||
|
||||
await drive_base.straight(-100)
|
||||
await drive_base.straight(50)
|
||||
await left_arm.run_angle(500,180)
|
||||
|
||||
await drive_base.straight(-90)
|
||||
left_arm.run_angle(500,-180)
|
||||
await drive_base.turn(-20)
|
||||
await drive_base.turn(15)
|
||||
|
||||
await drive_base.straight(-173)
|
||||
await drive_base.turn(45)
|
||||
await drive_base.straight(120)
|
||||
left_arm.run_angle(1000,670)
|
||||
|
||||
await right_arm.run_angle(5000,-450, Stop.HOLD)
|
||||
await right_arm.run_angle(5000,450, Stop.HOLD)
|
||||
await right_arm.run_angle(5000,-450, Stop.HOLD)
|
||||
await right_arm.run_angle(5000,450, Stop.HOLD)
|
||||
await right_arm.run_angle(5000,-450, Stop.HOLD)
|
||||
right_arm.run_angle(5000,450, Stop.HOLD)
|
||||
|
||||
await drive_base.turn(-35)
|
||||
await drive_base.straight(297)
|
||||
await drive_base.turn(63)
|
||||
await drive_base.straight(170)
|
||||
|
||||
await drive_base.turn(-80)
|
||||
await drive_base.straight(87)
|
||||
await drive_base.turn(-15)
|
||||
|
||||
await drive_base.straight(-90)
|
||||
await drive_base.turn(-100)
|
||||
await drive_base.arc(-500,None,600)
|
||||
|
||||
|
||||
async def Run2(): # From Heavy_lifting_final.py
|
||||
await drive_base.straight(200)
|
||||
await drive_base.turn(-20)
|
||||
await drive_base.straight(536)
|
||||
await drive_base.turn(60, Stop.HOLD)
|
||||
await drive_base.straight(30)
|
||||
await right_arm.run_angle(5000, 2900)
|
||||
await drive_base.straight(40)
|
||||
await right_arm.run_angle(5000, -4000)
|
||||
await drive_base.straight(-60)
|
||||
await drive_base.turn(-60)
|
||||
await drive_base.straight(-670)
|
||||
|
||||
|
||||
async def Run3(): # tip the scale.py
|
||||
right_arm.run_angle(500,400)
|
||||
await drive_base.straight(800)
|
||||
await drive_base.turn(90)
|
||||
await drive_base.straight(86)
|
||||
await right_arm.run_angle(800,-600)
|
||||
await right_arm.run_angle(900,800)
|
||||
|
||||
await drive_base.straight(-100)
|
||||
await drive_base.turn(90)
|
||||
await drive_base.straight(800)
|
||||
drive_base.brake()
|
||||
|
||||
|
||||
async def Run4(): # From Send_Over_Final.py
|
||||
|
||||
await drive_base.straight(920)
|
||||
await drive_base.turn(-90,Stop.HOLD)
|
||||
await drive_base.straight(65)
|
||||
#Solve
|
||||
drive_base.turn(-10)
|
||||
await left_arm.run_angle(10000,-4000)
|
||||
await drive_base.straight(-110)
|
||||
await drive_base.turn(90)
|
||||
|
||||
await multitask(
|
||||
drive_forward(),
|
||||
monitor_distance()
|
||||
)
|
||||
|
||||
# Add Rishi's code here
|
||||
async def Run5():
|
||||
await drive_base.straight(700)
|
||||
await drive_base.turn(-20)
|
||||
await drive_base.straight(110)
|
||||
await drive_base.straight(-210)
|
||||
await drive_base.turn(63)
|
||||
await drive_base.straight(130)
|
||||
await right_arm.run_angle(1000, -1200)
|
||||
await drive_base.straight(84)
|
||||
await right_arm.run_angle(300, 1200)
|
||||
await drive_base.straight(-875)
|
||||
|
||||
# Add - Adi's code here
|
||||
async def Run6():
|
||||
await drive_base.straight(500)
|
||||
await right_arm.run_angle(300,500)
|
||||
await drive_base.straight(-75)
|
||||
await right_arm.run_angle(300, -900)
|
||||
await drive_base.straight(-350)
|
||||
await wait(1000)
|
||||
await drive_base.straight(800)
|
||||
await drive_base.straight(-200)
|
||||
await drive_base.turn(-15)
|
||||
await drive_base.straight(350)
|
||||
await drive_base.turn(-100)
|
||||
await drive_base.straight(-80)
|
||||
await left_arm.run_angle(500, -900)
|
||||
await drive_base.straight(50)
|
||||
await drive_base.straight(50)
|
||||
await left_arm.run_angle(700, 250)
|
||||
await drive_base.turn(30)
|
||||
await drive_base.straight(-60)
|
||||
await drive_base.turn(80)
|
||||
await drive_base.straight(-900)
|
||||
|
||||
|
||||
|
||||
# Function to classify color based on HSV
|
||||
def detect_color(h, s, v, reflected):
|
||||
if reflected > 4:
|
||||
if h < 4 or h > 350: # red
|
||||
return "Red"
|
||||
elif 3 < h < 40 and s > 70: # orange
|
||||
return "Orange"
|
||||
elif 47 < h < 56: # yellow
|
||||
return "Yellow"
|
||||
elif 70 < h < 160: # green - do it vertically not horizontally for accuracy
|
||||
return "Green"
|
||||
elif 210 < h < 225: # blue - do it vertically not horizontally for accuracy
|
||||
return "Blue"
|
||||
elif 260 < h < 350: # purple
|
||||
return "Purple"
|
||||
else:
|
||||
return "Unknown"
|
||||
return "Unknown"
|
||||
|
||||
|
||||
async def main():
|
||||
while True:
|
||||
h, s, v = await color_sensor.hsv()
|
||||
reflected = await color_sensor.reflection()
|
||||
color = detect_color(h, s, v, reflected)
|
||||
|
||||
if color == "Red":
|
||||
print('Running Mission 3')
|
||||
await Run3() #red
|
||||
elif color == "Orange":
|
||||
print('Running Mission 6')
|
||||
await Run6() #orange
|
||||
elif color == "Yellow":
|
||||
print('Running Mission 4')
|
||||
await Run4() #yellow
|
||||
elif color == "Green":
|
||||
print('Running Mission 1')
|
||||
await Run1() #green - vertically
|
||||
elif color == "Blue":
|
||||
print('Running Mission 5')
|
||||
await Run5() #blue - vertically
|
||||
elif color == "Purple":
|
||||
print('Running Mission 2')
|
||||
await Run2() #purple - vertically
|
||||
else:
|
||||
print(f"Unknown color detected (Hue: {h}, Sat: {s}, Val: {v})")
|
||||
await wait(10)
|
||||
# Run the main function
|
||||
run_task(main())
|
||||
132
commit-graph.html
Normal file
132
commit-graph.html
Normal file
@@ -0,0 +1,132 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<!-- This file was created with the aha Ansi HTML Adapter. https://github.com/theZiz/aha -->
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="application/xml+xhtml; charset=UTF-8"/>
|
||||
<title>stdin</title>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
span {
|
||||
font-family: 'Roboto', sans-serif;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<pre>
|
||||
* <span style="color:olive;">d3294bc</span><span style="color:olive;"> (</span><span style="font-weight:bold;color:teal;">HEAD</span><span style="color:olive;"> -> </span><span style="font-weight:bold;color:green;">main</span><span style="color:olive;">, </span><span style="font-weight:bold;color:olive;">tag: </span><span style="font-weight:bold;color:olive;">TwistScrimmageRelease</span><span style="color:olive;">, </span><span style="font-weight:bold;color:red;">origin/main</span><span style="color:olive;">)</span> SCRIMMAGE MERGE!!!
|
||||
<span style="color:red;">|</span><span style="color:green;">\</span>
|
||||
<span style="color:red;">|</span> * <span style="color:olive;">d66aecd</span><span style="color:olive;"> (</span><span style="font-weight:bold;color:red;">origin/dev</span><span style="color:olive;">, </span><span style="font-weight:bold;color:red;">origin/HEAD</span><span style="color:olive;">, </span><span style="font-weight:bold;color:green;">dev</span><span style="color:olive;">)</span> Update README.md
|
||||
<span style="color:red;">|</span> * <span style="color:olive;">bbdf0d0</span> Shortened fun sounds
|
||||
<span style="color:red;">|</span> * <span style="color:olive;">a2ed2c4</span> Merge pull request 'arcmyx-dev' (#14) from arcmyx-dev into dev
|
||||
<span style="color:red;">|</span> <span style="color:olive;">|</span><span style="color:blue;">\</span>
|
||||
<span style="color:red;">|</span> <span style="color:olive;">|</span> * <span style="color:olive;">dd0070d</span><span style="color:olive;"> (</span><span style="font-weight:bold;color:red;">origin/arcmyx-dev</span><span style="color:olive;">)</span> Update twist_scrimmage.py
|
||||
<span style="color:red;">|</span> <span style="color:olive;">|</span> * <span style="color:olive;">9a06677</span> Added comments. Good luck for scrimmage y'all!!!
|
||||
<span style="color:red;">|</span> <span style="color:olive;">|</span> * <span style="color:olive;">11e89c6</span> THE FINAL THINGY
|
||||
<span style="color:red;">|</span> * <span style="color:blue;">|</span> <span style="color:olive;">52214be</span> Update final/4main.py
|
||||
<span style="color:red;">|</span> * <span style="color:blue;">|</span> <span style="color:olive;">4540269</span> Update final/4main.py
|
||||
<span style="color:red;">|</span> * <span style="color:blue;">|</span> <span style="color:olive;">785c955</span> Update final/4main.py
|
||||
<span style="color:red;">|</span> * <span style="color:blue;">|</span> <span style="color:olive;">b6cffc6</span> Update final/4main
|
||||
<span style="color:red;">|</span> * <span style="color:blue;">|</span> <span style="color:olive;">870dce3</span> Merge pull request 'arcmyx-dev' (#13) from arcmyx-dev into dev
|
||||
<span style="color:red;">|</span> <span style="color:purple;">|</span><span style="color:blue;">\</span><span style="color:blue;">|</span>
|
||||
<span style="color:red;">|</span> <span style="color:purple;">|</span> * <span style="color:olive;">bb76258</span> Update final/main4emaj.py
|
||||
<span style="color:red;">|</span> <span style="color:purple;">|</span> * <span style="color:olive;">75e64da</span> Update final/main4emaj.py
|
||||
<span style="color:red;">|</span> <span style="color:purple;">|</span> * <span style="color:olive;">8ea7cd5</span> Update final/main4emaj.py
|
||||
* <span style="color:purple;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">5ba2811</span> Merge pull request 'Updated LICENSE and README' (#12) from dev into main
|
||||
<span style="font-weight:bold;color:red;">|</span><span style="color:purple;">\</span><span style="color:purple;">|</span> <span style="color:teal;">|</span>
|
||||
<span style="font-weight:bold;color:red;">|</span> * <span style="color:teal;">|</span> <span style="color:olive;">dd4fb8b</span> Switched to GPLv3
|
||||
<span style="font-weight:bold;color:red;">|</span> * <span style="color:teal;">|</span> <span style="color:olive;">ee099d9</span> Switched to GPL v3
|
||||
<span style="font-weight:bold;color:red;">|</span> * <span style="color:teal;">|</span> <span style="color:olive;">489add5</span> Removed emojis
|
||||
* <span style="font-weight:bold;color:green;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">387e00b</span> Merge branch 'dev'
|
||||
<span style="font-weight:bold;color:olive;">|</span><span style="font-weight:bold;color:green;">\</span><span style="font-weight:bold;color:green;">|</span> <span style="color:teal;">|</span>
|
||||
<span style="font-weight:bold;color:olive;">|</span> * <span style="color:teal;">|</span> <span style="color:olive;">28e5bea</span> Updated README file with some formatting help from AI
|
||||
* <span style="font-weight:bold;color:blue;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">3fdd6ae</span> Merge to main for Scrimmage
|
||||
<span style="font-weight:bold;color:purple;">|</span><span style="font-weight:bold;color:blue;">\</span><span style="font-weight:bold;color:blue;">|</span> <span style="color:teal;">|</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="color:teal;">|</span> <span style="color:olive;">1e612e2</span><span style="color:olive;"> (</span><span style="font-weight:bold;color:olive;">tag: </span><span style="font-weight:bold;color:olive;">Scrimmage-Twist</span><span style="color:olive;">)</span> Updated license information
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="color:teal;">|</span> <span style="color:olive;">4456a5a</span> Merge pull request 'Johannes_Dev' (#9) from Johannes_Dev into dev
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span><span style="color:green;">\</span> <span style="color:teal;">\</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span> * <span style="color:teal;">|</span> <span style="color:olive;">08e0b9a</span><span style="color:olive;"> (</span><span style="font-weight:bold;color:red;">origin/Johannes_Dev</span><span style="color:olive;">)</span> Delete missions/Lift2.py
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span> * <span style="color:teal;">|</span> <span style="color:olive;">4533f95</span> Add stuff from Johannes accidental fork
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="color:green;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">ec74531</span> Merge pull request 'Vickram_dev_' (#8) from Vickram_dev_ into dev
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:olive;">|</span><span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span> <span style="color:olive;">62b76d4</span> Merge pull request 'Add missions/tip the scale.py' (#4) from ayaan_dev into dev
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:purple;">|</span><span style="color:teal;">\</span> <span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:purple;">|</span> * <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">8008daf</span><span style="color:olive;"> (</span><span style="font-weight:bold;color:red;">origin/ayaan_dev</span><span style="color:olive;">)</span> Add missions/tip the scale.py
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="color:teal;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">cba5cfc</span> Merge pull request 'Update utils/combine_runs.py' (#5) from Vickram_dev_ into dev
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="font-weight:bold;color:red;">|</span><span style="font-weight:bold;color:green;">\</span> <span style="color:teal;">\</span> <span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="font-weight:bold;color:green;">\</span> <span style="color:teal;">\</span> <span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span> <span style="color:olive;">3349e7f</span> Merge pull request 'Rishi_dev' (#7) from Rishi_dev into dev
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="font-weight:bold;color:olive;">|</span><span style="font-weight:bold;color:blue;">\</span> <span style="font-weight:bold;color:green;">\</span> <span style="color:teal;">\</span> <span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="font-weight:bold;color:olive;">|</span> * <span style="font-weight:bold;color:green;">|</span> <span style="color:teal;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">4b765b0</span><span style="color:olive;"> (</span><span style="font-weight:bold;color:red;">origin/Rishi_dev</span><span style="color:olive;">)</span> Update missions/M8_5.py
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="font-weight:bold;color:olive;">|</span> * <span style="font-weight:bold;color:green;">|</span> <span style="color:teal;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">2eca0d7</span> Initial commit
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="font-weight:bold;color:olive;">|</span><span style="font-weight:bold;color:olive;">/</span> <span style="font-weight:bold;color:green;">/</span> <span style="color:teal;">/</span> <span style="color:blue;">/</span> <span style="color:green;">/</span> <span style="color:teal;">/</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="font-weight:bold;color:green;">|</span> <span style="color:teal;">/</span> <span style="color:blue;">/</span> <span style="color:green;">/</span> <span style="color:teal;">/</span> <span style="color:olive;">8949003</span> Mission 9 not in use
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span><span style="color:teal;">/</span> <span style="color:blue;">/</span> <span style="color:green;">/</span> <span style="color:teal;">/</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:teal;">|</span><span style="color:teal;">/</span><span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">6931731</span> Update LINEUPS.md
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">d172c70</span> THIS CODE IS OUTDATED!!! DO NOT USE!!!
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">efcc011</span> Initial Commit
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">28bb3fa</span> Merge pull request 'Pull from Vickram to dev' (#2) from Vickram_dev_ into dev
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="font-weight:bold;color:purple;">|</span><span style="font-weight:bold;color:teal;">\</span> <span style="font-weight:bold;color:green;">\</span> <span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="font-weight:bold;color:teal;">\</span> <span style="font-weight:bold;color:green;">\</span> <span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span> <span style="color:olive;">7ba2453</span> Merge pull request 'Pull from Johannes_Dev to dev' (#3) from Johannes_Dev into dev
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span><span style="color:green;">\</span> <span style="font-weight:bold;color:teal;">\</span> <span style="font-weight:bold;color:green;">\</span> <span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span><span style="color:green;">_</span><span style="font-weight:bold;color:green;">|</span><span style="color:green;">_</span><span style="color:blue;">|</span><span style="color:green;">/</span> <span style="color:teal;">/</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span><span style="color:green;">/</span><span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span> * <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">7eeead7</span> Sand Mission
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span> * <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">e817650</span> Send Over
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span> * <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">c4aa954</span> Boat mission
|
||||
* <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">ee0b8eb</span> Update README.md
|
||||
* <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> <span style="color:olive;">a745ed8</span> Merge pull request 'WIP - Test Merge ( dev to main )' (#1) from dev into main
|
||||
<span style="color:olive;">|</span><span style="color:blue;">\</span> <span style="color:red;">\</span> <span style="color:green;">\</span> <span style="font-weight:bold;color:teal;">\</span> <span style="font-weight:bold;color:green;">\</span> <span style="color:blue;">\</span> <span style="color:teal;">\</span>
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> * <span style="color:olive;">7e2dc0b</span><span style="color:olive;"> (</span><span style="font-weight:bold;color:red;">origin/Vickram_dev_</span><span style="color:olive;">)</span> Update final/main5.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> * <span style="color:olive;">29bd9f0</span> Update final/main5.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> * <span style="color:olive;">a3b04d3</span> Add final/main5.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> * <span style="color:olive;">2d9eb49</span> Update final/main4.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> * <span style="color:olive;">42090ea</span> Update final/main4.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> * <span style="color:olive;">f7072a6</span> Update final/main4.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span><span style="color:teal;">/</span>
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">3f37e7e</span> Update final/main4.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">a3e7be2</span> Update final/main4.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">c2204e7</span> Update final/main4.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">0664a61</span> Add final/main4.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">227619d</span> Add final/3main.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">684447c</span> Add final/2main.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span><span style="color:blue;">/</span>
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> * <span style="color:olive;">95d7c0c</span> Add final/1main.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> * <span style="color:olive;">7e0c3d2</span> Delete Final Combined Codes
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> * <span style="color:olive;">f190d38</span> Add Final Combined Codes
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> * <span style="color:olive;">cd21a73</span> Delete missions/main.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> * <span style="color:olive;">0fa1019</span> Upload files to "missions"
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span><span style="font-weight:bold;color:green;">/</span>
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> * <span style="color:olive;">bb89e01</span> Update utils/combine_runs.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span><span style="font-weight:bold;color:teal;">/</span>
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> * <span style="color:olive;">c690ae4</span> Update members/Vickram.txt
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span><span style="color:red;">/</span>
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span><span style="color:red;">/</span><span style="color:green;">|</span>
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:green;">|</span> <span style="color:olive;">d309b00</span> '{Johannes}'
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:green;">|</span> <span style="color:olive;">37fb0a6</span> Add members/Ayaan.txt
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:green;">|</span> <span style="color:olive;">e895fd1</span> Add members/Vickram.txt
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:green;">|</span> <span style="color:olive;">70e09fb</span> Add members/Carlos.txt
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span><span style="color:green;">/</span>
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">d017d13</span> Update members/atharv.txt
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">6199a9c</span> Atharv - added my About Me
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">72547c5</span> Fixed grammar
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">5d57a3a</span> Initial commit
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">5c7e2e9</span> Uploaded files from Bitbucket
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">e36e3d0</span> Delete Send_Over.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">a35d599</span> Delete M8_5.py
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">6dedb0a</span> Uploaded files from Bitbucket
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">be5350d</span> Update README.md
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">2412f2c</span> Uploaded files from Bitbucket
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">125f1df</span> Uploaded files from Bitbucket
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">3ddaf7e</span> Uploaded files from Bitbucket
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">2629845</span> Test new
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:olive;">fdbc180</span> Test
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span><span style="color:blue;">/</span>
|
||||
<span style="color:olive;">|</span> * <span style="color:olive;">ce4f984</span> Created new branch
|
||||
<span style="color:olive;">|</span> * <span style="color:olive;">7a0d651</span> Test commit
|
||||
<span style="color:olive;">|</span><span style="color:olive;">/</span>
|
||||
* <span style="color:olive;">0d0e977</span> Initial commit
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
136
commit-graphnew.html
Normal file
136
commit-graphnew.html
Normal file
@@ -0,0 +1,136 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<!-- This file was created with the aha Ansi HTML Adapter. https://github.com/theZiz/aha -->
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta
|
||||
http-equiv="Content-Type"
|
||||
content="application/xml+xhtml; charset=UTF-8"
|
||||
/>
|
||||
<title>COMMIT GRAPH</title>
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css2?family=Roboto&display=swap"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<style>
|
||||
span {
|
||||
font-family: "Roboto", sans-serif;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<pre>
|
||||
* d3294bc (HEAD -> main, tag: TwistScrimmageRelease, origin/main) SCRIMMAGE MERGE!!! [Atharv]
|
||||
<span style="color:red;">|</span><span style="color:green;">\</span>
|
||||
<span style="color:red;">|</span> * d66aecd (origin/dev, origin/HEAD, dev) Update README.md [Atharv]
|
||||
<span style="color:red;">|</span> * bbdf0d0 Shortened fun sounds [Atharv]
|
||||
<span style="color:red;">|</span> * a2ed2c4 Merge pull request 'atharv-dev' (#14) from atharv-dev into dev [Atharv]
|
||||
<span style="color:red;">|</span> <span style="color:olive;">|</span><span style="color:blue;">\</span>
|
||||
<span style="color:red;">|</span> <span style="color:olive;">|</span> * dd0070d (origin/atharv-dev) Update twist_scrimmage.py [Atharv]
|
||||
<span style="color:red;">|</span> <span style="color:olive;">|</span> * 9a06677 Added comments. Good luck for scrimmage y'all!!! [Atharv]
|
||||
<span style="color:red;">|</span> <span style="color:olive;">|</span> * 11e89c6 THE FINAL THINGY [Atharv]
|
||||
<span style="color:red;">|</span> * <span style="color:blue;">|</span> 52214be Update final/4main.py [Ayaan]
|
||||
<span style="color:red;">|</span> * <span style="color:blue;">|</span> 4540269 Update final/4main.py [Johannes]
|
||||
<span style="color:red;">|</span> * <span style="color:blue;">|</span> 785c955 Update final/4main.py [Atharv]
|
||||
<span style="color:red;">|</span> * <span style="color:blue;">|</span> b6cffc6 Update final/4main [Atharv]
|
||||
<span style="color:red;">|</span> * <span style="color:blue;">|</span> 870dce3 Merge pull request 'atharv-dev' (#13) from atharv-dev into dev [Atharv]
|
||||
<span style="color:red;">|</span> <span style="color:purple;">|</span><span style="color:blue;">\</span><span style="color:blue;">|</span>
|
||||
<span style="color:red;">|</span> <span style="color:purple;">|</span> * bb76258 Update final/main4emaj.py [Atharv]
|
||||
<span style="color:red;">|</span> <span style="color:purple;">|</span> * 75e64da Update final/main4emaj.py [Atharv]
|
||||
<span style="color:red;">|</span> <span style="color:purple;">|</span> * 8ea7cd5 Update final/main4emaj.py [Atharv]
|
||||
* <span style="color:purple;">|</span> <span style="color:teal;">|</span> 5ba2811 Merge pull request 'Updated LICENSE and README' (#12) from dev into main [Atharv]
|
||||
<span style="font-weight:bold;color:red;">|</span><span style="color:purple;">\</span><span style="color:purple;">|</span> <span style="color:teal;">|</span>
|
||||
<span style="font-weight:bold;color:red;">|</span> * <span style="color:teal;">|</span> dd4fb8b Switched to GPLv3 [Atharv]
|
||||
<span style="font-weight:bold;color:red;">|</span> * <span style="color:teal;">|</span> ee099d9 Switched to GPL v3 [Atharv]
|
||||
<span style="font-weight:bold;color:red;">|</span> * <span style="color:teal;">|</span> 489add5 Removed emojis [Atharv]
|
||||
* <span style="font-weight:bold;color:green;">|</span> <span style="color:teal;">|</span> 387e00b Merge branch 'dev' [Coach]
|
||||
<span style="font-weight:bold;color:olive;">|</span><span style="font-weight:bold;color:green;">\</span><span style="font-weight:bold;color:green;">|</span> <span style="color:teal;">|</span>
|
||||
<span style="font-weight:bold;color:olive;">|</span> * <span style="color:teal;">|</span> 28e5bea Updated README file with some formatting help from AI [Coach]
|
||||
* <span style="font-weight:bold;color:blue;">|</span> <span style="color:teal;">|</span> 3fdd6ae Merge to main for Scrimmage [Coach]
|
||||
<span style="font-weight:bold;color:purple;">|</span><span style="font-weight:bold;color:blue;">\</span><span style="font-weight:bold;color:blue;">|</span> <span style="color:teal;">|</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="color:teal;">|</span> 1e612e2 (tag: Scrimmage-Twist) Updated license information [Atharv]
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="color:teal;">|</span> 4456a5a Merge pull request 'Johannes_Dev' (#9) from Johannes_Dev into dev [Atharv]
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span><span style="color:green;">\</span> <span style="color:teal;">\</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span> * <span style="color:teal;">|</span> 08e0b9a (origin/Johannes_Dev) Delete missions/Lift2.py [Atharv]
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span> * <span style="color:teal;">|</span> 4533f95 Add stuff from Johannes accidental fork [Atharv]
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="color:green;">|</span> <span style="color:teal;">|</span> ec74531 Merge pull request 'Vickram_dev_' (#8) from Vickram_dev_ into dev [Atharv]
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:olive;">|</span><span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span> 62b76d4 Merge pull request 'Add missions/tip the scale.py' (#4) from ayaan_dev into dev [Atharv]
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:purple;">|</span><span style="color:teal;">\</span> <span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:purple;">|</span> * <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span> 8008daf (origin/ayaan_dev) Add missions/tip the scale.py [Ayaan]
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="color:teal;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span> cba5cfc Merge pull request 'Update utils/combine_runs.py' (#5) from Vickram_dev_ into dev [Atharv]
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="font-weight:bold;color:red;">|</span><span style="font-weight:bold;color:green;">\</span> <span style="color:teal;">\</span> <span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="font-weight:bold;color:green;">\</span> <span style="color:teal;">\</span> <span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span> 3349e7f Merge pull request 'Rishi_dev' (#7) from Rishi_dev into dev [Atharv]
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="font-weight:bold;color:olive;">|</span><span style="font-weight:bold;color:blue;">\</span> <span style="font-weight:bold;color:green;">\</span> <span style="color:teal;">\</span> <span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="font-weight:bold;color:olive;">|</span> * <span style="font-weight:bold;color:green;">|</span> <span style="color:teal;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span> 4b765b0 (origin/Rishi_dev) Update missions/M8_5.py [Rishikesh Lolapu]
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="font-weight:bold;color:olive;">|</span> * <span style="font-weight:bold;color:green;">|</span> <span style="color:teal;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span> 2eca0d7 Initial commit [Rishikesh Lolapu]
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="font-weight:bold;color:olive;">|</span><span style="font-weight:bold;color:olive;">/</span> <span style="font-weight:bold;color:green;">/</span> <span style="color:teal;">/</span> <span style="color:blue;">/</span> <span style="color:green;">/</span> <span style="color:teal;">/</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="font-weight:bold;color:green;">|</span> <span style="color:teal;">/</span> <span style="color:blue;">/</span> <span style="color:green;">/</span> <span style="color:teal;">/</span> 8949003 Mission 9 not in use [Atharv]
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span><span style="color:teal;">/</span> <span style="color:blue;">/</span> <span style="color:green;">/</span> <span style="color:teal;">/</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:teal;">|</span><span style="color:teal;">/</span><span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span> 6931731 Update LINEUPS.md [Atharv]
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span> d172c70 THIS CODE IS OUTDATED!!! DO NOT USE!!! [Atharv]
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span> efcc011 Initial Commit [Vickram]
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span> <span style="color:teal;">|</span> 28bb3fa Merge pull request 'Pull from Vickram to dev' (#2) from Vickram_dev_ into dev [Atharv]
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="font-weight:bold;color:purple;">|</span><span style="font-weight:bold;color:teal;">\</span> <span style="font-weight:bold;color:green;">\</span> <span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> * <span style="font-weight:bold;color:teal;">\</span> <span style="font-weight:bold;color:green;">\</span> <span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span> 7ba2453 Merge pull request 'Pull from Johannes_Dev to dev' (#3) from Johannes_Dev into dev [Atharv]
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span><span style="color:green;">\</span> <span style="font-weight:bold;color:teal;">\</span> <span style="font-weight:bold;color:green;">\</span> <span style="color:blue;">\</span> <span style="color:green;">\</span> <span style="color:teal;">\</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span><span style="color:green;">_</span><span style="font-weight:bold;color:green;">|</span><span style="color:green;">_</span><span style="color:blue;">|</span><span style="color:green;">/</span> <span style="color:teal;">/</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span><span style="color:green;">/</span><span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span>
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span> * <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> 7eeead7 Sand Mission [Johannes]
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span> * <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> e817650 Send Over [Johannes]
|
||||
<span style="font-weight:bold;color:purple;">|</span> <span style="color:red;">|</span> * <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> c4aa954 Boat mission [Johannes]
|
||||
* <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> ee0b8eb Update README.md [Atharv]
|
||||
* <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> a745ed8 Merge pull request 'WIP - Test Merge ( dev to main )' (#1) from dev into main [Coach]
|
||||
<span style="color:olive;">|</span><span style="color:blue;">\</span> <span style="color:red;">\</span> <span style="color:green;">\</span> <span style="font-weight:bold;color:teal;">\</span> <span style="font-weight:bold;color:green;">\</span> <span style="color:blue;">\</span> <span style="color:teal;">\</span>
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> * 7e2dc0b (origin/Vickram_dev_) Update final/main5.py [Rishikesh Lolapu]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> * 29bd9f0 Update final/main5.py [Rishikesh Lolapu]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> * a3b04d3 Add final/main5.py [Rishikesh Lolapu]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> * 2d9eb49 Update final/main4.py [Johannes]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> * 42090ea Update final/main4.py [Johannes]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span> * f7072a6 Update final/main4.py [Johannes]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> <span style="color:teal;">|</span><span style="color:teal;">/</span>
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> * 3f37e7e Update final/main4.py [Vickram]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> * a3e7be2 Update final/main4.py [Atharv]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> * c2204e7 Update final/main4.py [Vickram]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> * 0664a61 Add final/main4.py [Vickram]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> * 227619d Add final/3main.py [Vickram]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span> * 684447c Add final/2main.py [Vickram]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> <span style="color:blue;">|</span><span style="color:blue;">/</span>
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> * 95d7c0c Add final/1main.py [Vickram]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> * 7e0c3d2 Delete Final Combined Codes [Vickram]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> * f190d38 Add Final Combined Codes [Vickram]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> * cd21a73 Delete missions/main.py [Vickram]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span> * 0fa1019 Upload files to "missions" [Vickram]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> <span style="font-weight:bold;color:green;">|</span><span style="font-weight:bold;color:green;">/</span>
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span> * bb89e01 Update utils/combine_runs.py [Vickram]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> <span style="font-weight:bold;color:teal;">|</span><span style="font-weight:bold;color:teal;">/</span>
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span> * c690ae4 Update members/Vickram.txt [Vickram]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span> <span style="color:green;">|</span><span style="color:red;">/</span>
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:red;">|</span><span style="color:red;">/</span><span style="color:green;">|</span>
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:green;">|</span> d309b00 '{Johannes}' [Johannes]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:green;">|</span> 37fb0a6 Add members/Ayaan.txt [Ayaan]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:green;">|</span> e895fd1 Add members/Vickram.txt [Vickram]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * <span style="color:green;">|</span> 70e09fb Add members/Carlos.txt [Carlos]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> <span style="color:green;">|</span><span style="color:green;">/</span>
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * d017d13 Update members/atharv.txt [Atharv]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * 6199a9c Atharv - added my About Me [Atharv]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * 72547c5 Fixed grammar [Atharv]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * 5d57a3a Initial commit [Atharv]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * 5c7e2e9 Uploaded files from Bitbucket [Atharv]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * e36e3d0 Delete Send_Over.py [Atharv]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * a35d599 Delete M8_5.py [Atharv]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * 6dedb0a Uploaded files from Bitbucket [Atharv]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * be5350d Update README.md [Atharv]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * 2412f2c Uploaded files from Bitbucket [Atharv]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * 125f1df Uploaded files from Bitbucket [Atharv]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * 3ddaf7e Uploaded files from Bitbucket [Atharv]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * 2629845 Test new [Atharv]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span> * fdbc180 Test [Atharv]
|
||||
<span style="color:olive;">|</span> <span style="color:blue;">|</span><span style="color:blue;">/</span>
|
||||
<span style="color:olive;">|</span> * ce4f984 Created new branch [Coach]
|
||||
<span style="color:olive;">|</span> * 7a0d651 Test commit [Coach]
|
||||
<span style="color:olive;">|</span><span style="color:olive;">/</span>
|
||||
* 0d0e977 Initial commit [Coach]</pre>
|
||||
</body>
|
||||
</html>
|
||||
@@ -86,11 +86,19 @@ async def Run2():
|
||||
await drive_base.straight(-600)
|
||||
async def Run3():
|
||||
await drive_base.straight(920)
|
||||
<<<<<<< HEAD:final/4main.py
|
||||
await drive_base.turn(-90)
|
||||
await drive_base.straight(60)
|
||||
drive_base.turn(-10)
|
||||
await left_arm.run_angle(10000,-4000)
|
||||
await drive_base.straight(-110)
|
||||
=======
|
||||
await drive_base.turn(-90,Stop.HOLD)
|
||||
await drive_base.straight(65)
|
||||
drive_base.turn(-10)
|
||||
await left_arm.run_angle(10000,-4000)
|
||||
await drive_base.straight(-100)
|
||||
>>>>>>> Vickram_dev_:final/main4.py
|
||||
await drive_base.turn(90)
|
||||
await drive_base.straight(2000)
|
||||
async def Run5():
|
||||
|
||||
280
final/main5.py
Normal file
280
final/main5.py
Normal file
@@ -0,0 +1,280 @@
|
||||
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
|
||||
|
||||
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(550,700,100,100)
|
||||
drive_base.use_gyro(True)
|
||||
color_sensor = ColorSensor(Port.F)
|
||||
Color.ORANGE = Color(37, 85, 95)
|
||||
Color.BLUE = Color(230,100,100)
|
||||
color_sensor.detectable_colors([Color.ORANGE, Color.BLUE, Color.GREEN, Color.WHITE, Color.RED, Color.YELLOW])
|
||||
hub.speaker.volume(50) # Set the volume of the speaker
|
||||
color_sensor.detectable_colors()
|
||||
# Celebration sound types
|
||||
class CelebrationSound:
|
||||
VICTORY_FANFARE = 0
|
||||
LEVEL_UP = 1
|
||||
SUCCESS_CHIME = 2
|
||||
TA_DA = 3
|
||||
POWER_UP = 4
|
||||
RICKROLL_INSPIRED = 5
|
||||
|
||||
async def play_victory_fanfare():
|
||||
"""Classic victory fanfare"""
|
||||
notes = [
|
||||
(262, 200), # C4
|
||||
(262, 200), # C4
|
||||
(262, 200), # C4
|
||||
(349, 600), # F4
|
||||
]
|
||||
|
||||
for freq, duration in notes:
|
||||
await hub.speaker.beep(freq, duration)
|
||||
await wait(50)
|
||||
async def play_level_up():
|
||||
"""Upward scale for level completion"""
|
||||
notesold = [
|
||||
(262, 100), # C4
|
||||
(294, 100), # D4
|
||||
(330, 100), # E4
|
||||
(349, 100), # F4
|
||||
(392, 100), # G4
|
||||
(440, 100), # A4
|
||||
(494, 100), # B4
|
||||
(523, 300), # C5
|
||||
]
|
||||
notes = [
|
||||
(277, 100),
|
||||
(330, 100),
|
||||
(277, 100),
|
||||
(554, 100),
|
||||
(277, 100),
|
||||
(413, 100),
|
||||
(330, 100),
|
||||
(277, 100),
|
||||
(413, 100),
|
||||
(277, 100),
|
||||
(554, 100),
|
||||
(413, 100),
|
||||
(277, 100),
|
||||
(413, 100),
|
||||
(554, 100),
|
||||
(413, 100)
|
||||
]
|
||||
|
||||
for freq, duration in notes:
|
||||
await hub.speaker.beep(freq, duration)
|
||||
#await wait(20)
|
||||
async def play_success_chime():
|
||||
"""Simple success notification"""
|
||||
notes = [
|
||||
(523, 150), # C5
|
||||
(659, 150), # E5
|
||||
(784, 300), # G5
|
||||
]
|
||||
|
||||
for freq, duration in notes:
|
||||
await hub.speaker.beep(freq, duration)
|
||||
await wait(50)
|
||||
async def play_ta_da():
|
||||
"""Classic "ta-da!" sound"""
|
||||
notes = [
|
||||
(392, 200), # G4
|
||||
(523, 400), # C5
|
||||
]
|
||||
|
||||
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
|
||||
pattern = [
|
||||
(392, 200), (440, 200), (494, 200), (523, 200),
|
||||
(440, 200), (392, 200), (349, 200), (392, 300),
|
||||
(440, 200), (392, 200), (349, 200), (330, 400),
|
||||
]
|
||||
|
||||
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.
|
||||
Plays a sound and shows light animation.
|
||||
|
||||
Args:
|
||||
sound_type: CelebrationSound enum value (default: SUCCESS_CHIME)
|
||||
"""
|
||||
# Light show
|
||||
hub.light.on(Color.GREEN)
|
||||
|
||||
# Play the selected celebration sound
|
||||
if sound_type == CelebrationSound.VICTORY_FANFARE:
|
||||
await play_victory_fanfare()
|
||||
elif sound_type == CelebrationSound.LEVEL_UP:
|
||||
await play_level_up()
|
||||
elif sound_type == CelebrationSound.SUCCESS_CHIME:
|
||||
await play_success_chime()
|
||||
elif sound_type == CelebrationSound.TA_DA:
|
||||
await play_ta_da()
|
||||
elif sound_type == CelebrationSound.POWER_UP:
|
||||
await play_power_up()
|
||||
elif sound_type == CelebrationSound.RICKROLL_INSPIRED:
|
||||
await play_rickroll_inspired()
|
||||
else:
|
||||
await play_success_chime() # Default fallback
|
||||
|
||||
# Blink the light
|
||||
for _ in range(3):
|
||||
hub.light.off()
|
||||
await wait(100)
|
||||
hub.light.on(Color.GREEN)
|
||||
await wait(100)
|
||||
|
||||
hub.light.off()
|
||||
|
||||
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 Run4():
|
||||
await drive_base.straight(519)
|
||||
await arm_motor_left.run_angle(-10000, 300)
|
||||
await arm_motor_left.run_angle(10000, 600)
|
||||
await drive_base.straight(160)
|
||||
await drive_base.turn(-30)
|
||||
await drive_base.straight(50)
|
||||
await arm_motor.run_angle(3000, 3000)
|
||||
await drive_base.straight(-150)
|
||||
await drive_base.turn(135)
|
||||
await drive_base.straight(50)
|
||||
await arm_motor.run_angle(10000, -3000)
|
||||
await drive_base.straight(-100)
|
||||
await drive_base.turn(-54)
|
||||
await arm_motor.run_angle(10000, -3000)
|
||||
await drive_base.straight(250)
|
||||
await drive_base.turn(-5)
|
||||
await arm_motor.run_angle(10000, 7000)
|
||||
await drive_base.straight(-50)
|
||||
await drive_base.turn(68)
|
||||
await arm_motor.run_angle(10000, -6000)
|
||||
await drive_base.straight(200)
|
||||
await arm_motor.run_angle(10000, 4000)
|
||||
await drive_base.turn(-40)
|
||||
await arm_motor.run_angle(10000, 7000)
|
||||
|
||||
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():
|
||||
while True:
|
||||
|
||||
await celebrate_mission_complete(CelebrationSound.LEVEL_UP)
|
||||
color_reflected_percent = await color_sensor.reflection()
|
||||
print(color_reflected_percent)
|
||||
|
||||
color_detected = await color_sensor.color()
|
||||
print(f'Detected color: {color_detected.h}, {color_detected.s}, {color_detected.v}')
|
||||
if color_reflected_percent > 0:
|
||||
if color_detected == Color.GREEN:
|
||||
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 4')
|
||||
await Run4()
|
||||
await celebrate_mission_complete(CelebrationSound.POWER_UP)
|
||||
elif color_detected == Color.RED:
|
||||
print('Running Mission 5')
|
||||
await Run5()
|
||||
await celebrate_mission_complete(CelebrationSound.LEVEL_UP)
|
||||
else:
|
||||
hub.light.off()
|
||||
left_motor.stop()
|
||||
right_motor.stop()
|
||||
await wait(1000) #prevent loop from iterating fast
|
||||
# Main execution loop
|
||||
run_task(main())
|
||||
112
graph.txt
Normal file
112
graph.txt
Normal file
@@ -0,0 +1,112 @@
|
||||
* d3294bc SCRIMMAGE MERGE!!!
|
||||
|\
|
||||
| * d66aecd Update README.md
|
||||
| * bbdf0d0 Shortened fun sounds
|
||||
| * a2ed2c4 Merge pull request 'arcmyx-dev' (#14) from arcmyx-dev into dev
|
||||
| |\
|
||||
| | * dd0070d Update twist_scrimmage.py
|
||||
| | * 9a06677 Added comments. Good luck for scrimmage y'all!!!
|
||||
| | * 11e89c6 THE FINAL THINGY
|
||||
| * | 52214be Update final/4main.py
|
||||
| * | 4540269 Update final/4main.py
|
||||
| * | 785c955 Update final/4main.py
|
||||
| * | b6cffc6 Update final/4main
|
||||
| * | 870dce3 Merge pull request 'arcmyx-dev' (#13) from arcmyx-dev into dev
|
||||
| |\|
|
||||
| | * bb76258 Update final/main4emaj.py
|
||||
| | * 75e64da Update final/main4emaj.py
|
||||
| | * 8ea7cd5 Update final/main4emaj.py
|
||||
* | | 5ba2811 Merge pull request 'Updated LICENSE and README' (#12) from dev into main
|
||||
|\| |
|
||||
| * | dd4fb8b Switched to GPLv3
|
||||
| * | ee099d9 Switched to GPL v3
|
||||
| * | 489add5 Removed emojis
|
||||
* | | 387e00b Merge branch 'dev'
|
||||
|\| |
|
||||
| * | 28e5bea Updated README file with some formatting help from AI
|
||||
* | | 3fdd6ae Merge to main for Scrimmage
|
||||
|\| |
|
||||
| * | 1e612e2 Updated license information
|
||||
| * | 4456a5a Merge pull request 'Johannes_Dev' (#9) from Johannes_Dev into dev
|
||||
| |\ \
|
||||
| | * | 08e0b9a Delete missions/Lift2.py
|
||||
| | * | 4533f95 Add stuff from Johannes accidental fork
|
||||
| * | | ec74531 Merge pull request 'Vickram_dev_' (#8) from Vickram_dev_ into dev
|
||||
| |\ \ \
|
||||
| * \ \ \ 62b76d4 Merge pull request 'Add missions/tip the scale.py' (#4) from ayaan_dev into dev
|
||||
| |\ \ \ \
|
||||
| | * | | | 8008daf Add missions/tip the scale.py
|
||||
| * | | | | cba5cfc Merge pull request 'Update utils/combine_runs.py' (#5) from Vickram_dev_ into dev
|
||||
| |\ \ \ \ \
|
||||
| * \ \ \ \ \ 3349e7f Merge pull request 'Rishi_dev' (#7) from Rishi_dev into dev
|
||||
| |\ \ \ \ \ \
|
||||
| | * | | | | | 4b765b0 Update missions/M8_5.py
|
||||
| | * | | | | | 2eca0d7 Initial commit
|
||||
| |/ / / / / /
|
||||
| * | / / / / 8949003 Mission 9 not in use
|
||||
| | |/ / / /
|
||||
| |/| | | |
|
||||
| * | | | | 6931731 Update LINEUPS.md
|
||||
| * | | | | d172c70 THIS CODE IS OUTDATED!!! DO NOT USE!!!
|
||||
| * | | | | efcc011 Initial Commit
|
||||
| * | | | | 28bb3fa Merge pull request 'Pull from Vickram to dev' (#2) from Vickram_dev_ into dev
|
||||
| |\ \ \ \ \
|
||||
| * \ \ \ \ \ 7ba2453 Merge pull request 'Pull from Johannes_Dev to dev' (#3) from Johannes_Dev into dev
|
||||
| |\ \ \ \ \ \
|
||||
| | | |_|_|/ /
|
||||
| | |/| | | |
|
||||
| | * | | | | 7eeead7 Sand Mission
|
||||
| | * | | | | e817650 Send Over
|
||||
| | * | | | | c4aa954 Boat mission
|
||||
* | | | | | | ee0b8eb Update README.md
|
||||
* | | | | | | a745ed8 Merge pull request 'WIP - Test Merge ( dev to main )' (#1) from dev into main
|
||||
|\ \ \ \ \ \ \
|
||||
| | | | | | | | * 7e2dc0b Update final/main5.py
|
||||
| | | | | | | | * 29bd9f0 Update final/main5.py
|
||||
| | | | | | | | * a3b04d3 Add final/main5.py
|
||||
| | | | | | | | * 2d9eb49 Update final/main4.py
|
||||
| | | | | | | | * 42090ea Update final/main4.py
|
||||
| | | | | | | | * f7072a6 Update final/main4.py
|
||||
| | | | | | | |/
|
||||
| | | | | | | * 3f37e7e Update final/main4.py
|
||||
| | | | | | | * a3e7be2 Update final/main4.py
|
||||
| | | | | | | * c2204e7 Update final/main4.py
|
||||
| | | | | | | * 0664a61 Add final/main4.py
|
||||
| | | | | | | * 227619d Add final/3main.py
|
||||
| | | | | | | * 684447c Add final/2main.py
|
||||
| | | | | | |/
|
||||
| | | | | | * 95d7c0c Add final/1main.py
|
||||
| | | | | | * 7e0c3d2 Delete Final Combined Codes
|
||||
| | | | | | * f190d38 Add Final Combined Codes
|
||||
| | | | | | * cd21a73 Delete missions/main.py
|
||||
| | | | | | * 0fa1019 Upload files to "missions"
|
||||
| | | | | |/
|
||||
| | | | | * bb89e01 Update utils/combine_runs.py
|
||||
| | | | |/
|
||||
| | | | * c690ae4 Update members/Vickram.txt
|
||||
| | | |/
|
||||
| | |/|
|
||||
| | * | d309b00 '{Johannes}'
|
||||
| | * | 37fb0a6 Add members/Ayaan.txt
|
||||
| | * | e895fd1 Add members/Vickram.txt
|
||||
| | * | 70e09fb Add members/Carlos.txt
|
||||
| | |/
|
||||
| | * d017d13 Update members/atharv.txt
|
||||
| | * 6199a9c Atharv - added my About Me
|
||||
| | * 72547c5 Fixed grammar
|
||||
| | * 5d57a3a Initial commit
|
||||
| | * 5c7e2e9 Uploaded files from Bitbucket
|
||||
| | * e36e3d0 Delete Send_Over.py
|
||||
| | * a35d599 Delete M8_5.py
|
||||
| | * 6dedb0a Uploaded files from Bitbucket
|
||||
| | * be5350d Update README.md
|
||||
| | * 2412f2c Uploaded files from Bitbucket
|
||||
| | * 125f1df Uploaded files from Bitbucket
|
||||
| | * 3ddaf7e Uploaded files from Bitbucket
|
||||
| | * 2629845 Test new
|
||||
| | * fdbc180 Test
|
||||
| |/
|
||||
| * ce4f984 Created new branch
|
||||
| * 7a0d651 Test commit
|
||||
|/
|
||||
* 0d0e977 Initial commit
|
||||
2
members/Rishi.txt
Normal file
2
members/Rishi.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hi I'm Rishi, the coding manager for Team: 65266
|
||||
I love coding and making things that probably end the world.
|
||||
@@ -2,26 +2,36 @@ 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
|
||||
from pybricks.tools import wait, StopWatch, run_task, multitask
|
||||
|
||||
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)
|
||||
left_arm = Motor(Port.C, Direction.COUNTERCLOCKWISE)
|
||||
right_arm = Motor(Port.D)
|
||||
|
||||
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)
|
||||
|
||||
drive_base.settings(550,700,100,100)
|
||||
|
||||
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)
|
||||
|
||||
first_run = False
|
||||
|
||||
async def main():
|
||||
await drive_base.straight(750)
|
||||
await drive_base.straight(-650)
|
||||
await drive_base.straight(700)
|
||||
await drive_base.turn(-17)
|
||||
await drive_base.straight(100)
|
||||
await drive_base.straight(-205)
|
||||
await drive_base.turn(62)
|
||||
await drive_base.straight(125)
|
||||
await arm_motor.run_angle(1000, -1200)
|
||||
await drive_base.straight(87)
|
||||
await arm_motor.run_angle(300, 1200)
|
||||
await drive_base.straight(-875)
|
||||
|
||||
run_task(main())
|
||||
@@ -19,16 +19,15 @@ 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(536)
|
||||
await drive_base.turn(60, Stop.HOLD)
|
||||
await drive_base.straight(30)
|
||||
|
||||
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 right_arm.run_angle(5000,3000)
|
||||
await drive_base.straight(40)
|
||||
await right_arm.run_angle(5000,-4000)
|
||||
await drive_base.straight(-60)
|
||||
|
||||
await drive_base.turn(-100)
|
||||
await drive_base.straight(-600)
|
||||
await drive_base.turn(-60)
|
||||
await drive_base.straight(-670)
|
||||
run_task(main())
|
||||
37
missions/Hypo.py
Normal file
37
missions/Hypo.py
Normal file
@@ -0,0 +1,37 @@
|
||||
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, multitask
|
||||
|
||||
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(700)
|
||||
await drive_base.turn(-17)
|
||||
await drive_base.straight(100)
|
||||
await drive_base.straight(-205)
|
||||
await drive_base.turn(62)
|
||||
await drive_base.straight(125)
|
||||
await arm_motor.run_angle(1000, -1200)
|
||||
await drive_base.straight(87)
|
||||
await arm_motor.run_angle(300, 1200)
|
||||
await drive_base.straight(-875)
|
||||
|
||||
run_task(main())
|
||||
@@ -19,31 +19,47 @@ drive_base.settings(600,500,300,200)
|
||||
drive_base.use_gyro(True)
|
||||
|
||||
async def main():
|
||||
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)
|
||||
right_arm.run_angle(1000,450)
|
||||
left_arm.run_angle(500,-90)
|
||||
await drive_base.straight(200)
|
||||
|
||||
await drive_base.turn(-40)
|
||||
await drive_base.straight(325)
|
||||
await left_arm.run_angle(500,90)
|
||||
|
||||
await drive_base.straight(-100)
|
||||
await drive_base.straight(50)
|
||||
await left_arm.run_angle(500,-180)
|
||||
|
||||
await drive_base.straight(-90)
|
||||
left_arm.run_angle(500,180)
|
||||
await drive_base.turn(-20)
|
||||
await drive_base.straight(277)
|
||||
await drive_base.turn(20)
|
||||
await drive_base.straight(65)
|
||||
await drive_base.turn(15)
|
||||
|
||||
await drive_base.turn(-30)
|
||||
right_arm.run_angle(50,500)
|
||||
await drive_base.straight(-173)
|
||||
await drive_base.turn(45)
|
||||
await drive_base.straight(-145)
|
||||
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(-600)
|
||||
await drive_base.straight(120)
|
||||
left_arm.run_angle(1000,-670)
|
||||
|
||||
await right_arm.run_angle(5000,-450, Stop.HOLD)
|
||||
await right_arm.run_angle(5000,450, Stop.HOLD)
|
||||
await right_arm.run_angle(5000,-450, Stop.HOLD)
|
||||
await right_arm.run_angle(5000,450, Stop.HOLD)
|
||||
await right_arm.run_angle(5000,-450, Stop.HOLD)
|
||||
right_arm.run_angle(5000,450, Stop.HOLD)
|
||||
|
||||
await drive_base.turn(-35)
|
||||
await drive_base.straight(297)
|
||||
await drive_base.turn(63)
|
||||
await drive_base.straight(170)
|
||||
|
||||
await drive_base.turn(-80)
|
||||
await drive_base.straight(87)
|
||||
await drive_base.turn(-15)
|
||||
|
||||
await drive_base.straight(-90)
|
||||
await drive_base.turn(-100)
|
||||
await drive_base.arc(-500,None,600)
|
||||
|
||||
run_task(main())
|
||||
38
missions/New_MapReveal/New_MapReveal_Mineshaft.py
Normal file
38
missions/New_MapReveal/New_MapReveal_Mineshaft.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from pybricks.pupdevices import Motor, ColorSensor, UltrasonicSensor, ForceSensor
|
||||
from pybricks.parameters import Button, Color, Direction, Port, Side, Stop
|
||||
from pybricks.tools import run_task, multitask
|
||||
from pybricks.tools import wait, StopWatch
|
||||
from pybricks.robotics import DriveBase
|
||||
from pybricks.hubs import PrimeHub
|
||||
|
||||
# Initialize hub and devices
|
||||
hub = PrimeHub()
|
||||
left_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE)
|
||||
right_motor = Motor(Port.B)
|
||||
left_arm = Motor(Port.C)
|
||||
right_arm = Motor(Port.D)
|
||||
lazer_ranger = UltrasonicSensor(Port.E)
|
||||
color_sensor = ColorSensor(Port.F)
|
||||
|
||||
# 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)
|
||||
|
||||
WALL_DISTANCE = 200 # mm
|
||||
|
||||
async def main():
|
||||
await drive_base.straight(700)
|
||||
await drive_base.turn(-20)
|
||||
await drive_base.straight(110)
|
||||
await drive_base.straight(-220)
|
||||
await drive_base.turn(63)
|
||||
await drive_base.straight(130)
|
||||
await right_arm.run_angle(1000, -1200)
|
||||
await drive_base.straight(84)
|
||||
await right_arm.run_angle(300, 1200)
|
||||
await drive_base.straight(-875)
|
||||
|
||||
run_task(main())
|
||||
42
missions/Rishi.py
Normal file
42
missions/Rishi.py
Normal file
@@ -0,0 +1,42 @@
|
||||
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, multitask
|
||||
|
||||
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(-10000, 300)
|
||||
await arm_motor_left.run_angle(10000, 600)
|
||||
await drive_base.straight(160)
|
||||
await drive_base.turn(-30)
|
||||
await drive_base.straight(50)
|
||||
await arm_motor.run_angle(3000, 3000)
|
||||
await drive_base.straight(-150)
|
||||
await drive_base.turn(135)
|
||||
await drive_base.straight(50)
|
||||
await arm_motor.run_angle(10000, -3000)
|
||||
await drive_base.straight(-100)
|
||||
await drive_base.turn(-54)
|
||||
await arm_motor.run_angle(10000, -3000)
|
||||
await drive_base.straight(200)
|
||||
await arm_motor.run_angle(10000, 10000)
|
||||
run_task(main())
|
||||
@@ -20,10 +20,10 @@ drive_base.use_gyro(True)
|
||||
|
||||
|
||||
async def main():
|
||||
await drive_base.straight(420)
|
||||
await right_arm.run_angle(300,-100)
|
||||
await drive_base.straight(500)
|
||||
await right_arm.run_angle(300,100)
|
||||
await drive_base.straight(-100)
|
||||
await right_arm.run_angle(300, 100)
|
||||
await right_arm.run_angle(300,-100)
|
||||
await drive_base.straight(-350)
|
||||
|
||||
run_task(main())
|
||||
59
missions/Send_Over_Final.py
Normal file
59
missions/Send_Over_Final.py
Normal file
@@ -0,0 +1,59 @@
|
||||
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)
|
||||
lazer_ranger = UltrasonicSensor(Port.E)
|
||||
|
||||
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)
|
||||
|
||||
WALL_DISTANCE = 200 # mm
|
||||
|
||||
async def drive_forward():
|
||||
"""Drive forward continuously using DriveBase."""
|
||||
drive_base.drive(400, 0)
|
||||
|
||||
|
||||
async def monitor_distance():
|
||||
"""Monitor ultrasonic sensor and stop when wall is detected."""
|
||||
while True:
|
||||
distance = await lazer_ranger.distance()
|
||||
print('Distancing...',distance)
|
||||
|
||||
if distance < WALL_DISTANCE:
|
||||
# Stop the drivebase
|
||||
await drive_base.stop
|
||||
print(f"Wall detected at {distance}mm!")
|
||||
break
|
||||
|
||||
# Small delay to prevent overwhelming the sensor
|
||||
await wait(50)
|
||||
|
||||
async def main():
|
||||
await drive_base.straight(-920)
|
||||
await drive_base.turn(-90,Stop.HOLD)
|
||||
await drive_base.straight(65)
|
||||
#Solve
|
||||
drive_base.turn(-10)
|
||||
await left_arm.run_angle(10000,-4000)
|
||||
await drive_base.straight(-110)
|
||||
await drive_base.turn(90)
|
||||
|
||||
await multitask(
|
||||
drive_forward(),
|
||||
monitor_distance()
|
||||
)
|
||||
|
||||
run_task(main())
|
||||
@@ -1,44 +0,0 @@
|
||||
# ---JOHANNES---
|
||||
# THIS CODE IS NOT USED ANYMORE AND SHOULD NOT BE USED!!!!!!
|
||||
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()
|
||||
|
||||
# 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.E, Direction.CLOCKWISE)
|
||||
arm_motor.run_angle(299,90, Stop.HOLD)
|
||||
# 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=54, axle_track=140)
|
||||
|
||||
print('The default settings are: ' + str(drive_base.settings()))
|
||||
drive_base.settings(100,1000,166,750)
|
||||
# Optionally, uncomment the line below to use the gyro for improved accuracy.
|
||||
drive_base.use_gyro(True)
|
||||
|
||||
async def solveM9():
|
||||
print("Solving Mission 9")
|
||||
await drive_base.turn(45)
|
||||
await drive_base.straight(260)
|
||||
await arm_motor.run_angle(500,-500, Stop.HOLD)
|
||||
await drive_base.straight(-40)
|
||||
await drive_base.turn(92)
|
||||
await drive_base.straight(-120)
|
||||
await drive_base.straight(220)
|
||||
await arm_motor.run_angle(500,100, Stop.HOLD)
|
||||
await drive_base.turn(-50)
|
||||
await drive_base.straight(-600)
|
||||
async def main():
|
||||
await drive_base.straight(50)
|
||||
print("Hello, Robot is starting to run.")
|
||||
await solveM9()
|
||||
|
||||
run_task(main())
|
||||
@@ -15,28 +15,23 @@ 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(300,1000,300,200)
|
||||
drive_base.settings(600,500,300,200)
|
||||
|
||||
#drive_base.use_gyro(True)
|
||||
drive_base.use_gyro(True)
|
||||
|
||||
async def main():
|
||||
left_arm.run_angle(500,200)
|
||||
right_arm.run_angle(500,200)
|
||||
await drive_base.straight(70)
|
||||
|
||||
await drive_base.turn(-55)
|
||||
await drive_base.straight(900)
|
||||
await drive_base.turn(92.5)
|
||||
right_arm.run_angle(500,400)
|
||||
await drive_base.straight(800)
|
||||
await drive_base.turn(90)
|
||||
await drive_base.straight(88)
|
||||
await right_arm.run_angle(100,-300)
|
||||
await right_arm.run_angle(400,400)
|
||||
|
||||
await drive_base.straight(75)
|
||||
await drive_base.straight(21)
|
||||
await right_arm.run_angle(500,-250)
|
||||
await right_arm.run_angle(500,250)
|
||||
await drive_base.turn(55)
|
||||
await drive_base.straight(-100)
|
||||
await drive_base.turn(90)
|
||||
await drive_base.straight(800)
|
||||
drive_base.brake()
|
||||
|
||||
await left_arm.run_angle(300,-400)
|
||||
|
||||
await drive_base.turn(46.5)
|
||||
await drive_base.turn(-40)
|
||||
await drive_base.straight(900)
|
||||
run_task(main())
|
||||
|
||||
|
||||
303
test_10_17_2025.py
Normal file
303
test_10_17_2025.py
Normal file
@@ -0,0 +1,303 @@
|
||||
# Stuff from 10/15/2025
|
||||
# Atharv trying with no avail to add more colors to the color sensor logic 😭😭😭😭😭😭😭
|
||||
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
|
||||
|
||||
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(550,700,100,100)
|
||||
drive_base.use_gyro(True)
|
||||
color_sensor = ColorSensor(Port.F)
|
||||
Color.ORANGE = Color(28, 61, 61)
|
||||
Color.BLUE = Color(230,100,100)
|
||||
Color.YELLOW = Color(37, 85, 95)
|
||||
Color.PURPLE = Color(326, 60, 87)
|
||||
color_sensor.detectable_colors([Color.ORANGE, Color.BLUE, Color.GREEN, Color.WHITE, Color.RED, Color.YELLOW, Color.NONE, Color.PURPLE])
|
||||
hub.speaker.volume(50) # Set the volume of the speaker
|
||||
color_sensor.detectable_colors()
|
||||
# Celebration sound types
|
||||
class CelebrationSound:
|
||||
VICTORY_FANFARE = 0
|
||||
LEVEL_UP = 1
|
||||
SUCCESS_CHIME = 2
|
||||
TA_DA = 3
|
||||
POWER_UP = 4
|
||||
RICKROLL_INSPIRED = 5
|
||||
|
||||
async def play_victory_fanfare():
|
||||
"""Classic victory fanfare"""
|
||||
notes = [
|
||||
(262, 200), # C4
|
||||
(262, 200), # C4
|
||||
(262, 200), # C4
|
||||
(349, 600), # F4
|
||||
]
|
||||
|
||||
for freq, duration in notes:
|
||||
await hub.speaker.beep(freq, duration)
|
||||
await wait(50)
|
||||
async def play_level_up():
|
||||
"""Upward scale for level completion"""
|
||||
notesold = [
|
||||
(262, 100), # C4
|
||||
(294, 100), # D4
|
||||
(330, 100), # E4
|
||||
(349, 100), # F4
|
||||
(392, 100), # G4
|
||||
(440, 100), # A4
|
||||
(494, 100), # B4
|
||||
(523, 300), # C5
|
||||
]
|
||||
notes = [
|
||||
(277, 100),
|
||||
(330, 100),
|
||||
(277, 100),
|
||||
(554, 100),
|
||||
(277, 100),
|
||||
(413, 100),
|
||||
(330, 100),
|
||||
(277, 100),
|
||||
(413, 100),
|
||||
(277, 100),
|
||||
(554, 100),
|
||||
(413, 100),
|
||||
(277, 100),
|
||||
(413, 100),
|
||||
(554, 100),
|
||||
(413, 100)
|
||||
]
|
||||
|
||||
for freq, duration in notes:
|
||||
await hub.speaker.beep(freq, duration)
|
||||
#await wait(20)
|
||||
async def play_success_chime():
|
||||
"""Simple success notification"""
|
||||
notes = [
|
||||
(523, 150), # C5
|
||||
(659, 150), # E5
|
||||
(784, 300), # G5
|
||||
]
|
||||
|
||||
for freq, duration in notes:
|
||||
await hub.speaker.beep(freq, duration)
|
||||
await wait(50)
|
||||
async def play_ta_da():
|
||||
"""Classic "ta-da!" sound"""
|
||||
notes = [
|
||||
(392, 200), # G4
|
||||
(523, 400), # C5
|
||||
]
|
||||
|
||||
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
|
||||
pattern = [
|
||||
(392, 200), (440, 200), (494, 200), (523, 200),
|
||||
(440, 200), (392, 200), (349, 200), (392, 300),
|
||||
(440, 200), (392, 200), (349, 200), (330, 400),
|
||||
]
|
||||
|
||||
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.
|
||||
Plays a sound and shows light animation.
|
||||
|
||||
Args:
|
||||
sound_type: CelebrationSound enum value (default: SUCCESS_CHIME)
|
||||
"""
|
||||
# Light show
|
||||
hub.light.on(Color.GREEN)
|
||||
|
||||
# Play the selected celebration sound
|
||||
if sound_type == CelebrationSound.VICTORY_FANFARE:
|
||||
await play_victory_fanfare()
|
||||
elif sound_type == CelebrationSound.LEVEL_UP:
|
||||
await play_level_up()
|
||||
elif sound_type == CelebrationSound.SUCCESS_CHIME:
|
||||
await play_success_chime()
|
||||
elif sound_type == CelebrationSound.TA_DA:
|
||||
await play_ta_da()
|
||||
elif sound_type == CelebrationSound.POWER_UP:
|
||||
await play_power_up()
|
||||
elif sound_type == CelebrationSound.RICKROLL_INSPIRED:
|
||||
await play_rickroll_inspired()
|
||||
else:
|
||||
await play_success_chime() # Default fallback
|
||||
|
||||
# Blink the light
|
||||
for _ in range(3):
|
||||
hub.light.off()
|
||||
await wait(100)
|
||||
hub.light.on(Color.GREEN)
|
||||
await wait(100)
|
||||
|
||||
hub.light.off()
|
||||
|
||||
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(277)
|
||||
await drive_base.turn(20)
|
||||
await drive_base.straight(65)
|
||||
await drive_base.turn(-30)
|
||||
right_arm.run_angle(50,500)
|
||||
await drive_base.turn(45)
|
||||
await drive_base.straight(-145)
|
||||
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(-700)
|
||||
|
||||
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.straight(-100)
|
||||
await drive_base.turn(-100)
|
||||
await drive_base.straight(-750)
|
||||
|
||||
|
||||
async def Run3():
|
||||
await drive_base.straight(920)
|
||||
await drive_base.turn(-90)
|
||||
await drive_base.straight(60)
|
||||
drive_base.turn(-10)
|
||||
await left_arm.run_angle(10000,-4000)
|
||||
await drive_base.straight(-110)
|
||||
await drive_base.turn(90)
|
||||
await drive_base.straight(2000)
|
||||
|
||||
async def Run4():
|
||||
await drive_base.straight(519)
|
||||
await drive_base.straight(519)
|
||||
await arm_motor_left.run_angle(-10000, 300)
|
||||
await arm_motor_left.run_angle(10000, 600)
|
||||
await drive_base.straight(160)
|
||||
await drive_base.turn(-30)
|
||||
await drive_base.straight(50)
|
||||
await arm_motor.run_angle(3000, 3000)
|
||||
await drive_base.straight(-150)
|
||||
await drive_base.turn(135)
|
||||
await drive_base.straight(50)
|
||||
await arm_motor.run_angle(10000, -3000)
|
||||
await drive_base.straight(-100)
|
||||
await drive_base.turn(-54)
|
||||
await arm_motor.run_angle(10000, -3000)
|
||||
await drive_base.straight(250)
|
||||
await drive_base.turn(-5)
|
||||
await arm_motor.run_angle(10000, 7000)
|
||||
await drive_base.straight(-50)
|
||||
await drive_base.turn(68)
|
||||
await arm_motor.run_angle(10000, -6000)
|
||||
await drive_base.straight(200)
|
||||
await arm_motor.run_angle(10000, 4000)
|
||||
await drive_base.turn(-40)
|
||||
await arm_motor.run_angle(10000, 7000)
|
||||
|
||||
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():
|
||||
left_arm.run_angle(500,200)
|
||||
right_arm.run_angle(500,200)
|
||||
await drive_base.straight(70)
|
||||
|
||||
await drive_base.turn(-55)
|
||||
await drive_base.straight(900)
|
||||
await drive_base.turn(92.5)
|
||||
|
||||
await drive_base.straight(75)
|
||||
await drive_base.straight(21)
|
||||
await right_arm.run_angle(500,-250)
|
||||
await right_arm.run_angle(500,250)
|
||||
await drive_base.turn(55)
|
||||
|
||||
await left_arm.run_angle(300,-400)
|
||||
|
||||
await drive_base.turn(46.5)
|
||||
await drive_base.turn(-40)
|
||||
await drive_base.straight(900)
|
||||
async def main():
|
||||
while True:
|
||||
|
||||
#await celebrate_mission_complete(CelebrationSound.LEVEL_UP)
|
||||
color_reflected_percent = await color_sensor.reflection()
|
||||
print(color_reflected_percent)
|
||||
|
||||
color_detected = await color_sensor.color()
|
||||
print(f'Detected color: {color_detected.h}, {color_detected.s}, {color_detected.v}')
|
||||
if color_reflected_percent > 1:
|
||||
if color_detected == Color.GREEN:
|
||||
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 4')
|
||||
await Run4()
|
||||
#await celebrate_mission_complete(CelebrationSound.POWER_UP)
|
||||
elif color_detected == Color.ORANGE:
|
||||
print('Running Mission 5')
|
||||
await Run5()
|
||||
#await celebrate_mission_complete(CelebrationSound.LEVEL_UP)
|
||||
elif color_detected == Color.PURPLE:
|
||||
print('Running Mission 6 (this is ayaan\'s code)')
|
||||
await Run6()
|
||||
#await celebrate_mission_complete(CelebrationSound.LEVEL_UP)
|
||||
else:
|
||||
hub.light.off()
|
||||
left_motor.stop()
|
||||
right_motor.stop()
|
||||
await wait(1000) #prevent loop from iterating fast
|
||||
# Main execution loop
|
||||
run_task(main())
|
||||
@@ -1,11 +1,9 @@
|
||||
# Imports... because we kinda need them...
|
||||
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
|
||||
|
||||
# Sets all the default values for the runs
|
||||
hub = PrimeHub()
|
||||
left_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE)
|
||||
right_motor = Motor(Port.B)
|
||||
@@ -17,248 +15,105 @@ drive_base.use_gyro(True)
|
||||
color_sensor = ColorSensor(Port.F)
|
||||
Color.ORANGE = Color(37, 85, 95)
|
||||
Color.BLUE = Color(230,100,100)
|
||||
Color.YELLOW = Color(53, 75, 84)
|
||||
color_sensor.detectable_colors([Color.YELLOW, Color.BLUE, Color.GREEN, Color.WHITE, Color.RED, Color.ORANGE, Color.NONE])
|
||||
Color.YELLOW = Color(37, 85, 95)
|
||||
color_sensor.detectable_colors([Color.ORANGE, Color.BLUE, Color.GREEN, Color.WHITE, Color.RED, Color.YELLOW])
|
||||
hub.speaker.volume(50) # Set the volume of the speaker
|
||||
color_sensor.detectable_colors()
|
||||
|
||||
# Notes to hertz for nice music
|
||||
cn = {
|
||||
"Cs3": 138.59,
|
||||
"D3": 146.83,
|
||||
"Ds3": 155.56,
|
||||
"E3": 164.81,
|
||||
"F3": 174.61,
|
||||
"Fs3": 185.00,
|
||||
"G3": 196.00,
|
||||
"Gs3": 207.65,
|
||||
"A3": 220.00,
|
||||
"As3": 233.08,
|
||||
"B3": 246.94,
|
||||
"C4": 261.63,
|
||||
"Cs4": 277.18,
|
||||
"D4": 293.66,
|
||||
"Ds4": 311.13,
|
||||
"E4": 329.63,
|
||||
"F4": 349.23,
|
||||
"Fs4": 369.99,
|
||||
"G4": 392.00,
|
||||
"Gs4": 415.30,
|
||||
"A4": 440.00,
|
||||
"As4": 466.16,
|
||||
"B4": 493.88,
|
||||
"C5": 523.25,
|
||||
"Cs5": 554.37
|
||||
}
|
||||
|
||||
|
||||
# RUNS - contains the mission code that will be executed on color sensor detection
|
||||
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(277)
|
||||
await drive_base.turn(20)
|
||||
await drive_base.straight(65)
|
||||
await drive_base.turn(-30)
|
||||
right_arm.run_angle(50,500)
|
||||
await drive_base.turn(45)
|
||||
await drive_base.straight(-145)
|
||||
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(-600)
|
||||
|
||||
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.straight(-100)
|
||||
await drive_base.turn(-100)
|
||||
await drive_base.straight(-600)
|
||||
|
||||
async def Run3():
|
||||
await drive_base.straight(920)
|
||||
await drive_base.turn(-90)
|
||||
await drive_base.straight(60)
|
||||
drive_base.turn(-10)
|
||||
await left_arm.run_angle(10000,-4000)
|
||||
await drive_base.straight(-110)
|
||||
await drive_base.turn(90)
|
||||
await drive_base.straight(2000)
|
||||
|
||||
async def Run4():
|
||||
await drive_base.straight(519)
|
||||
await left_arm.run_angle(300, -100)
|
||||
await left_arm.run_angle(300, 500)
|
||||
await drive_base.straight(180)
|
||||
await drive_base.turn(-37)
|
||||
await drive_base.straight(50)
|
||||
await right_arm.run_angle(300, -400)
|
||||
await drive_base.straight(-150)
|
||||
await drive_base.turn(125)
|
||||
await drive_base.straight(50)
|
||||
await right_arm.run_angle(300, 400)
|
||||
await drive_base.straight(-75)
|
||||
await right_arm.run_angle(300, 300)
|
||||
await drive_base.turn(-40)
|
||||
await drive_base.straight(250)
|
||||
await right_arm.run_angle(100, -300)
|
||||
await drive_base.straight(30)
|
||||
await right_arm.run_angle(50,-250)
|
||||
await drive_base.turn(30)
|
||||
await drive_base.straight(-200)
|
||||
await drive_base.turn(-50)
|
||||
await drive_base.straight(-800)
|
||||
|
||||
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():
|
||||
left_arm.run_angle(500,200)
|
||||
right_arm.run_angle(500,200)
|
||||
await drive_base.straight(70)
|
||||
await drive_base.turn(-55)
|
||||
await drive_base.straight(900)
|
||||
await drive_base.turn(92.5)
|
||||
await drive_base.straight(75)
|
||||
await drive_base.straight(21)
|
||||
await right_arm.run_angle(500,-250)
|
||||
await right_arm.run_angle(500,250)
|
||||
await drive_base.straight(-20)
|
||||
await drive_base.turn(55)
|
||||
await left_arm.run_angle(300,-400)
|
||||
await drive_base.turn(70)
|
||||
await left_arm.run_angle(300,400)
|
||||
await drive_base.turn(-60)
|
||||
await drive_base.straight(900)
|
||||
|
||||
# Celebration sound types
|
||||
class CelebrationSound:
|
||||
VICTORY_FANFARE = 0
|
||||
WAITING_SOUND = 1
|
||||
LEVEL_UP = 1
|
||||
SUCCESS_CHIME = 2
|
||||
TA_DA = 3
|
||||
POWER_UP = 4
|
||||
RICKROLL_INSPIRED = 5
|
||||
|
||||
# Sounds functions
|
||||
async def play_victory_fanfare():
|
||||
"""Classic victory fanfare"""
|
||||
notes = [
|
||||
(cn["B3"], 200),
|
||||
(cn["B3"], 100),
|
||||
(cn["B3"], 100),
|
||||
(cn["E4"], 600)
|
||||
(262, 200), # C4
|
||||
(262, 200), # C4
|
||||
(262, 200), # C4
|
||||
(349, 600), # F4
|
||||
]
|
||||
|
||||
for freq, duration in notes:
|
||||
await hub.speaker.beep(freq, duration)
|
||||
await wait(50)
|
||||
async def play_waiting_sound():
|
||||
|
||||
# T3rm1na1 V3l0c1ty arpeggio recreated in pybricks
|
||||
notes = [
|
||||
(cn["Cs4"], 100),
|
||||
(cn["E4"], 100),
|
||||
(cn["Cs4"], 100),
|
||||
(cn["Cs5"], 100),
|
||||
(cn["Cs4"], 100),
|
||||
(cn["Gs4"], 100),
|
||||
(cn["E4"], 100),
|
||||
(cn["Cs4"], 100),
|
||||
(cn["Gs4"], 100),
|
||||
(cn["Cs4"], 100),
|
||||
(cn["Cs5"], 100),
|
||||
(cn["Gs4"], 100),
|
||||
(cn["Cs4"], 100),
|
||||
(cn["Gs4"], 100),
|
||||
(cn["Cs5"], 100),
|
||||
(cn["Gs4"], 100)
|
||||
async def play_level_up():
|
||||
"""Upward scale for level completion"""
|
||||
notesold = [
|
||||
(262, 100), # C4
|
||||
(294, 100), # D4
|
||||
(330, 100), # E4
|
||||
(349, 100), # F4
|
||||
(392, 100), # G4
|
||||
(440, 100), # A4
|
||||
(494, 100), # B4
|
||||
(523, 300), # C5
|
||||
]
|
||||
notes = [
|
||||
(277, 100),
|
||||
(330, 100),
|
||||
(277, 100),
|
||||
(554, 100),
|
||||
(277, 100),
|
||||
(413, 100),
|
||||
(330, 100),
|
||||
(277, 100),
|
||||
(413, 100),
|
||||
(277, 100),
|
||||
(554, 100),
|
||||
(413, 100),
|
||||
(277, 100),
|
||||
(413, 100),
|
||||
(554, 100),
|
||||
(413, 100)
|
||||
]
|
||||
|
||||
|
||||
for freq, duration in notes:
|
||||
await hub.speaker.beep(freq, duration)
|
||||
#await wait(20)
|
||||
async def play_success_chime():
|
||||
"""Simple success notification"""
|
||||
notes = [
|
||||
(cn["E4"], 150),
|
||||
(cn["Gs4"], 150),
|
||||
(cn["B4"], 300),
|
||||
(523, 150), # C5
|
||||
(659, 150), # E5
|
||||
(784, 300), # G5
|
||||
]
|
||||
|
||||
|
||||
for freq, duration in notes:
|
||||
await hub.speaker.beep(freq, duration)
|
||||
await wait(50)
|
||||
async def play_ta_da():
|
||||
"""Classic "ta-da!" sound"""
|
||||
notes = [
|
||||
(cn["Cs4"], 200),
|
||||
(cn["Ds4"], 200),
|
||||
(cn["E4"], 200),
|
||||
(cn["Ds4"], 200),
|
||||
(cn["E4"], 200),
|
||||
(cn["Fs4"], 400),
|
||||
(cn["Gs4"], 600),
|
||||
(cn["Fs4"], 400),
|
||||
(cn["Gs4"], 200),
|
||||
(cn["A4"], 200),
|
||||
(cn["B4"], 200),
|
||||
(cn["C5"], 200),
|
||||
(cn["Cs5"], 200)
|
||||
(392, 200), # G4
|
||||
(523, 400), # C5
|
||||
]
|
||||
|
||||
for freq, duration in notes:
|
||||
await hub.speaker.beep(freq, duration)
|
||||
#await wait(100)
|
||||
await wait(100)
|
||||
async def play_power_up():
|
||||
"""Rising power-up sound"""
|
||||
frequencies = [
|
||||
164.81, 207.65, 246.94, 329.63, 415.30, 493.88
|
||||
]
|
||||
|
||||
for freq in frequencies:
|
||||
for freq in range(200, 800, 50):
|
||||
await hub.speaker.beep(freq, 50)
|
||||
await wait(10)
|
||||
|
||||
|
||||
await hub.speaker.beep(659.24, 200)
|
||||
await hub.speaker.beep(1000, 200)
|
||||
async def play_rickroll_inspired():
|
||||
"""Fun 80s-style dance beat inspired sound"""
|
||||
# Upbeat bouncy rhythm
|
||||
pattern = [ (cn["B3"], 100), (cn["Cs4"], 100), (cn["Ds4"], 100), (cn["E4"], 100), (cn["Cs4"], 100), (cn["B3"], 100), (cn["A3"], 100), (cn["B3"], 200), (cn["Cs4"], 100), (cn["B3"], 100), (cn["A3"], 100), (cn["Gs3"], 200), ]
|
||||
|
||||
|
||||
pattern = [
|
||||
(392, 200), (440, 200), (494, 200), (523, 200),
|
||||
(440, 200), (392, 200), (349, 200), (392, 300),
|
||||
(440, 200), (392, 200), (349, 200), (330, 400),
|
||||
]
|
||||
|
||||
for freq, duration in pattern:
|
||||
await hub.speaker.beep(freq, duration)
|
||||
#await wait(50)
|
||||
|
||||
# Basically a big if else statement that calls the functions above
|
||||
async def celebrate_mission_complete(sound_type=CelebrationSound.RICKROLL_INSPIRED):
|
||||
await wait(50)
|
||||
async def celebrate_mission_complete(sound_type=CelebrationSound.SUCCESS_CHIME):
|
||||
"""
|
||||
Main celebration function to call after completing a mission.
|
||||
Plays a sound and shows light animation.
|
||||
@@ -272,8 +127,8 @@ async def celebrate_mission_complete(sound_type=CelebrationSound.RICKROLL_INSPIR
|
||||
# Play the selected celebration sound
|
||||
if sound_type == CelebrationSound.VICTORY_FANFARE:
|
||||
await play_victory_fanfare()
|
||||
elif sound_type == CelebrationSound.WAITING_SOUND:
|
||||
await play_waiting_sound()
|
||||
elif sound_type == CelebrationSound.LEVEL_UP:
|
||||
await play_level_up()
|
||||
elif sound_type == CelebrationSound.SUCCESS_CHIME:
|
||||
await play_success_chime()
|
||||
elif sound_type == CelebrationSound.TA_DA:
|
||||
@@ -294,48 +149,133 @@ async def celebrate_mission_complete(sound_type=CelebrationSound.RICKROLL_INSPIR
|
||||
|
||||
hub.light.off()
|
||||
|
||||
# This where everything happens
|
||||
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(277)
|
||||
await drive_base.turn(20)
|
||||
await drive_base.straight(65)
|
||||
await drive_base.turn(-30)
|
||||
right_arm.run_angle(50,500)
|
||||
await drive_base.turn(45)
|
||||
await drive_base.straight(-145)
|
||||
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(-700)
|
||||
|
||||
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.straight(-100)
|
||||
await drive_base.turn(-100)
|
||||
await drive_base.straight(-750)
|
||||
|
||||
|
||||
async def Run3():
|
||||
await drive_base.straight(920)
|
||||
await drive_base.turn(-90)
|
||||
await drive_base.straight(60)
|
||||
drive_base.turn(-10)
|
||||
await left_arm.run_angle(10000,-4000)
|
||||
await drive_base.straight(-110)
|
||||
await drive_base.turn(90)
|
||||
await drive_base.straight(2000)
|
||||
|
||||
async def Run4():
|
||||
await drive_base.straight(519)
|
||||
await left_arm.run_angle(300, -200)
|
||||
await left_arm.run_angle(800, 1000)
|
||||
await drive_base.straight(180)
|
||||
await drive_base.turn(-37)
|
||||
await right_arm.run_angle(300, -50)
|
||||
await drive_base.straight(50)
|
||||
await right_arm.run_angle(300, -350)
|
||||
await drive_base.straight(-150)
|
||||
await drive_base.turn(125)
|
||||
await drive_base.straight(50)
|
||||
await right_arm.run_angle(300, 400)
|
||||
await drive_base.straight(-75)
|
||||
await right_arm.run_angle(300, -200)
|
||||
await drive_base.turn(-40)
|
||||
await right_arm.run_angle(300, 250)
|
||||
await drive_base.straight(260)
|
||||
await right_arm.run_angle(100, -300)
|
||||
await drive_base.straight(30)
|
||||
await right_arm.run_angle(50,-250)
|
||||
await drive_base.turn(30)
|
||||
await drive_base.straight(-200)
|
||||
await drive_base.turn(-67)
|
||||
await drive_base.straight(-800)
|
||||
|
||||
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():
|
||||
# MAIN LOOP
|
||||
while True:
|
||||
await celebrate_mission_complete(CelebrationSound.RICKROLL_INSPIRED)
|
||||
|
||||
#await celebrate_mission_complete(CelebrationSound.LEVEL_UP)
|
||||
color_reflected_percent = await color_sensor.reflection()
|
||||
print(f"Color reflection percentage: {color_reflected_percent}")
|
||||
print(color_reflected_percent)
|
||||
|
||||
color_detected = await color_sensor.color()
|
||||
print(f'Detected color: {color_detected}')
|
||||
hsv = await color_sensor.hsv()
|
||||
print(f"Measured HSV: {hsv}")
|
||||
if color_reflected_percent > 0:
|
||||
print(f'Detected color: {color_detected.h}, {color_detected.s}, {color_detected.v}')
|
||||
if color_reflected_percent > 1:
|
||||
if color_detected == Color.GREEN:
|
||||
print('Running Mission 1')
|
||||
await Run1()
|
||||
await celebrate_mission_complete(CelebrationSound.VICTORY_FANFARE)
|
||||
#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)
|
||||
#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.ORANGE:
|
||||
#await celebrate_mission_complete(CelebrationSound.SUCCESS_CHIME )
|
||||
elif color_detected == Color.BLUE:
|
||||
print('Running Mission 4')
|
||||
await Run4()
|
||||
await celebrate_mission_complete(CelebrationSound.POWER_UP)
|
||||
elif color_detected == Color.BLUE:
|
||||
#await celebrate_mission_complete(CelebrationSound.POWER_UP)
|
||||
elif color_detected == Color.RED:
|
||||
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.TA_DA)
|
||||
#await celebrate_mission_complete(CelebrationSound.LEVEL_UP)
|
||||
else:
|
||||
hub.light.off()
|
||||
left_motor.stop()
|
||||
right_motor.stop()
|
||||
else:
|
||||
print("No color was detected.")
|
||||
await wait(100) # prevent loop from iterating fast
|
||||
await wait(1000) #prevent loop from iterating fast
|
||||
# Main execution loop
|
||||
run_task(main())
|
||||
29
utils/FINAL_STARTER_BLANK_CODE.py
Normal file
29
utils/FINAL_STARTER_BLANK_CODE.py
Normal file
@@ -0,0 +1,29 @@
|
||||
from pybricks.pupdevices import Motor, ColorSensor, UltrasonicSensor, ForceSensor
|
||||
from pybricks.parameters import Button, Color, Direction, Port, Side, Stop
|
||||
from pybricks.tools import run_task, multitask
|
||||
from pybricks.tools import wait, StopWatch
|
||||
from pybricks.robotics import DriveBase
|
||||
from pybricks.hubs import PrimeHub
|
||||
|
||||
# Initialize hub and devices
|
||||
hub = PrimeHub()
|
||||
left_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE)
|
||||
right_motor = Motor(Port.B)
|
||||
left_arm = Motor(Port.C)
|
||||
|
||||
right_arm = Motor(Port.D)
|
||||
lazer_ranger = UltrasonicSensor(Port.E)
|
||||
color_sensor = ColorSensor(Port.F)
|
||||
# DriveBase configuration
|
||||
WHEEL_DIAMETER = 68.8 # mm
|
||||
AXLE_TRACK = 180 # mm
|
||||
drive_base = DriveBase(left_motor, right_motor, WHEEL_DIAMETER, AXLE_TRACK)
|
||||
drive_base.settings(600, 500, 300, 200)
|
||||
drive_base.use_gyro(True)
|
||||
|
||||
WALL_DISTANCE = 200 # mm
|
||||
|
||||
async def main():
|
||||
# Your code goes here
|
||||
|
||||
run_task(main())
|
||||
69
utils/tests/colorsensortest.py
Normal file
69
utils/tests/colorsensortest.py
Normal file
@@ -0,0 +1,69 @@
|
||||
from pybricks.pupdevices import Motor, ColorSensor, UltrasonicSensor, ForceSensor
|
||||
from pybricks.parameters import Button, Color, Direction, Port, Side, Stop
|
||||
from pybricks.tools import run_task, multitask
|
||||
from pybricks.tools import wait, StopWatch
|
||||
from pybricks.robotics import DriveBase
|
||||
from pybricks.hubs import PrimeHub
|
||||
|
||||
# Initialize hub and devices
|
||||
hub = PrimeHub()
|
||||
|
||||
color_sensor = ColorSensor(Port.F)
|
||||
|
||||
# Color Settings
|
||||
# https://docs.pybricks.com/en/latest/parameters/color.html
|
||||
print("Default Detected Colors:", color_sensor.detectable_colors())
|
||||
|
||||
# Custom color Hue, Saturation, Brightness value for Lego bricks
|
||||
Color.MAGENTA = Color(315,100,60)
|
||||
Color.BLUE = Color(240,100,100)
|
||||
Color.CYAN = Color(180,100,100)
|
||||
Color.RED = Color(350, 100, 100)
|
||||
LEGO_BRICKS_COLOR = [
|
||||
Color.BLUE,
|
||||
Color.GREEN,
|
||||
Color.WHITE,
|
||||
Color.RED,
|
||||
Color.YELLOW,
|
||||
Color.MAGENTA,
|
||||
Color.NONE
|
||||
]
|
||||
magenta_counter = 0
|
||||
stable_color = None
|
||||
real_color = None
|
||||
#Update Detectable colors
|
||||
color_sensor.detectable_colors(LEGO_BRICKS_COLOR)
|
||||
print(f'Yellow:{Color.YELLOW} : {Color.YELLOW.h}, {Color.YELLOW.s}, {Color.YELLOW.v}')
|
||||
print("Updated Detected Colors:", color_sensor.detectable_colors())
|
||||
async def main():
|
||||
while True:
|
||||
global magenta_counter, stable_color, real_color
|
||||
color_reflected_percent = await color_sensor.reflection()
|
||||
print("Reflection: ", color_reflected_percent)
|
||||
if color_reflected_percent > 15:
|
||||
color_detected = await color_sensor.color()
|
||||
|
||||
if color_detected == Color.MAGENTA:
|
||||
magenta_counter += 1
|
||||
else:
|
||||
magenta_counter = 0
|
||||
stable_color = color_detected
|
||||
|
||||
# Only accept magenta if it's been stable for a while - usually triggers before other colors so we gotta do this :|
|
||||
if magenta_counter > 10:
|
||||
stable_color = Color.MAGENTA
|
||||
if stable_color != Color.MAGENTA:
|
||||
stable_color = await color_sensor.color()
|
||||
|
||||
real_color = stable_color
|
||||
#if(color_detected != Color.NONE):
|
||||
# return
|
||||
|
||||
print("Magenta counter: ", magenta_counter)
|
||||
if real_color is not None:
|
||||
print(f'Detected color: {real_color} : {real_color.h}, {real_color.s}, {real_color.v}')
|
||||
else:
|
||||
print("No valid color detected yet.")
|
||||
await wait(50)
|
||||
|
||||
run_task(main())
|
||||
Reference in New Issue
Block a user