Numpy数组—Array
Numpy的主要对象是多维数组。它是一个由元素(通常是数字)构成的表,所有元素的类型相同。维度的数量称为数组的阶(rank),数组的大小是一个由整型数构成的元组,可以描述数组不同维度上的大小。
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。
re 模块使 Python 语言拥有全部的正则表达式功能。
compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。
re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。
本章节主要介绍Python中常用的正则表达式处理函数。
Pitch/Yaw/Roll的区别
机体坐标系:固定在飞行器上的坐标系,一般沿机身方向为X轴,沿机翼方向为Y轴,垂直机身方向为Z轴,
下面说的旋转都是指沿机体坐标系。
Pitch:俯仰,将物体绕Y轴旋转,表现出来的动作就是机头向上仰或者向下俯冲。
Yaw:航向,将物体绕Z轴旋转,表现出来的动作就是飞行器在绕中心旋转,航向改变。
Roll:横滚,将物体绕X轴旋转,表现出来的动作就是飞行器两边晃动。
内存管理是一个系统基本组成部分, FreeRTOS 中大量使用到了内存管理,比如创建任务、信号量、队列等会自动从堆中申请内存。用户应用层代码也可以 FreeRTOS 提供的内存管理函数来申请和释放内存,
有上图可以看出,锂电池充电电流和电压是动态变化的,这是由锂电池本身的化学物质决定的。所以需要根据锂电池本身的充电特性来配置充电IC的性能,以达到正确,安全,高效的使用锂电池。日常表述中的“锂电池充电电流”是针对锂电池在充电过程中所处快速充电阶段的充电电流而言的,作为一个动态的过程,锂电池最理想充电电流实际上是分为三个阶段的。常用锂电池充电IC如TP4012A、TP8052、TP8056,本文最后处有部分介绍。
几种不同充电状态的性能描述
锂离子电池的充电过程可以分为四个阶段:涓流充电(低压预充)、恒流充电、恒压充电以及充电终止。
锂电池充电器的基本要求是特定的充电电流和充电电压,从而保证电池安全充电。增加其它充电辅助功能是为了改善电池寿命,简化充电器的操作,其中包括给过放电的电池使用涓流充电、电池电压检测、输入电流限制、充电完成后关断充电器、电池部分放电后自动启动充电等。
从 v8.2.0 版本开始, FreeRTOS 新增了任务通知(Task Notifictions)这个功能,可以使用任务通知来代替信号量、消息队列、事件标志组等这些东西。使用任务通知的话效率会更高,本章我们就来学习一下 FreeRTOS 的任务通知功能,本章分为如下几部分:
定时器可以说是每个 MCU 都有的外设,有的 MCU 其定时器功能异常强大,比如提供 PWM、输入捕获等功能。但是最常用的还是定时器最基础的功能——定时,通过定时器来完成需要周期性处理的事务。 MCU 自带的定时器属于硬件定时器,不同的 MCU 其硬件定时器数量不同,因为要考虑成本的问题,FreeRTOS 也提供了定时器功能,不过是软件定时器,软件定时器的精度肯定没有硬件定时器那么高,但是对于普通的精度要求不高的周期性处理的任务来说够了。当 MCU 的硬件定时器不够的时候就可以考虑使用 FreeRTOS 的软件定时器。
使用信号量来同步的话任务只能与单个的事件或任务进行同步。有时候某个任务可能会需要与多个事件或任务进行同步,此时信号量就无能为力了。 FreeRTOS 为此提供了一个可选的解决方法,那就是事件标志组。
在没有操作系统的时候两个应用程序进行消息传递一般使用全局变量的方式,但是如果在使用操作系统的应用中用全局变量来传递消息就会涉及到“资源管理”的问题。FreeRTOS对此提供了一个叫做“队列”的机制来完成任务与任务、任务与中断之间的消息传递。
空闲任务是 FreeRTOS 必不可少的一个任务,其他 RTOS 类系统也有空闲任务,比如 uC/OS。看名字就知道,空闲任务是处理器空闲的时候去运行的一个任务,当系统中没有其他就绪任务的时候空闲任务就会开始运行,空闲任务最重要的作用就是让处理器在无事可做的时候找点事做,防止处理器无聊,因此,空闲任务的优先级肯定是最低的。当然了,实际上肯定不会这么浪费宝贵的处理器资源, FreeRTOS 空闲任务中也会执行一些其他的处理。
很多应用场合对于空耗的要求很严格,比如长期无人照看的数据采集仪器,可穿戴设备等。其实很多 MCU 都有相应的低功耗模式,以此来降低设备运行时的功耗,进行裸机开发的时候就可以使用这些低功耗模式。但是现在我们要使用操作系统,因此操作系统对于低功耗的支持也显得尤为重要,这样硬件与软件相结合,可以进一步降低系统的功耗。这样开发也会方便很多,毕竟系统已经原生支持低功耗了,我们只需要按照系统的要求来做编写相应的应用层代码即可。 FreeRTOS 提供了一个叫做 Tickless 的低功耗模式,