MiniFly四轴飞行器之部分系统及电源分析
最近硬件四轴很火,了解了很久,还是选择了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四轴飞行器之部分系统及电源分析相关推荐
- 四轴无人机那些事 MiniFly源码分析 2 系统及电源分析
版权声明:本文为博主原创文章,转载请备注转载地址!!!. https://blog.csdn.net/super828/article/details/80037571 最近硬件四轴很火,了解了很久, ...
- 四旋翼飞行器之入坑两年心路历程和毕设总结(转载)
摘自:https://blog.csdn.net/weixin_36773706/article/details/89320224 用来学习,包括里面有讲到不同线程的设计,叫定时器时分复用,这个我在& ...
- 启航篇——四旋翼飞行器之入坑两年心路历程和毕设总结
笔者今年大四毕业,由于之前参加比赛及准备考研,没有时间总结这两年来做四旋翼飞行器的心得体会.现在借毕业设计这个契机,想把这件事做了,算是两年的收尾工作,也是个新的开始. 先从介绍这两年的经历开始吧.开 ...
- 四旋翼飞行器基本知识(四旋翼飞行器结构和原理+四轴飞行diy全套入门教程)
转载两篇日志: 第一篇<四旋翼飞行器结构和原理> 第二篇<四旋翼飞行diy全套入门教程> =========================================== ...
- 四轴飞行前检查及解锁
一 飞行前的检查及注意事项 1.飞控的校正遥控器中,每个通道与MP中显示的通道校正条是否一致,遥控器控制杆摇动的方向是否正确. 2.飞控的校正是否已经完成了全部校正. 3.电机的的安装序号是否与飞控O ...
- 四轴飞行玩具的姿态解算的原理1.转动和姿态
前言: 曾经试图自己做四轴无人机.这里是一些相关的笔记. 无人机的几大难点: 1.电机控制(无刷直流电机PWM控制) 2.姿态获取(三轴加速度,陀螺仪,气压,超声,姿态融合,姿态解算) 3.姿态控制 ...
- 四轴飞行diy全套入门教程(从最基础的开始)
首先声明本人也是菜鸟,此教程就是从一个菜鸟的角度来讲解,现在论坛上的帖子都突然冒很多名词出来,又不成体系,我自己开始学的时候往往一头雾水,相信很多新手也一样.所以在这个帖子里面,我都会把自己遇到的疑惑 ...
- minifly轨迹飞行
minifly轨迹飞行 校内赛 1. 首先来看看笔者的校内赛题目: 设计并制作一架四旋翼自主飞行器.飞行区域俯视图和立体图分别如下图 1和图 2 所示. 要求: (1)四旋翼自主飞行器(下简称飞行 ...
- 车载系统的电源状态及迁移
车载系统的电源状态及迁移 在车载系统开发过程中,无论是软件开发还是硬件开发,都会涉及到"电源状态迁移",这个是一个最基础的知识,但是往往在实际工作中,即使有过几年车载开发经验的人, ...
最新文章
- ZooKeeper Watch Java API浅析getChildren
- AUP2敏捷统一过程之一:序言及降低过程的总体拥有成本
- js中null和undefined的区别
- 学生管理系统——基于双向循环链表
- 数据库入门开发案例,真的是入门级别的!!看了不后悔。
- c语言 sprintf_s 参数 通配符,Rust教程(翻译).doc
- 《JavaScript语言精粹(修订版)》试读
- 第九周项目3-输出星号图
- 安卓手机无需获取root权限安装桌面版Linux操作系统(非常详细,无计算机基础都可以)
- win10专业版修改家庭计算机,win10家庭版升级专业版的最完美的方法_win10专业版技巧...
- ffmpeg命令下载MP4视频)
- 移动终端3D地图应用普及或带来app产业心蓝海
- 机器学习案例:孕妇吸烟与胎儿健康
- ora-12505错误
- UE4之Spline
- box-shadow:单边阴影与多边阴影
- 更改jupyter的默认打开路径失败,Exception while loading config file C:\.\.jupyter\jupyter_notebook_config.py
- IBM IEEE 1394黄色感叹号
- 区块链基本原理,Part-3:委托权益证明
- 营销DMP的漫谈指北