Coder Social home page Coder Social logo

xuniuer / mlx90640-library Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pimoroni/mlx90640-library

0.0 0.0 0.0 2.8 MB

Python library for the MLX90640 thermal camera

Home Page: https://shop.pimoroni.com/products/mlx90640-thermal-camera-breakout

License: Apache License 2.0

C++ 79.40% C 5.71% Makefile 5.16% Python 9.23% SWIG 0.49%

mlx90640-library's Introduction

mlx90640-library

This Python wrapper of the Melexis MLX90640 library was written for use with the Raspberry Pi and our MLX90640 breakout. While you are free to use this software with whatever combination of device you choose, we unfortunately lack the resources to test and support any other combinations.

** Warning: ** We have reason to believe that using this library in conjunction with a Jetson Nano could damage your device, please see: pimoroni#38

Raspberry Pi Users

** EXPERIMENTAL **

This port uses either generic Linux I2C or the bcm2835 library. Upon building, the mode is set with the I2C_MODE property, i.e. make I2C_MODE=LINUX or make I2C_MODE=RPI. The default is LINUX, without the need for the bcm2835 library or root access.

Generic Linux I2C Mode

Make sure the Linux I2C dev library is installed:

sudo apt-get install libi2c-dev

To get the best out of your sensor you should modify /boot/config.txt and change your I2C baudrate.

The fastest rate recommended for compatibility with other sensors is 400kHz. This is compatible with SMBus devices:

dtparam=i2c1_baudrate=400000

This will give you a framerate of - at most - 8FPS.

If you're just using the MLX90640 and, for example, the 1.12" OLED, you can safely use 1MHz:

dtparam=i2c1_baudrate=1000000

This will give you a framerate of - at most - 32FPS.

Now build the MLX90640 library and examples in LINUX I2C mode:

make clean
make I2C_MODE=LINUX

BCM2835 Library Mode

To use the bcm2835 library, install like so:

make bcm2835

Or, step by step:

wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.55.tar.gz
tar xvfz bcm2835-1.55.tar.gz
cd bcm2835-1.55
./configure
make
sudo make install

Dependencies

libav for video example:

sudo apt-get install libavutil-dev libavcodec-dev libavformat-dev

SDL2 for sdlscale example:

sudo apt install libsdl2-dev

Building

After installing the dependencies, you can build the library. Build-modes are:

  • make or make all: build the library and all dependencies. Default is to use standard linux I2C-Drivers, specify Raspberry Pi driver with make I2C_MODE=RPI
  • make examples: only build examples, see below
  • sudo make install: install libraries and headers into $PREFIX, default is /usr/local

Afterwards you can run the examples or build the python binding, see readme in the subfolder. If you built the examples or library using the native bcm2835 I2C-Driver, you need to run all applications and examples as root. Hence, sudo examples/<exampleame> for one of the examples listed below, or without sudo when using the standard Linux driver.

Examples

fbuf

make examples/fbuf
sudo examples/fbuf

This example uses direct-to-framebuffer rendering and black-blue-green-yellow-red-purple-white false colouring.

If you gave issues with the output image, set "IMAGE_SCALE" to a smaller number.

interp

make examples/interp
sudo examples/interp

This example uses direct-to-framebuffer rendering and black-blue-green-yellow-red-purple-white false colouring.

It also has 2x bicubic resize filter.

If you have issues with the output image, set "IMAGE_SCALE" to a smaller number.

test

make examples/test
sudo examples/test

This example draws out to the console using ANSI colours and the full block char.

To see the actual temperature values, change "FMT_STRING" from the block char to the float format.

step

make examples/step
sudo examples/step

Attempt to run in step by step mode (experimental)

sdlscale

Displays the MLX90640 sensor full-screen using hardware acceleration in SDL2.

Hit Spacebar to change from aspect-ratio correct to full-screen-stretched modes.

Hit Escape to exit.

make examples/sdlscale
sudo examples/sdlscale

Requires SDL2 libraries:

sudo apt install libsdl2-dev

On Raspbian Lite you may wish to build SDL2 from source with X support disabled to avoid pulling in ~200MB of dependencies. Before configuring/compiling ensure you have libudev-dev installed for input support.

mlx90640-library's People

Contributors

21347 avatar agalera avatar futureshape avatar gadgetoid avatar mame82 avatar pjaos avatar robmarkcole avatar sandyjmacdonald avatar slavysis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.