Introduction: How to Make a Gesture Controlled Rover
Here are the instructions for building a gesture controlled rover (tele operated rover). It consists of a rover unit which has a collision avoidance sensor onboard. The transmitter instead of being a clumsy remote is a cool glove which can be worn on the hand and then moved to transmit signals to the rover using hand movements. RF signals are used for communication.
This project has potential applications in vehicle underbody inspection (for security or maintenance) besides being eventually used to fly drones.
Arduino/Genuino UNO (with UNO cable) x2
Li-ion Battery (12V) x1
Jumper Wires (Male to male, male to female, female to female) x40 each
L298 Motor Driver Module x1
MPU6050 Gyroscope x1
RF Receiver and Transmitter x1 each
Ultrasonic Sensor x1
Chassis setup x1
Battery Holder (often included with chassis) x1
Switch (often included with chassis) x2
Wire Stripper x1
De-soldering Pump (not necessary) x1
Double Sided Tape x1
Step 1: Circuit Diagrams and Theory:
Transmitter Setup: In short, we need to take readings from the gyroscope and send them to the transmitter via the Arduino.
Receiver Setup: We need to receive the transmitted data (using the receiver), and rotate the wheels according to the data received*. Simultaneously, we also need to make sure that the rover is at a minimum distance of objects in front of it (obstacle detection). We’ll be using I2C communication for this project. *Interesting fact about this project: This code processes analog data and moves the rover according to the degree of motion of the hand. So we need to develop a logic to make the rover go in the correct direction at varying speeds.
Step 2: Building the Rover:
Step 1 (Assemble the chassis):
Assemble the chassis to make the base for your rover. This is a fairly easy step and you should be done in no time.
Step 2 (Check all the components):
Check all the sensors by interfacing them with the Arduino separately. You can check any tutorial on how to interface the sensors individually with the Arduino.
Step 3 (Transmitter setup):
First, solder the pins to the gyroscope. Now make the connections according to the following circuit diagram. Do not connect the battery right now.
Next, plug your Arduino into your laptop. Upload the following code file and see if the code is working properly (do this by removing the comments for the print statements in the code). Click on the serial monitor button (top right of your screen) to view the output of the print statements. If everything is working properly, you may go ahead and connect the battery.
Remember to make sure that the orientation of the gyroscope in correct (according to the code used). Please check the above shown diagrams to check the orientation I used for the gyroscope.
The gyroscope will send readings to the Arduino. From there, the readings will go to the RF transmitter to be transmitted so that the receiver can pick up the waves.
Step 4 (Receiver setup):
Make the connections according to the following circuit diagram. Do not connect the battery right now. Next, plug your Arduino into your laptop. Upload the following code file and see if the code is working properly. To do this:
1. Remove the comments for the print statements in the code
2. Switch on the transmitter setup
3. Place the rover on some sort of a stand so that the wheels don’t touch the ground and the rover doesn’t take off the moment its receiver receives data
NOTE: You may need to reverse the direction of one or both the motors If the code is working correctly, you should be able to see the correct output (forward, backward, right, left or stop) on your serial monitor according to your hand movements. If everything is working correctly, you may connect the battery. However, before connecting the battery you must check all the connections. One wrong terminal could blow your circuit.
Step 5 (Make the setup work using the batteries):
Now unplug your laptop and connect the batteries to the respective setups. Test your project.
Don’t let the rover get more than 5m away from the you, or else the rover may stop/start misbehaving!
Step 6 (Assembly):
Now it’s time to assemble the rover and actually see it in action! For my rover assembly design, check the pictures in the ‘Circuit Diagrams and Theory’ section. You are free to assemble the rover in a different way. Just make sure it is well balanced, or else it may do wheelies (don’t go like “Wow!” because you may find the rover the wrong way up).
While testing, you may find that the rover is not moving accurately. There’ll be some delay and errors as we’re using simple RF modules. Also, in a practical scenario, the motors have some differences and the rover’s center of mass is not where you expect it to be. So you may find the rover moving diagonally when it’s supposed to go straight. Errors in the balance may be fixed by changing the speed for the left and right motors. Multiply variables ‘ena’ and ‘enb’ by different numbers to perfect your rover’s balance.
In case of any doubts, use the comments section below. That’s where I’ll address doubts.
Step 3: Code Files
Here’s the link for the virtual wire library:
Step 4: Thank You!
Please share your comments below. I'd love to hear about your experience while trying out the project! I'll try to reply to all queries within 24 hours.