My Submersible ROV previously was controlled via relays and switches. The system took up 6 wires of the ethernet cable, so I could not, say, add more than one accessory controlled from the top such as a light, servo, or another camera. It also wasn't proportional. A couple months ago I had the idea of converting it to be microcontroller controlled! I had some experience with the basic stamp, but I only had one and couldn't afford another. I had also heard of the Picaxe from a friend that took a class on it from Ed Sobey, and looked it up, and, well, here I am.
On the recieving end there is a Picaxe 28X1 and an 08M. On the sending end (the control box) there is an 18X.
I used two thumb joysticks from sparkfun. As I found out when I got them, they have built in buttons which is extremely convenient because I don't have to put in a button for the light. The joysticks are set up so that the vertical thrusters are controlled by the horizontal potentiometer in the left joystick and each horizontal thruster is controlled by the respective vertical potentiometer in each joystick. For some reason one of the joysticks came without a horizontal pot which didn't matter to me but maybe be wary when ordering them.
I looked at commercial options and they were too expensive for what I wanted so I built my own ESC. I wouldn't have been able to do it without a bunch of helpful people on this forum and at RCGroups (they helped me find a suitable MOSFET). I used 6 FDP8878 Philips logic level MOSFETs and three 8A omron DPDT relays. Three MOSFETs switch the relays (reverse and forward) and three provide PWM control of the motors. Luckily the whole thing worked and continues to work without ever breadboarding it!
The rest of the recieving circuit, however, permanently resides on a breadboard. It was too long to fit with the end cap for the ROV in so I hacksawed it in half . In order to get the whole bundle in (breadboard, ESC, terminal strip) I had to flatten out all the components on the breadboard! On the breadboard are two sets of power rails, one 12v, the other 5. There are two voltage regulators. One is a LM317 providing 8.1 volts to the camera and a LM7805 providing 5v to the two picaxes on the breadboard.
The upgrades I have planned so far:
-After the first dive (today or tomorrow) I will add another MOSFET two switch on and off the lights. It would be a lot of work to reprogram the 28X1 to accept a signal to switch the light so I might just use the 18X to send a signal down a spare wire in the ethernet cable. I haven't wired in the buttons on the joysticks yet, though.
-Sometime soon in the future add the two servos I have to provide pan and tilt for the camera. This will be more work because I'll need to program the 18X and 28X1 and make a special servo mount for the camera.
-Sometime maybe add a manipulator to grab stuff or go fishing
Bugs in the code:
-Takes a moment to respond to controls
-Proportional control isn't quite right - when the joysticks are only halfway to the end of their range of motion the motor is already on full
-Too easy to trigger horizontal thruster when using vertical and vice versa
ROV specs:
built in 12v 7ah sla battery
4x modified 12v 500gph rule bilge pumps
100ft tether with 14ga power wire (used to carry main power but now just provides power to the control box) and ethernet cable
Viewing device is myvu solo universal media viewers
This post is already way too long so I won't add any more. Comments, suggestions, questions are appreciated!
test2.bas is for the 18x (control box)
RECEIVING END.bas is for the 28X1 (rov)
And here are pictures of the ROV and the control box
http://s1018.photobucket.com/albums/af305/bananafred/
Edit: Now the photos work. Woo for photobucket!
On the recieving end there is a Picaxe 28X1 and an 08M. On the sending end (the control box) there is an 18X.
I used two thumb joysticks from sparkfun. As I found out when I got them, they have built in buttons which is extremely convenient because I don't have to put in a button for the light. The joysticks are set up so that the vertical thrusters are controlled by the horizontal potentiometer in the left joystick and each horizontal thruster is controlled by the respective vertical potentiometer in each joystick. For some reason one of the joysticks came without a horizontal pot which didn't matter to me but maybe be wary when ordering them.
I looked at commercial options and they were too expensive for what I wanted so I built my own ESC. I wouldn't have been able to do it without a bunch of helpful people on this forum and at RCGroups (they helped me find a suitable MOSFET). I used 6 FDP8878 Philips logic level MOSFETs and three 8A omron DPDT relays. Three MOSFETs switch the relays (reverse and forward) and three provide PWM control of the motors. Luckily the whole thing worked and continues to work without ever breadboarding it!
The rest of the recieving circuit, however, permanently resides on a breadboard. It was too long to fit with the end cap for the ROV in so I hacksawed it in half . In order to get the whole bundle in (breadboard, ESC, terminal strip) I had to flatten out all the components on the breadboard! On the breadboard are two sets of power rails, one 12v, the other 5. There are two voltage regulators. One is a LM317 providing 8.1 volts to the camera and a LM7805 providing 5v to the two picaxes on the breadboard.
The upgrades I have planned so far:
-After the first dive (today or tomorrow) I will add another MOSFET two switch on and off the lights. It would be a lot of work to reprogram the 28X1 to accept a signal to switch the light so I might just use the 18X to send a signal down a spare wire in the ethernet cable. I haven't wired in the buttons on the joysticks yet, though.
-Sometime soon in the future add the two servos I have to provide pan and tilt for the camera. This will be more work because I'll need to program the 18X and 28X1 and make a special servo mount for the camera.
-Sometime maybe add a manipulator to grab stuff or go fishing
Bugs in the code:
-Takes a moment to respond to controls
-Proportional control isn't quite right - when the joysticks are only halfway to the end of their range of motion the motor is already on full
-Too easy to trigger horizontal thruster when using vertical and vice versa
ROV specs:
built in 12v 7ah sla battery
4x modified 12v 500gph rule bilge pumps
100ft tether with 14ga power wire (used to carry main power but now just provides power to the control box) and ethernet cable
Viewing device is myvu solo universal media viewers
This post is already way too long so I won't add any more. Comments, suggestions, questions are appreciated!
test2.bas is for the 18x (control box)
RECEIVING END.bas is for the 28X1 (rov)
And here are pictures of the ROV and the control box
http://s1018.photobucket.com/albums/af305/bananafred/
Edit: Now the photos work. Woo for photobucket!
Attachments
-
1.9 KB Views: 49
-
696 bytes Views: 27
Last edited: