Introduction: UChip – RC Boat Out of Plastic Bottles and CD-ROM Player!
AfterI implemented the hardware and software to connect my drone Radio to motors/servos, the next step was to make a good use of the hard work done and build my own RC toy, which is...a Boat!
Since I am not a mechanical engineer, I opted for the easiest approach I could imagine of, in order to build my Boat: Recycle everything I got, making the best out of it! I am proud to say, this time I exceeded my expectations!
Therefore, I want to share with you my project and here are the few steps necessary to build your own “racing” scrap boat!
Bill of materials:
Electronics, you can build your own electronics following my previous guide or use someone else project. Mine includes:
- 1 x uChip: Arduino IDE compatible board
- 1 x Tx-Rx Radio system: any radio system with cPPM receiver is good
- 2 x Motor driver: with 1x47uF@16V capacitor, 3xDiodes (fast recovery), 1x5.1V zener, 2 nMOSFET (VGTH ~ 2V) and 4 resistors you can easily solder yours.
- 1 x Li-ion 18650 battery: you can recycle one from an old notebook battery pack or buy a new one.
- 2 x Coreless motors with CW and CCW propellers (CW = ClockWise, CCW = CounterClockWise)
Frame (mostly out of recycled components):
- 2 x Plastic Bottles (0.5L)
- 1 x CD-ROM/DVD-ROM player a recycled one
- 3 (or more) x Cable Ties: the actual number depends on the actual length you need. I used 4 of them, each 20cm long.
Step 1: Building the Electronics
I just want to add a few comments explaining the differences you need to take into account. In this project, we need to drive 2 motors. Therefore, we need to repeat the circuit related to the motor driver twice. The attached schematic shows you what you actually need to solder.
Furthermore, since I drive the motors with a simple half-bridge, the motors will be running only into one direction, there is no reverse gear. Try to remember this before you are stuck in the grass of your pond (this is a first person experience suggestion!)
Step 2: Programming
The firmware is based on the sketch I developed to read the signal coming from the cPPM Rx receiver and that you can find HERE.
I added some math in loop() function in order to mix the incoming signals and generate the correct values necessary to drive the motors. What we do is giving a differential signal to the motors, which translate in differential trust depending on the direction we take on our Radio stick.
The picture describes the function we need to implement in the code. In order to turn left or right, it is necessary to change the power given to each motor.
When turning left, the right motor is set at the max available power (proportional to the throttle stick position), while the left motor is diminished accordingly to the tilt stick. Complementary, the opposite occurs when turning right. At mid-range tilt position, a headroom has been added such that the motors will receive equal thrust in case we want to go straight on.
The calculated values are then normalized in order to keep them within the min/MAX motor values and are written into the corresponding motor pin using the analogWrite() function. Using analogWrite() on PWM enabled pins writes the selected length of the PWM pulse into the corresponding register. Since we are using an 8-bit PWM, the pulse length can vary from 0 to 255 (which are the min/MAX motor values).
In case you are familiar with math and equations, you can try to write your own code that implements this function. Otherwise, just load the sketch “Boat.ino” into uChipusing the Arduino IDE and test it.
You can comment/uncomment the DEBUG define in order to print on the SerialUSB the motors and channels values. This could be very useful in order to tune the min_range, mid_range and max_range accordingly to your Tx-Rx Radio system.
Step 3: Building the Frame
Here yours mechanical engineer skills come at handy. Since I am not a mechanical engineer, I used scrap parts from a CD-ROM player. In particular, the internal suspended CD-ROM player carriage perfectly fits my purpose. The floating elements of my boat are the bottles while the cable ties are particularly useful to stick everything together.
Bend the carriage creating an “L-carriage”. Then, plug the motors into the suspension ring as shown in the picture. I admit that it was only by luck that the motor fit so perfectly into this silicon ring! In case yours do not fit, you need to do some hardware adaptation, increasing the hole size or cutting part of the silicon suspension ring.
After drinking a liter of sparkling water (sparkling water bottles are thicker than plain water bottles and thus sturdier, probably using cola bottles would be even better!) you are now ready to assemble your Bottles boat.
Connect the motors to the electronics, fit the latter into a sealed plastic bag leaving a gap just for the motors wires and the battery connector. Assemble the CD-ROM L-carriage, the bottles and the electronics by fixing them together with the cable ties. Try keeping the balance of you vehicle at the center and use one more cable tie to keep the electronics firm; these precautions guarantee that the boat won’t turn upside down in case of wavy seas and that the electronics won’t slide when you make tight turns!
That’s all, you are now ready to launch your boat!
Step 4: Race!
Power on your boat by connecting the battery and turn on your Radio (make sure you did the bind procedure correctly before assembling the boat!), lets start racing!
Ask your RC friends to build their own, and start racing with them on the pond next your home!