Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions 99droid/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
__pycache__/
*.pyc
.venv/
13 changes: 13 additions & 0 deletions 99droid/.vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp

// List of extensions which should be recommended for users of this workspace.
"recommendations": [
"lego-education.ev3-micropython"
],
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
"unwantedRecommendations": [
"ms-python.python"
]
}
15 changes: 15 additions & 0 deletions 99droid/.vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Download and Run",
"type": "ev3devBrowser",
"request": "launch",
"program": "/home/robot/${workspaceRootFolderName}/main.py",
"interactiveTerminal": false
}
]
}
7 changes: 7 additions & 0 deletions 99droid/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// Place your settings in this file to overwrite default and user settings.
{
"files.eol": "\n",
"debug.openDebug": "neverOpen",
"python.linting.enabled": false,
"python.languageServer": "None"
}
42 changes: 42 additions & 0 deletions 99droid/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/usr/bin/env pybricks-micropython
from pybricks.hubs import EV3Brick
from pybricks.ev3devices import (InfraredSensor, UltrasonicSensor)
from pybricks.parameters import Stop, Direction, Button
from pybricks.tools import wait, StopWatch, DataLog
#from pybricks.media.ev3dev import SoundFile, ImageFile

from modules.motors import *
from modules.colors import *
from modules.detect import *
from modules.path import *
from modules.claw import *

#Declaração de variáveis globais e objetos

#----------------------------------------------------------------------------------------------------------------------------------

#Programa principal (minúsuclo pq é o programa principal lmfao)
#close_claw()
motors.settings(150, 300, 100, 1000)
go_to_passengers()
while total_of_passengers < 4 :
pick_passenger()
drop_passenger()
# time_open_claw += 500
# print(sensor_color_right.rgb())
# close_claw()
# open_claw()
# while True :
# print(sensor_color_right.rgb())

#while True:
# print(distance_front())
# if (distance_front() > 200) :
# passenger_size = 15
# print("É O JÚLIO!")
#else :
# passenger_size = 10
# print("É A JESS!")
#wait(5000)

# finish()
20 changes: 20 additions & 0 deletions 99droid/modules/claw.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
from pybricks.parameters import Port, Stop
from pybricks.ev3devices import Motor
from pybricks.tools import StopWatch
from pybricks.parameters import Stop

motor_claw = Motor(Port.D)

time_open_claw = 2500
stopwatch = StopWatch()

def open_claw():
global time_open_claw
motor_claw.run_time(600, time_open_claw, Stop.HOLD, True)
motor_claw.hold()

def close_claw() :
global time_open_claw
motor_claw.run_time(-600, time_open_claw, Stop.HOLD, True)
motor_claw.hold()

52 changes: 52 additions & 0 deletions 99droid/modules/colors.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
from pybricks.parameters import Color
from pybricks.parameters import Port
from pybricks.ev3devices import ColorSensor

sensor_color_left = ColorSensor(Port.S1)
sensor_color_right = ColorSensor(Port.S2)

def calibration(sensor):
print(sensor.rgb())

#Declaration of RGB values of color sensors
#left

def red_left() :
return sensor_color_left.rgb()[0]

def green_left() :
return sensor_color_left.rgb()[1]

def blue_left() :
return sensor_color_left.rgb()[2]

#right

def red_right() :
return sensor_color_right.rgb()[0]

def green_right() :
return sensor_color_right.rgb()[1]

def blue_right() :
return sensor_color_right.rgb()[2]

#Declaration of detected colors

def saw_black_left() :
return red_left() < 18 and green_left() < 18 and blue_left() < 18

def saw_black_right() :
return red_right() < 18 and green_right() < 18 and blue_right() < 18

def saw_red_left() :
return red_left() > (green_left() + blue_left())

def saw_red_right() :
return red_right() > (green_right() + blue_right())

def saw_blue_left() :
return blue_left() > (red_left() + green_left())

def saw_blue_right() :
return blue_right() > (red_right() + green_right())
6 changes: 6 additions & 0 deletions 99droid/modules/detect.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from pybricks.ev3devices import (ColorSensor, UltrasonicSensor)
from pybricks.parameters import Port


color_front_sensor = ColorSensor(Port.S4)
color_over_sensor = ColorSensor(Port.S3) #cima
63 changes: 63 additions & 0 deletions 99droid/modules/motors.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
from pybricks.ev3devices import Motor
from pybricks.parameters import Port
from pybricks.robotics import DriveBase
from pybricks.tools import wait


motor_left = Motor(Port.A)
motor_right = Motor(Port.B)


motors = DriveBase(motor_left, motor_right, wheel_diameter = 42.1, axle_track = 115.3)

def move_forward(velocity):
motors.drive(velocity, 0)

def move_forward_cm(mm) :
motors.straight(mm*10)

def move_backward(velocity):
motors.drive(-velocity, 0)

def move_backward_cm(mm) :
motors.straight(-mm*10)

def move_right(velocity):
motors.drive(0, velocity)

def turn_right(angle):
motors.turn(angle)

def move_left(velocity):
motors.drive(0, -velocity)

def turn_left(angle):
motors.turn(-angle)

def turn_90_left():
motors.turn(-90)

def turn_90_right():
motors.turn(90)

def turn_90_left_and_move_distance(distance):
motors.straight(distance)
motors.turn(-90)
stop()


def turn_90_right_and_move_distance(distance):
motors.straight(distance)
motors.turn(90)
stop()

def turn_180():
motors.turn(180)

def stop():
motors.stop()

def calibrate():
turn_right(360)
stop()
wait(1000)
Loading