Va en linea recta, corregir giro cuenta una de mas

parent e44f62a3
Showing with 31 additions and 19 deletions
...@@ -12,9 +12,9 @@ robot = Robot() ...@@ -12,9 +12,9 @@ robot = Robot()
robot.sigueLineaHastaNegro() robot.sigueLineaHastaNegro()
robot.sigueLineaHastaNegro() robot.sigueLineaHastaNegro()
robot.giro(90)
robot.sigueLineaHastaNegro()
robot.giro(-90)
robot.sigueLineaHastaNegro() robot.sigueLineaHastaNegro()
#robot.sigueLineaHastaNegro()
#robot.giro(90)
#robot.sigueLineaHastaNegro()
#robot.calibraSensorColor() #robot.calibraSensorColor()
...@@ -25,10 +25,10 @@ class Robot: ...@@ -25,10 +25,10 @@ class Robot:
self.colaMovimientos = [] self.colaMovimientos = []
#Metodos gestion negros #Metodos gestion negros
def queNegroEs(self): def queNegroEs(self,negro):
if self.contadorNegros == 0: if negro == 0:
return 0 return 0
if self.contadorNegros % 2 == 0: if negro % 2 == 0:
return 0 return 0
return 1 return 1
...@@ -61,7 +61,6 @@ class Robot: ...@@ -61,7 +61,6 @@ class Robot:
#Metodos para el movimiento #Metodos para el movimiento
def giro(self,grados): def giro(self,grados):
self.robot.reset()
self.giroSensor.reset_angle(0) self.giroSensor.reset_angle(0)
self.robot.turn(grados) self.robot.turn(grados)
while(self.giroSensor.angle() != grados): while(self.giroSensor.angle() != grados):
...@@ -74,47 +73,59 @@ class Robot: ...@@ -74,47 +73,59 @@ class Robot:
if (ajuste < 0): if (ajuste < 0):
self.robot.turn(-1) self.robot.turn(-1)
def giro2(self,grados):
self.giroSensor.reset_angle(0)
self.robot.turn(grados)
while (self.giroSensor.angle() != grados):
diferencia = self.giroSensor.angle() - grados
ajuste = diferencia * -1
for i in range(abs(ajuste)):
if (ajuste > 0):
self.robot.turn(1)
else:
if (ajuste < 0):
self.robot.turn(-1)
def calibraSensorColor(self): def calibraSensorColor(self):
while True: while True:
print(self.colorSensor.rgb()) print(self.colorSensor.rgb())
wait(20) wait(20)
def sigueLineaHastaNegro(self,color=green_rgb): def sigueLineaHastaNegro(self,color=green_rgb):
# Valores iniciales
rgb = self.colorSensor.rgb() rgb = self.colorSensor.rgb()
negroAnterior = self.negroFlag negroAnteriorFlag = self.negroFlag
contNegroAnterior = self.contadorNegros
#Valores iniciales
if self.is_black(rgb): if self.is_black(rgb):
self.negroFlag = True self.negroFlag = True
while (((self.queNegroEs(contNegroAnterior) == 0) and (self.queNegroEs(self.contadorNegros) == 1)) == False) or self.contadorNegros == 1:
while self.queNegroEs() == 1 or self.contadorNegros == 0:
#Fase de lectura #Fase de lectura
rgb = self.colorSensor.rgb() rgb = self.colorSensor.rgb()
if self.is_green(rgb): if self.is_green(rgb):
self.w = self.valorW self.w = self.valorW
negroAnterior= self.negroFlag negroAnteriorFlag= self.negroFlag
self.negroFlag = False self.negroFlag = False
self.velocidad = 50 self.velocidad = 50
elif self.is_black(rgb): elif self.is_black(rgb):
negroAnterior = self.negroFlag negroAnteriorFlag = self.negroFlag
self.negroFlag = True self.negroFlag = True
self.w = 0 self.w = 0
self.velocidad = 50 self.velocidad = 50
else: else:
negroAnterior= self.negroFlag negroAnteriorFlag= self.negroFlag
self.negroFlag = False self.negroFlag = False
self.w = -self.valorW self.w = -self.valorW
self.velocidad = 50 self.velocidad = 50
#Fase de ejecución #Fase de ejecución
if negroAnterior and not self.negroFlag: #Incremento negro al salir
if negroAnteriorFlag and not self.negroFlag:
contNegroAnterior = self.contadorNegros
self.incrementaContNegros() self.incrementaContNegros()
self.robot.drive(self.velocidad,self.w) self.robot.drive(self.velocidad,self.w)
print(self.contadorNegros)
self.resetContadorNegros() print(self.contadorNegros,contNegroAnterior)
def gestionRuta(self): def gestionRuta(self):
while True: while True:
rgb = self.colorSensor.rgb() rgb = self.colorSensor.rgb()
...@@ -126,6 +137,7 @@ class Robot: ...@@ -126,6 +137,7 @@ class Robot:
#caso detecta negro #caso detecta negro
elif self.is_black(rgb): elif self.is_black(rgb):
#incremento el contador #incremento el contador
contNegroAnterior = self.contadorNegros
self.incrementaContNegros() self.incrementaContNegros()
#miro si es par o impar #miro si es par o impar
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment