Rc Airboat

by oravse in Circuits > Arduino

47 Views, 1 Favorites, 0 Comments

Rc Airboat

Imagen de WhatsApp 2024-08-05 a las 11.45.12_ad163da0.jpg

I made this boat as a project for a technology subject I had some years ago in the high school. It is based in Arduino, which controls the movement of the motors and servos throught a radio conection. Making an airboat instead of a simple boat powered by a water motor made the project easier and much cheaper.

Supplies

  • 1 Arduino Nano
  • 1 Nrf24 radio with its module
  • 2 A2212 brushless motor
  • 2 5 inch propellers
  • 2 30A ESC
  • 2 sg90 servotomors
  • 3D printed parts
  • Glue
  • wood sticks
  • wires
  • motor screws
  • servo screws
  • Drilled board
  • 2200 3s battery
  • battery conector

The electronics can be found very cheap in some international selling portals as aliexpress.

Designing the Body

Captura de pantalla 2024-08-05 121352.png
Imagen de WhatsApp 2024-08-05 a las 12.20.42_ec44d0e5.jpg

My original design includes 2 3D printed floats joined with a platform made of wood sticks. This platform must be strong, because it supports the floats in order to make them staying in the right position. The desing is inspired by a shark as it can be seen in the image. The stls are also included below if you want to print them. All the parts except the fin are symetrical, so can be used for any of the two floats. The second time you print the fin, it mut be printed mirrored.

For the platform part, I used wood sticks. I smeared them with white wood cola to make them stronger. I also made a small box to keep in safe the arduino, the radio receiver and the battery. If you have some kind of tiny plastic recipe, you can use it too, but make sure that electronics are protected from water in case of spilling.

Ataching the Electronics and Wiring

Imagen de WhatsApp 2024-08-05 a las 12.34.42_503d0c6e.jpg
NRF24L01-Module-Adapter-2.jpg
Imagen de WhatsApp 2024-08-05 a las 12.51.13_af3659d8.jpg
Imagen de WhatsApp 2024-08-05 a las 12.50.48_739d3dd0.jpg

Attach the two brushless motors and two servos with their screws into the chasis as it is shown in the image. Connect the motors with esc's in order to make them rotate inside direction. Remember that if the current direction is wrong, you only have to switch between two wires.

For the wiring of the electronics, I recommend you to use a drilled board. Nrf24 works through SPI protocol, so you have to connect the wiring with the arduino in that way. ESC and servos can be connected into any available pin, for example, 2,3,4,5. Nrf24 works with 3.3V and the 3.3V arduino pin doesn't provide enough current, so I recommend you to buy its voltage regulor board to conect it simply to the 5V and having the enough power.

Usually, ESC came with a BEC, which means it has an internal voltage regulator that can feed the arduino and the radio system, so conect the red small wire of one of the ESC's to the 5V pin of the arduino. In that way, you should join both power wires of both ESC's to the same conector, black is ground, and red is power. It should be the same conector of your battery. A very typical battery conector is the XT90. Often ESC'S came with a battery conector in it, if not the case, you had to buy one.

Receiver and Transmitter

The code depends on the transmitter. Anyway i'm giving you an example you could modify to make it works for your transmitter.


#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>

#include <Servo.h>


// NRF24 setup

RF24 radio(9, 10); // CE, CSN


const byte addresses[][6] = {"00001", "00002", "00003", "00004"};


Servo servo1;

Servo servo2;

Servo servo3;

Servo servo4;


void setup() {

 Serial.begin(9600);

 radio.begin();

 radio.openReadingPipe(1, addresses[0]);

 radio.openReadingPipe(2, addresses[1]);

 radio.openReadingPipe(3, addresses[2]);

 radio.openReadingPipe(4, addresses[3]);

 radio.setPALevel(RF24_PA_MIN);

 radio.startListening();


 servo1.attach(2);

 servo2.attach(3);

 servo3.attach(4);

 servo4.attach(5);

}


void loop() {

 if (radio.available()) {

  int pos1, pos2, pos3, pos4;


//HERE, WE READ THE INFORMATION OF THE DIFERENT CHANNELS AND WE SEND IT TO THE SERVOS


  radio.read(&pos1, sizeof(pos1));

  servo1.write(pos1);

  Serial.print("Servo 1 posición: ");

  Serial.println(pos1);


  radio.read(&pos2, sizeof(pos2));

  servo2.write(pos2);

  Serial.print("Servo 2 posición: ");

  Serial.println(pos2);


  radio.read(&pos3, sizeof(pos3));

  servo3.write(pos3);

  Serial.print("Servo 3 posición: ");

  Serial.println(pos3);


  radio.read(&pos4, sizeof(pos4));

  servo4.write(pos4);

  Serial.print("Servo 4 posición: ");

  Serial.println(pos4);

 }


 delay(1000);

}


Instead of using arduino you can use a comercial rc receiver if you hace a transmitter, it should have 4 channels at least.

Downloads

Last Things to Do

Imagen de WhatsApp 2024-08-05 a las 13.35.20_33fbafd8.jpg
Imagen de WhatsApp 2024-08-05 a las 11.45.21_2a102096.jpg

Put the propellers in the motor and use a wire to conect the servo to the fin.

If you have reach up to this point, congratulations, you should have in your posesion a workable airboat. Enjoy it!!!