CSE 477 G: Drive While you Surf

Progress Report

Valdis Riekstins, Ngochan Nguyen, Duy Le


Entries for week ending 4/21:

 

Ngochan:

I got the RC - 1 and already read its data sheet. I plan to start working with the camera project tonight: get a board and 128 bytes memory, modify the project so it works with our camera. Starting next week, I will find a way to compress the image if neccessary. By the end of week 5, I hope to have some information about RF device so I can design the RF interface module. That is almost my part of the project. Hope it works fine.

 

Duy:

The web server is set up and ready to go.  We're running Microsoft Internet Information Server on one of the machines in 327.  This weekend I'll look into non-Java ways of writing the client and server programs that will run on the web.  If I can't find another language to do it, I'll go ahead and start work on a Java version.

 

Valdis:

I have narrowed the possible wireless communications kits to parts available from 2 different companies: RFM and Digital-Wireless.  Both advertise wireless communications development kits with RS-232 interfaces and data bandwitdths from 115kbps (RFM's max) to 230kbps (Digital-Wireless' max).  I am still trying to get in contact with someone from either of these companies, as well as poking around looking for other possibilities while a definite decision has still not been made.  My goal is to have this situation settled by the end of next week, and to have a kit (or parts to upgrade one of the lab's kits) on its way to us within that same time frame.

As far as the steering/throttle servo interfaces, I plan to work on that this weekend, and to have a working Xilinx implementation by the end of next week.  This puts me a little behind schedule, but still acceptable in my opinion.  The plan is to have the servo interface work by giving it an 8-bit number (0 - 255) for each servo, with 0 meaning far left for steering, hard brake for throttle; and 255 meaning far right for steering, max. acceleration for throttle.  This will make it easier to link up with the UI, because steering and throttle will be controlled using slider bars and keyboard buttons to change these 2 ints.


Entries for week ending 4/29

NOTE:

due to permissions problems, progress reports for Ngochan had to be put in new html documents linked below.  I've continued to add my updates below, and it looks like Duy has access too.  What is going on?

 

Ngochan:

 

Duy:

This week I helped Ngochan adjust the vgacam project to use the RC1 camera instead of the RC2. Mainly though, I've been looking at either using Java applets or embedded ActiveX for the server and client side web applications. The main problems are:

(a) trying to figure out how to get the server-side application to send the steering and acceleration controls to the serial port
(b) how to retrieve the video pixel data from the serial port to be displayed on the client side
(c) how to create streaming video using the pixel data

 

Valdis:

I've finally made contact with both candidate RF companies: Digital-Wireless and RF Monolith.  Digital Wireless has precisely the kind of product we're looking for, except that they want $3450 for a pair of wireless tranceivers.  After a week and a half of calling all over the country, I finally (just) made contact with Mr. Larry Heep from RF Monolith headquarters.  Their 115kbps-capable kits don't hit the market for 4 months, but he was very helpful and is going to do all he can to send us a prototype at the least.  I'm also having Digital Wireless look into other alternatives for me as a back-up.  I feel fairly confident that one of these options will pan out, and if that doesn't turn out to be the case we can just buy a long serial cable and demonstrate proof-of-concept (knock on wood).

Also, today I spoke with some of the robotics club members about servo interfaces, and they said they could provide me with links to very helpful resources.  Basically, the servos are a 3 wire interface.  One is power, the other is ground, and the last is a pulse width modulation signal similar to the accelerometers used in lab.  The pulse width varies from half a millisecond to 2 milliseconds, and must be cycled to repeat every 20 milliseconds.  This shouldn't be too hard-- at the very least I know that servos have been used in past quarters, and (hopefully) there still exists some documentation on that subject.


Update: 5/1 (Valdis Riekstins)

I've learned more about the servo interface.  Things are a little more lax than I first reported.  The pulse width is approximately what I said earlier (from 0.5 milliseconds to 2.0 milliseconds), but the refresh rate is up to the developer.  Basically, every time the servo sees a pulse, it updates it's angle to the amount specified by the pulse.  If no change is needed, a refresh isn't needed unless the servo could wonder out of place.  In an RC car, this is definitely the case, so we'll need to refresh.  But knowing that the refresh rate isn't set in stone helps the design process greatly.

Also, I've picked up all the new parts I needed for the car over the weekend.  This included a new pinion gear (with the least number of teeth possible), a new transmission spur gear (with the most number of teeth possible), and a new engine (with a high wind count-- this equals out to slower top speed, but greater torque).  All of these modifications should slow the car down nicely.  We can still electronically limit the top speed too if we have to.  These new parts will be installed on the vehicle tonight, and then I can give the car a quick shake-down with the stock electronics before making irreversible changes to the on-board electronics.


Update: 5/4 (Valdis Riekstins)

All mechanical modifications to the car are complete.  The new motor has leads soldered onto it and new gears have been installed.  The car ran funny during a test run, but I think this is because of damage caused to the RF receiver when I took it apart.  I will try another run with a different receiver.  If it is still acting funny, I will try a new speed control servo.

I've been working on the UI, and currently I'm investigating several technologies in parallel... J++, VB, DHTML, and others (and combinations of the aforementioned).  So far, I've got it LOOKING right about 3 different ways, and now I'm trying to get the underlying code in place.  I will work more on this tonight.

Also, the servo control module is almost complete.  I've created a verilog block that takes in two 8-bit numbers, and outputs two pulse-width modulation signals that will drive the servos.  Simulations have been promising so far, and I'm about ready to download it to the FPGA.  More on this soon!


Update: 5/5

We've pretty much decided to use ActiveX controls for the server and client web applications.  There is an ActiveX control to send and retrieve data from the serial port, so we should have that part working pretty soon.  All that's left is to figure out how to create streaming video from the pixel data coming from the camera.  All of this work with the ActiveX controls is being done in Visual Basic.


Update: 5/5 (Valdis Riekstins)

Last night I finished re-building the car, and now it works perfectly with the new motor and gears.  Ripe for tearing down and adding electronics!  I've already started building areas in the car for power supply and for the XS40 board that will eventually get mounted.

Also, a few hours in the lab resulted in a Verilog module that can output the correct pulse-width modulation signals for the steering servo and throttle control!  I was unable to download it to the FPGA and test directly due to pin limitations (are there even 11 free pins on the XS40?).  But, all of my simulations were entirely successful.

Also, Ngochan, Duy, and I all met and laid out our high level diagram and created a plan of attack for the next few weeks.  Currently my focus is on the mechanical aspects of the car, and learning VB so that we can create our ActiveX controls on the UI.  Duy is going to be working on the COM port interface on the Web Server.  And Ngochan is still working with the camera and getting that to work flawlessly.  Next week we will concentrate our efforts on getting the Xbus into our project and working with the camera interface and with the servo control.  Then all that is left is the Web Server stuff, the serial communication issues, and debugging.  Granted, that still is a lot (even though it doesn't sound like it), but I think we can do this!




SCHEDULE & PROGRESS

Valdis:

Duy:


Created By: Valdis Riekstins

Last Updated: 5/5/00