MLX90640 IR-Array 32x24 pixel

Moderator (Firma: Titel) Persönliche Seite #5625769
Lesenswert?

Marc schrieb:
> Im Moment versuche ich gerade den MLX90640 in Betrieb zu nehmen.
Und woran klemmt es?

> Das Datenblatt ist leider sehr unübersichtlich.
Der Baustein und seine Funktion ist eben sehr komplex. Du wirst während 
der Inbetriebnahme einiges lernen.

> Hat sich jemand schon mal mit dem Sensor befasst?
Mit Sicherheit. Hast du schon mal andere (ähnlich komplexe) Sensoren 
in Betrieb genommen?
Gast #5625814
Lesenswert?

>Mit Sicherheit. Hast du schon mal andere (ähnlich komplexe) Sensoren
>in Betrieb genommen?

Ja, ich habe in den letzten paar Jahrzehnten schon einige Sensoren 
selbst entwickelt.

Mittlerweile wir der Sensor für den M5Stack verkauft:
https://de.aliexpress.com/item/M5Stack-Offizielle-Neue-Thermische-Kamera-MLX90640-mit-HAIN-I2C-Kompatibel-M5GO-FEUER-ESP32-Kit-Mini-Entwicklung/32918177644.html

Allerdings hat die vorgeschlagene Software bei mir nicht funktioniert. 
Es wurden keine Daten vom Sensor übertragen und ich habe ein paar 
Stunden gebraucht, den Fehler im Treiber zu finden. Jetzt werden 
zumindest grundsätzlich Daten übertragen, aber ein Bild habe ich immer 
noch nicht.


Hier habe ich den Sensor am billigsten gefunden:
https://as-electronic.net/

Auf GitHub gibt es eine Treiberlibrary von Melexis:
https://github.com/melexis/mlx90640-library
Gast #5625829
Lesenswert?

hattest du das nicht auch mit dem Nucleo F411 probiert? Ok, kann 
natürlich mehrere Marc hier geben.
Es gibt noch eine Lib für mbed, für ein Nucleo kompiliert die schonmal 
fehlerfrei. Habe aber diesen Sensor nicht um das testen zu können.
Dein Gituhb Link sieht dem mbed Treiber sehr sehr ähnlich.
Gast #5625834
Lesenswert?

Jetzt habe ich noch mal gesucht und einen anderen Treiber gefunden:
https://github.com/hkoffer/M5Stack-MLX90640-Thermal-Camera/blob/master/MLX90640_I2C_Driver.cpp

Der hat genau den Fehler behoben, den der M5Stack-Treiber hat

[/c] if (Wire.endTransmission(false) != 0) //Do not release bus[c]

Jetzt habe ich auch ein Bild auf meinem ESP32 Aufbau mit 2.4'' ILI9341.

Nur das Rauschen erscheint mir etwas hoch.
Gast #5625836
Lesenswert?

>hattest du das nicht auch mit dem Nucleo F411 probiert? Ok, kann
>natürlich mehrere Marc hier geben.

Ich kenne den Thread mit dem NucleoF411.
Aber ich finden den ESP32 praktischer. Mal sehen, ob ich das Wäremebild 
per Webserver darstellen kann ..
Gast #5626308
Lesenswert?

Ich habe zwei Sensoren: einer von Sparkfun auf einem Breakout-Board und 
einen zweiten Sensor von AS-Elektronics ohne alles.

Mit dem Sensor von Sparkfun konnte ich ein Bild erzeugen, mit dem 
anderen scheinen keine vernünftigen Daten zu kommen.

hat jemand eine Idee, woran es liegen könnte?

Laut Datenblatt gibt es ab 0x8000 einige Register die man ansprechen 
kann.

Hier habe ich zwei Dumps erstellt:

// Sparkfun sensor
// geht
Device found @ 0x33
0: 9
1: AB
2: 499B
3: 0
4: 2061
5: 5
6: 320
7: 3E0
8: 1A26
9: A228
10: 185
11: 499
12: 0
13: 1901
14: 0
15: 0

// AS-Electronic MLX90640
// geht nicht
Device found @ 0x33
0: 0
1: A5
2: 799F
3: 0
4: 2061
5: 4
6: 320
7: 3E0
8: 713
9: 2C48
10: 1186
11: 499
12: 0
13: FFFF
14: 0
15: 0


Für den Dump verwende ich folgenden Code:
1
    int len = 16;
2
    uint16_t adr = 0x8000;
3
    
4
    MLX90640_I2CRead(0x33, adr, adr + len, Buffer);
5
    for (int n = 0; n < len; n++)
6
    {
7
      Serial.print(n); Serial.print(": "); Serial.println(Buffer[n], HEX);
8
    }

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren