Help With My Motor Controller Circuit Diagram
Connecting the motor from the transistor's Emitter to ground is not good because you lose a lot of voltage. Firstly, the Pi only puts out 3.3V. Secondly, the TIP102 is a Darlington transistor which internally has two Base-Emitter junctions in series that drop at least 1.2V. Therefore the motor will only get 3.3V - 1.2V = 2.1V. The other 2.9V appears across the Collector-Emitter junction and is wasted.

        

For lowest loss you should connect the the motor from V+ to the transistor's Collector, and the Emitter to ground. You should also put a resistor in series with the Base to limit I/O current (a 1k&ohm; resistor would allow about 2mA through, which is enough to switch 1A). This configuration decouples I/O and Base-Emitter voltages from the output, and also allows you to use a higher voltage motor battery. Collector-Emitter voltage drop is reduced to about 0.8V at 1A.

For even lower loss you could replace the TIP102 with a MOSFET, which can have extremely low Drain-Source resistance, and its Gate doesn't draw any current so output is not limited by I/O drive current (however you do need a FET which turns on fully at 3.3V). The IRLML2502 is a popular FET that drops ~0.1V at 2A with 2.5V Gate drive.  

To control motor speed you use PWM, which switches the motor on and off rapidly to create a lower average voltage. One problem with this is that the motor's inductance will try to keep the current flowing when switched off, creating a voltage spike that wastes energy and can damage the transistor. A fast switching diode should be wired across the motor to recirculate the current and prevent voltage spikes. 

If the I/O pin is floating on power up then the FET may partially turn on and run the motor before your program gains control. to prevent this you can wire a 'pull down' resistor from Gate to ground.      

The final circuit looks like this:-







simulate this circuit &ndash; Schematic created using CircuitLab

However the Pi itself may not be a good choice for your application. For good stabilization you need a fast feedback loop with accurate high frequency PWM, but the Pi only has 2 hardware PWM channels. Perhaps you could just run two motors to test your initial code, then port it to a more capable platform for the working drone.