Introduction: ELCOche: Remote Control RC Car Controlled by a Real Sterring Wheel and Throttle Pedal

Arduino code, STL pieces and Steering wheel template designs are avaliable in Github : https://github.com/ELCOche/ELCOche

Step 1: Features of ELCOche

This are the main features of ELCOche:

  • Radio controlled RC car
  • Steering wheel
  • Throttle pedal
  • Headlights, that could also be automatic if dark.
  • Warning headlights
  • Reverse headlights
  • Emergency stop
  • Camera to see where the car is going.
  • Controlled by VR glasses or joystick
  • Car horn

Step 2: Materials Needed for ELCOche

We will divide the materials needed for the general assembly and then the 4 components of the RC car.

General:

  • 3D printer to print all the components needed
  • M3x10 Screws
  • M3x20 Washers
  • M3 Nuts
  • M4 Screws
  • USB cables
  • Cables
  • Electronic welder

RC Car:

  • Rolling bearings 624ZZ (x1) and 626ZZ (x2)
  • 3 Micro Servo 9g
  • Arduino Nano
  • Ultrasonic HC- SR04
  • LiPo Battery 1500 3s
  • Buzzer Leds
  • Motor 12DC
  • L298N

Steering Wheel:

  • Arduino Mega
  • Potentiometer
  • 8 mm threaded rod
  • 20x4 LCD screen
  • 4 buttons
  • 3 spdt switches 2 positions
  • 2 spdt switches 3 positions
  • 16 mm thickness MDF

Throttle Pedal:

  • Potentiometer
  • Springs from the lamp frame

Camera Control:

  • MPU5060
  • Joystick
  • TS832 transmiter
  • R051 receiver 700TVL
  • Camera PAL
  • VR Phone camera glasses

Step 3: Build the RC Car

You will have to print the pieces in a 3D printer and then follow the video down below

Once we finished we have our car builded :)

Step 4: Build the Steering Wheel

Cut the wooden pieces following the patterns.

Make the neccesary holes to join the pieces with the screws and to place the 3D printed pieces.

Step 5: Build the Throttle Pedal

Print the 3D pieces of the pedal.

Place the pieces together to achieve the pictures goal

Welder the cable to the 3 ends of the potentiometer in order to be able to connect it to the Arduino placed in the steering wheel.

Step 6: Build the VR Glasses

Print the box for the MPU60 and welder the cable to the 4 ends in order to be able to connect it to the Arduino placed in the steering wheel.

Step 7: Arduino Code

We divided the code in to different files. The file for the transmitter and the file for the receiver. The following are some of the most important coding parts to have in mind, the rest of the code is avaliable in GitHub or you can download it here.

How to send data to a radio

//Declare the Serial of the radio

SoftwareSerial radio(PIN_RADIO_TX, PIN_RADIO_RX);

//Open the serial of the radio at 57600 BaudRate

radio.begin(57600);

//Send String data with "s" and "e" to indicate start and the finish point of the data sended

radio.print("s" + data + "e");

How to receive data from a radio

//Declare the Serial of the radio

SoftwareSerial radio(PIN_RADIO_TX, PIN_RADIO_RX);

//Open the serial of the radio at 57600 BaudRate</p><p>radio.begin(57600);
//Read the data received

while (radioSerial.available()) {
  incomingByte = radioSerial.read(); 
  delay(1);
  if (start == true) {
    if (incomingByte != 'e') {
      readBuffer += char(incomingByte);
    } else {
      start = false;
    }
  } else if (incomingByte == 's') {
    start = true;
    stringComplete = true;
  }
}

How to control de Servo Motors

//Declare the servo scope

Servo servo_dir;<br>servo_dir.detach();
servo_dir.attach(PIN_DIR);
//Write a value to the servo from 0 to 180 degrees
servo_dir.write(dir);</p>

How to control de DC motor with a PWM

//Define the pins for the L298N
pinMode(PIN_ME, OUTPUT);
pinMode(PIN_M1, OUTPUT);
pinMode(PIN_M2, OUTPUT);

//Movement of the motor level_d to move forward, level_r to move on reverse and else to be stopped

analogWrite(PIN_ME, motor);
if (lever_d) {
  digitalWrite(PIN_M1, HIGH);
  digitalWrite(PIN_M2, LOW);
} else if (lever_r) {
  digitalWrite(PIN_M1, LOW);
  digitalWrite(PIN_M2, HIGH);
} else {
  digitalWrite(PIN_M1, LOW);
  digitalWrite(PIN_M2, LOW);
}

Step 8: Acknowledgment

This project was builded as a school project at Universidad Politécnica de Madrid at Escuela Técnica superior de ingenieros de telecomunicaciones (ETSIT) for the subject Electrónica de Comunicaciones (ELCO) by:

  • Pilar Aguilera
  • María Tejedor
  • Guillermo González
  • Enrique Calatayud

Thanks for the patience :D.

Don’t forget to share your projects if you make it !

Arduino Contest 2019

Participated in the
Arduino Contest 2019