最近硬件四轴很火,了解了很久,还是选择了MiniFly,主要还是资料多,后边可以有人讨论,不像很多就是建了个群,研究问题还是在论坛方便很多。

四轴终于拿到手,功能很强大,主要是还支持二次开发,可以研究下玩玩小四轴了

还是先从硬件入手分析下

1.系统框架

主体可以分成两个小系统,后续可以按照这个顺序分析代码

1.通信部分—基于M0和NFR51822,包括电源管理

2.控制部分—基于M4和外围传感器

image.png

2.比较关注的电源部分

电源还是比较考究,直接包含了充电功能,不用每次使用外置的充电模块(之前自制过一个充电模块,看来以后可以集成到电路里了)

按键断电功能这个比较喜欢:这个是NFR51822控制VEN_D引脚来实现断电的

上个NFR51822部分电路

image.png

开始看代码,大致看了下程序,先是监测按键状态

/*按键扫描处理*/void buttonProcess(){static unsigned int lastTick;static unsigned int pressedTick;static bool pressed = false;if (lastTick != systickGetTick()){lastTick = systickGetTick();if(pressed==false && BUTTON_READ()==BUTTON_PRESSED){pressed = true;pressedTick = systickGetTick();}else if(pressed==true){if(BUTTON_READ()==BUTTON_RELEASED)pressed = false;if ((systickGetTick()-pressedTick) > BUTTON_LONGPRESS_TICK)state = buttonLongPress;else if(BUTTON_READ()==BUTTON_RELEASED)state = buttonShortPress;}}}/*获取按键状态*/buttonEvent_e buttonGetState(){buttonEvent_e currentState = state;state = buttonIdle;return currentState;}

然后就是在主函数中进行相应的操作,先不说了

看下怎么实现电源开关的:这么最后应该F1部分还是有电的,只是消耗较少,寻求一种可以完全断电的方案??

 /*开启电源*/void pmPowerOn(void){nrf_gpio_cfg_output(UART_TX_PIN); //使能串口TXnrf_gpio_pin_set(UART_TX_PIN);nrf_gpio_cfg_output(RADIO_PAEN_PIN);// 开启无线功能nrf_gpio_pin_set(RADIO_PAEN_PIN);nrf_gpio_cfg_output(PM_VBAT_SINK_PIN);// 设置ADCnrf_gpio_pin_clear(PM_VBAT_SINK_PIN);pmStartAdc(); //开启ADC转换}
 /*关闭电源*/void pmPowerOff(void){nrf_gpio_cfg_input(UART_TX_PIN, NRF_GPIO_PIN_PULLDOWN);uartDeinit();nrf_gpio_cfg_input(STM_NRST_PIN, NRF_GPIO_PIN_PULLDOWN);nrf_gpio_pin_clear(STM_NRST_PIN);nrf_gpio_pin_clear(PM_VCCEN_PIN); //关闭 LDO使能控制脚LED_OFF();nrf_gpio_pin_clear(RADIO_PAEN_PIN); //关闭PAnrf_gpio_cfg_input(PM_VBAT_SINK_PIN, NRF_GPIO_PIN_NOPULL);NRF_POWER->SYSTEMOFF = 1UL;while(1); //进入死循环}
void pmInit(){/* STM32 电源配置 */nrf_gpio_cfg_output(PM_VCCEN_PIN);nrf_gpio_pin_set(PM_VCCEN_PIN); //使能stm32电源msDelay(100);/* STM32 复位 */nrf_gpio_cfg_output(STM_NRST_PIN);nrf_gpio_pin_clear(STM_NRST_PIN);msDelay(100);nrf_gpio_pin_set(STM_NRST_PIN);msDelay(100);nrf_gpio_cfg_input(USB_CONNECTED_PIN, NRF_GPIO_PIN_NOPULL);nrf_gpio_cfg_input(PM_CHG_STATE_PIN, NRF_GPIO_PIN_PULLUP);pmPowerOn(); //开启电源}

最后也是给大家分享一些四轴和stm32方面的资料方便后期的学习参考

四轴飞行器开发

http://www.makeru.com.cn/course/details/2986?s=45051

(stm32直流电机驱动)

http://www.makeru.com.cn/live/1392_1218.html?s=45051

(stm32串口应用)

http://www.makeru.com.cn/live/1392_1164.html?s=45051

stm32 如何用DMA搬运数据

http://www.makeru.com.cn/live/detail/1484.html?s=45051

MiniFly四轴飞行器之部分系统及电源分析相关推荐

  1. 四轴无人机那些事 MiniFly源码分析 2 系统及电源分析

    版权声明:本文为博主原创文章,转载请备注转载地址!!!. https://blog.csdn.net/super828/article/details/80037571 最近硬件四轴很火,了解了很久, ...

  2. 四旋翼飞行器之入坑两年心路历程和毕设总结(转载)

    摘自:https://blog.csdn.net/weixin_36773706/article/details/89320224 用来学习,包括里面有讲到不同线程的设计,叫定时器时分复用,这个我在& ...

  3. 启航篇——四旋翼飞行器之入坑两年心路历程和毕设总结

    笔者今年大四毕业,由于之前参加比赛及准备考研,没有时间总结这两年来做四旋翼飞行器的心得体会.现在借毕业设计这个契机,想把这件事做了,算是两年的收尾工作,也是个新的开始. 先从介绍这两年的经历开始吧.开 ...

  4. 四旋翼飞行器基本知识(四旋翼飞行器结构和原理+四轴飞行diy全套入门教程)

    转载两篇日志: 第一篇<四旋翼飞行器结构和原理> 第二篇<四旋翼飞行diy全套入门教程> =========================================== ...

  5. 四轴飞行前检查及解锁

    一 飞行前的检查及注意事项 1.飞控的校正遥控器中,每个通道与MP中显示的通道校正条是否一致,遥控器控制杆摇动的方向是否正确. 2.飞控的校正是否已经完成了全部校正. 3.电机的的安装序号是否与飞控O ...

  6. 四轴飞行玩具的姿态解算的原理1.转动和姿态

    前言: 曾经试图自己做四轴无人机.这里是一些相关的笔记. 无人机的几大难点: 1.电机控制(无刷直流电机PWM控制) 2.姿态获取(三轴加速度,陀螺仪,气压,超声,姿态融合,姿态解算)  3.姿态控制 ...

  7. 四轴飞行diy全套入门教程(从最基础的开始)

    首先声明本人也是菜鸟,此教程就是从一个菜鸟的角度来讲解,现在论坛上的帖子都突然冒很多名词出来,又不成体系,我自己开始学的时候往往一头雾水,相信很多新手也一样.所以在这个帖子里面,我都会把自己遇到的疑惑 ...

  8. minifly轨迹飞行

    minifly轨迹飞行 校内赛 1. 首先来看看笔者的校内赛题目: 设计并制作一架四旋翼自主飞行器.飞行区域俯视图和立体图分别如下图 1和图 2 所示. ​ 要求: (1)四旋翼自主飞行器(下简称飞行 ...

  9. 车载系统的电源状态及迁移

    车载系统的电源状态及迁移 在车载系统开发过程中,无论是软件开发还是硬件开发,都会涉及到"电源状态迁移",这个是一个最基础的知识,但是往往在实际工作中,即使有过几年车载开发经验的人, ...

最新文章

  1. ZooKeeper Watch Java API浅析getChildren
  2. AUP2敏捷统一过程之一:序言及降低过程的总体拥有成本
  3. js中null和undefined的区别
  4. 学生管理系统——基于双向循环链表
  5. 数据库入门开发案例,真的是入门级别的!!看了不后悔。
  6. c语言 sprintf_s 参数 通配符,Rust教程(翻译).doc
  7. 《JavaScript语言精粹(修订版)》试读
  8. 第九周项目3-输出星号图
  9. 安卓手机无需获取root权限安装桌面版Linux操作系统(非常详细,无计算机基础都可以)
  10. win10专业版修改家庭计算机,win10家庭版升级专业版的最完美的方法_win10专业版技巧...
  11. ffmpeg命令下载MP4视频)
  12. 移动终端3D地图应用普及或带来app产业心蓝海
  13. 机器学习案例:孕妇吸烟与胎儿健康
  14. ora-12505错误
  15. UE4之Spline
  16. box-shadow:单边阴影与多边阴影
  17. 更改jupyter的默认打开路径失败,Exception while loading config file C:\.\.jupyter\jupyter_notebook_config.py
  18. IBM IEEE 1394黄色感叹号
  19. 区块链基本原理,Part-3:委托权益证明
  20. 营销DMP的漫谈指北

热门文章

  1. lol全队消息怎么发_lol怎么发给所有人?教你一键设置,发送信息就
  2. 城市排水管网系统如何实现在线监测和自动预警
  3. RTC闹钟和ELAPSED_REALTIME最大的差别
  4. 第5-2课:地理信息可视化及扩展应用
  5. cephfs mds多活设置
  6. 硬盘服务器 路由器哪个好用吗,软路由好不好,优缺点有哪些?
  7. 按键控制led灯python程序_树莓派使用threading函数实现多按键控制LED灯
  8. 中国风游戏音乐的特点
  9. 自尊存在的意义和自我效能------《社会心理学》读书感悟
  10. 优秀网站源码、编程源码下载网站