Title: WebCams
1WebCams
- By Dave Booth and
- Joanna Washburn
2Project Goals
- Ultimate goal of project
- To provide streaming live video of ECE 345 lab
across http protocol - To provide a searchable database of a rolling 24
hour archive - High-level timing goals
- To be completed in one semester
3Description
- This project will allow users of the world wide
web to view continuous video of the lab - It will also allow users to view static images of
the lab for any time period in the last 24 hours
FOR MORE INFO...
Contact Dave Booth d-booth_at_uiuc.edu Joanna
Washburn jwashbur_at_uiuc.edu
4Competitive Analysis
- Competitors
- There exist many Webcam software packages for
various applications - Most all of these allow an image to be captured
and updated according to a specific time
interval. For example, the webcam used by
Beckman Institute captures an image every 5
minutes for display to the Internet. - Strengths
- Our project allows real time video to be
broadcast over the internet, as well as
time-based archiving and querying. - Weaknesses
- This project does not scale down very easily, and
may be considered overkill for some
applications. We also utilize our own hardware
configuration which may be considered an extra
expense to the average PC user. - Due to the nature of streaming video, a fast
internet connection is needed in order to view it
effectively.
5Technology
- Hardware configurations
- We are using a parallel port version of
Logitechs QuickCam VC. - The parallel port version was chosen as many
embedded boards do not include USB
compatibilities. - We have isolated parts of a standard PC to create
an affordable embedded hardware configuration
capable of running Windows 95 as well as standard
DOS applications. There is no need to use
resources of a fully featured PC for this
project. - SCSI hard drive
- 64 MB Memory
- Pentium 133 processor / Intel chipset on standard
motherboard - Parallel port, mouse, keyboard (standard I/O)
- ATX power supply
- Ethernet adapter
- VGA adaptor (used for initial set-up)
6Technology
- Software utilization
- For the web based portion of the project
- A JAVA applet is used to broadcast the video to a
web browser. - Visual Basic Scripting (VB Script) edition within
an ASP (Active Server Page) shell - SQL (Standard Querying Language) is used to
access and maintain a SQL compliant database
residing on a Windows NT server - HTML (Hyper-Text Markup Language) used for basic
page design - For the embedded system
- ISPY Webcam 32 software is used to perform JPG
conversion of images and upload to http server - C DOS application for archiving and time-stamping
particular images based on time interval of 10
minutes.
7Technology
- Standards specifically being ignored
- From a Hardware perspective, we have excluded
many portions of a PC usually found. This is a
bare bones solution where unnecessary
functionality has been discarded as a trade off
for cost. - Serial ports
- Any external drives
- Speakers
- Power management
- Any peripheral device not previously mentioned
- Post start-up, keyboard, mouse, and monitor are
NOT needed
8Team/Resources
- Personnel
- Dave Booth, Joanna Washburn
- Equipment
- Microsoft Personal Web Server Equipped
development machine - Logitech camera
- ISPY image software
- Locations
- ECE345 lab, s/w accessible on any connected PC
- Support and Outside Services
- CSIL (server space, retired PC components)
- ECE Stores (camera, machined parts for casing)
9Procedures
Camera
Camera
Windows based System
Windows based System
SOFTWARE IMPLEMENTATION
SOFTWARE IMPLEMENTATION
Real Time/ Static Capture Time-stamping,
database insertion JPEG Conversion Server Upload
Real Time/ Static Capture Time-stamping,
database insertion JPEG Conversion Server Upload
- Two tier system
- Embedded Hardware
- Windows NT server
H/W Server Connection
H/W Server Connection
Ethernet
Ethernet
NT Server
NT Server
REQUIREMENTS
IMPLEMENTATION
REQUIREMENTS
IMPLEMENTATION
ASP Shell MS Access MS Access ODBC Drivers
ASP / SQL (Access Driver) Archive / Query
Functionality Dynamic Page Creation
ASP Shell MS Access MS Access ODBC Drivers
ASP / SQL (Access Driver) Archive / Query
Functionality Dynamic Page Creation
FOR MORE INFO...
Contact Dave Booth d-booth_at_uiuc.edu Joanna
Washburn jwashbur_at_uiuc.edu
10Procedures - Hardware
- Embedded PC
- Locate parts, test, find minimum system
requirements for tasks - Assemble in single unit with camera for easy
mounting in ECE 345 lab - Re-design based on test results
- Graphics component of ISPY s/w used much of
original systems resources, etc.
FOR MORE INFO...
Contact Dave Booth d-booth_at_uiuc.edu Joanna
Washburn jwashbur_at_uiuc.edu
11Procedures - Software
- Embedded PC
- Configure ISPY software for networked upload
- Write/ Test/ Debug C routine for time-stamping
and archiving images on strict time interval - Write scheduler for Windows
- BIOS tweaking for minimal hardware boot and
functionality
FOR MORE INFO...
Contact Dave Booth d-booth_at_uiuc.edu Joanna
Washburn jwashbur_at_uiuc.edu
12Procedures - Software
- Web Server (Windows NT)
- Set up development server
- Dont want to crash entire NT system
- HTML coding of static components
- ASP / VBScript development for ODBC (database
client) and SQL querying - MS Access database skeleton
- JAVA applet for video stream
FOR MORE INFO...
Contact Dave Booth d-booth_at_uiuc.edu Joanna
Washburn jwashbur_at_uiuc.edu
13Procedures - Other
- Build Encasement Structure
- Try machine shop were advised to do it
ourselves. - Bought parts from ECE Stores and machined them
ourselves to attain a box including all hardware
as well as camera and camera enclosure.
FOR MORE INFO...
Contact Dave Booth d-booth_at_uiuc.edu Joanna
Washburn jwashbur_at_uiuc.edu
14Schedule
- Week Of 2/6
- -Proposal
- -Order cameras and third party software
- -Set up development machine
- Week Of 2/13
- -Find space on NT server
- -Install / ramp on ISPY software
- Week Of 2/20
- -Design Review
- -Write JAVA applet
- Week Of 2/27
- -Test/ Debug JAVA applet
- Week Of 3/5
- -Write/ Test/ Debug HTML code
- Week Of 3/12
- SPRING BREAK
-
-
- Week Of 3/19
- -Set up ODBC Client with MS Access
- -Set up Access skeleton
- Week Of 3/26
- -Write/test/debug C script
- Week Of 4/2
- -Write/test/debug VB, ASP, SQL
- Week Of 4/9
- -Write/test/debug VB, ASP, SQL
- Week Of 4/16
- -Complete system testing
- Week Of 4/23
- -Build Encasement
- -Demos
- -Presentations
We kept very close to our schedule and completed
On Time!!!
15Problems/ Setbacks
- CSIL Deletes all of our progress in routine
upgrade of lab systems - All work on development machine lost, luckily
still fresh in mind, and after an intense weekend
of round the clock work, we were able to catch
back up to schedule. - Machine shop
- For reasons unbeknownst to us, we had to deal
with all mechanical machining issues ourselves,
on the advice of machine shop personnel.
Unexpected workload.
16Problems/ Setbacks
- Functional limitations of chosen tools
- Some algorithms were not possible within
limitations of http protocol. Creative
re-evaluation of these designs was needed as
situations arose. - Time stamping in C (rolling 24 hour soln)
- Deciphering time/ day on query page
- Streaming video frame considerations (balancing
limited functionality of hardware with image
quality/ speed) - These (though not specifically) were expected and
worked through very smoothly.
17Testing Stages
- Software
- JAVA
- MS PWS (Personal Web Server) development
environment - Trial and error of update timing to optimize
performance for web audience (different
buffering, cache manipulation, and internal
functions were used) - C
- MS Visual Studio development environment
- Physically simulated 24 hour period to detect
numerous errors not easily recognized in
algorithm planning - Ran on test machine for 24 hour periods to detect
more logical errors
18Testing Stages
- Software
- ASP/ VB/ SQL/ ODBC
- MS PWS development environment
- Trial and error database connectivity, querying,
string manipulation - Creative algorithms for maintenance of
time-stamped data with time of page creation - Trial and error in dynamic page creation
- HTML
- MS PWS development environment
- Straightforward static page generation
-
19Recommendations
- For others interested in similar projects, we
recommend - Having a strong background in the chosen
development languages - Work closely with CSIL as they can provide many
resources - Isolate a development machine and use whatever
means possible to instinctively mark your
territory. - Dont ever tell people the camera is on. Lie
instead so they dont cover it up with something
or point it at the ceiling when youre not there. - As whenever dealing with software, anticipate
logical errors and leave plenty of time for
testing and debugging