Skip to content

Commit 3d7a655

Browse files
author
Hansen0314
committed
fix: cannot get all correct data
1 parent c900547 commit 3d7a655

File tree

4 files changed

+28
-15
lines changed

4 files changed

+28
-15
lines changed

examples/BasicReadings.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def main():
1515
mlx.getFrame(frame)
1616
except ValueError:
1717
continue
18-
print(frame)
18+
# print(frame)
1919
end = time.time()
2020
print("The time: %f"%(end - start))
2121
if __name__ == '__main__':

examples/MaxRefreshRate.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,7 @@ def main():
1212
time.sleep(1)
1313
while True:
1414
start = time.time()
15-
try:
16-
mlx.getFrame(frame)
17-
except ValueError:
18-
continue
15+
mlx.getFrame(frame)
1916
print(frame)
2017
end = time.time()
2118
print("The time: %f"%(end - start))

seeed_mlx9064x.py

+25-9
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
I2C_READ_LEN = 2048
1111
SCALEALPHA = 0.000001
1212
MLX90640_DEVICEID1 = 0x2407
13-
OPENAIR_TA_SHIFT = 8
13+
OPENAIR_TA_SHIFT = 12
1414

1515
class RefreshRate:
1616
""" Enum-like class for MLX90640's refresh rate """
@@ -722,8 +722,8 @@ class grove_mxl90641(MLX9064X_I2C_Driver):
722722
alphaPTAT = 0
723723
gainEE = 0
724724
tgc = 0
725-
KsTa = 0
726725
resolutionEE = 0
726+
KsTa = 0
727727
ksTo = [0] * 8
728728
ct = [0] * 8
729729
alpha = [0] * 192
@@ -735,12 +735,10 @@ class grove_mxl90641(MLX9064X_I2C_Driver):
735735
kvScale = 0
736736
cpAlpha = 0
737737
cpOffset = 0
738-
ilChessC = [0] * 3
739738
brokenPixels = [0xFFFF] * 5
740739
cpKta = 0
741740
cpKv = 0
742741
emissivityEE = 0
743-
744742
def __init__(self,address=0x33):
745743
super(grove_mxl90641, self).__init__(address)
746744
self.refresh_rate = RefreshRate.REFRESH_0_5_HZ
@@ -1021,13 +1019,29 @@ def _ExtractParameters(self):
10211019
self._ExtractKvPixelParameters()
10221020
self._ExtractCPParameters()
10231021
self._ExtractDeviatingPixels()
1024-
1022+
# debug output
1023+
print('-'*40)
1024+
print("kVdd = %d, vdd25 = %d" % (self.kVdd, self.vdd25))
1025+
print("KvPTAT = %f, KtPTAT = %f, vPTAT25 = %d, alphaPTAT = %f" %
1026+
(self.KvPTAT, self.KtPTAT, self.vPTAT25, self.alphaPTAT))
1027+
print("Gain = %d, Tgc = %f, Resolution = %d" % (self.gainEE, self.tgc, self.resolutionEE))
1028+
print("KsTa = %f, ksTo = %s, ct = %s" % (self.KsTa, self.ksTo, self.ct))
1029+
print("cpAlpha:", self.cpAlpha, "cpOffset:", self.cpOffset)
1030+
print("alpha: ", self.alpha)
1031+
print("alphascale: ", self.alphaScale)
1032+
print("offset: ", self.offset)
1033+
print("kta:", self.kta)
1034+
print("ktaScale:", self.ktaScale)
1035+
print("kv:", self.kv)
1036+
print("kvScale:", self.kvScale)
1037+
print(eeData)
1038+
print('-'*40)
10251039
def _ExtractVDDParameters(self):
10261040
# extract VDD
10271041
self.kVdd = eeData[39]
10281042
if self.kVdd > 1023:
10291043
self.kVdd = self.kVdd - 2048
1030-
self.KVdd = 32 * self.kVdd
1044+
self.kVdd = 32 * self.kVdd
10311045

10321046
self.vdd25 = eeData[38]
10331047
if self.vdd25 > 1023:
@@ -1215,13 +1229,15 @@ def _ExtractKvPixelParameters(self):
12151229
kvScale1 = eeData[24] >> 5
12161230
kvScale2 = eeData[24] & 0x001F
12171231
for i in range(192):
1218-
tempKv = (eeData[448 + i] >> 5)
1232+
tempKv = (eeData[448 + i] & 0x001F)
12191233
if tempKv > 15:
12201234
tempKv = tempKv - 32
12211235
kvTemp[i] = tempKv * math.pow(2,kvScale2)
12221236
kvTemp[i] += kvAvg
12231237
kvTemp[i] /= math.pow(2,kvScale1)
1224-
temp = max(map(abs,kvTemp))
1238+
temp = abs(kvTemp[0])
1239+
for kv in kvTemp:
1240+
temp = max(temp, abs(kv))
12251241
kvScale1 = 0
12261242
while temp < 64 :
12271243
temp = temp * 2
@@ -1247,4 +1263,4 @@ def _ExtractDeviatingPixels(self):
12471263
pixCnt += 1
12481264
if brokenPixCnt > 2:
12491265
raise RuntimeError("More than 3 broken pixels")
1250-
print("Found %d broken pixels" % (brokenPixCnt))
1266+
print("Found %d broken pixels" % (brokenPixCnt))

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
setup(
2121
name='seeed-python-mlx9064x',
22-
version="1.1.2",
22+
version="1.1.3",
2323
description='Python library for the Grove - Thermal Imaging Camera(MLX9064x) is an thermal sensor. ',
2424
long_description=long_description,
2525
long_description_content_type='text/markdown',

0 commit comments

Comments
 (0)