Skip to content

Commit 33b31df

Browse files
authored
Merge pull request #95 from RaspberryPiFoundation/color
improve colordistance sensor sensing
2 parents 11b4dd5 + 4c44f1c commit 33b31df

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

buildhat/colordistance.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,15 @@ def get_reflected_light(self):
102102
readings.append(self.get()[0])
103103
return int(sum(readings)/len(readings))
104104

105+
def _clamp(self, val, small, large):
106+
return max(small, min(val, large))
107+
105108
def _avgrgb(self, reads):
106109
readings = []
107110
for read in reads:
108-
read = [int((read[0]/1024)*255), int((read[1]/1024)*255), int((read[2]/1024)*255)]
111+
read = [int((self._clamp(read[0], 0, 400)/400)*255),
112+
int((self._clamp(read[1], 0, 400)/400)*255),
113+
int((self._clamp(read[2], 0, 400)/400)*255)]
109114
readings.append(read)
110115
rgb = []
111116
for i in range(3):
@@ -157,7 +162,7 @@ def wait_for_new_color(self):
157162
def cb(lst):
158163
data.append(lst)
159164
if len(data) == self.avg_reads:
160-
r, g, b, _ = self._avgrgb(data)
165+
r, g, b = self._avgrgb(data)
161166
seg = self.segment_color(r, g, b)
162167
if seg != self._old_color:
163168
self._old_color = seg

0 commit comments

Comments
 (0)