Rover-One : Giving an RC Truck/car a Brain

by weshays in Circuits > Arduino

546 Views, 3 Favorites, 0 Comments

Rover-One : Giving an RC Truck/car a Brain

header_image.png
example_front.jpg
example_testing.jpg
example_top.jpg
example_wiring.jpg

This Instructable is on a PCB I designed called Rover-One. Rover-One is a solution I engineered to take a toy RC car/truck, and give it a brain which includes components to sense its environment. Rover-One is a 100mm x 100mm PCB designed in EasyEDA, and was sent out for professional PCB printing at JLCPCB.

Rover-One:

This guide will illustrate the parts selected, and source files for you to create your own.

Origin:

I have always been fascinated with NASA and the Mars rovers. As a kid, I dreamed of building my own rover, but my skills were limited to just taking motors out of broken RC cars. Now, as an adult with kids of my own, I enjoy working with them to teach them about programming and electronics. I have built a few battlebots with my kids that involved replacing the RC car body with one we built out of DollarTree foamboard, and sharpened popsicle sticks as weapons. To take it to the next level for programming, the goal was to take an RC car, and, with minimal modifications, give it a brain. After many hours of tinkering on breadboards, and puddles of solder on proto-board, the Rover-One board was born. The mixing of DollarTree foamboard and electronics became my method for all sorts of creations, so I coined the name FoamTronix.

Goal of Rover-One board:

The main goal of this board is to learn about sensing components, and the programming involved to communicate between the components and the Arduino nano to drive the RC car. This board takes from processes I learned over the years on different sensors, shift registers, and other ICs to drive a motor.

Schematic:

https://easyeda.com/weshays/rover-one

Supplies

  • 2x 1uF capacitor
  • 1x 470uF capacitor
  • 16x 220 Ohm resistor
  • 1x 100K Ohm resistor
  • 2x 4.7K Ohm resistor
  • 2x DS182B20 (temperature sensor)
  • 1x LDR (light dependent resistor)
  • 2x 74HC595 (Shift register IC)
  • 1x L9110H (Motor driver IC)
  • 4x HC-SR04 (Ultrasonic Distance Sensor)
  • 19x 2.54 2P screw terminals
  • 4x 2.54 3P screw terminals
  • 1x Arduino Nano
  • 1x 9 gram servo (Used to turn the car/truck)
  • 1x DC motor (on the RC car/truck)
  • 1x Adafruit GPS Breakout V3 board

Optional Supplies:

  • Male header pins
  • Female header pins

Arduino Nano

1_arduino.png

The Arduino Nano is the brain of the board. It will be used to manage the input from the different sensors (Ping, Temperature, Light), and the output to the motor, servo, shift registers, and serial communication. The Arduino will be powered from the 5v external supply connector.

Section Parts:

  • 1x Arduino Nano

Shift Registers

2_shift_registers.png

The shift registers are used to give more outputs. There are two Serial-In Parallel-Out shift registers that are daisy-chained together. Only 3 pins from the Arduino Nano are used to control all 16 outputs.

The capacitors are used for any spikes in power the chips may need.

The screw terminals are used to make it easy to connect different kinds of wire.

An example of the LEDs would be:

  • 2 white LEDs (for head lights)
  • 2 red LEDs (for break lights)
  • 4 yellow LEDs (for blinkers - two in the front, and two in the back)
  • 8 inferred LEDs, or 4 red and 4 blue LEDs for police lights.

Section Parts:

  • 2x 1uF capacitor
  • 16x 220 Ohm resistor
  • 2x 74HC595 (Shift register IC)
  • 16x 2.54 2P screw terminals

LDR (Light Detecting Resistor)

3_light_detecting_resistor.png

The LDR, Light Detecting Resistor, is used together with a resistor as voltage divider to measure the light.

Depending on how the board is used, the LDR can be attached directly to the board, or other header pins could be mounted.

Section Parts:

  • 1x LDR (light dependent resistor)
  • 1x 100K Ohm resistor

Temperature Sensors

4_tempature_sensors.png

There are two temperature sensors. One is designed to mount directly on the board, and the other is meant to be connected via screw terminals for measuring the temperature at another location.

Other areas to measure the temperature would be:

  • At the Motor
  • At the Battery
  • On the RC body
  • Outside the RC body

Section Parts:

  • 2x DS182B20 (temperature sensor)
  • 2x 4.7K Ohm resistors
  • 1x 2.54 3P screw terminals

Ping Sensors

5_ping_sensors.png

There are 4 HC-SR04 ping sensors. The board is setup for the echo and trigger pins to be connected together using the NewPing library. The pins can be soldered or wired together on the HC-SR04, or wires from the echo and trigger pins going to the same terminal pins.

Ideas to measure the distance would be to place 3 of the ping sensors in front of the RC car at different angles, and one in the rear for backing up.

NewPing library:

Section Parts:

  • 4x HC-SR04 (Ultrasonic Distance Sensor)
  • 4x 2.54 3P screw terminals

Motor Connection

6_motor.png

The DC motor driver L911H IC chip is used to control the RC car going forwards and backwards. This chip is basically switching the plus/minus wires on the DC motor for you. This chip has wide supply voltage from 2.5v to 12v if operated in temperatures from 0°C to 80°C - this is why the temperature sensor is right next to it (the temperature sensor measures -55°C to 125°C). The chip also has a built-in clamp diode, so one is not needed when connecting a DC motor.

One terminal connection is for the motor, and the other one is for an external power source for the battery. The motor and current draw would be too much on the Arduino, so another power source is need.

Section Parts:

  • 1x L9110H (Motor driver IC)
  • 2x 2.54 2P screw terminals

Servo Connection

7_servo.png

The servo is used to control the turning of the RC car. Most toy RC cars will come with another motor used for turning. Changing out the turning motor for a servo is the only modification I end up making to the frame of the RC car.

The capacitor is used for any spikes in power the servo may need.

Section Parts:

  • 1x 9 gram servo (Used to turn the car/truck)
  • 1x 470uF capacitor
  • Male header pins for connecting the servo

GPS Module

8_gps_module.png

The Adafruit GPS module is great for seeing the position and tracking where the car goes. This module not only gives you the GPS position, but you also get:

  • Position Accuracy within 3m
  • Velocity Accuracy within 0.1 m/s (Maximum Velocity: 515m/s)
  • "Enable" pin to turn it on/off
  • Flash to store data 16 hours of data
  • RTC (Real Time Clock) to get the time

Adafruit GPS Library:

  • https://github.com/adafruit/Adafruit_GPS

Section Parts:

  • 1x Adafruit GPS Breakout V3 board

Serial Communication

9_serial_communication.png

The serial connection is for the Arduino to communicate with other external sources.

Section Parts:

  • 1x 2.54 2P screw terminals

Example Board Setup

example_testing.jpg

I ordered many boards, and one of them I setup to be just for testing.

Example

new1.jpeg
new2.jpeg
new3.jpeg
example_wiring.jpg
example_front.jpg
example_top.jpg

Attached are images from my setup. I took a brand new RC car, gutted it, created a body out of DollarTree foamboard, and gave it a brain.