Arduino-based micro-helicopter minimal flight control system and design method thereof
Patent Information
- Application Number
- CN202611100663.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-23
- Publication Date
- 2026-10-09
AI Technical Summary
[0006]本发明的目的在于提供一种基于Arduino的微小型直升机极简飞控系统及其设计方法,以解决上述背景技术中提出的问题,即现有直升机飞控普遍存在硬件复杂、体积重量大、功耗高、开发成本高的缺陷,无法满足微小型直升机轻量化、低成本、易开发的核心需求
[0029]本发明核心仅由1块Arduino UNO开发板与1个MPU-6050模块构成,元器件数量少,电路连接简单,整体硬件成本不足传统开源直升机飞控的十分之一,显著降低微小型直升机的飞控配置门槛。
Smart Images

Figure CN122883949A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of aircraft flight control technology, specifically to a minimalist flight control system for micro-helicopters based on Arduino and its design method. Background Technology
[0002] With their unique advantages of vertical takeoff and landing, hovering, and low-altitude, low-speed maneuverability, unmanned helicopters possess irreplaceable application value in scenarios such as inspection in confined spaces, close-range aerial photography, and scientific research and teaching. As aircraft miniaturization trends continue, the development of 100-gram-class micro-helicopters places extremely stringent limitations on the size, weight, and power consumption of their flight control systems.
[0003] Among the current mainstream open-source flight control solutions for unmanned helicopters, the Pixhawk series offers comprehensive functions and wide platform compatibility. However, it employs a dual-processor architecture and complex peripheral circuits, resulting in a large number of hardware components, large size, and high cost. Its power consumption and weight are difficult to adapt to micro-helicopters. The Rotorflight flight control system is optimized for helicopter scenarios, but it still relies on dedicated flight control hardware, has a large software system, and a high barrier to secondary development. Moreover, its overall hardware specifications still exceed the carrying capacity of micro-helicopters. In addition, most commercial micro-helicopters use closed-source dedicated flight control systems, which are costly and cannot be modified or expanded by users, hindering scientific research, teaching, and customized development.
[0004] The Arduino platform, with its open-source and easy-to-use characteristics, is widely used in the field of multirotor flight control. However, there are few simplified flight control solutions for helicopter configurations, and a complete control system and standardized design method adapted to swashplate servos and main and tail rotor motors are lacking, making it difficult to directly reuse in multirotor flight control solutions. In summary, existing helicopter flight control systems generally suffer from hardware complexity, large size and weight, high power consumption, and high development costs, failing to meet the core requirements of lightweight, low-cost, and easy-to-develop micro-helicopters.
[0005] To address the aforementioned problems, we propose a simplified flight control system for micro-sized helicopters based on Arduino and its design method. Summary of the Invention
[0006] The purpose of this invention is to provide a simplified flight control system for micro-sized helicopters based on Arduino and its design method, so as to solve the problems mentioned in the background art, namely, the existing helicopter flight control systems generally have the defects of complex hardware, large size and weight, high power consumption and high development cost, which cannot meet the core requirements of lightweight, low cost and easy development for micro-sized helicopters.
[0007] To achieve the above objectives, the present invention provides the following technical solution:
[0008] On the one hand, a simplified flight control design method for micro-sized helicopters based on Arduino is provided, including the following steps:
[0009] Step S1: Set up the Arduino compilation environment, write the flight control law code for the miniature helicopter in the Arduino IDE, and upload it to the Arduino UNO development board after successful compilation;
[0010] Step S2: Connect the MPU-6050 module to the Arduino UNO development board via the I2C interface, configure the measurement magnification of the accelerometer and gyroscope, and write a reading program to realize real-time acquisition of sensor data;
[0011] Step S3: Connect the flight control core consisting of Arduino UNO and MPU-6050 to the control mechanism and remote controller receiver of the micro helicopter respectively, and use PWM signal as a unified output form to realize closed-loop self-stabilizing control of the helicopter control mechanism.
[0012] Preferably, step S1 specifically includes:
[0013] Step S11: Download the Arduino IDE development environment from the official Arduino platform, and write the core flight control code and test code in C language, which includes attitude filtering, PID control law, remote control signal acquisition and PWM output;
[0014] Step S12: Connect the Arduino UNO development board to the host computer via USB data cable, match the corresponding serial port number in the IDE, perform the compilation operation to check for code errors, and upload the flight controller firmware to the flash memory of the Arduino UNO development board after successful compilation.
[0015] Preferably, in step S2, the measurement magnification of the accelerometer can be selected as ±2g, ±4g, ±8g, or ±16g, and the measurement magnification of the gyroscope can be selected as ±250° / s, ±500° / s, ±1000° / s, or ±2000° / s.
[0016] The appropriate magnification parameters are selected based on the expected flight maneuver range of the micro-helicopter to cover the entire flight attitude change range while ensuring measurement accuracy.
[0017] Preferably, in step S2, the SDA pin of the MPU-6050 module is connected to the SDA port of the Arduino UNO, the SCL pin is connected to the SCL port of the Arduino UNO, and the module is powered by the 5V and GND ports of the Arduino UNO.
[0018] Preferably, in step S3, the control mechanism of the micro-helicopter includes one main rotor motor, three main rotor swashplate servos, and one tail rotor motor; the flight control core controls the above control mechanism through five PWM output ports respectively, wherein the main rotor motor and tail rotor motor receive PWM signals through an electronic speed controller, and the swashplate servo is directly driven by receiving PWM signals.
[0019] Preferably, in step S3, at least four channels of the remote controller receiver are connected to the digital I / O ports of the Arduino UNO to receive remote control commands for roll, pitch, throttle, and yaw. The flight control core combines the remote control commands with the attitude data collected by the MPU-6050, calculates the PID control law, and outputs a PWM control signal to realize the helicopter's attitude self-stabilization adjustment.
[0020] On the other hand, a simplified flight control system for a micro helicopter based on Arduino is constructed using the aforementioned simplified flight control design method for a micro helicopter based on Arduino. The system includes an Arduino UNO main control unit, an MPU-6050 attitude acquisition unit, a remote control signal receiving unit, a PWM drive output unit, and a power supply unit.
[0021] The MPU-6050 attitude acquisition unit communicates with the Arduino UNO main control unit via an I2C bus to acquire the helicopter's three-axis angular velocity and three-axis acceleration data in real time.
[0022] The remote control signal receiving unit is connected to the digital input port of the Arduino UNO main control unit, and is used to receive control commands from an external remote control and transmit them to the main control unit;
[0023] The PWM drive output unit is connected to the PWM output port of the Arduino UNO main control unit and is used to output pulse width modulation control signals to the helicopter's main rotor motor, swashplate servo and tail rotor motor.
[0024] The Arduino UNO main control unit has built-in flight control firmware, which is used to filter and calculate attitude data, perform PID control calculations in conjunction with remote control commands, and output the corresponding control quantity to the PWM drive output unit.
[0025] Preferably, the MPU-6050 attitude acquisition unit integrates a 3-axis MEMS gyroscope, a 3-axis MEMS accelerometer, and a digital motion processor, and supports configurable adjustment of the accelerometer range and the gyroscope range.
[0026] Preferably, the remote control signal receiving unit includes at least four PWM signal input channels, corresponding to roll, pitch, throttle, and yaw control channels, respectively, and connected to digital I / O ports 8, 9, 10, and 11 of the Arduino UNO.
[0027] Preferably, the PWM drive output unit includes 5 PWM output channels, which are connected to ports 3, 4, 5, 6 and 7 of the Arduino UNO. Among them, 3 outputs are connected to the swashplate servo, 1 output is connected to the main rotor motor via an ESC, and 1 output is connected to the tail rotor motor via an ESC.
[0028] Compared with the prior art, the beneficial effects of the present invention are:
[0029] The core of this invention consists of only one Arduino UNO development board and one MPU-6050 module. The number of components is small, the circuit connection is simple, and the overall hardware cost is less than one-tenth of that of traditional open-source helicopter flight controllers, which significantly reduces the threshold for flight control configuration of micro-sized helicopters.
[0030] The invention’s minimalist hardware architecture makes the flight control core weigh less than 10g, with an operating current of less than 50mA. Its small size allows it to be directly embedded in a helicopter fuselage weighing less than 100g, without adding any extra burden to the aircraft’s payload and range.
[0031] This invention is developed based on the general Arduino IDE environment and C language. It does not require a complex embedded toolchain, allowing developers to get started quickly and expand functions such as altitude hold and flight path according to their needs, adapting to scientific research, teaching and customized scenarios.
[0032] The flight control firmware of this invention integrates second-order low-pass filtering and three-channel PID closed-loop control, and combines MPU-6050 attitude data to achieve attitude self-stabilization, effectively reducing the difficulty of operating micro-small helicopters. Attached Figure Description
[0033] Figure 1 This is a schematic diagram of the method steps of the present invention;
[0034] Figure 2 This is a schematic diagram of the system architecture of the present invention;
[0035] Figure 3 This is a schematic diagram of the main rotor mechanism of a micro-sized helicopter in an embodiment of the present invention;
[0036] Figure 4 This is a diagram of the interface for writing flight control law code in the Arduino IDE environment in an embodiment of the present invention;
[0037] Figure 5 This is a schematic diagram showing the connection between the MPU-6050 module and the Arduino UNO development board in an embodiment of the present invention;
[0038] Figure 6 This is a block diagram of the overall hardware connection structure of the flight control system in an embodiment of the present invention. Detailed Implementation
[0039] The following will refer to the appendices in the embodiments of the present invention. Figure 1-6 The technical solutions in the embodiments of the present invention are clearly and completely described herein. Obviously, the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of the present invention.
[0040] like Figure 1-6 As shown, a minimalist flight control system for a micro helicopter based on Arduino includes an Arduino UNO main control unit, an MPU-6050 attitude acquisition unit, a remote control signal receiving unit, a PWM drive output unit, and a power supply unit.
[0041] The Arduino UNO main control unit uses the ATmega328P main control chip with a main frequency of 16MHz. It has 14 digital I / O ports (6 of which support PWM output) and integrates a USB to serial port circuit, supporting USB programming and power supply.
[0042] The MPU-6050 attitude acquisition unit communicates with the Arduino UNO main control unit via the I2C bus to acquire three-axis angular velocity and three-axis acceleration data of the helicopter in real time. The MPU-6050 attitude acquisition unit integrates a 3-axis MEMS gyroscope, a 3-axis MEMS accelerometer and a digital motion processor, supports configurable adjustment of the accelerometer range and gyroscope range, and can output raw angular velocity and acceleration data for sensing the helicopter's flight attitude.
[0043] The remote control signal receiving unit is connected to the digital input port of the Arduino UNO main control unit to receive control commands from an external remote control and transmit them to the main control unit. The remote control signal receiving unit contains at least 4 PWM signal input channels, corresponding to roll, pitch, throttle, and yaw control channels, and is connected to the Arduino UNO's digital I / O ports 8, 9, 10, and 11.
[0044] The PWM drive output unit is connected to the PWM output port of the Arduino UNO main control unit and is used to output pulse width modulation control signals to the helicopter's main rotor motor, swashplate servo, and tail rotor motor. The PWM drive output unit contains 5 PWM output channels, which are connected to ports 3, 4, 5, 6, and 7 of the Arduino UNO. Among them, 3 outputs are connected to the swashplate servo, 1 output is connected to the main rotor motor via an ESC, and 1 output is connected to the tail rotor motor via an ESC.
[0045] The Arduino UNO main control unit has built-in flight controller firmware, which is used to filter and calculate attitude data, perform PID control calculations in conjunction with remote control commands, and output the corresponding control quantity to the PWM drive output unit.
[0046] A simplified flight control design method for a miniature helicopter based on Arduino, comprising the following steps:
[0047] Step S1: Set up the Arduino compilation environment, write the flight control law code for the miniature helicopter in the Arduino IDE, and upload it to the Arduino UNO development board after successful compilation;
[0048] Step S11: Download the Arduino IDE development environment from the official Arduino platform, and write the core flight control code and test code in C language, which includes attitude filtering, PID control law, remote control signal acquisition and PWM output;
[0049] Step S12: Connect the Arduino UNO development board to the host computer via USB data cable, match the corresponding serial port number in the IDE, perform the compilation operation to check for code errors, and upload the flight controller firmware to the flash memory of the Arduino UNO development board after the compilation is successful.
[0050] The core flight control code is written in the IDE, and the code is divided into five main functional modules:
[0051] Sensor data reading module: Reads raw data from the MPU-6050 register via the I2C protocol and converts it into actual physical quantities;
[0052] Second-order low-pass filter module: Configures filter coefficients to reduce noise in gyroscope angular rate data and suppresses helicopter rotor vibration interference;
[0053] PID control module: Incremental PID algorithms are designed for the roll, pitch, and yaw channels to convert attitude errors into control increments;
[0054] Remote signal acquisition module: Reads the receiver's PWM pulse width through an external interrupt and analyzes roll, pitch, throttle, and heading commands;
[0055] PWM output module: Superimposes the remote control reference signal with the PID control increment and converts it into a standard PWM signal for output to the actuator.
[0056] Connect the Arduino UNO to the computer using a USB data cable. In the IDE, select the development board model "Arduino UNO" and match the corresponding serial port number. Click "Verify" to compile the code, check for errors, and then click "Upload" to burn the flight controller firmware to the development board's flash memory.
[0057] Step S2: Connect the MPU-6050 module to the Arduino UNO development board via the I2C interface, configure the measurement magnification of the accelerometer and gyroscope, and write a reading program to realize real-time acquisition of sensor data;
[0058] Hardware connection: Connect the SDA pin of the MPU-6050 module to the SDA port of the Arduino UNO, and the SCL pin to the SCL port of the Arduino UNO. The module is powered by the 5V and GND ports of the Arduino UNO. Connect the VCC pin of the MPU-6050 module to the 5V port of the Arduino UNO, the GND pin to the GND port, the SDA pin to the A4 port (SDA function), and the SCL pin to the A5 port (SCL function) to complete the I2C communication link setup.
[0059] Measurement range configuration: Taking into account the flight characteristics of the Langyu M1 helicopter, the accelerometer range is set to ±4g to balance attitude measurement accuracy and maneuver overload range; the gyroscope range is set to ±500° / s to cover the range of attitude angular rate changes and ensure angular resolution.
[0060] Data verification: Write a serial port output program to view acceleration and angular velocity data through the IDE serial port monitor to verify that the sensor communication is normal and the range conversion is accurate.
[0061] Step S3: Connect the flight control core consisting of Arduino UNO and MPU-6050 to the control mechanism and remote controller receiver of the micro helicopter respectively, and use PWM signal as a unified output form to realize closed-loop self-stabilizing control of the helicopter control mechanism.
[0062] Control mechanism connection: Connect PWM ports 3, 4, and 5 of the Arduino UNO to the signal pins of the three swashplate servos respectively. Connect port 6 to the main rotor brushless motor via the main rotor ESC, and connect port 7 to the tail rotor brushless motor via the tail rotor ESC. The positive and negative terminals of the servos and ESCs are directly connected to the power battery to ensure sufficient drive power. The control mechanism of the micro helicopter includes one main rotor motor, three main rotor swashplate servos, and one tail rotor motor. The flight control core controls the above control mechanisms through five PWM output ports. The main rotor motor and tail rotor motor receive PWM signals through the electronic speed controller, and the swashplate servos are directly driven by the PWM signals.
[0063] Receiver Connection: Connect the CH1 (roll), CH2 (pitch), CH3 (throttle), and CH4 (heading) channels of the frequency-paired remote controller receiver to the 8, 9, 10, and 11 digital I / O ports of the Arduino UNO, respectively, to capture the PWM pulse width via interrupts; connect at least four channels of the remote controller receiver to the digital I / O ports of the Arduino UNO to receive remote control commands for roll, pitch, throttle, and heading; the flight control core combines the remote control commands with the attitude data collected by the MPU-6050, calculates the PWM control signal after PID control law, and outputs the PWM control signal to achieve helicopter attitude self-stabilization adjustment.
[0064] Ground testing and test flight debugging: After removing the rotor, power on the helicopter and operate the remote control to verify that the servo motor and motor response is consistent with the command; observe the attitude data and PID output through the serial port to verify that the self-stabilization correction logic is normal; after confirming that there are no errors, install the rotor and gradually adjust the PID parameters until the helicopter achieves stable self-hovering.
[0065] Although embodiments of the invention have been shown and described, it will be understood by those skilled in the art that various changes, modifications, substitutions and alterations can be made to these embodiments without departing from the principles and spirit of the invention, the scope of which is defined by the appended claims and their equivalents.
Claims
1. A simplified flight control design method for a miniature helicopter based on Arduino, characterized in that, Includes the following steps: Step S1: Set up the Arduino compilation environment, write the flight control law code for the miniature helicopter in the Arduino IDE, and upload it to the Arduino UNO development board after successful compilation; Step S2: Connect the MPU-6050 module to the Arduino UNO development board via the I2C interface, configure the measurement magnification of the accelerometer and gyroscope, and write a reading program to realize real-time acquisition of sensor data; Step S3: Connect the flight control core consisting of Arduino UNO and MPU-6050 to the control mechanism and remote controller receiver of the micro helicopter respectively, and use PWM signal as a unified output form to realize closed-loop self-stabilizing control of the helicopter control mechanism.
2. The simplified flight control design method for a micro-sized helicopter based on Arduino according to claim 1, characterized in that, Step S1 specifically includes: Step S11: Download the Arduino IDE development environment from the official Arduino platform, and write the core flight control code and test code in C language, which includes attitude filtering, PID control law, remote control signal acquisition and PWM output; Step S12: Connect the Arduino UNO development board to the host computer via USB data cable, match the corresponding serial port number in the IDE, perform the compilation operation to check for code errors, and upload the flight controller firmware to the flash memory of the Arduino UNO development board after successful compilation.
3. The simplified flight control design method for a micro-sized helicopter based on Arduino according to claim 1, characterized in that, In step S2, the measurement magnification of the accelerometer can be selected as ±2g, ±4g, ±8g, or ±16g, and the measurement magnification of the gyroscope can be selected as ±250° / s, ±500° / s, ±1000° / s, or ±2000° / s. The appropriate magnification parameters are selected based on the expected flight maneuver range of the micro-helicopter to cover the entire flight attitude change range while ensuring measurement accuracy.
4. The simplified flight control design method for a micro-sized helicopter based on Arduino according to claim 1, characterized in that, In step S2, the SDA pin of the MPU-6050 module is connected to the SDA port of the Arduino UNO, and the SCL pin is connected to the SCL port of the Arduino UNO. The module is powered by the 5V and GND ports of the Arduino UNO.
5. The simplified flight control design method for a micro-sized helicopter based on Arduino according to claim 1, characterized in that, In step S3, the control mechanism of the micro-helicopter includes one main rotor motor, three main rotor swashplate servos, and one tail rotor motor. The flight control core controls the above control mechanism through five PWM output ports respectively. The main rotor motor and tail rotor motor receive PWM signals through an electronic speed controller, and the swashplate servo is directly driven by receiving PWM signals.
6. The simplified flight control design method for a micro-sized helicopter based on Arduino according to claim 1, characterized in that, In step S3, at least four channels of the remote controller receiver are connected to the digital I / O ports of the Arduino UNO to receive remote control commands for roll, pitch, throttle, and yaw. The flight control core combines the remote control commands with the attitude data collected by the MPU-6050, calculates the PID control law, and outputs a PWM control signal to achieve self-stabilizing adjustment of the helicopter's attitude.
7. A simplified flight control system for a miniature helicopter based on Arduino, characterized in that, The system is constructed using the Arduino-based minimalist flight control design method described in any one of claims 1-6. The system includes an Arduino UNO main control unit, an MPU-6050 attitude acquisition unit, a remote control signal receiving unit, a PWM drive output unit, and a power supply unit. The MPU-6050 attitude acquisition unit communicates with the Arduino UNO main control unit via an I2C bus to acquire the helicopter's three-axis angular velocity and three-axis acceleration data in real time. The remote control signal receiving unit is connected to the digital input port of the Arduino UNO main control unit, and is used to receive control commands from an external remote control and transmit them to the main control unit; The PWM drive output unit is connected to the PWM output port of the Arduino UNO main control unit and is used to output pulse width modulation control signals to the helicopter's main rotor motor, swashplate servo and tail rotor motor. The Arduino UNO main control unit has built-in flight control firmware, which is used to filter and calculate attitude data, perform PID control calculations in conjunction with remote control commands, and output the corresponding control quantity to the PWM drive output unit.
8. A simplified flight control system for a miniature helicopter based on Arduino according to claim 7, characterized in that, The MPU-6050 attitude acquisition unit integrates a 3-axis MEMS gyroscope, a 3-axis MEMS accelerometer, and a digital motion processor, and supports configurable adjustment of the accelerometer range and the gyroscope range.
9. A simplified flight control system for a miniature helicopter based on Arduino according to claim 7, characterized in that, The remote control signal receiving unit includes at least four PWM signal input channels, corresponding to roll, pitch, throttle, and yaw control channels, respectively, and is connected to the 8th, 9th, 10th, and 11th digital I / O ports of the Arduino UNO.
10. A simplified flight control system for a miniature helicopter based on Arduino according to claim 7, characterized in that, The PWM drive output unit includes 5 PWM output channels, which are connected to ports 3, 4, 5, 6 and 7 of the Arduino UNO. Among them, 3 outputs are connected to the swashplate servo, 1 output is connected to the main rotor motor via ESC, and 1 output is connected to the tail rotor motor via ESC.