I just finished my personal website, hscott.net. I have all of my projects documented on there including the barbie rover. If you use the new site, you can leave comments on stuff and I've updated a couple pages. The website is still a work in progress and I'll continue updating and tweaking it. If you have any suggestions or complaints (something doesn't work, slow loading, etc) then please email me so I can fix it. Here's the link straight to the rover page on the new site:
http://hscott.net/projects/barbie-rover/
I'll keep the old site up for a while until I make sure there aren't any problems with my new site, and then I'll make it redirect.
The rover project is not dead or complete. I got a beta version of brand new software for it done over winter break, but school keeps me too busy to work it during the regular semester. Once I finish it and get it to where I like it, I'll post it. Here's a peek at some new features it has:
-keyboard support. you can now use WASD in your browser to control the rover like in a video game
-improved rocket launcher interface. You now need "launch codes" to fire the rocket. It also launches on a new window and has an improved control set.
-support for new sensors and hardware for the arduino
planned features:
-mobile support. A separate page will let you control the whole rover on an iPhone or any internet enabled cell phone
-rocket trajectory calculations. Based on where the launch tube is, you will be able to see approximately where the rocket will land.
-better wifi stuff. I'll go into detail later.
-diagnostics. Before a rocket launch or before driving it, you can run a diagnostic test that will query several sensors to test lots of stuff like battery level, computer status, motors, arduino, etc. Any warnings or failures will be reported for better debugging.
I'll keep updating here and we should hopefully be working on the rover over spring break and over the summer. We've also got some other interesting projects in the works, so check my new site hscott.net for details on those.
Saturday, January 30, 2010
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.
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.
-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.
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.
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.
Subscribe to:
Posts (Atom)