Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/araobp/arduino-infrared-array-sensor
Arduino with infrared array sensor
https://github.com/araobp/arduino-infrared-array-sensor
amg8833 arduino opencv3
Last synced: 2 months ago
JSON representation
Arduino with infrared array sensor
- Host: GitHub
- URL: https://github.com/araobp/arduino-infrared-array-sensor
- Owner: araobp
- License: apache-2.0
- Created: 2019-06-20T09:39:10.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-08-23T23:23:06.000Z (over 4 years ago)
- Last Synced: 2023-03-23T01:45:47.224Z (almost 2 years ago)
- Topics: amg8833, arduino, opencv3
- Language: C++
- Homepage:
- Size: 284 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Arduino with infrared array sensor
[AMG8833](https://cdn-learn.adafruit.com/assets/assets/000/043/261/original/Grid-EYE_SPECIFICATIONS%28Reference%29.pdf?1498680225) is an infrared array sensor product from Panasonic. It is very popular among Arduino users.
## Development environment
- Arduino IDE on RasPi 3.
- vi and g++ on RasPi 3.
- OpenCV3 for thermography GUI development.Note: you have to install OpenCV3 on Raspi3. In my case, I built OpenCV3 on RasPi3 taking a half day.
## Architecture
```
[GUI/RasPi3]/dev/ttyACM0----VCP/USB----[Arduino]----I2C----[AMG8833]
```
## Data frame format (raster-scan 8x8 pixel image) over VCP/USBThe program on Arduino transfers 8x8 pixel image data to RasPi over VCP/USB at 10fps in the following data format:
```
[BEGIN(0xFE)][byte#0]...[byte#63][END(0xFF)]
```
## Arduino shield of AMG8833=> [schematic](./kicad/arduino_board.pdf)
Note: the shield is powered by 3V3 pin on Arduino UNO. Although Arduino UNO is a 5V system, the circuit works.
## Code
- [Arduino](./arduino)
- [RasPi](./raspi)## Building and running GUI on Raspberry Pi
This is me!
```
$ cd raspi
$ make
$ bin/thermo -m 64 -t -b
```GUI developed in a native language (C/C++) runs fast on RasPi 3!
### Bicubic interpolation
The resolution of AMG8833 is only 8x8 pixels. I applied bicubic interpolation to the original 8x8 pixel image for higher resolution.
This is my right hand.
```
$ bin/thermo -m 1 -i 3
```With "-H" option, the GUI uses COLORMAP_HOT instead COLORMAP_JET:
```
$ bin/thermo -m 3 -i 2 -H -b
```### Binarization
The GUI supports binarization, useful for counting the number of people in a room:
```
$ bin/thermo -m 32 -H -B
```### Diff between frames: gradient(=velocity)
The GUI supports image diff between frames, useful for detecting motion of something:
Waving my hand over the sensor.
```
$ bin/thermo -m 32 -d
```