Introduction: RC Rover Controlled by Gestures Motions & Joyestick

About: Young student in third year License in Automatic, i am passionate about technology, electronics, prototyping, robotics, programming and embedded systems.


RC Rover is a Robotics project that aims to improve rover control through the use of radio frequency

and the interaction of rover movement with hand movement using the inertial unit (MPU6050),

but also the control of this Rover with a Joyestik. All this is done remotely using the radio frequency

Nrf24l01 (2.4Ghz) . This project is realized using open source development boards (Arduino), one for data

transmitter (main command) whitch contains the Joyestik and the inertial unit and one for the receiver (control of the engines),

for the transmission i used (Arduino Pro Mini Board )


for the receiver i used (Arduino Uno board )

Step 1: Parts and Tools Required

Parts:

1. 4WD Robot Chassis kit

2. Arduino Uno or nano (for receiver)

3. Arduino Pro Mini for trasmitter

4. 2 * LM298 H bridge Module

5. 12v power supply for Motors

6. 2 * module RF Nrf24l01 (Transmitter and receiver)

7. MPU6050 (accelerometer & gyroscope)

8. FTDI chip or (cp2102) for uploading code in Arduino Pro mini
9. 2* Breadboard

10. Jumper wires (M-F, M-M and F-F)

11. Joyestick Module with switch

Tools Required :

1. Wire stripper
2. Wire cutter

3. Glue Gun

Step 2: What Is a Rover ?

Rover is an electromechanical device which is capable of reacting in some way to its environment, and take autonomous decisions or actions in order to achieve a specific task.

A robot is consists of following components

1. Structure / Chassis

2. Actuator / Motor

3. Controller

4. Inputs / Sensors

5. Power Supply

Step 3: Assembly Parts

Step 4: Connection of the Rover (Motor and Shields) Arduino Uno

Here u have to connect pins in your arduino.

  • If you used different pins than pins shown in below, change them in codes.
  • Remember to connect the negative on the breadboard to the Arduino's GND. All the GNDs in a circuit need to be connected for it to work.
  • Connection of the L293 (1):

- Pins Enable A (1,2EN) and Enable B (3,4EN) connect to the VCC of the Arduino.

- Pin (1A) of the L293 connect to the pin 2 of the Arduino

- Pin (2A) of the L293 connect to the pin 3 of the Arduino

- Pins (1Y) and (2Y) connect to the Motor 1 (Left Motor 1)

- Pin (3A) of the L293D connect to pin 9 of the Arduino

- Pin (4A) of the L293D connect to pin 6 of the Arduino

- Pin (3Y) and (4Y) of the L293D connect to the Motor 2 (Left Motor 2)

- Pins (4, 5, 12, 13) of the l293d connect to GND

  • Connection of the L293 (2):

- Pins Enable A (1,2EN) and Enable B (3,4EN) connect to the VCC of the Arduino.

- Pin (1A) of the L293 connect to the pin 4 of the Arduino

- Pin (2A) of the L293 connect to the pin 5 of the Arduino

- Pins (1Y) and (2Y) connect to the Motor 3 (Right Motor 1)

- Pin (3A) of the L293D connect to pin 5 of the Arduino (Ps: i used the same pin with right motor 1 because i haven't another free, if you have another pin you can choose another, here it's the same direction (right) so it's the same and i can use the same pin )

- Pin (4A) of the L293D connect to pin 11 of the Arduino

- Pin (3Y) and (4Y) of the L293D connect to the Motor 2

- Pins (4, 5, 12, 13) of the l293d connect to GND

  • Connections of the nRF24L01 Module:

- VCC connect to the +3.3V of the Arduino.

- GND connect to the GND of the Arduino.

- CE connect to the digital 7 pin of the Arduino.

- CSN connect to the digital 8 pin of the Arduino.

- SCK connect to the digital 13 pin of the Arduino.

- MOSI connect to the digital 11 pin of the Arduino.

- MISO connect to the digital 12 pin of the Arduino.

Step 5: Connection of the Command (Controller) Arduino Pro Mini

Here it's a command party i used an Arduino Pro mini for the command you can use another board, the functon is the same.

Connection of the FTDI Basic:

-VCC connect to Vcc of the Arduino

-GND connect to GND of the Arduino

-Rx of the FTDI connect to Tx of the Arduino

-Tx of the FTDI connect to Rx of the Arduino

-DTR of the FTDI connect to DTR of the Arduino


Connections of the nRF24L01 Module:


- VCC connect to the +3.3V of the Arduino.

- GND connect to the GND of the Arduino.

- CE connect to the digital 7 pin of the Arduino.

- CSN connect to the digital 8 pin of the Arduino.

- SCK connect to the digital 13 pin of the Arduino.

- MOSI connect to the digital 11 pin of the Arduino.

- MISO connect to the digital 12 pin of the Arduino.

Connections of the joystick:

- VCC connect to the +3.3V of the Arduino

- GND connect to the GND of the Arduino

- Vertical X of the joystick is connect to A2 of the Arduino

- Horizontal Y of the joystick is connect to A3 of the Arduino

-SW of the joystick is connect to pin 6 of the Arduino

Connection of the MPU6050(accelerometer & gyroscope) :

- SDA of the MPU6050 connect to SDA of the Arduino (for Arduino Pro mini it's A4 )

-SCL of the MPU6050 connect to SCL of the Arduino (for Arduino Pro Mini it's A5 pin )

- GND connect to GND of the Arduino

- INT connect to pin 2 of the Arduino

- VCC connect to +3.3V of the Arduino

Step 6: Source Code of the Project (Receiver)

For the source code to work correctly, follow the recommendations :

-Download the RF24.h library and move it to the Arduino libraries folder.

https://github.com/maniacbug/RF24

for me it's C/Programs/Arduino/Libraries

Step 7: Source Code for Transmitter

You have to move all the files in the same folder or same place, and th source code final is RC Rover Transmitter. open it and upload it in your Arduino board

I know it's a little complex in this part, but please do not forget: there is no hard! You can do it! Just think, research, trust yourself and try and just know thant nothing is impossible and enjoy project.

Step 8: Test of the RC Rover

Microcontroller Contest

Participated in the
Microcontroller Contest