Difference between revisions of "Module/Melexis MLX90614"
m |
|||
| (5 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
[[Image: | [[Image:Mlx90614_top.jpg|thumb|right|Melexis MLX90614 on breakout board]] | ||
[[Image:Mlx90614_bot.jpg|thumb|right|Melexis MLX90614 bottom view]] | |||
===Overview=== | ===Overview=== | ||
| Line 31: | Line 32: | ||
The board does have a 3.3V I2C interface. | The board does have a 3.3V I2C interface. | ||
Breakout board: [http://github.com/paparazzi/paparazzi-hardware/tree/master/misc/mlx90614_small Paparazzi hardware repo] | |||
Supplier: | Supplier: | ||
| Line 84: | Line 87: | ||
===One-time configuration=== | ===One-time configuration=== | ||
( | (available in the master and campaign2013 branch) | ||
The I2C address is stored in internal flash memory and is usually ''randomly'' set. To set it to a useful value (0x06) put the below define '''only once''' while setting your equipment up. | The I2C address is stored in internal flash memory and is usually ''randomly'' set. To set it to a useful value (0x06) put the below define '''only once''' while setting your equipment up. | ||
{{Box Code|conf/airframes/myplane.xml| | {{Box Code|conf/airframes/myplane.xml| | ||
<source lang="xml"> | <source lang="xml"> | ||
<modules> | |||
<load name="ir_mlx.xml"> | <load name="ir_mlx.xml"> | ||
<define name=" | <define name="IR_MLX_ONE_TIME_CONFIG" value="1"/> | ||
</load> | </load> | ||
</modules> | |||
</source> | </source> | ||
}} | }} | ||
===Result message=== | ===Result message=== | ||
| Line 106: | Line 110: | ||
<field name="itemp_obj" type="uint16"/> | <field name="itemp_obj" type="uint16"/> | ||
<field name="temp_obj" type="float" unit="deg_celsius" format="%.2f"/> | <field name="temp_obj" type="float" unit="deg_celsius" format="%.2f"/> | ||
</message> | |||
</source> | |||
}} | |||
The sensors 64bit serial number is read out at init and transmitted every 30 seconds. | |||
{{Box Code|conf/messages.xml| | |||
<source lang="xml"> | |||
<message name="MLX_SERIAL" id="113"> | |||
<field name="serial0" type="uint32"/> | |||
<field name="serial1" type="uint32"/> | |||
</message> | </message> | ||
</source> | </source> | ||
| Line 112: | Line 126: | ||
Sample log file lines | Sample log file lines | ||
6.000 123 MLX_SERIAL -1468333052 -931101532 | |||
6.518 123 MLX_STATUS 14703 20.91 14702 20.89 | 6.518 123 MLX_STATUS 14703 20.91 14702 20.89 | ||
6.634 123 MLX_STATUS 14703 20.91 14702 20.89 | 6.634 123 MLX_STATUS 14703 20.91 14702 20.89 | ||
Latest revision as of 14:17, 9 May 2013
Overview
The Melexis MLX90614 is a digital infrared radiation sensor. It is used to measure earths surface temperature when flying at low altitudes. It measures both the object (earth) temperature and the case (sensor) temperature.
| Module name | meteo/ir_mlx |
| Sensor type | temperature |
| Range (object) | -70°C .. +380°C |
| Resolution | 0.02°C |
| Refresh rate | 8Hz |
| I2C address | 0x06 |
Hardware
The board does have a 3.3V I2C interface.
Breakout board: Paparazzi hardware repo
Supplier:
Wiring
| Autopilot I2C pin | Autopilot I2C | MLX90614 | MLX90614 pin |
| 1 | GND | Vss | 4 |
| 2 | |||
| 3 | +3.3V | Vdd | 3 |
| 4 | SDA | SDA | 2 |
| 5 | SCL | SCL | 1 |
Usage
To use the infrared radiation sensor:
| File: conf/airframes/myplane.xml |
<modules>
<load name="ir_mlx.xml"/>
</modules>
|
One-time configuration
(available in the master and campaign2013 branch)
The I2C address is stored in internal flash memory and is usually randomly set. To set it to a useful value (0x06) put the below define only once while setting your equipment up.
| File: conf/airframes/myplane.xml |
<modules>
<load name="ir_mlx.xml">
<define name="IR_MLX_ONE_TIME_CONFIG" value="1"/>
</load>
</modules>
|
Result message
Both the sensor case temperature and infrared object temperature are measured. The raw data (itemp_case/_obj) and the converted result (temp_case/_obj) is written to the log file. The message is automatically sent when new data is received, it does not have to be added to the telemetry file.
| File: conf/messages.xml |
<message name="MLX_STATUS" id="85">
<field name="itemp_case" type="uint16"/>
<field name="temp_case" type="float" unit="deg_celsius" format="%.2f"/>
<field name="itemp_obj" type="uint16"/>
<field name="temp_obj" type="float" unit="deg_celsius" format="%.2f"/>
</message>
|
The sensors 64bit serial number is read out at init and transmitted every 30 seconds.
| File: conf/messages.xml |
<message name="MLX_SERIAL" id="113">
<field name="serial0" type="uint32"/>
<field name="serial1" type="uint32"/>
</message>
|
Sample log file lines
6.000 123 MLX_SERIAL -1468333052 -931101532 6.518 123 MLX_STATUS 14703 20.91 14702 20.89 6.634 123 MLX_STATUS 14703 20.91 14702 20.89 6.750 123 MLX_STATUS 14704 20.93 14705 20.95 6.878 123 MLX_STATUS 14703 20.91 14702 20.89
NOTES
If flying at higher altitudes the infrared radiation from the in-between water vapor is also measured.