Professional Documents
Culture Documents
Engineering
Development of a Vision System for a Humanoid
Robot
19 October 2001
89 Trevallyan Drive,
Daisy Hill, Qld, 4127,
19 October 2001.
Prof. Simon Kaplan
Head of School Information Technology
and Electrical Engineers
University of Queensland
St. Lucia, Old, 4072.
In accordance with the requirements of the degree of Bachelor of Engineering in the divi-
sion of Computer Systems Engineering, I present the following thesis entitled “Development
of a Vision System for a Humanoid Robot”. This work has been performed under the super-
vision of Dr Gordon Wyeth.
I declare that the work submitted in this thesis has not been previously submitted for a degree
at the university of Queensland or any other institution. To the best of my knowledge and
belief, this thesis contains no material previously published or written by any other person,
except where reference is made in the text.
Yours sincerely,
Andrew Blower.
Acknowledgements
The following people I would like to thank:
• Gordon Wyeth: my supervisor, for driving the entire project and providing advice on
how to get the job done.
• Mark Chang: for his help with the old vision system and assistance with the specifica-
tion and current design.
• David Prasser: for his help with image processing and vision software.
• Mark Wagstaff and Damien Kee: for being one of the ones to keep me sane during this
thesis .
• Rest of the Robotics team: for providing a great team environment in which to develop
this project.
• To my parents for proof reading the many drafts churned out as a part of this thesis.
This thesis investigates the design of a vision system for the "Guroo" a robot humanoid soccer
player. The aim was to create a vision system that was able to view and track objects in the
three dimensional world. Vision hardware is presented for the CMOS Digital Camera and
Interface software for a field programmable gate array included on the main vision board.
The design and implementation of an aesthetically pleasing head is also presented.
Beginning in 2000 the project has moved on from the development of the design of the
original vision system for the "Viperoo" robot soccer team to designing a new system for the
use in the Guroo project and the 2001 upgrade for the Viperoos small soccer league.
The major achievements in the redesign of the vision system are the use of the OV7620
CMOS digital camera chip which has trebled the frame rate of the digital camera used and
the implementation of a dual port ram system for the field programmable gate array. These
combine with the developments in the vision board to produce an improved local vision
system.
The result of this development was a camera that passed data from the three dimensional
world surrounding it to the main vision board.
Future work on the design of a vision system will involve optimising the vision code and
low level hardware code. Future students could also port areas of the object detection code
to the field programmable gate array as another area of vision development.
Contents
1 Introduction 1
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 RoboCup Soccer Tournament . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 The Guroo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Importance of Vision to a Humanoid . . . . . . . . . . . . . . . . . . . . . 3
1.5 Expected Outcomes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Outline Of Thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Literature review 7
2.1 CMOS Camera Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Omnidirectional Vision . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Stereo Vision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Vision System 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.5 Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5.1 Current Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5.2 Megapixel Cameras . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.6 Vision Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 Problem Specification 13
3.1 Importance of specifications . . . . . . . . . . . . . . . . . . . . . . . . . 13
i
CONTENTS CONTENTS
5 Interface Design 27
5.1 Interface Decision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2 Interface Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7 Results 41
7.1 Product Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.1.1 Field Programmable Gate Array Interface . . . . . . . . . . . . . . 41
7.1.1.1 Testing Procedure . . . . . . . . . . . . . . . . . . . . . 42
7.1.2 CMOS Digital Camera . . . . . . . . . . . . . . . . . . . . . . . . 42
8 Future Work 45
8.1 CMOS Digital Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.2 FPGA Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
A Camera Schematic 52
E Camera Housing 74
F Camera Bracket 76
G Head Original 79
H Head Final 81
I Head Assembly 84
v
LIST OF FIGURES LIST OF FIGURES
vii
Chapter 1
Introduction
“Nothing can stop us, we’re on a mission from Gordo”.David Prasser May 2001.
1.1 Introduction
This thesis investigates vision hardware for use in object detection with application to a
humanoid robot. Development of a digital camera and software for a field programmable gate
array is discussed. The objective of this thesis is to design a vision system for a humanoid
robot so as to allow the robot to view a soccer ball in order to be involved in the RoboCup
soccer tournament. This is only the beginning, vision systems of this design will allow
humanoid robots to interact in increasingly complex situations with humans and the outside
world.
1
CHAPTER 1. INTRODUCTION 1.3. THE GUROO
humanoid robots that can win against a human world champion soccer team”. To that end
there are several different leagues, the small soccer league which comprises teams of 5 robots
using either a global vision system or a local vision system. Global vision is the position-
ing of an image sensor above the field of play, this sensor has a global view of the playing
surface. Local vision is a system where every robot has its own individual vision system.
The simulation league is a network version which is purely a software problem. The latest
league and at this time exhibition only is the humanoid league, this consists of humanoid
biped robots playing at this stage of development as individual against individual.
Two humanoid designs that have come to prominence of late are the SDR-3X and Asimo,
designed by Sony and Honda respectively. These are the most advanced humanoid bipeds
operating at present. These designs display the full range of movement for a humanoid biped
and are able to successfully locate and kick a soccer ball.
or Honda. The term “Roo” is a part of the tradition of Australian soccer teams originating
with the Australian soccer team called the Socceroos, this tradition has continued with all
UQ robotics soccer teams.
To meet the specifications of the tournament, the design must be a humanoid biped capa-
ble of playing soccer. The design must be under 1.2 meters tall and is based on the approx-
imate size of a seven year old child. The design of the humanoid has been divided amongst
thirteen people with the main electronic components being the vision system, the commu-
nications hardware, the IPAQ controller, motor controllers and the power supply. These
components are explained in other thesises written by other students of Dr Gordon Wyeth.
The diagram below displays the visions systems place in the overall design of the Guroo.
processing board.
Chapter 1 - Introduction This chapter will outline the aim of this thesis, the robot for
which the vision system is being implemented, how the vision system relates to the humanoid
robot and why the vision system is so important to the soccer playing robot.
Chapter 3 - Outline of Objectives This chapter sets out the tasks and design goals to
be achieved in the thesis toward the development of the humanoid vision system.
Chapter 4 - CMOS Digital Camera Design The design implementation of the hu-
manoid’s eye is outlined, the problems encountered and the discriminators used in the deci-
sion as to which digital camera chip was the most suitable.
Chapter 5 - Field Programmable Gate Array Design The interfacing used to pass
the data from the CMOS Camera to the Vision Processing Board through the use of a field
programmable gate array is explained. The design is outlined and the code used to program
the FPGA is explained.
Chapter 7 - Future Work Work yet to be completed and what could be done to im-
prove the implementation of the humanoids vision system in the future will be discussed as
well as what should be areas of design should be focussed on in the next redesign.
Chapter 8 - Results and Conclusion The final chapter discusses what was achieved
throughout the thesis project, what outcomes were successfully accomplished and what fur-
ther developments can be made to the humanoid vision system.
Literature review
“The danger from computers is not that they will eventually get as smart as men,
but that we will meanwhile agree to meet them halfway”. Bernard Avishai
This chapter will explain the current work developed in this field and in particular the design
from which the inspiration for the new design came. The original vision system will be
discussed as well as the new innovation in vision system technology.
7
CHAPTER 2. LITERATURE REVIEW 2.2. OMNIDIRECTIONAL VISION
able adaptation for humanoid robots to develop however it is not a viable concept with the
amount of processing power required for the size of the robot whereas the “Urbie” being a
vehicle can contain and carry the processing power required. The “Urbie” is also fitted with
omnidirectional vision as described above amongst its other sensors.
further detail in the following sections. This vision system worked effectively in the 2000
RoboCup Soccer Tournament with the team placing third in their group
2.5 Camera
All vision systems require a sensor to collect the data about the world surrounding the system.
In the case of a vision system, this sensor is a camera or image sensor. There are many
options for the choice of the camera these include CCD and CMOS digital cameras.
The camera used in the 2000 vision system design uses a PB-159 Photobit CMOS digital
camera. This camera puts out a RGB colour spectrum and operates at around 12 frames per
second. The camera passes the RGB colour data to the SH3 vision board through the use of
an 8 bit serial connection and the camera is controlled through a I2C command connection.
The camera receives the command line data from the SH3 main vision board and then returns
the RBG data from the camera.
The latest innovation in CMOS camera technology is the megapixel camera. These cameras
have greater than one megapixel resolution and frame rates of 500 frames per second and
greater. These sensors will be the future of vision systems however today’s technology is not
able to accommodate the amount of information that these CMOS cameras provide, future
designs need to consider these sensors when future redesigns are being completed.
and 104 MIPS. This board takes the data from the digital camera and determines the location
of the ball and other obstacles in relation to the robot and is an essential part of the hardware
for the local vision robots.
Problem Specification
Lunkwill: “O great computer, the task we have designed you to perform is this:
We want you to tell us the Answer”.The Hitchhiker’s Guide to the Galaxy.
The specification of a design is important to the successful implementation of the final de-
sign. This chapter sets out to specify what the design should be able to do to allow the Guroo
to play soccer. It is from these specifications that the development of the whole project can
begin to take shape.
13
CHAPTER 3. PROBLEM SPECIFICATION 3.3. DIGITAL CAMERA
project and people were at various levels of knowledge in vision design and some parts of
the project had to be completed before others could be finalised.
The current camera design implements the PB-159 CMOS digital camera by Photobit, this
camera operates in the red, green and blue colour spectrum and operates at 12 frames per
second at a resolution of 480 x 320. This CMOS camera requires the designer to set the gain
levels for the system to operate correctly requiring extra hardware.
The ultimate goal of the robot soccer competition is the construction of a humanoid robot.
In order to achieve this, the vision system should be as close to that of a human beings. The
first step in that goal is to give the robot’s ’eye’ a frame rate similar to that of a real person.
The CMOS camera has been designed to the following specifications to produce the best
possible vision system for the GUROO humanoid robot. These specifications have been
developed from past experiences using vision systems.
The specifications for the digital camera are as follows:
• The ability to do subsampling on board the chip. This allows some of the processing
that would normally be done on the vision board to be done on the camera chip prior
to vision processing.
• The ability to do automatic gain calibration. Some of the new CMOS camera chips do
this on chip meaning that extra hardware is not required.
• That the output colour spectrum of the camera be YUV instead of RGB to allow the
vision processing to be simpler as YUV is invariant to the light intensity of the sur-
rounding conditions.
The previous design implemented the Hitachi Super H3 microcontroller as the vision pro-
cessor and received its vision data from the Photobit PB300 CMOS digital camera. The SH3
board required no subsampling interface to operate the camera at 32 x 128 resolution at 12
frames per second. That system operated in the RGB colour space and required gain control
hardware. This system is limited to the amount of data that can be analysed by the SH3
board.
The field programmable gate array is required to buffer the input signal from the digital
camera to the vision board through the use of a dual port ram implementation. It should also
make use of the delay locked loops in the field programmable gate arrays to generate any
clock rate and signals required by the CMOS digital camera. The basic specifications are
displayed below:
• Implement a dual port ram system for a field programmable gate array. This is to
control the flow of data to the field programmable gate array.
• Use the delay locked loops to implement any clocking signals required.
The design and development of the digital camera is the basis of the “Guroo’s” vision system.
It is the robots ’eye’ and as “eyes are the windows to the souls”(traditional proverb) for
people they draw the attention of any person interacting with the machine as well as being
the main sensor for the robots interaction with the outside world.
18
CHAPTER 4. DIGITAL CAMERA DESIGN 4.1. CCD VS CMOS DIGITAL CAMERAS
The decision whether to use a CMOS or CCD is of great importance to the overall design
as there are significantly different hardware requirements, output data types and other con-
siderations described above. The final decision was to use a CMOS digital camera as the
remainder of the vision system is digital and the requirement for extra hardware combined
with the lower frame rate and limited windowing led to the decision that a CMOS digital
camera would be optimal for this application.
The digital camera system operates using the progressive scan method as it is faster than in-
terlaced scanning and as the image is to be subsampled or “windowed” the progressive scan
method will be better with the smaller image area.
4.5 YUV
The YUV colour spectrum as compared to the RGB (red, blue and green) spectrum involves
the use of brightness blue and red values. This can be seen in the two pictures below. The
picture on the right is in the RGB spectrum while the one on the left has been converted
into the YUV colour space using red blue and light intensity. It can be seen that the areas of
the greatest light intensity being the sky and the deck of the boat have become pink or red
while other areas have become green when mixed with blue. Further information on object
detection using the YUV colour space can be found in Prasser[20].
The crystal circuit used implemented a 24 MHz HC19 crystal with two 22 pF capacitors.
When this circuit was built it was found to contain too much inductance in the wires due
to their length and the distance of the crystal from the camera chip. Subsequently the pro-
grammable oscillator had to be used for the clocking circuit on the digital camera.
The programmable oscillator used in this design was the EXO-3C programmable oscillator
an integrated circuit that produces a 24 MHz clock output that can be reduced by factors of
two by setting bits at the input to the chip. This was the clocking system used by the camera
and proved to be successful.
The field programmable gate array being used by the vision board contains a delay locked
loop capable of producing various clock signals, if needed this connection was placed in
the circuit as an alternate means of applying a clock signal to the camera chip but was not
required.
Interface Design
“A computer terminal is not some clunky old television with a typewriter in front
of it. It is an interface where the mind and body can connect with the universe
and move bits of it about”. Douglas Adams(Mostly Harmless)
The implementation of a successful interface between the digital camera and the Hitachi
SH4 vision board is essential to the operation of the humanoid vision system. To that end
the interface chosen for this design is the Spartan 2 field programmable gate array.
27
CHAPTER 5. INTERFACE DESIGN 5.2. INTERFACE DESIGN
hardware.
The main problem that can arise with a dual port ram implementation on a field programmable
gate array is that the same memory address can be read as well as written. If memory is ac-
cessed by both read and write at the same time, timing problems may occur and memory
overwrites may cause the data to become corrupted and produce erroneous reading when
entity camera_ram is
analysed.
vision system for playing soccer in both the “Guroo” and ’Viperoo’.
34
CHAPTER 6. AESTHETIC HEAD DESIGN 6.2. HEAD REQUIREMENTS
soccer ball head can be folded and then welded to complete the final head.
This design was approximately two and half time the size of the new design. The housing
has also been designed to hold and focus the light from the image through the lens and onto
the photo active area on the digital camera chip. Along with the camera housing the bracket
for the camera housing has been designed simply to hold the camera in position and to be as
light as possible.
Results
“Results! Why, man, I have gotten a lot of results. I know several thousand
things that won’t work”. Thomas Edison
The results of any project are the important determinants as to whether a success or failure
has been recorded in the implementation of any design.
The operation of the field programmable gate array using a dual port ram implementation
proved to be successful in simulation as can be seen from the flow graphs below. The first
timing diagram displays the inputs and outputs for a standard dual port ram implementation.
The signals above the compressed address lines are the input clocking and set state signals.
These can be seen to be reflected in the output signals below the compressed address buses.
This all displays a fully operational dual port ram system.
41
CHAPTER 7. RESULTS 7.1. PRODUCT EVALUATION
The test procedure used on this part of the design involved the use of the Xilinx Foundation
Software to simulate the designs and produce timing diagrams. This software allows the user
to collect the various signals within the FPGA of interest and set them high or low as well as
clocking function and stimulus to added to each of the inputs or clocking signals. Once the
initial signal were in place the design was simulated for a preset length of time after which
the control signals were changed to test all possible signal possibilities.
The digital camera clocking system operation was originally implemented using the 24MHz
crystal however when this design was built it was found that there was too much inductance
in the circuit due to the length of the connection between the crystal and the clock pins on
the OmniVision OV7620. The second option of the crystal oscillator was then placed on
the board, this small integrated circuit operated correctly allowing the clocking system to
operate effectively.
Currently the OV7620 CMOS digital camera is not operational, this may have been
caused by the component being destroyed whilst population of the board was being com-
pleted. Once power is supplied the chip will output data from the YUV output pins and the
pixel clock will produce a measurable clocking signal.
Future Work
“The best way to predict the future is to invent it”. Alan Kay
Future work on the design of a vision system will have to include the complete and oper-
ational interface implementing not only the dual port ram system but a control interface to
allow the I2C command registers to be placed in the field programmable gate array. This will
allow more of the processing to be done outside of the Hitachi SH4 vision board.
In addition to this the parts of the vision object detection code can be ported onto the field
programmable gate array to allow further processing to be done prior to reaching the Hitachi
SH4 allowing higher resolution to be processed at a faster rate.
45
CHAPTER 8. FUTURE WORK 8.2. FPGA INTERFACE
ability to do onboard subsampling or windowing of the image taken. All of these advantages
mean that the digital camera or “eye” of the humanoid will not need a redesign for some
time. Until the image processor becomes powerful enough to process the data no further
redesign of the digital camera is required.
Another consideration for the future generation of digital cameras design is the intro-
duction of bead inductors to reduce noise in the circuit which is a major problem in CMOS
digital cameras.
8.3 Conclusion
Over the last 12 months the “Guroo” humanoid project has put together a complete design
for the development of a robot capable of playing soccer in the RoboCup soccer tournament.
To that end the design for the vision hardware and interface software has been developed. A
significant amount of learning has taken place during the project especially in the areas of
field programmable gate array design. The aim of this thesis was to design a vision system
capable of providing external data from the real world. In particular the head design of a
digital camera to act as the “eye” to the robot, design of interface software for a dual port
ram system for the control of data from the camera to the main vision board and the design
of an aesthetically pleasing head as the centre of attention for the humanoid. Part of this aim
was completed in this thesis, the simulation of the dual port ram and the design and choice
of a suitable digital camera for use in this design.
The major achievements for this thesis are listed below:
• Choice of a suitable CMOS digital camera with characteristics that make it by far the
best component available.
• The simulation of an effective dual port ram system to control the data from the cam-
era.
• The simulation of the complete interface for the camera using the simulation packages
in the Xilinx foundation suit.
The major concern in the design of the digital camera was the differences in the data sheets
which in some cases contradicted each other, these data sheets came out at different times,
this attributed to the non operational status of the digital camera to the conclusion of this
thesis.
Future work should focus on the operation of the camera and continuing development of
the software to reduce the processing required to be done by the Hitachi SH4 to increase the
frame rate that can be analysed. From now on software will be the major concern for this
project.
[2] Data Sheet OV7620 Product Specification - Rev 1.3(5/3/00), "OV7620 Single Chip
CMOS VGA Colour Digital Camera", Omnivision, 2000.
[3] BEC Manufacturing Pty Ltd, "Engineering Guidelines", PCB Guidelines, http://
www.becman.com/BEC.htm (current APR. 26. 2001).
49
BIBLIOGRAPHY BIBLIOGRAPHY
[9] Ziff Davis Media Inc, “Anatomy of a Digital Camera: Image Sensors”,
http://www.extremetech.com/article/0,3396,apn%253D5%2526s%253D200%
2526a%253D2036%2526app%253D3%2526ap%253D4,00.asp (current OCT. 05. 2001).
[19] Fryer Thesis, “Automated design of specialized FPGA processor memory intensive
applications”.
[20] Prasser D, “Vision Software for a Humanoid Soccer Robot”, University of Queensland,
2001.
[23] Kee D, “Drive System Selection and Simulation for a Humanoid”, University of
Queensland, 2001.
Camera Schematic
52
APPENDIX A. CAMERA SCHEMATIC
54
APPENDIX B. CAMERA PRINTED CIRCUIT BOARD
56
APPENDIX C. DUAL PORT RAM
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
entity dual_port_ram is
generic( d_width : integer := 4;
mem_depth : integer := 256); – memory array size
begin
process(raddr, clk)
begin
if(rising_edge(clk))then
if(CS = ’0’)then
– read data from memory
outdata <= mem(conv_integer(raddr));
end if;
end if;
end process;
end data;
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
entity camera_ram is
begin
process(we, address)
begin
if (we = ’1’) then
mem(conv_integer(address)) <= dataw(15 downto 0);
end if;
if(we = ’0’)then
datar(15 downto 0) <= mem(conv_integer(address));
end if;
end process;
62
APPENDIX D. TEST CODE COUNTER
-- module: counter.vhd
-- This is the top level module that ties all sub-modules together
library IEEE;
use IEEE.std_logic_1164.all;
entity counter is
port ( clk : in STD_LOGIC;
reset : in STD_LOGIC;
lcd_com : out STD_LOGIC;
one_dp : out STD_LOGIC;
ten_dp : out STD_LOGIC;
one_out : out STD_LOGIC_VECTOR(6 downto 0);
ten_out : out STD_LOGIC_VECTOR(6 downto 0));
end counter;
component div_20
port ( clk : in STD_LOGIC;
clk_2k : out STD_LOGIC);
end component;
component div_24
port ( clk : in STD_LOGIC;
tc_1s : out STD_LOGIC);
end component;
component cnt_10
port ( ce : in STD_LOGIC;
clk : in STD_LOGIC;
clr : in STD_LOGIC;
tc : out STD_LOGIC;
qout : out STD_LOGIC_VECTOR(3 downto 0));
end component;
component hex2lcd
port ( hex : in STD_LOGIC_VECTOR(3 downto 0);
lcd : out STD_LOGIC_VECTOR(6 downto 0));
end component;
component lcd_mux
port ( clk : in STD_LOGIC;
cnt : in STD_LOGIC;
data_in : in STD_LOGIC_VECTOR(6 downto 0);
lcd_seg : out STD_LOGIC_VECTOR(6 downto 0);
lcd_com : out STD_LOGIC;
lcd_dp : out STD_LOGIC);
end component;
begin
end counter_arch;
-- Module: lcd_mux.vhd
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_misc.all;
use IEEE.std_logic_unsigned.all;
entity lcd_mux is
port ( clk : in STD_LOGIC;
cnt : in STD_LOGIC;
data_in : in STD_LOGIC_VECTOR(6 downto 0);
lcd_seg : out STD_LOGIC_VECTOR(6 downto 0);
lcd_com : out STD_LOGIC;
lcd_dp : out STD_LOGIC);
end lcd_mux;
begin
process(clk)
begin
end if;
end process;
end lcd_mux_arch;
-- module: div_20.vhd
-- This module divides the incoming clock by 2^20 and outputs the
-- 20th bit of the counter as clk_2k.
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_misc.all;
use IEEE.std_logic_unsigned.all;
entity div_20 is
port ( clk : in STD_LOGIC;
clk_2k : out STD_LOGIC);
end div_20;
begin
process(clk)
begin
end process;
clk_2k<=count(19);
end div_20_arch;
-- module: div_24.vhd
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_misc.all;
use IEEE.std_logic_unsigned.all;
entity div_24 is
port ( clk : in STD_LOGIC;
tc_1s : out STD_LOGIC
);
end div_24;
begin
process(clk)
begin
if(count="111111111111111111111111") then
tc_1s <= ’1’;
else
tc_1s <= ’0’;
end if;
end process;
end div_24_arch;
-- Module: cnt_10.vhd
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_misc.all;
use IEEE.std_logic_unsigned.all;
entity cnt_10 is
port ( ce : in STD_LOGIC;
clk : in STD_LOGIC;
clr : in STD_LOGIC;
tc : out STD_LOGIC;
qout : out STD_LOGIC_VECTOR(3 downto 0));
end cnt_10;
begin
process(ce,clk,clr)
begin
if(clr=’1’) then
count <="0000";
elsif(ce=’1’) then
if(clk’event and clk=’1’) then
if(count="1001") then
count<="0000";
else
count<=count + "0001";
end if;
end if;
end if;
end process;
qout<=count;
end cnt_10_arch;
-- module: hex2lcd.vhd
-- This module converts a 4 digit binary number into the LCD format
-- required by the 7-segment LCD display.
library IEEE;
use IEEE.std_logic_1164.all;
entity hex2lcd is
port (
hex: in STD_LOGIC_VECTOR (3 downto 0);
lcd: out STD_LOGIC_VECTOR (6 downto 0)
);
end hex2lcd;
--HEX-to-seven-segment decoder
--
-- segment encoding
-- 0
-- ---
-- 5 | | 1
-- --- <- 6
-- 4 | | 2
-- ---
-- 3
end hex2lcd_arch;
Camera Housing
74
APPENDIX E. CAMERA HOUSING
Camera Bracket
76
APPENDIX F. CAMERA BRACKET
Head Original
79
APPENDIX G. HEAD ORIGINAL
Head Final
81
APPENDIX H. HEAD FINAL
Head Assembly
84
APPENDIX I. HEAD ASSEMBLY