IR vision with Digilent's Arty Z7-20, a Xilinx Zynq 7020-based development board

September 6, 2017 Digilent, Inc.

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. 

To display received images over HDMI, Adam updated the HDMI reference designs in the Digilent GitHub.  


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:

  1. Configure I2C and SPI peripherals using the Xilinx XIICPS API
  2. Read the status register. If the camera is correctly configured and ready, it will respond with 0x06
  3. Read out an image and store it in memory
  4. 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.

The Arty Z7-20 development board is now available from Digilent and Digi-Key.

Previous Article
Making machines move when an MCU isn't the answer

If you're developing a device that needs to make something move at a set interval, the obvious solution for...

Next Article
Take great photos to show off your MakerPro skills
Take great photos to show off your MakerPro skills

[One of my favorite project images, showing off my quadcopter 360° camera mount (also seen on Make:)] When ...