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 ****************************************/

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐