Introduction: DIY Phone Controlled FPV Rover (Fast & Agile)
Let's build a Bluetooth/ WiFi controlled FPV Drone! RoverBot is a highly educational Arduino based ATV-drone. It's simple to make, easy to program and is a great starter project for hobbyists! The bot is very fast and agile, not to mention of it carrying two "29,000 rpm" motors! It can surely outrun humans regardless of the terrain you're on!
This RoverBot is a soft prototype. My next agenda is to make v2.0 water resistant, shockproof and dirt-proof. The next one would probably carry metal-gearboxes and long range TX RX modules.
How Do You Control It?
RoverBot is based on the famous Arduino development board. Since Arduino supports a wide variety of shields and modules (RC/ WiFi/ Bluetooth), you can choose any type of communication. For my setup, I'm currently using my JY-MCU Bluetooth module, as seen in my previous robot project. You can control RoverBot with your smartphone (via app) and display the FPV footage on another smartphone. Although, Bluetooth has limitations when it comes to range, that's why I'm planning to buy a xBee module to get at least 1km of control.
Endless Possibilities! Ideas!
- Rescue Drone (ex. Redcross Drone)
- Home Surveillance Bot
- Scientific Research Data logging Bot
- Laser Tag FPV Bots!
RoverBot is equipped with:
- 2x Tamiya PlamaDash Motors (29,000rpm - Carbon Brushed)
- Tamiya Twin Gearbox (Configured @58:1 gear ratio)
- Tamiya Track and Wheels Set (With Peg Board)
- 7.4v - 950mAh Turningy LiPo Battery
- Pololu 2x30A Motor Driver
- JY-MCU Bluetooth Module
- 5MP Wireless IP Camera
- Arduino Uno
Building The Bot In 15 Minutes (Fast Forward)
TAKE NOTE: To prevent the brushes from wearing out quickly, the Rover's motor driver is set to half speed (200/400) . Remember, these motors are designed to operate at 3v not 7.4v.
____________________________________________________________
FPV In Action:
____________________________________________________________
Garage Test - Drifting On Tiles
Outdoor Off-road Garden Test:
The Phone App/ Interface - Used on my 1KG Sumobot
Please Support My FB Page: https://www.facebook.com/TechBuilder
Step 1: Photo Gallery - FPV Rover in Action (update: 5/10/14)
Here are more photo's of RoverBot. Thank you guys for voting! I hope you enjoy the project!
Step 2: Tools & Materials
Here's the list of my parts. BTW, wait for a thanksgiving sale in Pololu.com, I saved 55% from their ridiculous discounts.
Attention! Read First Before Purchasing
I bought most of my parts locally, that includes all the Tamiya products and my Arduino Uno clone, the rest were bought online. Please canvas for cheaper prices. Compared to where I buy Tamiya products, Pololu retails Tamiya kits that costs 2x more. If you live in the Philippines then you are lucky enough to have "Lil's Hobby Shop" (located @ SM Megamall & Glorietta 4).
Parts & Matterials (50% Alternatives):
- Arduino UNO R3 Clone
- Pololu Dual VNH5019 Motor Shield (2x30A)
- JY-MCU Bluetooth Module (10-15m Range)
- 2x Tamiya Plasma Dash Motors (Fastest Mini Model)
- Tamiya Twin Motor Gearbox Set (stock motors included)
- Tamiya Universal Plate Set
- Tamiya Track & Wheel Set
- 2 cell 950mAh LiPo Battery
- IP Camera (WiFi Cam)
- Super Glue Bottle
- Sugru Sachet/ Hot Glue
Tools:
- Leatherman
- Screwdriver Set
- Dremel Rotary Tool
Step 3: Assemble the Twin Gearbox
HUGE REMINDER: USE THE "58:1" GEAR RATIO!
Tips & Reminders:
- Grease the gears after assembling the gearbox. (not before)
- Don't forget the metal spacers, or the gearbox will screech.
- Replace The Stock Motors With Tuned Motors (go to step #3)
- Go for the 58:1 gear ratio, it's faster than the 204:1 gear ratio.
I'll be posting my tutorial on the Twin-Gearbox assembly soon..
Sparkfun - Tamiya Twin Gearbox Assembly Tutorial
Step 4: Motor Upgrades!
So far Plasma Dash Motors are still the fastest in Tamiya's 4WD mini motor series. The motors may be pricey but, you'll get the most out of your money. It's a carbon brushed motor that spins 29,000 rpm (@3v) and 36,000rpm (@7v). The motors are designed to operate with a 3v power source, increasing the voltage would result to a higher rpm rate but would wear out the c.brushes a lot quicker. It would be ideal to stick with a 3v-6v output. With the Pololu 2x30 Motor Driver and a 2 cell LiPo battery, the Arduino's program must be set to a max speed of 320/400, you'll soon find out what this means in the coding step/ page.
Stock Motors (Mabuchi FA-130RA)
If you guys are curious, the Twin-Gearbox comes with two Mabuchi FA1-30 stock motors. They operate at voltages between 1.5v - 3v. Overpowering it would result to the burning of brushes. There's a downloadable datasheet below with a much detailed description of the motors.
So Why Not Go Brushless?
BL motors cost more, draw more current and isn't available for the mini motor format (size).
Plasma Dash vs. Stock Motors:
If you want to make your bot a lot faster then upgrade them with two Plasma Dash motors. The Plasma Dash is 3x faster compared to the stock motors that came with the Twin-Gearbox set. So what are the downsides of the upgrade? Obviously, a faster motor needs larger batteries and a higher Ampere rate
Attachments
Step 5: Choosing Your Motor Driver
My Preferred Choices:
1st.) Pololu Dual VNH5019 (2x30 Amperes) - $49 ($35 Christmas)
2nd.) DX Dual VNH Clone (2x30 Amperes) - $24
3rd.) Arduino R3 Motor Shield (2x4 Amperes) - $25
4th.) DX, R3 Motor Shield Clone (2x4 Amperes) - $13
Want to save money? Make one for only $8.00! Read more about this in the next page!
Or go directly to my instructable guide: DIY Arduino Motor Shield [for only $8!]
Step 6: OPTIONAL: Build Your Own Motor Driver (for Only $8!)
Since most hobbyist prefer to be more practical, you can consider making one for only $8.00!
You can read my full instructable guide here: DIY Arduino Motor Shield [for only $8!] (L298N 2x4A)
__________________________________
Specs:
Voltage Range: 5- 50 volts
Current Range: 2-4 Amperes
Power: 25w @75°C
Working Temparature: -40°C to 150°C
Board Compatibility: Arduino Uno
Motor Outputs: 2 Motors (Left & Right)
Possible Robot Movements: Left, Right, Forward, Backward & etc..
PWM Pins: [12&11] [6&5]
Step 7: Assemble the Track Set
Steps [Simple Refer To The Photo or Video]:
1st.) Mount the Twin-Gearbox by screwing it on the last hole of the plate set.
2nd.) Push the gear-wheel toward's the twin-gearbox's axle.
3rd.) Screw the 1st hole of the L-shaped mounts on the 6th hole of the plate set.
4th.) The largest roller goes to the 1st hole of the L-shaped mounts.
5th.) Mount the rear roller's mount at the last hole of the plate set.
6th.) The rear end of the plate set uses medium sized rollers.
7th. ) You won't be needing the small rollers.
Step 8: Mount the Arduino & Motor Driver
Step 9: Connect the Bluetooth Module
How Does It Work?
So far, I know that the app sends characters/ bytes to your Arduino board via Bluetooth (serial communication). Your Arduino, then decodes these by using conditional statements. (will be discussed on the programming page/ step)
Wiring Instructions:
- "TX of Bluetooth Module" goes to "RX of Arduino"
- "RX of Bluetooth Module" goes to "TXof Arduino"
- "VCC of Bluetooth Module" goes to "3.3v of Arduino"
- "GND of Bluetooth Module" goes to "GND of Arduino"
- The State & Key pins of the BT modules are unused.
__________________________________________________
Upgrade Please:
Better upgrade the Bluetooth with a RF/ xBee/ WiFI transceiver for a longer range of transmission but if you prefer using a smartphone and app, you can stick with the BT module, although you would have a limited range of 20m.
Proximity sensors are optional, you don't need them.
Step 10: Mounting the IP Camera
IP cams connect to WiFi networks, that means that the camera doesn't need a separate Arduino shield for data transmission because the camera itself has a built-in WiFi transmitter. All you need is to power and connect it to a 2.7GHz antenna to extend the range. My IP cam requires a +5v power supply, luckily Arduino has a regulated +5v pin, that's why I don't have to make another 7805 regulator for my cam.
Step 11: Connect the Battery
Risks Of Lithium Polymer:
We all know that Lithium-Polymers bloat, and when they bloat they start to become useless. LiPo batteries are high maintainance batteries that need to be recharged once in every 2 weeks otherwise they'll bloat. LiPos also need special balancing chargers, trickle chargers would destroy them.
Step 12: The Arduino Codes (C++)
Simply upload the sketch to your Arduino. If you have a Pololu VNH5019 Motor Driver, the codes would work like magic! BTW, you'll need to download and install the library in order for the codes to work.
__________________________________________________________________
#include "DualVNH5019MotorShield.h"
DualVNH5019MotorShield md;
char dataIn='S';char determinant;char det;int vel = 0; //Bluetooth Stuff
//int power = 4; // Remove This To Enable Tollge Switch #2
int overdrive = 13; //Press Toggle Switch #1, the pin13 LED will light up
void setup(){
Serial.begin(9600);md.init();
/*pinMode(power , OUTPUT);*/ //toggle switch function
pinMode(overdrive, OUTPUT);
}
void loop(){ det = check();
while (det == 'F') // F, move forward
{md.setSpeeds(vel,vel);det = check();}
while (det == 'B') // B, move back
{md.setSpeeds(-vel,-vel);det = check();}
while (det == 'L') // L, move wheels left
{md.setSpeeds(vel/4,vel);det = check();}
while (det == 'R') // R, move wheels right
{md.setSpeeds(vel,vel/4);det = check();}
while (det == 'I') // I, turn right forward
{md.setSpeeds(vel,vel/2);det = check();}
while (det == 'J') // J, turn right back
{md.setSpeeds(-vel,-vel/2);det = check();}
while (det == 'G') // G, turn left forward
{md.setSpeeds(vel/2,vel);det = check();}
while (det == 'H') // H, turn left back
{md.setSpeeds(-vel/2,-vel);det = check();}
while (det == 'S') // S, stop
{md.setSpeeds(0,0);det = check();}
//---------------------Toggle switch code------------------//
/* while (det == 'U')
{digitalWrite(power, HIGH);det = check();}
while (det == 'u')
{digitalWrite(power, LOW);det = check();}*/
//---------------------Mains Power------------------//
while (det == 'W')
{digitalWrite(overdrive, HIGH);det = check();}
while (det == 'w')
{digitalWrite(overdrive, LOW);det = check();}
}
int check()
{if (Serial.available() > 0) {dataIn = Serial.read();
if (dataIn == 'F'){determinant = 'F';}
else if (dataIn == 'B'){determinant = 'B';}else if (dataIn == 'L'){determinant = 'L';}
else if (dataIn == 'R'){determinant = 'R';}else if (dataIn == 'I'){determinant = 'I';}
else if (dataIn == 'J'){determinant = 'J';}else if (dataIn == 'G'){determinant = 'G';}
else if (dataIn == 'H'){determinant = 'H';}else if (dataIn == 'S'){determinant = 'S';}
else if (dataIn == '0'){vel = 400;}else if (dataIn == '1'){vel = 380;}
else if (dataIn == '2'){vel = 340;}else if (dataIn == '3'){vel = 320;}
else if (dataIn == '4'){vel = 280;}else if (dataIn == '5'){vel = 240;}
else if (dataIn == '6'){vel = 200;}else if (dataIn == '7'){vel = 160;}
else if (dataIn == '8'){vel = 120;}else if (dataIn == '9'){vel = 80;}
else if (dataIn == 'q'){vel = 40;}else if (dataIn == 'U'){determinant = 'U';}
else if (dataIn == 'u'){determinant = 'u';}else if (dataIn == 'W'){determinant = 'W';}
else if (dataIn == 'w'){determinant = 'w';}}return determinant;}
Attachments
Step 13: The Android APP Interface
______________________________________________
Steps/ Procedures:
1st.) Download App in google play
2nd.) Turn your bluetooth on, and open the app
3rd.) Establish a bluetooth connection betweeen your phone
Go to Settings> Press Connect> Press LINVOR (Your BT Device)
4th.) Wait for the red light to turn green. And Your'e Done!
______________________________________________
My Previous Robot Project Using The Phone Interface
Step 14: You're Done! Mod It!
- Replace Bluetooth with xBee transceiver module for longer range!
- Larger battery capacity (2 cell - 1,300mAh LiPo)
- Mounted Airsoft Mechanism
- Gripper/ Mechanical Arm
- Add A Water-Tight Case (for electronics)
Ideas! What To Do?
1.) Laser Tag RoverBot - Create 4x FPV RoverBots, add a laser turret at the back of each bot. The goal is to hit the opponent's at the laser sensor. Every hit sends send a score to the laptop via WiFi. When the game ends, players can view their score on laptop and also view the recorded FPV replay footage.
2.) Autonomous Airsoft Rover Turret - multiple RoverBots protecting your property. All gathering data and sharing them to one computer via WiFi. Uses IP cam to detect intruder, if face = not recognize then fire airsoft at target.
___________________________________________________
!>>>>VIDEOS COMING SOON<<< !
Step 15: VIDEO Footage
____________________________________________________________
Garage Test - Drifting On Tiles