Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Project Documentation

Arduino-Controlled Quadcopter with GPS and Wireless Communication

Image of Arduino-Controlled Quadcopter with GPS and Wireless Communication

Circuit Documentation

Summary

This document provides a detailed overview of a circuit designed to interface various components with an Arduino Pro Mini microcontroller. The circuit includes communication modules, power regulation, and motor control for brushless motors. The primary components include an Arduino Pro Mini, NRF24L01 wireless communication module, GPS NEO 6M module, MP1584EN power regulator board, a Lipo battery, multiple Electronic Speed Controllers (ESCs), MPU-6050 gyroscope and accelerometer module, and four brushless motors.

Component List

Arduino Pro Mini

  • Microcontroller board based on the ATmega328
  • Operating Voltage: 3.3V or 5V (depending on the model)
  • Digital I/O Pins: 14
  • Analog Input Pins: 8
  • Clock Speed: 8 MHz or 16 MHz

NRF24L01

  • 2.4GHz wireless transceiver module
  • Operating Voltage: 1.9-3.6V
  • Data Rate: 250kbps to 2Mbps
  • Interface: SPI

GPS NEO 6M

  • GPS module with ceramic antenna
  • Operating Voltage: 3.3-5V
  • Communication: Serial (UART)

MP1584EN Power Regulator Board

  • High-efficiency buck converter
  • Input Voltage: 4.5-28V
  • Output Voltage: 0.8-20V (adjustable)
  • Output Current: Up to 3A

Lipo Battery

  • Rechargeable lithium polymer battery
  • Typical Voltage: 3.7V per cell
  • High energy density

Electronic Speed Controller (ESC)

  • Controls the speed of brushless motors
  • Operating Voltage: Typically 6-16V
  • Output: 3-phase for brushless motors
  • Features: Battery Eliminator Circuit (BEC)

MPU-6050

  • Motion tracking device with 3-axis gyroscope and 3-axis accelerometer
  • Operating Voltage: 2.375-3.46V
  • Communication: I2C

Brushless Motor

  • 3-phase motor commonly used in drones and RC vehicles
  • Requires ESC for operation

Wiring Details

Arduino Pro Mini

  • VCC connected to power supply
  • GND connected to common ground
  • A4 (SDA) connected to MPU-6050 SDA
  • A5 (SCL) connected to MPU-6050 SCL
  • D2-D10 connected to various signal lines for ESCs and NRF24L01

NRF24L01

  • VCC (3V) connected to power supply
  • GND connected to common ground
  • CE connected to Arduino Pro Mini D7
  • CSN connected to Arduino Pro Mini D8
  • SCK connected to Arduino Pro Mini D6
  • MOSI connected to Arduino Pro Mini D5
  • MISO connected to Arduino Pro Mini D4

GPS NEO 6M

  • VCC connected to power supply
  • GND connected to common ground
  • RX connected to Arduino Pro Mini D3
  • TX connected to Arduino Pro Mini D2

MP1584EN Power Regulator Board

  • IN - connected to Lipo Battery GND and ESCs GND out
  • IN + connected to Lipo Battery VCC and ESCs 5v out
  • OUT + connected to Arduino Pro Mini VCC, MPU-6050 VCC
  • OUT - connected to Arduino Pro Mini GND, MPU-6050 GND

Lipo Battery

  • VCC connected to ESCs Battery VCC
  • GND connected to ESCs Battery GND

Electronic Speed Controller (ESC)

  • Battery VCC connected to Lipo Battery VCC
  • Battery GND connected to Lipo Battery GND
  • Signal connected to Arduino Pro Mini D2-D10 (one for each ESC)
  • 5v out connected to MP1584EN Power Regulator Board IN +
  • GND out connected to MP1584EN Power Regulator Board IN -

MPU-6050

  • VCC connected to Arduino Pro Mini VCC
  • GND connected to Arduino Pro Mini GND
  • SDA connected to Arduino Pro Mini A4
  • SCL connected to Arduino Pro Mini A5

Brushless Motor

  • L1, L2, L3 connected to corresponding M1, M2, M3 on ESC

Documented Code

Arduino Pro Mini Code (sketch.ino)

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

This code is a template for the Arduino Pro Mini. The setup() function is called once when the microcontroller is powered on or reset. The loop() function is called repeatedly and contains the main logic of the program. The user is expected to fill in these functions with the code necessary to control the connected components based on the requirements of the application.