Click to Final PowerPoint

advertisement
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.
 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.
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.
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)
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.
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.
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.)
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.
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!
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.
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.
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…
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….!
Special Thanks!
 Dr. Pankratz
 Dr. McVey
 Professor Blahnik
 Professor Rohm
 Kevin Papreck
 The people at Phidget
 My dad
 All my fellow CS majors!
 SNC
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!
Download