-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
71 lines (67 loc) · 2.81 KB
/
main.py
File metadata and controls
71 lines (67 loc) · 2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/env pybricks-micropython
from pybricks.hubs import EV3Brick
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor,
InfraredSensor, UltrasonicSensor, GyroSensor)
from pybricks.parameters import Port, Stop, Direction, Button, Color
from pybricks.tools import wait, StopWatch
from pybricks.robotics import DriveBase
from pybricks.media.ev3dev import SoundFile, ImageFile
import time
# This program requires LEGO EV3 MicroPython v2.0 or higher.
# Click "Open user guide" on the EV3 extension tab for more information.
class Parts():
def __init__(self):
self.ev3 = EV3Brick()
#self.motorleft = Motor(Port.D)
self.motorright = Motor(Port.A)
self.right = ColorSensor(Port.S3)
self.left = ColorSensor(Port.S2)
#self.gyro = GyroSensor(Port.S4)
self.leftambient = 0
self.rightambient = 0
self.delta = 0
#self.arrayturnleft = [0, 0, 0, 0, 0]
#self.arrayturnright = [0, 0, 0, 0, 0]
#self.savefile = open("testcheck.txt", "a")
def check(self):
self.leftambient = self.left.ambient()
self.rightambient = self.right.ambient()
self.delta = self.leftambient - self.rightambient
#return [self.leftambient, self.rightambient]
return self.delta
#print("LEFT: %d | RIGHT: %d" % (self.leftambient, self.rightambient))
def checkGyro(self):
print(self.gyro)
def whileCheck(self):
#for x in range(5):
# self.arrayturnleft[x], self.arrayturnleft[x] = self.check()
# time.sleep(0.1)
#self.delta = (sum(self.arrayturnleft)/len(self.arrayturnleft) - sum(self.arrayturnright)/len(self.arrayturnright))
#print(self.delta)
if (self.check() > 0.5): #self.delta
if (self.motorright.angle() > 45):
print("OVERRIDE")
else:
self.motorright.run_angle(10, -10) #10 left
print("TURNED THIS WAY")
elif (self.check() < -0.5): #self.delta
if (self.motorright.angle() < -45):
print("OVERRIDE")
else:
self.motorright.run_angle(10, 10) #-10 right
print("TURNED THAT WAY")
#brickthing.savefile.write("LEFT: %d | RIGHT: %d" % (brickthing.leftambient, brickthing.rightambient))'''
def rapidcheck(self):
while brickthing.check() > 1 or brickthing.check() < -1: #while True: | self.delta, self.delta
brickthing.whileCheck()
print(brickthing.check())
print("BREAK")
time.sleep(5)
brickthing = Parts()
def mainloop():
#brickthing.delta = brickthing.left.ambient() - brickthing.right.ambient()
while True:
brickthing.rapidcheck()
#brickthing.motorright.run_angle(10, 20)
#brickthing.motorright.run_angle(10, -20)
mainloop()