IR vision with Digilent's Arty Z7-20, a Xilinx Zynq 7020-based development board
September 06, 2017
Infrared (IR) is very popular in applications ranging from wildfire detection to defense. Adam Taylor?of ADIUVO Engineering used a FLIR IR camera and the?Arty Z7-20?to create an?IR vision application.
The Digilent ARTY Z7-20 enables engineers, system integrators, and designers to get started quickly on embedded vision designs. The Arty Z7-20 hardware platform combines the Xilinx Zynq 7020 programmable SoC with the Xilinx SDSoC design environment and reVISION machine learning stack to enable design teams without deep hardware expertise to integrate computer vision (CV) algorithms in highly responsive systems. With 512 MB of onboard DDR3 SDRAM and HDMI inputs and outputs, users can run various real-time, high-definition (HD) video processing designs on the ARTY Z7-20.
Infrared (IR) is very popular in a range of applications, from wildfire detection to aerospace and defense. For example, Adam Taylor of ADIUVO Engineering leveraged a FLIR Lepton IR camera and the Arty Z7-20 to create an IR vision application.
IR vision: A hardware design overview
The ADIUVO IR vision application provides a simple yet powerful example of how the programmable logic of the Xilinx Zynq SoCs allows users to accommodate just about any I/O requirement in embedded designs using a configurable IP block and little HDL code.
In the IR vision application, the FLIR Lepton IR camera assembly is mounted on a break-out board and plugged into the Arty Z7-20’s Arduino shield connector. The I2C controller of the Arty Z7-20's onboard Zynq SoC is used to issue commands to the camera. An AXI QSPI IP block instantiated in programmable logic of the Zynq SoC is configured to work with standard SPI, and interfaces with a 14-bit Video over SPI (VoSPI) output on the FLIR camera.
IR vision: A software design overview
Adam referenced an HDMI-out example, also on the Digilent GitHub, when writing the FLIR camera's control software. The software executes the following functions in sequence:
- Configure I2C and SPI peripherals using the Xilinx XIICPS API
- Read the status register. If the camera is correctly configured and ready, it will respond with 0x06
- Read out an image and store it in memory
- Move the stored image to a memory location being accessed by VDMA to display the image
When the program executes, Adam is able to see an IR image of himself taking a picture of the monitor screen. The image has been scaled up by a factor of 8.
Further details on this open-source IR application project and can be found in the Xcell Daily.