From c1f68b84e37608df392d2ba17e8cca5db2a8aa1f Mon Sep 17 00:00:00 2001 From: haselnussbier Date: Sat, 24 Mar 2018 19:56:29 +0100 Subject: [PATCH] Applied commit: a540201, the previous one was actually 5855373 --- src/move.py | 19 +++++++++++++++++-- src/sensor.py | 22 ++++++++++++---------- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/move.py b/src/move.py index 3e9d51f..5771d96 100644 --- a/src/move.py +++ b/src/move.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 +import ev3dev.ev3 as ev3 from wheel import Wheel from sensor import Sensor from odometry import Odometry @@ -33,9 +34,23 @@ class Move: depending on environment lighting ''' def _calibrate(self): - self._sensor.calibrateRGB() + ev3.Sound.beep() + while(not self._sensor.bumperwaspressed): + self._sensor.checkbumper() + self._sensor.reset() self._sensor.calibrateBrightness() - # pass + sleep(2) + ev3.Sound.beep() + while(not self._sensor.bumperwaspressed): + self._sensor.checkbumper() + self._sensor.reset() + self._sensor.calibrateRGB(self._sensor.red) + sleep(2) + ev3.Sound.beep() + while(not self._sensor.bumperwaspressed): + self._sensor.checkbumper() + self._sensor.calibrateRGB(self._sensor.blue) + self._sensor.reset() ''' Function to correct errors should the robot wander astray diff --git a/src/sensor.py b/src/sensor.py index dea8c5f..bd22316 100644 --- a/src/sensor.py +++ b/src/sensor.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 import ev3dev.ev3 as ev3 -from enum import Enum ''' add enum for color definitions (type should be tupel of int's). @@ -22,10 +21,11 @@ Formula: Y=(0.299 x R) + (0.587 x G) + (0.114 x B); ''' - +''' class Color(tuple, Enum): RED = (65, 30, 20) BLUE = (20, 45, 60) +''' class Sensor: @@ -42,6 +42,8 @@ class Sensor: print("Error while setting up sensors. Please make sure that everything is plugged in properly.") self.lastcolor = None self.edgebrightness = None + self.red = None + self.blue = None def refresh(self): self.RGB = self._camera.bin_data("hhh") @@ -64,16 +66,16 @@ class Sensor: def getcolor(self): if(self._camera.mode == 'RGB-RAW'): - if(self.RGB[0] > Color.RED[0] and (self.RGB[1], self.RGB[2]) < (Color.RED[1], Color.RED[2])): - self.lastcolor = Color.RED - if(self.RGB[0] < Color.BLUE[0] and (self.RGB[1], self.RGB[2]) > (Color.BLUE[1], Color.BLUE[2])): - self.lastcolor = Color.BLUE + if(self.RGB[0] > self.red[0] and (self.RGB[1], self.RGB[2]) < (self.red[1], self.red[2])): + self.lastcolor = self.red + if(self.RGB[0] < self.blue[0] and (self.RGB[1], self.RGB[2]) > (self.blue[1], self.blue[2])): + self.lastcolor = self.blue def calibrateRGB(self, color): self.refresh() - if (color is Color.RED): + if (color is self.red): newRED = (self.RGB[0]-5, self.RGB[1]+5, self.RGB[2]+5) - Color.RED = newRED - elif (color is Color.BLUE): + self.red = newRED + elif (color is self.blueE): newBLUE = (self.RGB[0]+5, self.RGB[1]-5, self.RGB[2]-5) - Color.BLUE = newBLUE + self.blue = newBLUE