Introduction: Maverick - Remote Controlled Bidirectional Communication Car

About: Arduino is a newly discovered hobby of mine. I love making stuff.

Hey everybody I'm Razvan and welcome to my “Maverick” project.

I’ve always liked remote controlled things, but I never had a RC car. So I decided to build one which can do a little bit more than just move. For this project we will use some parts which are accessible to everyone who has an electronic store nearby or can buy things from internet.

I’m currently onboard a vessel and I don’t have access to different kind of materials and tools so this project will not include a 3d printer, CNC’s or any fancy devices (even I think it will be very useful but I don’t have access to such equipment), it will be done with much simpler tools available. This project is meant to be easy and fun.

How does it work?

Maverick is a RC car which is using the LRF24L01 Module to send and receive data from and to the remote controller.

It can measure temperature and humidity from his area and send the data to the remote controller to be displayed on a graph. Also it can measure distance to surrounding objects and obstacles, sending the range information to be displayed.

By a push of a button it can also be autonomous, and in this mode it will avoid obstacles and it will decide were to go according to the measurement taken by the ultrasonic sensor.

So let’s get building.

Step 1: Parts Required for Remote Controller

- Arduino Micro controller (I’ve used an Arduino Uno for my controller);

- NRF24L01 radio transceiver (it will be used for the bidirectional communication between the car and the remote controller)

- Tower Pro Micro Servo 9g SG90 (used for displaying the data from the vehicle, it will allow the operator to visualize parameters measured by the car sensors on a graph);

- Joystick (for the control of the vehicle, or the control of the vehicle servo);

- Two LED different colours (I chose red and green for the indication of the operational modes);

- 10microF capacitors;

- 2 push buttons (for the selection of the operational modes);

- Various resistors;

- Breadboard;

- Connecting wires;

- Paper Clip (as needle of the graph);

- Carton shoes box (for the frame)

- Rubber bands

Step 2: Part Required for the Maverick

- Arduino Micro-controller (I’ve used and Arduino Nano);

- NRF24L01 radio transceiver (it will be used for the bidirectional wireless communication between the car and the remote controller);

- L298 motor driver (the module will actually drive the electrical motors of the car);

- DHT11 sensor (temperature and humidity sensor);

- 2 x Electrical Motors with gear and wheels;

- Ultrasonic Sensor HC-SR04 (sensor which will give the capability to detect objects around and to avoid obstacles);

- Tower Pro Micro Servo 9g SG90 (will allow the orientation of the ultrasonic sensor so that it can measure the range in different directions);

- White LED (for illumination I’ve used an old colour sensor which is burned out but the LED’s are still working);

- 10 microF Capacitors;

- Breadboard;

- Connecting wires;

- A4 clip board as the frame of the vehicle;

- Some wheels from an old printer;

- Some double side tape;

- Folder fasteners for securing the motors to the frame;

- Rubber bands

Tools used:

- Pliers

- Screw driver

- Double tape

- Rubber bands

- Cutter

Step 3: Few Details About Some of the Materials:

L298 Module:

Arduino pins cannot be directly connected to the electrical motors because the micro-controller cannot cope with the amps required by the motors. So we need to connect the motors to a motor driver which will be controlled by the Arduino micro-controller.

We will have to be able to control the two electric motors which are moving the car in both directions, so the car can move forward and aft and also can steer.

In order to do all the above we will need an H-Bridge which actually is an array of transistors which allows for controlling the current flow to the motors. The L298 Module is just that.

This module also allows us to operate the motors at different speeds using the ENA and ENB pins with two PWM pins from Arduino, but for this project in order to spare two PWM pins we will not control the speed of the motors, only the direction so the jumpers for the ENA and ENB pins will remain in place.

NRF24L01 Module:

This is a commonly used transceiver which allows for wireless communication between the car and the remote controller. It uses the 2.4 GHz band and it can operate with baud rates from 250 kbps up to 2 Mbps. If used in open space and with lower baud rate its range can reach up to 100 meters which makes it perfect for this project.

The module is compatible with the Arduino Micro-controller but you have to be careful to supply it from 3.3V pin not from 5V otherwise you risk damaging the module.

DHT 11 Sensor:

This module is a very cheap and easy to use sensor. It provides digital temperature and humidity readings, but you will need an Arduino IDE library to use it. It uses a capacitive humidity sensor and a thermistor to measure the surrounding air, and sends out a digital signal on the data pin.

Step 4: Setting Up the Connections for Maverick

Maverick Connections:

NRF24L01 Module (pins)

VCC - Arduino Nano 3V3

GND - Arduino Nano GND

CS - Arduino Nano D8

CE - Arduino Nano D7

MOSI - Arduino Nano D11

SCK- Arduino Nano D13

MISO - Arduino Nano D12

IRQ Not used

L298N Module (pins)

IN1 - Arduino Nano D5

IN2 - Arduino Nano D4

IN3 - Arduino Nano D3

IN4 - Arduino Nano D2

ENA – has jumper in place -

ENB – has jumper in place -

DHT11

VCC 5V rail of the breadboard

GND GND rail of the breadboard

S D6

HC-SR04 Ultrasonic Sensor

VCC 5V rail of the breadboard

GND GND rail of the breadboard

Trig - Arduino Nano A1

Echo - Arduino Nano A2

Tower Pro Micro Servo 9g SG90

GND (brown colour wire) GND rail of the breadboard

VCC (red colour wire) 5V rail of the breadboard

Signal (orange colour wire) - Arduino Nano D10

LED Light - Arduino Nano A0

Breadboard

5V Rail - Arduino Nano 5V

GND rail - Arduino Nano GND

Initially I’ve inserted the Arduino Nano in the breadboard, with the USB connection on exterior for an easier access later on.

- Arduino Nano 5V pin to the 5V rail of the breadboard

-Arduino Nano GND pin to the GND rail of the breadboard

NRF24L01 Module.

- GND of the Module goes to the GND of the breadboard rail

- VCC goes to the Arduino Nano 3V3 pin. Be careful to not connect the VCC to the 5V of the breadboard as you risk to destroy the NRF24L01 Module

- CSN pin goes to the Arduino Nano D8;

- CE pin goes to the Arduino Nano D7;

- SCK pin goes to the Arduino Nano D13;

- MOSI pin goes to the Arduino Nano D11;

- MISO pin goes to the Arduino Nano D12;

- IRQ pin will not be connected. Be careful if you are using a different board than Arduino Nano or Arduino Uno, the SCK, MOSI and MISO pins will be different.

- I’ve also attached a 10µF Capacitor between the VCC and the GND of the module to not have problems with the power supply of the module. This is not compulsory if you are using the module at min power but as I’ve read on the internet plenty projects had problems with this.

- You will need also to download the RF24 library for this module. You can find it on the following site: https://github.com/tmrh20/rf24/

L298N Module

- For the ENA and ENB pins I left the jumpers connected because I don’t need to control the speed of the motors, in order to spare two PWM digital pins on the Arduino Nano. So in this project the motors will always run at full speed, but in the end the wheels will not spin to fast because of the gear of the motors.

- IN1 pin goes to the Arduino Nano D5;

- IN2 pin goes to the Arduino Nano D4;

- IN3 pin goes to the Arduino Nano D3;

- IN4 pin goes to the Arduino Nano D2;

- The + of the battery will go on the 12V slot;

- The – of the battery will go on the GND slot, and to the GND rail of the breadboard;

- If you are using a powerful battery (12V maximum) you can supply the Arduino Nano from the 5V slot to the Vin pin, but I have only a 9V batteries so I used one for the motors only and one for powering the Arduino Nano and the sensors.

- Both motors are going to be connected to the slots on the right and on the left of the module. Initially doesn’t matter how you will connect them it can be adjusted later on from the Arduino Code or only from switching the wires between themselves when we will test the vehicle.

.

DHT11 Module

- The module pins fits perfectly on the breadboard. So the – pin goes to the GND rail.

- The Signal pin goes to Arduino Nano D6;

- The VCC pin goes on the 5V breadboard rail.

HC-SR04 Ultrasonic Sensor Module

- The VCC pin goes to the 5V rail of the breadboard;

- The GND pin to the GND rail of the breadboard;

- The Trig pin to the Arduino Nano A1;

- The Echo pin to the Arduino Nano A2;

- The Ultrasonic Module will be attached to the servo motor with double tape or/and with some rubber bands in order to be able to measure distances at different angles to the longitudinal direction of the vehicle. This will be useful when in Autonomous mode the vehicle will measure the distance on the right, than on the left and he will decide where to turn. Also you will be able to control the servo in order to find the different distances to different directions from the vehicle.

Tower Pro Micro Servo 9g SG90

- The brown wire to the GND rail of the breadboard

- The red wire to the 5V rail of the breadboard

- The orange wire to the Arduino Nano D10;

LED

- The LED will be supplied from the A0 pin. I’ve used an old colour sensor which is burned out but the LED’s are still working and being 4 of them on the small board are perfect for lighting the way of the vehicle. If you are using only one LED you should use a 330Ω resistor is series with the LED to not burn it.

Congratulation the vehicle connections are done.

Step 5: Maverick Remote Connections:

NRF24L01 Module (pins)

VCC - Arduino Uno pin 3V3

GND - Arduino Uno pin GND

CS - Arduino Uno pin D8

CE - Arduino Uno pin D7

MOSI - Arduino Uno pin D11

SCK - Arduino Uno pin D13

MISO - Arduino Uno pin D12

IRQ Not used

Joystick

GND GND rail of the breadboard

VCC 5V rail of the breadboard

VRX - Arduino Uno pin A3

VRY - Arduino Uno pin A2

Tower Pro Micro Servo 9g SG90

GND (brown colour wire) GND rail of the breadboard

VCC (red colour wire) 5V rail of the breadboard

Signal (orange colour wire) - Arduino Uno pin D6

Red LED - Arduino Uno pin D4

Green LED - Arduino Uno pin D5

Autonomous Push Button - Arduino Uno pin D2

Range Button - Arduino Uno pin D3

Breadboard

5V Rail - Arduino Uno pin 5V

GND Rail - Arduino Uno pin GND

As I’m using for the controller an Arduino Uno, I’ve attached the Uno to a breadboard with some rubber bands in order to not move.

- Arduino Uno will be supplied by a 9V battery through the jack;

- Arduino Uno 5V pin to the 5V rail of the breadboard;

-Arduino Uno GND pin to the GND rail of the breadboard;

NRF24L01 Module.

- GND of the Module goes to the GND of the breadboard rail

- VCC goes to the Arduino Uno 3V3 pin. Be careful to not connect the VCC to the 5V of the breadboard as you risk to destroy the NRF24L01 Module

- CSN pin goes to the Arduino Uno D8;

- CE pin goes to the Arduino Uno D7;

- SCK pin goes to the Arduino Uno D13;

- MOSI pin goes to the Arduino Uno D11;

- MISO pin goes to the Arduino Uno D12;

- IRQ pin will not be connected. Be careful if you are using a different board than Arduino Nano or Arduino Uno, the SCK, MOSI and MISO pins will be different.

- I’ve also attached a 10µF Capacitor between the VCC and the GND of the module to not have problems with the power supply of the module. This is not compulsory if you are using the module at min power but as I’ve read on the internet plenty projects had problems with this.

Joystick Module

- The joystick module consist of 2 potentiometers so it is very similar with the connections;

- GND pin to the GND rail of the breadboard;

- VCC pin to the 5V rail of the breadboard;

- VRX pin to the Arduino Uno A3 pin;

- VRY pin to the Arduino Uno A2 pin;

Tower Pro Micro Servo 9g SG90

- The brown wire to the GND rail of the breadboard

- The red wire to the 5V rail of the breadboard

- The orange wire to the Arduino Uno D6;

LED

- Red LED will be connected in series with a 330Ω resistor to Arduino Uno pin D4;

- Green LED will be connected in series with a 330Ω resistor to Arduino Uno pin D5;

Push Buttons

- The pushbuttons will be used for selecting the mode in which the vehicle will operate;

- The autonomous pushbutton will be connected to pin D2 of the Arduino Uno. The button should be pulled down with a 1k or 10k resistor the value is not important.

- The range pushbutton will be connected to pin D3 of the Arduino Uno. Same the button should be pulled down with a 1k or 10k resistor.

That’s it we have now connected all the electrical parts.

Step 6: Building the Remote Controller Frame

The frame of the remote controller is actually made from a carton shoes box. Off course other materials will do better but in my case the materials that I can use are limited. So I’ve used a carton box.

First I’ve cut the outer sides of the cover and obtained three parts like in the picture .

Next, I took the two smaller pieces and I’ve glued them together with double tape.

The third longer part will come perpendicular on them forming a “T” like shape frame.

The upper (horizontal) part will be used for the graph and lower (vertical) part will be used for the electrical components, so that everything sticks together. When we will make the graph we will trim the upper part to fit the graph paper.

Step 7: Creating the Graph for the Remote Controller

Of course in this step it will be nice if you have a LCD (16, 2) so that the data provided from the vehicle will be displayed. But in my case I don’t have one, so I had to find another way to display the data.

I decided to make a small graph with needle from a servo motor, a paper clip (used as a needle) which will indicate the values measured by the vehicle’s sensors and a radar plotting sheet, or you can use a polar graph paper (Graph papers can be downloaded from internet).

The parameters measured by the sensors will be converted in degrees for the servo motor. Because the servo motor is not of the best quality I’ve restricted his movement from 20° to 160° (20° meaning 0 measured parameter value and 160° meaning the maximum parameter value which can be displayed for example 140 cm).

All this can be adjusted from the Arduino Code.

For the graph I used a radar plotting sheet, which I cut in half after I modified it a little bit using basic Windows Paint and Snipping Tool.

After modifying the Radar Plotting Sheet to fit the remote controller I’ve draw the lines connecting the centre of the plotting sheet with the outer circle to make the readings easier.

The servo motor turning shaft has to be aligned with the centre of the plotting sheet.

I’ve stretched and modified the paper clip in order to fit the servo motor arm.

Then the most important is to “calibrate” the graph. So for different values of the parameters measured the needle of the graph has to show the correct angle value. I’ve done this switching the remote controller and the Maverick ON, and measuring different distances with the ultrasonic sensor while taking the values from the serial monitor to be sure that what the graph is pointing is correct. After few re positions of the servo and few bending of the needle the graph was showing the proper parameters measured values.

After everything is attached to the “T” shaped frame I’ve printed and glued with double tape the Mode Selection Flowchart in order to not get confused with what parameter the graph is displaying.

Finally the remote controller is done.

Step 8: Building the Maverick Chassis

First of all I have to give a big thanks to my good friend Vlado Jovanovic for dedicating time and effort for building the chassis, the body and the entire frame design of the Maverick.

The chassis is made from a carton clipboard, which has been cut in an octagonal forward shaped with a lot of effort using a cutter the only available thing around. The octagonal shape will house the electronical parts. The clipboard holder was used as a support for the rear wheels.

After the board was cut it was covered with a silver tape (anti splash tape) to give it a nicer look.

The two motors were attached as in the pictures using double tape and modified folder fasteners. Two holes have been drilled on each side of the chassis to allow the motors cables to pass in order to reach the L298N module.

Step 9: Building Side Panels of the Frame

As mentioned before the entire outer shell of the Maverick is made of carton. The side panels were cut with a cutter, measured and crafted in order to fit the chassis.

Some design features have been applied to look better and a wire mesh was riveted on the inside part of the panels for a tank kind a look similarity.

Step 10: Building the Front and Rear Supports for the Frame

The front and rear supports have the purpose to secure the side panels in front and in back side of the car. The front support has also the purpose to accommodate the light (in my case the broken color sensor).

The dimensions of the front and the rear supports you can find them in the pictures attached, together with the templates for how to cut the support and where and which sides to bend and later glue.

Step 11: Building the Top Cover of the Frame

The top cover has to enclose everything inside and for a better design I’ve made some lines on the stern side so that the electronics inside the car can be seen. Also the top cover is made so that can be removed in order to replace batteries.

All the part have been attached to each other with bolts and nuts as in the picture.

Step 12: Assembly of the Body Frame

Step 13: Mounting the Motors on the Chassis

The two motors were attached as in the pictures using double tape and modified folder fasteners. Two holes have been drilled on each side of the chassis to allow the motors cables to pass in order to reach the L298N module.

Step 14: Mounting the Electronics on the Chassis

As power supply I used two 9V battery as being the most suitable once available. But in order to fit them on the chassis I had to make a battery holder which will keep the batteries in place while the car will move and also will be easy to remove in case needed to replace the batteries. So I have made a battery holder again from carton and strapped it to the chassis with a modified folder fastener.

The L298N Module was installed using 4 spacers.

The bread board was attached on the chassis using double tape.

The ultrasonic sensor was attached to the servo motors using double tape and some rubber bands.

Well now all the electronic components are in place.

Step 15: Fitting the Body Frame to the Chassis

Step 16: How to Operate the Maverick

Maverick can be operated in 4 modes and this is going to be indicate by the two LED on the remote controller (red and green).

1. Manual Control (Humidity). Initially when the vehicle is switched ON it will be on manual control. This means that Maverick will be controlled manually from the remote controller with the help of the joystick. Both LED’s will be switched OFF on the remote controller indicating that we are in manual mode. The value showed on the remote controller graph will be the HUMIDITY of the air around Maverick.

2. Manual Control (Temperature). When both Green Led and Red Led are ON. This means that Maverick will be controlled manually from the remote controller with the help of the joystick. In this mode also the light will be switched ON. The value showed on the remote controller graph will be the TEMPERATURE of the air around Maverick in degrees C.

3. Autonomous Mode. When the auto push button is pressed the Red LED is switched ON indicating the Autonomous Mode. In this mode Maverick starts moving by itself avoiding obstacles and deciding where to turn according the information received from the ultrasonic sensor. In this mode the value showed on the remote controller graph will be the distance measured while moving.

4. Range Measurement Mode. When the Range button is pressed the Green LED is switched ON indicating that Maverick is in Range Mode. Now the Maverick will not move. The joystick will now control the servo motor attached to the ultrasonic sensor. In order to measure the range from the vehicle to different objects around it just move the joystick and point the ultrasonic sensor towards the object. The value of the distance toward the object will be shown on the remote controller graph in cm.

For switching On and Off the LED light on the Maverick you have to have both LED on the remote controller On (for light On) or Off (for light Off).

Step 17: Arduino Code

You can find the codes for the remote controller and for Maverick attached.

That's it for my Maverick project. I hope you like it and thanks for viewing and vote for it if you like it.

Wheels Contest 2017

Participated in the
Wheels Contest 2017

Remote Control Contest 2017

Participated in the
Remote Control Contest 2017

Arduino Contest 2017

Participated in the
Arduino Contest 2017