Top Banner
ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image
18

ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

Dec 22, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

ECE Department: University of Massachusetts, Amherst

ECE 354Spring 2006

Lab 2: Capturing and Displaying Digital Image

Page 2: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

2ECE 354

Big Picture Introduction

Capture an image using a digital camera Download image data to NIOS II serially through

the use of a UART A handshaking protocol will be used to

communicate with digital camera Display the image on a CRT monitor with the use

of a VGA controller Perform simple image processing Primarily written in C code Use a preexisting SOPC system with some slight

modifications

Page 3: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

3ECE 354

Additional Hardware

ITM-C-328 Serial Color Digital Camera

Serial Connector and Cable

CRT Monitor

Page 4: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

4ECE 354

Skills to learn

Integrate code with preexisting code Understanding previously written code Connect to a device that you did not design Writing a communication protocol to somebody

else’s specifications

Page 5: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

5ECE 354

Steps taken to complete project

Begin by looking over ITM-C-328 camera documentation Plan out the series of events needed to communicate with

the camera Write a C program to send a simple request message and

receive a message in return Build up the program until ready to receive image data Image data should be stored in one continuous buffer in

SDRAM (example: char received[64]) Gain knowledge of how the DE2_NIOS_HOST_MOUSE_VGA

project displays an image to the CRT monitor Use that knowledge to display your image Finally have fun performing image processing

Page 6: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

6ECE 354

Communicating with the camera

Communication with the camera is accomplished through a series of commands

A single command consists of 6 continuous single-byte RS-232 transmissions

A listing and description of the command set can be found in ITM-C 328_Manual.pdf

Page 7: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

7ECE 354

Communicating with the camera (continued)

This is the command protocol to receive an uncompressed snapshot picture

Initial command to configure preview image size and color type

Snapshot command takes a snapshot and stores data in camera buffer

Get picture is used to transfer image data to host

Your task is to implement this in C code

Page 8: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

8ECE 354

Information for C program

To write/read to/from the UART• fd = open(“/dev/uart”, O_RDWR | O_NONBLOCK, 0);• charReceived = read(fd, to, length);• write(fd, from, length);

I recommend looking over section II of the NIOS II Software Developer’s Handbook

A blocking read holds the program until the read operation completes with the length you specify

Think about why a nonblocking read is needed

Page 9: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

9ECE 354

Recommended C code functions

A function to …• Establish a connection with the camera (Sync function)• Send a message to the camera• Receive and check a message from the camera• Receive image data from camera• Print bits of a byte received (debugging)• Print hex equivalent of a message received (debugging)

Page 10: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

10ECE 354

A little help

Use the form on the bottom of this slide to • hold messages that will be sent to camera • hold messages to check received messages against

The message can be written to the UART in the following way: write(fd, SYNC, 6)

Page 11: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

11ECE 354

Additional information

The image should be 2-bit gray scale with a resolution of 640x480

Uncompressed image I recommend starting with the smallest image

resolution and work from there

Page 12: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

12ECE 354

Overview of DE2_NIOS_HOST_MOUSE_VGA project Implements a monochrome display, with a

preloaded image, where the user can draw on it with a mouse

USB mouse should be connected USB HOST port CRT monitor should be connected to the VGA port

You will integrate your code so that the project displays the image received from digital camera

Page 13: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

13ECE 354

Displaying image through VGA controller

Look through VGA.h for VGA functions

Write C code similar to that shown below that calls functions from VGA.h to display each pixel

It is your job to come up with an equation to check each pixel in your receive buffer

Page 14: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

14ECE 354

Image Processing

It is required that you implement two forms of image processing

Recommendations include:• Add timestamp onto image• Counter to keep track of number of pictures taken• Rotate, mirror, invert image• Simple edge detection (challenging)• Detect changes in images (challenging)

Page 15: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

15ECE 354

Where does this project lead?

Next lab will be on the topic sending data over a network• Sending image between DE2 boards• Using computer networking knowledge learned from

Professor Ganz’s course• Don’t worry if you have not taken computer networking

Page 16: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

16ECE 354

References

Camera documentation (ITM-C-328)• http://www.tdc.co.uk/camera/• Information and Datasheets

DE2_NIOS_HOST_MOUSE_VGA project

NIOS II Software Developer’s Handbook• http://www.altera.com/literature/lit-nio2.jsp

Page 17: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

17ECE 354

Hints

You may need to slightly modify the SOPC system of the MOUSE_VGA project

Set the initial baud rate to what the camera initially wants

Attend my lab hours and ask lots of questions

Page 18: ECE Department: University of Massachusetts, Amherst ECE 354 Spring 2006 Lab 2: Capturing and Displaying Digital Image.

18ECE 354

Questions and Comments