In order to transform the Traxxas RC car into an autonomous car controlled by the Raspberry Pi, we had to do some deconstruction and reconstruction to the components on the car.
  • The image below shows the chassis of the car right out of the box.
  • The motor is connected to the blue box, which is the electronic speed control.
  • The blue box is connected to power supply leads, which hook up to an 8.4V battery pack, and is also connected to the inside of the black box, which contains the TQ Micro Receiver.
  • The other wires coming out of the black box are connected to the servo, which is covered by the frame of the car.
  • The TQ Micro Receiver is what receives the radio signal from the remote controller, making it an RC car.
  • Therefore, the black receiver box and the micro receiver had to be removed and replaced with a different source of control.
Traxxas Rustler Chassis Top View
Credit: Traxxas

Components Removed

TQ Micro-Receiver

Waterproof Receiver Box

Components Added

Pulse-Width-Modulation (PWM) Board
PCA9685 16-Channel Servo Driver
Function:

The PWM board is a 16-channel controller that can control PWM outputs via Inter-Integrated Circuit (I2C) communication.

This was a crucial addition to the car because it allows for control of the motor speed and the steering angle by applying impulses of power, which are adjusted via programming the Raspberry Pi.

The leads from the blue box as well as the leads from the servo were connected to individual channels on the PWM board.

The PWM was connected to the Raspberry Pi, and power was supplied to the PWM from the output of the DC-DC converter.

DC-DC Converter

AU XL4015 DC-DC Buck Converter Step Down Power Supply Module
Function:

The DC-DC converter allowed for us to use the 8.4V battery pack that came with the car to power the PWM board and the Raspberry Pi.

After adding two new leads from the 8.4V battery pack, we wired them to the input of the converter. The output of the converter was connected to the Raspberry Pi, as well as to the PWM board’s terminal power block.

To set the output voltage, the knob on the blue potentiometer was adjusted to the necessary voltage, which was 6V.

Raspberry Pi 4
Raspberry Pi 4
Function:

The Raspberry Pi was the heart of this project. It is a low cost, credit-card sized computer that we programmed with the sensors, the motor, and the servo of our car.

It has 26 GPIO (General Purpose Input/Output) pins, which allow for the transmission of signals to and from motors and sensors.

The Raspberry Pi also has a camera port for a Raspberry Pi camera, which we utilized for our design.

The Python code we produced for the sensors, the motor and the servo, is on an SD card that is inserted to the Raspberry Pi. Additionally, the Raspberry Pi works well with the operating system ROS, which is what we used to run our Python code for the sensors.

After programming the Raspberry Pi for our car, we were able to access the Pi remotely and run the code, thus allowing our car to navigate autonomously. Since it couldn’t be plugged into a wall outlet while it was driving, it had to be connected to the motor battery, as shown below.