Friday, September 4, 2009

Updates for the website

I added some new stuff to the site. Unfortunately, we don't have any new pictures or video, but I changed the overview page, electronics page and the addons page to include the new additions in the latest version. Since everyone on the team goes to different colleges, work on the project won't pick up again until next summer. I have been contacted by several people who have made similar projects. Someone brought up the idea of going to the Sparkfun Electronics autonomous vehicle competition. I would like to go, but based on my ability to get to Colorado in the near future, it might be another year or 2. Plus there is still a lot of stuff to do to make it autonomous. As everyone in the group learns more about engineering and electronics at school, I think we can get some really cool stuff working next summer.

Of course, I have several other projects ongoing as well. Those will see a little work during breaks in the semester. One of those is a new sever for the website and this blog. I have a domain name for it, and got Drupal working, but it still needs to be configured the way I like it and I need to harden the security.

I'll post pictures of the latest revision of the rover once I go home and take some. As always, shoot me an email if you have any comments or suggestions.

Friday, August 7, 2009

Almost done

We are very close to finishing the latest revision of the rover. Because we needed to protect our shiny new motor controller, we did some math and came up with 300 watts of resistance between the battery and the controller so we don't draw more than it can handle. It was too expensive to buy 100 watt resistors, so we bought (24) 25 watt resistors instead. Quantity over quality. To mount them, rather than have a giant perfboard, I came up with the idea of making a cube. I finished this cube yesterday and it looks kinda cool. There is still a lot to do for this thing, and here is a quick list with some of the stuff we still need to work on:

-make sure resistor cube won't short
-mount resistor cube
-mount sabertooth
-hook everything up and plug it in
-make sure code supports all new hardware
-get vex servos working
-get router working to extend range of ad-hoc network
-full scale test with rocket
-write failsafe in case it goes out of range
-write kill switch
-write admin and user page to control it
-add sensors, get optical shaft encoder working (with javascript calc?)
-add connectors to make everything modular
-add headlights
-get wifi hopping working (wepbuster)

update website
design seperate admin and user pages for rover

Not all of this will get done this summer, but we are going to get as close as we can to completing this list. I PROMISE pictures and video are coming soon. For real.

Wednesday, July 22, 2009

Defense

Yesterday, we installed the rocket launcher. It is a large piece of pvc pipe that is on a tilting mechanism that we built with some Vex parts we had laying around. It will fire model rockets. There is a small neodymium magnet in the little cargo hold of the rocket and another magnet on the outside of the tube. In this way, we can install the rocket motor, attach the ignitor and wires, and then use the magnet on the outside of the tube to hold the rocket in the tube without falling out.

We are also going to be getting a new motor controller. We are going to get the Sabertooth 2x25. Right now, we are using a little BaneBots controller that has a maximum current draw of 9 amps. Since toque is proportional to current draw, our rover has had a hard time going fast or up any incline at all because we have limited its draw at 9 amps. The new controller is really cool. It has a continuous draw of 25 amps and a maximum draw of 50 amps for a few seconds. By measuring the static resistance of the motors we are using and using ohm's law, we got a theoretical maximum draw of about 64 amps. This new controller also has several features like the ability to recharge the battery when the motors slow down or go in reverse. It is 2 channel, so we only need one which is good becuase it is not cheap. Its $125, but we think the performance we will get will be worth it. We will use the old controllers to fire the rocket (supply 12v to the ignitor) and control lights. We plan on having headlights and some underglow provided by some old cold cathodes we got out of some scanners.

I also learned yesterday the difference between PWM and PPM. PWM is pulse width modulation and PPM is pulse position modulation. PWM works by detecting the length of each pulse. The time between the pulses is always the same. PPM works by detecting the ratio of the pulse length to the off time length. Most hobby servos and motor controllers are expecting PPM. When writing Arduino code, analogWrite() sends PWM and the servo class sends PPM. I didn't know it, but we have been using PPM the whole time. The good news is that the new controller will accept both PWM and PPM. We are also going to start using a new servo library called Megaservo. It lets you control a servo from every digital pin, so up to 12 in our case. We will only use about 4 though.

Sorry for the long distance between posts, but in the next week or 2, we will have more time to work on it and add stuff. I'll put pictures up soon.

Tuesday, July 7, 2009

Improvements

I finished building the pan mechanism for the camera and the tilting mechanism
that will fire the rocket. I built it all out of Vex parts, and I am still working on getting
the vex motors to work with the arduino. I know it has been done,
I just have to figure it out. I looked up how to use a relay with the
arduino and it was way more complicated than I thought, so I think I will
try to sacrifice a vex motor. I think they run off of 6-9v which should be enough
to set off the ignitor. If not, then I will do it ye olde style and just
have the motor flip a physical switch. I talked with another guy who is
working on this project with me and we thought that we should also try to include
a vex microcontroller or 2 and maybe a lego RCX just for fun. If we need something
done either repeatedly or once something physically triggers it, then that
is a good solution. We just need to find something they can do.

I added support for these 2 new additions to the code and after I get it tested and
working, I will post the next version. The software we are going to use for
wifi hopping is called Wepbuster and version .6 beta came out yesterday.
It may need some customization. Still no luck on ZoneMinder, which is the
software we are going to use to stream the camera over IP. I haven't finished
fiddling with it yet, but I am going out of town on Thursday. The rover which is
now at my house is going to be transferred to my friends house since he gets
back from vacation the day after I leave. He will work on maybe a bit of hardware
but mostly software. I can SSH into it from where I am and work on code as well.

I am working on building my own server and hosting my own website. It isn't up
yet, but when it is, I hope to be able to drive the rover from there. The eventual
goal is 100% web based, and no need for any software on the drivers computer
except a browser.

Sunday, June 28, 2009

Day 4

Today we tested it with the other member of our team who was about 120 miles away. We took the video that is on the website home page. We talked about how we were going to fix the torque problem and decided that we are going to try replacing the resistors. We know that the motors provide plenty of torque when they can draw as much as they want, but our motor controllers have a cap one them. Because we don't want to spend anymore money (its $100-120 for higher rated motor controllers), we are going to try putting in something like 1/2 ohm 15 watt. Right now we have 2 ohms of resistance. We think that will help a little, but we're not sure. We're going to try to get the maximum draw we can with those controllers. Any ideas?

Saturday, June 27, 2009

Day 3 of testing: Success!

Tonight we were able to successfully control the Barbie rover from over 1600 miles away. I was with the rover in Florida and another guy who worked on the project was in Bismarck, North Dakota. The test went well and the torque problem wasn't too bad. There are still several bugs I need to work out to get it working the way I want, but the maiden voyage was still exciting to see. I took some video, but since we did the test at night, the street lights turned out to be not bright enough for the camera. We have another test scheduled for Sunday during the day and I will post that video instead.

Friday, June 26, 2009

Day 2 of testing

Today I upgraded the battery from 12v to 18v by putting a 6v battery in series. I also moved the batteries to the middle of the car which seemed to help. There was a definite difference with 18v and it seemed to go a bit faster and have a bit more torque. I was also able to drive the rover over an ad-hoc network. This means that even if there is no wireless access point near, I can still drive it as long as I am in the "bubble" around the rover. I am going to try to output the network to a Linksys WRT54G so that the coverage will be a little larger. I can't use Skype to stream the camera with that setup, but I have been trying to get ZoneMinder working. That way I will be able to connect to the laptop with Hamachi (which is what I am using now) and pull up the control page and the camera feed without having to use VNC or anything. I have been having some trouble getting ZoneMinder to work though. The main problem with the rover now is torque. The only solutions that I can think of are to try to lessen the weight or replace the motors. I have been using modifiedpowerwheels.com to get more ideas. The next step is to try a full scale remote test from North Dakota.

Day 1 of Testing

First successful day of testing. My two friends who are helping me both left today. One is doing a summer semester at college and the other is in vacation in North Dakota. This is a great opportunity to test drive the rover from a long way away. For the first run or two, it went pretty slow and I was unable to get it to drive uphill. So I moved the battery to the front and it helped a little. I was also able to control it over my wireless network. I had my friend in North Dakota run a quick test to make sure that we could run the Arduino from across the internet. He turned an led on and off using my PHP page. I put up the first version of the website as well and posted some videos and pictures.