Introduction: DIY Smart Follow Me Drone With Camera (Arduino Based)

Picture of DIY Smart Follow Me Drone With Camera (Arduino Based)

Drones are very popular toys and tools these days. You can find professional and even beginner drones and flying gadgets in the market. I have four drones (quadcopters and hexcopters), because I love everything that flies, but the 200th flight isn't so interesting and starts to be boring, so I decided that I will build my own drone with some extra feutures. I like to program Arduino and design circuits and gadgets so I started to build it. I used the MultiWii flight controller that is based on the ATMega328 chip that is also used in the Arduino UNO, so programming was pretty simple. This drone can be connected to an Android smartphone that sends its GPS data to the drone, that compares to its own GPS signal, then starts to follow phone, so if I move on the street the drone follows me. Of course has many failings yet, because I wasn't able to make a proffesional filming drone, but follows the phone, makes a video and also has a ultrasonic distance sensor to avoid the obstacles in the air. I think this is pretty much features from a homemade drone. As soon as possible I will load up a video about a flight, but it is hard to make good quality records with an always moving drone.

Step 1: Main Properties

Picture of Main Properties

The drone is almost fully automatically, you don't have to control it, because follows your phone that is usually in your bike, The ultrasonic sensor helps to bypass trees, buildings and other obstacles and the GPS gives a very accurate position data, but let's see what do we have in total:

  • 1000mAh battery, enough for 16-18 minutes of continous flying
  • ultrasonic sensor to avoid obstacles in the air
  • Bluetooth module to recieve data from the phone
  • Arduino based microcontroller
  • build-in gyroscope
  • regulated maximum height (5 meters)
  • when battery is low automatically lands on the phone (hopefully in your hands)
  • costs about $100 to build
  • can be programmed to anything
  • with the help of the GPS you can send the drone to any coordinates
  • quadcopter desing
  • equipped with a 2MP 720p HQ videocamera
  • weighs 109 grams (3.84 ounces)

So that is all that the first version can do, of course I want to develop it. During the summer I want to hack my bigger drone with this software.

Step 2: Flight Test Video

I asked two good friends of me to walk in the front of the drone, while I was under the drone, to save it if falls down. But the test succeeded, and as you can see the drone still is not very stable, but worked. The left guy in a yellow T-shirt held the phone, that transmitted the GPS data. The video quality with this camera is not the best, but I didn't find low weight 1080p cameras.

Step 3: Gathering Parts and Tools

Picture of Gathering Parts and Tools

For this project you need some new and unusual parts. I designed from low wieght and recycled parts to reduce the cost, and succeded I got very good materials for the frame. But let's see what we need! I bought the Crius brand of the flight controller from and worked


  • Soldering Iron
  • Glue Gun
  • Cutter
  • Wire Cutter
  • Rotary Tool
  • Super Glue
  • Ductape
  • Rubberband


Step 4: Assembe the Propellers

Picture of Assembe the Propellers

I bought these proppellers with motors from the for 18 bucks, they are spare parts for the Syma S5X drone, but they seemed useful so I ordered them, and worked fine. You just have to put the motor in its hole, and attach the props to the gearing.

Step 5: Circuit Schemantic

Picture of Circuit Schemantic

Always look at the schemantic while working and be careful with the connections.

Step 6: Soldering Motors to the Driver

Picture of Soldering Motors to the Driver

Now you have to solder all cables from the motors to the L293D motor driver IC. Look at the pictures, they say much more, you have to connect black and blue wires to the GND and positive wires to the Outputs 1-4, just like me. The L293D can drive these motors, but I recommend to use some power transistors because this chip cannot handle all the four motors at high power (more than 2 Ampers). After this cut 15 cm straws these will hold the motors in place. I used extra strong straws that I got from a local bakery and cafe. Put these straws gently on the motors's gearings.

Step 7: Assembling the Frame

Picture of Assembling the Frame

Please pain attention on the second picture, that shows how equip the proppelers. Use some hot glue and super glue to suit all four propellers then check the connections. It is very important that the proppelers have to be by the same distance from each other.

Step 8: Add Wires to the L293D

Picture of Add Wires to the L293D

Take four female-female jumper wires and cut the in half. Then solder them to remaining pins of the IC. This will help to connect the pins to the Arduino's I/O pins. Now it is time to build the circuit.

Step 9: The Circuit

Picture of The Circuit

All modules are included with the flight controller kit that I odered, so you just have to connect them together. The Bluetooth goes to the Serial port, the GPS first in the I2C converter then in the I2C port. Now you can equip this on your drone.

Step 10: Putting the Circuit on the Frame

Picture of Putting the Circuit on the Frame

Use some double sided tape and add the GPS first. This sponge-tape holds everything in place, so glue every module one by one on the plastic piece. If you're done with this you can connect the motor driver's pins to the MultiWii.

Step 11: Connecting the Two Circuits

Picture of Connecting the Two Circuits

The Input pins goes to the D3, D9, D10, D11 the others should be connected to the VCC+ and GND- pins. Schemantic will be uploaded tomorrow.

Step 12: Battery...

Picture of Battery...

I used some rubberbands to fix my battery to the bottom of the drone, and holds there pretty strongly. I plugged in and worked, just how I imagined.

Step 13: The Ultrasonic Sensor

Picture of The Ultrasonic Sensor

The sonar sensor is fixed on the drone with a rubberband, and connected to the D7 and D6 pins of the MultiWii controller.

Step 14: How to Program It?

Picture of How to Program It?

You have to use a Serial FTDI module to program the chip. The kit also includes the programmer module.

Step 15: How a GPS Works?

Picture of How a GPS Works?

The Global Positioning System (GPS) is a space-based navigation system that provides location and time information in all weather conditions, anywhere on or near the Earth where there is an unobstructed line of sight to four or more GPS satellites. The system provides critical capabilities to military, civil, and commercial users around the world. The United States government created the system, maintains it, and makes it freely accessible to anyone with a GPS receiver. GPS modules typically put out a series of standard strings of information, under something called the National Marine Electronics Association (NMEA) protocol. More information on NMEA standard data strings can be found at this site.

For more information about programming read this:

Step 16: The Software

Picture of The Software

I don't know if the software is already uploaded on the chip or not, but here I'll explain what to do. First download the official MultiWii library to your computer. Extraxt the .zip file then open it the MultiWii.ino file. Choose "Arduino/Genuino UNO" and upload it on your board. Now your microcontroller has every functions preinstalled. The gyroscope, the lights, the Bluetooth and even the small LCD (that is not used in this project) is working with the uploaded code. But this code only can be used to test if the modules work perfectly or not. Try to tilt the drone, and you'll see the motors will spin because of the gyrosensor. We have to modifiy the controller's code to follow the phone.

After this you can make your own hacked drone if you can program Arduino or follow my instructions and make it a "follow me" drone.

GitHub link for the software:

Please visit the official site for more details about the softwares:

Step 17: Modifying the Code

I had to modify the sensors's code and the controller's code that gave prompts to the ATMega328, but now the Bluetooth module gives three GPS coordinates and depending on these the drone moves, so if my phone's x and y coordinates are 46^44'31" and 65^24"13' and the drone's coordinates are 46^14'14" and 65^24"0' then the dron will move in one direction until reaches the phone.

Step 18: Phone App

I used the SensoDuino app that can be downloaded from here to your smartphone: Connect to the drone via Bluetooth and turn on the GPS TX and data logging. Now the phone app is ready.

Step 19: The Camera

Picture of The Camera

I bought a very cheap chinese 720p keychain camera and had a great quality. I suited on the bottom of the drone with doulble sided tape. This camera was used in many of my projects and always is good to use it, weighs 15 grams and can make a very good video.

Step 20: Testing...

Picture of Testing...

The drone is still insatble because is not a proffesional project, but works fine . I am very happy with the results. The connection distance was about 8 meters that is more than enough for a drone like this. The video is coming soon and I hope you'll like it. It is not a racing drone, but it's also pretty fast.

Step 21: Future Plans

I also have a bigger drone and if I can correct the errors in the code I want to use it with that one through WiFi connection with an ESP8266 module. That has bigger rotors and can lift even a GoPro, not like the first version. This drone could be a useful tool while cycling, driving, skiing, swimming or sporting, he always follows you.

Step 22: Thank You for Watching!

Picture of Thank You for Watching!

I really hope you liked my Instuctable, and if yes, please give me a kindly vote in the Make It Fly Contest. If you have questions feel free to ask. Don't forget to share and give a heart if you think deserves it. Thanks again for watching!

Cheers, Imetomi


NickyM13 (author)2017-09-10

Hi, does anyone have the schematics for STEP 11?

I realized that I soldered in the wrong types of wires.

But regardless, I am not exactly sure which wire goes into which input on the multiwii.

richo2711 (author)NickyM132017-09-14

Hello, this is the wiring diagram.

NickyM13 (author)richo27112017-11-04

Thanks Richo. Any idea how to connect the battery ?

Luke Rogers (author)2017-09-15


MinorLG (author)2017-09-01

What is it's lifting capacity? How much air flow is required to keep it aloft? Is the camera used in tracking at all, and if it is not, how much more performance do you think would be gained by obmiting it?

MinorLG (author)MinorLG2017-09-01

The reason I am asking these specific questions is because I wish to use a drone integrated into a prop, that will have a shroud completely encasing it (exhaust/vent holes excepting), and need something that can carry the shell, and deal with being 98% enclosed.

robobot3112 (author)2017-08-16


MeriS3 (author)2017-07-26

Hello guys :)

Can someone be very kind and send me the schemantic of the connection of the two circuits? I have troubles finishing this project!

Thank you very much!

richo2711 (author)MeriS32017-07-27

Hi, don't waste your time either your money. I built it and doesn't work. If you still need the circuit I will be glad to provide it.

MeriS3 (author)richo27112017-08-07

Thank you for the quick reply. If you have it please send it to me, the code too so I can do something about it to make it work somehow because I really needed it! Thank you!

richo2711 (author)MeriS32017-08-09

I have the schematic ready, please send me your email. You will find the code below step # 17

Hussain Asghar (author)2017-07-18

code plzzz

KaranP40 (author)2017-06-21

can anyone help me with the code for using gps module for autonomous navigation of quadcopter

maryjaz (author)2017-03-06

​im making this project and i just realized how does it land? it's my first project. please help me, i really need this.
is the landing with another app?

용관김1 (author)maryjaz2017-03-10

I`m planning on making this too, does it really work? I hope so

maryjaz (author)용관김12017-03-12

somehow, mine seem to have a problem but i don't know what might be wrong. i thought it was done, i plugged it in and only one motor moved.

I'm looking forward to the second version :D

iCensurated (author)maryjaz2017-05-08

don't... the motors wont spin cause the controller only can handle 2 and u have 4.. and the code is just wrong

용관김1 (author)maryjaz2017-03-13

And I also can`t wait to see second version. I hope it will be uploaded soon. köszönöm! Imetomi

Imetomi (author)용관김12017-03-13

You are very welcome!! It will be uploaded by 1st of May. Do you speak my language?? :)

용관김1 (author)maryjaz2017-03-13

What about Ultrasonic sensor? does it also work too?

용관김1 (author)maryjaz2017-03-13

One out of Four? It doesn`t seem to fly at all. It is because of Motor driver?

Imetomi (author)용관김12017-03-10

Hi guys, there will be a second version. Please wait a few weeks for that one.

maryjaz (author)Imetomi2017-03-12

thankyou for replying. :>

용관김1 (author)Imetomi2017-03-11

You`re such a really nice person to reply us. Thank you so much

hilalgorkem (author)2017-03-22

hi everyone , in our projeckt we are controlling drone's 4 motor , aslo we are using arduino nano ,L293d for PWM signals, HC-SR05 for distance controlling and bluetooth module to see datas in android phones. But we have problem with controlling the all motors. We could only two motors running. The other two of them didn't work. So we cant find the what the problem is. We tried take hc-sr05 off cause if there is a problem between sensor and motors but when hc-sr05 went out two of them were still running and the other ones were still doing nothing. Can you help us?

iCensurated (author)hilalgorkem2017-05-08

u have to use 2 l293d, 1 for 2 motors and other for the other 2 motors, i'm having the same problem but i could't even put 2 in work, only 1 with very low rpm, so now im trying to use the two l293 and i really think it will work, but this man dont say nothing about his project... im having problems with the code and i'm having problems with motors for 4 months... this man's drone dont even work so i think you guys should making some research on other drons and dont try to do this straight...

Tiến VinhĐ (author)2017-05-03

why your drone weight 108 grams, use L293D Continuous output current 600mA how fly it ??

Jack42 (author)2017-05-02

Which camera you used? Could you give me the name?

Drone44 (author)2017-04-07

I wish, he could respond a lot faster. Is anyone else having trouble downloading the app? Does anyone know what other diver there are? Also for my drone I'm using a power distribution board because the L293D motor driver IC can't handle more that 2 Amps of current. Now I would need a new driver, any suggestions?

AyoubM16 (author)2017-04-06

You forgot to post your modified code...

ajbiveira (author)2017-03-31

Hey Man.I just want to make a Drone with a Camara in it.So if u can Sent a mail to on which all things should exclude or u can mention it in an comment.Thanks.........

fouadj (author)2017-02-28

good day
anyone can advise if this motor drive could me a good choice ,please see attached link
(Naze32 SPRACINGF3 Flight Control with CF BDB Tiny Brushed Motor Driver Board)

EmzLazaro (author)2017-02-28

Hi! are you done on you Step 21? if you are. kindly post it here so that i can get any idea of what camera and micro controller have you used ? and please can you show me how did you connect the camera to the microcontroller?
Thank you for your reply in advance .

MrRobR (author)2017-02-05

In Step 6 you suggest "The L293D can drive these motors, but I recommend to use some power transistors because this chip cannot handle all the four motors at high power (more than 2 Ampers)" but I don't see any reference to transistors or how they would be connected within the electronics diagram.

Could you please explain

liftedking (author)2016-10-04

Interested in building this drone. I have one question, might be stupid but, how do you recharge the drone after use with that battery? I'm assuming its like a phone and you just plug it in the wall right?

maryjaz (author)liftedking2017-01-23

i think its with a DC
power supply.

maryjaz (author)2017-01-10

how can i add sonar sensors? i know it has something to do with using analog as digital pins, but i dont really have much knowledge about these kinds of things, its my first time. thanks!

mysticwizard (author)2017-01-08

I read your article well.
Can you update the new motor drive information, too?
Or would it be possible without a motor drive?

kumarara (author)2017-01-02

can we position the drone in desired gps position.

kumarara (author)2017-01-02

can we position the quadcopter in desired gps location

rjkorn (author)2016-12-30

just got all the parts together. on the bench it seems fine. Multi wii shows tilt etc..

Now I have to try that phone app and then make a motor driver.

I'm going with 4 mosfet's. Did you decide on a better driver yet?

samayaraj (author)2016-12-29

Its very nicely built near 100 gms. Well done.

RodriM2 (author)2016-12-28

I'm really confused because I've read everywhere that the L293D is supposed to be used with two motors. How is it used for four motors?

Sirol1297 (author)2016-12-28

Grazie mille di questo bellissimo progetto, ma vorrei chiederti, come vorresti collegare i transistor TiP122?

ShivamA29 (author)2016-12-07

How are you controlling the drone ? I mean the height and directions.

WannaDuino (author)2016-11-20

again no video

i see a quad in the air, with the props NOT spinning


CarlosRodrigo (author)2016-11-12

Code does not seem to work. It is the default code you uploaded, not the correct code for it to follow your phone. Would appreciate it a lot if you could share it

lujo70707 (author)2016-10-31

What motor driver do you recommend me to use

ChotiP (author)2016-10-24

I am working on this project could you please share your code with me.

jf20 (author)2016-10-09

would it be useful to add two ultrasonic sensors for a wider field of view

About This Instructable




Bio: Hi, I'm Tamas (Thomas), a 17 years old Hungarian guy. My hobby started more than 10 years ago. I learn electronics, physics, programming, IoT ... More »
Add instructable to: