First, checkout this answer on the RasPi SE. https://raspberrypi.stackexchange.com/questions/1633/how-can-one-control-ac-power-220v-with-a-raspberry-pi. Avoid using Solid State relays for controlling appliances with motors (cooling fans, winches, ski-lifts, escalators, washer Spin-Cycle, etc), unless the manufacturer says it's ok. Look online for more info on how to mitigate inductive loads with solid-state relays.
I wouldn't use the PasPi pins to directly drive anything over 4mA particularly relays. Use a transistor with kick-back protection (see below).
There is also a RasPi friendly SCR daughter board that allows you to trigger 110Volts. At our local hacklab, we used one of those to trigger a Pop Machine to dispense drinks via RasPi. Works fine and everyone is so far safe.
If you're bent on triggering a mechanical relay, you can use a Power MOSFET like this one FDC6303N to trigger your relay. This FET has built-in protection diode for the inductor kick-back. just watch that your relay voltage and amperage is below the tolerance of the FET. You could use a ULN2000 series Bi-Polar transistor as well (as suggesed. I personally like FETs). There are non-surface mount versions of these as well.
Some Safety notes:
You can use a watch-dog chip to turn off the relay if the RasPi is hung or gone crazy. this means that every few seconds your RasPi will have say to the Watchdog: "I'm still sane" by doing something (send a digital message or flick a pin up/down).
I would use a somewhat-weak (50-100K) resistor to pull the controlling pin of your RasPi in the direction that turns the Relay Off (in-case your system goes to an unknown state and/or the pin floats).
- Make sure the 110-220V stuff (if on the same board) are physically far and separated.
There are examples on the RASPI site for working with the GPIO pins.
Finally, what you're trying to do could obviously be hazardous. This post will by no-means whatsoever guarantee safety and operation. I'm just sharing what I've learned in hopes that with the help of this community, you get what you want. Verify this info on your own, and make your decision at the end.
I suggest you take a look at the ArduPilot project, it's a board that can control Airplanes, Copter and Rovers. There have been some attempts to use it to control boats.
For controlling the motors I would use one COTS ESC. It's the fastest way to get a good way to have proportional control over the motors. But if you want you can design your own. But you need some specifications like:
- the current&voltage of your motors
- the kind of motor
- If you need to reverse the control.
Best Answer
Based in the schematic and pictures, that board is hardwired without the typical jumpers. Four sections. 12V in and a builtin 5V regulator. The 5V powers the optocoupler led side. It also powers the optocoupler transistor side and relay driver side. Finally the 12v powers the relay section.
Some different relay modules have a jumper that let's you disconnect the optocoupler led side from the transistor side, and then you could power that side from 3.3v instead. But the pictures and the schematic don't show that.
In this case, you can either cut a trace and inject 3.3v at the optocoupler, or use a transistor plus resistors for each input. As is, it will not work directly with a 3.3v gpio.