10151-基于STM32单片机的无人机飞控系统的设计(详细设计说明书+原理图+PCB+matlab仿真+源代码)
·
10151-基于STM32单片机的无人机飞控系统的设计(详细设计说明书+原理图+PCB+matlab仿真+源代码)
功能需求:
基于matlab模型开发无人机飞控系统
硬件设计,原理图,PCB,源代码
姿态控制
资料摘要:
本设计从软件和硬件不同方面研究无人机飞行控制系统和操作系统的原理,介绍了单片机对无人机飞控系统的算法操作,重点介绍STM32类型单片机在无线无人机开发方面的流程,完成了PCB原理图设计以及进行单片机建模仿真测试。对硬件进行了选型,选择了STM32单片机芯片,主控采用STM32F411CEU,姿态传感器采用mpu925x九轴传感器,气压传感器采用LPS22BH。利用Matlab、simulink等仿真软件进行了无人机升降、定点定高,俯仰和翻滚,舵机保持水平等系统仿真,进行了调试和性能测试。本设计具有成本低、事故代价低、结构简单和量产率高等优势,通过Si24R1无线模块与控制器进行了2.4 G无线通信,实现了即时有效地接收控制器指令,并通过串级PID算法进行了姿态控制,从而在空间中实现了自由移动。实现了无人机稳定飞行。
资料包含:
1、原理图工程文件
2、maltab仿真工程文件
3、源代码工程文件
4、详细设计说明书-18984字
5、流程图visio文件
等等等











/* Define to prevent recursive inclusion ---------------------------------------------------*/
#ifndef __BOARDCONFIG_H
#define __BOARDCONFIG_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes --------------------------------------------------------------------------------*/
/* Exported types --------------------------------------------------------------------------*/
/* Exported constants ----------------------------------------------------------------------*/
#define KS_HW_BOARD_NAME "QCopterFCs"
#define KS_HW_MCU_NAME "STM32F411CE"
#define KS_HW_CLOCK_SOUCE_HSE
//#define KS_HW_USE_CLOCK_SOUCE_HSI
//#define KS_HW_UART_HAL_LIBRARY
//#define KS_HW_SPI_HAL_LIBRARY
/* -------- LED and KEY */
#define LED_R_PIN GPIO_PIN_13
#define LED_R_GPIO_PORT GPIOC
#define LED_R_Set() __GPIO_SET(LED_R_GPIO_PORT, LED_R_PIN)
#define LED_R_Reset() __GPIO_RST(LED_R_GPIO_PORT, LED_R_PIN)
#define LED_R_Toggle() __GPIO_TOG(LED_R_GPIO_PORT, LED_R_PIN)
#define LED_G_PIN GPIO_PIN_14
#define LED_G_GPIO_PORT GPIOC
#define LED_G_Set() __GPIO_SET(LED_G_GPIO_PORT, LED_G_PIN)
#define LED_G_Reset() __GPIO_RST(LED_G_GPIO_PORT, LED_G_PIN)
#define LED_G_Toggle() __GPIO_TOG(LED_G_GPIO_PORT, LED_G_PIN)
#define LED_B_PIN GPIO_PIN_15
#define LED_B_GPIO_PORT GPIOC
#define LED_B_Set() __GPIO_SET(LED_B_GPIO_PORT, LED_B_PIN)
#define LED_B_Reset() __GPIO_RST(LED_B_GPIO_PORT, LED_B_PIN)
#define LED_B_Toggle() __GPIO_TOG(LED_B_GPIO_PORT, LED_B_PIN)
#define KEY_PIN GPIO_PIN_2
#define KEY_GPIO_PORT GPIOB
#define KEY_Read() (__GPIO_READ(KEY_GPIO_PORT, KEY_PIN) == KEY_PIN)
/* -------- UART Serial */
#define SERIAL_MAX_TXBUF 16
#define SERIAL_MAX_RXBUF 16
#define SERIAL_UARTx USART1
#define SERIAL_UARTx_CLK_ENABLE() __HAL_RCC_USART1_CLK_ENABLE()
#define SERIAL_UARTx_IRQn USART1_IRQn
#define SERIAL_UARTx_IRQn_PREEMPT 0x0F
#define SERIAL_UARTx_IRQn_SUB 1
#define SERIAL_UARTx_FORCE_RESET() __HAL_RCC_USART1_FORCE_RESET()
#define SERIAL_UARTx_RELEASE_RESET() __HAL_RCC_USART1_RELEASE_RESET()
#define SERIAL_TX_PIN GPIO_PIN_6
#define SERIAL_TX_GPIO_PORT GPIOB
#define SERIAL_TX_AF GPIO_AF7_USART1
#define SERIAL_RX_PIN GPIO_PIN_7
#define SERIAL_RX_GPIO_PORT GPIOB
#define SERIAL_RX_AF GPIO_AF7_USART1
#define SERIAL_BAUDRATE 115200
#define SERIAL_BYTESIZE UART_WORDLENGTH_8B
#define SERIAL_STOPBITS UART_STOPBITS_1
#define SERIAL_PARITY UART_PARITY_NONE
#define SERIAL_HARDWARECTRL UART_HWCONTROL_NONE
#define SERIAL_MODE UART_MODE_TX_RX
#define SERIAL_OVERSAMPLE UART_OVERSAMPLING_16
/* -------- Inertial Sensor */
#define IMU_MAX_TXBUF 32
#define IMU_MAX_RXBUF 32
#define IMU_SPIx SPI1
#define IMU_SPIx_CLK_ENABLE() __HAL_RCC_SPI1_CLK_ENABLE()
#define IMU_SPIx_IRQn SPI1_IRQn
#define IMU_SPIx_IRQn_PREEMPT 0x0F
#define IMU_SPIx_IRQn_SUB 1
#define IMU_SPIx_FORCE_RESET() __HAL_RCC_SPI1_FORCE_RESET()
#define IMU_SPIx_RELEASE_RESET() __HAL_RCC_SPI1_RELEASE_RESET()
#define IMU_SPIx_SPEED_HIGH SPI_BAUDRATEPRESCALER_8
#define IMU_SPIx_SPEED_LOW SPI_BAUDRATEPRESCALER_256
#define IMU_SCK_PIN GPIO_PIN_5
#define IMU_SCK_GPIO_PORT GPIOA
#define IMU_SCK_AF GPIO_AF5_SPI1
#define IMU_SDO_PIN GPIO_PIN_6
#define IMU_SDO_GPIO_PORT GPIOA
#define IMU_SDO_AF GPIO_AF5_SPI1
#define IMU_SDI_PIN GPIO_PIN_7
#define IMU_SDI_GPIO_PORT GPIOA
#define IMU_SDI_AF GPIO_AF5_SPI1
#define IMU_CSM_PIN GPIO_PIN_4
#define IMU_CSM_GPIO_PORT GPIOA
#define IMU_CSM_H() __GPIO_SET(IMU_CSM_GPIO_PORT, IMU_CSM_PIN)
#define IMU_CSM_L() __GPIO_RST(IMU_CSM_GPIO_PORT, IMU_CSM_PIN)
#define IMU_CSB_PIN GPIO_PIN_10
#define IMU_CSB_GPIO_PORT GPIOB
#define IMU_CSB_H() __GPIO_SET(IMU_CSB_GPIO_PORT, IMU_CSB_PIN)
#define IMU_CSB_L() __GPIO_RST(IMU_CSB_GPIO_PORT, IMU_CSB_PIN)
/* Exported functions ----------------------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif
/*************************************** END OF FILE ****************************************/
更多推荐

所有评论(0)