web surveillance cameras

15
Web Surveillance Cameras CS460: Senior Capstone Experience in Computer Science By: Brandon Gigot

Upload: xiang

Post on 23-Feb-2016

31 views

Category:

Documents


0 download

DESCRIPTION

Web Surveillance Cameras. CS460: Senior Capstone Experience in Computer Science By: Brandon Gigot. Project Description: Definition and Requirements . On week 1 I was given a Linksys-G Internet Home Monitoring Camera by Dr. Pankratz . - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Web Surveillance Cameras

Web Surveillance CamerasCS460: Senior Capstone Experience in Computer ScienceBy: Brandon Gigot

Page 2: Web Surveillance Cameras

Project Description: Definition and Requirements

On week 1 I was given a Linksys-G Internet Home Monitoring Camera by Dr. Pankratz.

The idea of the project was to use the Linksys camera to stream video from its built in camera server to any PC on the internet.

The project also needed to integrate servos motors to control the camera itself! (Moving left, right, up, down)

An application must be made to combine the two into one well-polished craft that would be able to view the video and control the motors.

Page 3: Web Surveillance Cameras

Project Description: Solutions(s) or: “Here is what I did.” First and foremost, I had to figure out how to get the camera working on the SNC network. Router

firewall settings caused some initial concerns.

I needed to find some decent servos and I found them in the form of Kevin Paprek’s Phidget servos which he used in his 2005 project.

It had been awhile since their use, so I needed to find the proper libraries to install off the Phidget website to get them up and running.

C# was the ideal choice for developing my application.

Page 4: Web Surveillance Cameras

Project Description: Solutions(s) or: “Here is what I did.”

Naturally, I need to figure out how to mount my camera on the two servo motors. I also needed a firm base.

The login for my application allows user to get the username and password off my capstone website.

The next step depends on whether you’re using the host computer the servos USB is plugged into or a remote location. (You can log in pseudo remotely even on the host…both require the IP address of the host computer)

Page 5: Web Surveillance Cameras

Project Description: Solutions(s) or: “Here is what I did.”

I learned how to program the Phidgets using example code off their website. Once I figured out a little bit of it I could expand on their primitive design and make my own.

To remotely control a servo over the internet I used the Phidget WebService utility that comes with the installation of Phidget libraries. You can give your server a specific ID, Port, and Password.

The video is displayed in a carefully crafted C# web browser control that uses Linksys’s own web tool which is unfortunately only used to its fullest potential in Internet Explorer.

The Dynamic DNS website automatically updates the IP of the router in one permanent link that was used in conjunction with adopted Java and Html to stream the video.

Page 6: Web Surveillance Cameras

Project Description: Solutions(s) or: “Here is what I did.”

My application allows users to: Enter degree coordinates for X and Y

positions Center both servos Manually click directional arrows to

move one degree at a time Mouse over the video image and click a

key to move the servos to that relative position on the screen

Change the auto-pan/auto-tilt speed View the current position while giving

out of bounds messages View connection status View an included help tutorial Use the built in Linksys viewer to zoom

in on the video, take pictures, and adjust the incoming volume.

Page 7: Web Surveillance Cameras

Project Description: Exceptions or: “Here is what I didn’t solve.” I found out there was no way to actually program the camera itself, so I couldn’t

manually shut off the camera.

Although I had the means to create a compass clock to move the cameras, the click screen idea eclipsed the functionality of that, and I never bothered using a joystick to simulate directions.

The client server relations are all done by Phidget WebService and built in function calls from the Phidget libraries to remotely operate the servos. (Although threading and sockets are involved, Phidget made it easy for me not to get my hands too dirty.)

Page 8: Web Surveillance Cameras

Project Description: Methodology or: “These are the methods, techniques, designs, and experiments that I used.” A lot of trial and error testing was employed for programming the C#

application. Various hiccups with the camera, WebService, or libraries alone would hang me up for extended periods of time.

My methods, techniques, and designs are all quite simple to follow. Anyone really has the capacity to operate my finished product!

Each addition to the application was done in various stages. Don’t work on a bunch of different features at once and keep a backup of the working product handy at all times.

Page 9: Web Surveillance Cameras

Demonstration Time!

Time to:

Install Phidget Libraries for C# (included WebService)

Obtain Host IP

Open Linksys video viewer in IE to install ActiveX plugin for my web browser control.

Setup server on WebSerive

Run!

Page 10: Web Surveillance Cameras

Learning and Developing Process: Strategies: My best learning techniques. Where and How?

Playing around with the camera and the included features helped get an understanding….put IP into browser and adjust the features to my liking…

For programming the Phidgets, most of the information came from their web examples and included manuals.

The Linksys and Phidget forums offered incite when I got stumped.

Dr. Pankratz offered suggestions along the way, and Dr. McVey was key in implements the click-screen feature.

For minor C# related issues, Francis was in the lab to offer assistance. Professor Rohm helped with the networking on campus, and Ryan P. gave me a rundown on some networking terminology and suggested the use of Dynamic DNS.

CS350: Event Programming paved the foundation for my C# knowledge.

Page 11: Web Surveillance Cameras

Knowledge: CS Concepts C# programming was the most

important for creating my application. (Battleship and Yahtzee programs paved the way)

Resourcefulness and flexibility allowed me to adapt various pieces that were already provided.

Networking with the camera and Phidget WebService was very instrumental.

Microsoft Publisher along with a little html knowledge helped in the creation of my website.

Page 12: Web Surveillance Cameras

Extensions: The senior who gets my project next could….!

Mount my equipment on something movable… Perhaps a Roomba?

Instead of using the web browser control, you could stream the video directly through the application manipulating bits for various purposes.

Integrate motion and image detecting software to cause the servos to follow you around.

Extend these to use for virtual classes at SNC…

Page 13: Web Surveillance Cameras

Advice: For next year…!Look into your requirements early and see

what is and what isn’t possible. Some features will come easy and some won’t so it’s important to weigh the costs and benefits of what you implement.

Don’t feel like you have to rush things and go crazy on your project, but set various goals for yourself so you don’t fall behind.

Ask questions! Whether it’s to your professors, fellow students, or from an online community…don’t get hung-up and frustrate yourself.

Have fun, be creative….!

Page 14: Web Surveillance Cameras

Special Thanks!Dr. PankratzDr. McVeyProfessor BlahnikProfessor RohmKevin PapreckThe people at

PhidgetMy dadAll my fellow CS

majors!SNC

Page 15: Web Surveillance Cameras

Q & A: ???How can I help you?

Anything you’d like to know?

Everything will be posted on my website by May 4…

Feel free to contact me if you want to play with this!