找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2966|回复: 1
打印 上一主题 下一主题
收起左侧

STM32单片机四轴飞行器控制系统(硬件PCB、程序源码)

[复制链接]
跳转到指定楼层
楼主
本作品设计的是小型四轴飞行器,采用一体化的设计思路,就是机身和处理器板作为一个整体,小型四轴器的处理器使用STM32F103芯片,传感器使用MPU6050,接收板使用STM32F4 Discovery开发板,使用IIC总线的方式与处理器连接;遥控板上面使用NRF24L01无线芯片,通过上位机利用自己定义的协议来完成小型四轴飞行器的姿态显示和控制;采用空心杯电机和两对正反桨,电池使用4.1V的锂电池;整个系统的电源控制部分采用662K稳压芯片,这样可以确保供电的稳定性,保证系统稳定可靠的运行。

Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)


单片机源程序如下:
  1. /* Includes ------------------------------------------------------------------*/
  2. #include "stm32f10x.h"
  3. #include "BSP/BSP.H"
  4. #include "app/uart/uart1.h"
  5. #include "app/rc/rc.h"
  6. #include "BSP/ultrasonic.H"
  7. #include "bsp/tim.h"

  8. //#include "STM32_I2C.h"
  9. /*
  10. TIM3
  11. TIM1
  12. */

  13. extern void i2cInit(void);

  14. //#define CLI()      __set_PRIMASK(1)  
  15. //#define SEI()      __set_PRIMASK(0)
  16. ////////////////////////////////////////////////////////////////////////////////
  17. //extern void Tim7_Init(u16 period_num);//用于精确延时

  18. void SYS_INIT(void)
  19. {
  20.         //MCO_INIT();                        //时钟输出初始化 2.4G 时钟
  21.         //LED_INIT();                        //LED初始化
  22.         //LED_FLASH();                //LED闪亮
  23.         Tim3_Init(500);        //1000=1MS,500=0.5MS
  24.         //Tim7_Init(500);        //1000=1MS,500=0.5MS
  25.        
  26.         Moto_Init();                //电机初始化
  27.         //Uart1_Init(500000);
  28.         Spi2_Init();
  29.         Nvic_Init();                //中断初始化
  30.         Nrf24l01_Init(MODEL_TX2,40);
  31.         if(Nrf24l01_Check())        Uart1_Put_String("FLY_NRF24L01 IS OK !\r\n");
  32.         else                                                                         Uart1_Put_String("FLY_NRF24L01 IS NOT OK !\r\n");

  33.         i2cInit();                        //I2c初始化
  34.         MPU6050_Init();
  35.         //Ultrasonic_Init();

  36.         ADC1_Init();//电压检测初始化
  37.         FLASH_Unlock();//模拟EEROM初始化
  38.         EE_INIT();
  39.         EE_READ_ACC_OFFSET();
  40.         EE_READ_GYRO_OFFSET();
  41.         EE_READ_PID();
  42. }
  43. ////////////////////////////////////////////////////////////////////////////////
  44. int main(void)
  45. {
  46.         SYS_INIT_OK=0;
  47.         SYS_INIT();
  48.         SYS_INIT_OK=1;
  49.         while (1)
  50.         {                             
  51.                
  52.         }
  53. }
  54. ////////////////////////////////////////////////////////////////////////////////
复制代码

所有资料51hei提供下载:
程序源码.7z (279.18 KB, 下载次数: 56)
硬件设计.zip (819.17 KB, 下载次数: 49)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:650512 发表于 2019-11-27 09:12 | 只看该作者
你好朋友,你这个还不错,给我需要的不太一样,可以交流下吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表