笔记本无电池锁功耗
8b964abdcbe4167494dfe5c8bfb76b0869e90686022ef342a659427b57a83d18b4a17b9e7e003f927a8c5053bf96f23fe92221124f44ceb05524e52735f837326f910a0177047f7f267a940690da31523235923eee987004822b06c649fa0fa04a857b775bd645f642da1c1e09b7a8aa94d539521627820d995a9c17a6bf824f111e8ead96b6bca321a650ad75a055e21f3723619697487a86734e5eb30a19afdc84fcf7e29053b65fcfe38f8bb12f47c7b9f5b4e57b429995c3923fe2c51cfe7c296346eec4e4ee466c2f774efe4aa537718bb4b24362f7123bff75cc3974b2888b84b0f67fdbbd99867ea15e91c760b61e66c0904e8590c ...
笔记本自动关机故障
8b964abdcbe4167494dfe5c8bfb76b0869e90686022ef342a659427b57a83d1865430694b08a4f463c466ad692f1f9fa475d96b5695dd67425b401891094ad3f7dd8d33f12b99f3ec918aa636eda352cb53d3642b1dcca5cf415dfca5109ba688f002a9a094f2d79955b902af3f9bb994d474bc77014d481ab7074d09ec9acfeab366d5fc41bbd6881f5099592ba61c86dd59b8bdaa6e4b40673c5a8621288b9ac06c8a9795298d1b182ebb0d45a2dd7247c67ee8ed648d674efc0a1d4ea6abebb7e60577f90d57b3bb1f4a0aea312b397ea3616bf0e93db6173588595e324ef4b214ef4ca36af63fee7f8b704d7d05928de00e5670247611 ...
轨迹规划
轨迹规划介绍最近在搞大学的最后一门课设,其中一个项目内容是“仿真演示导弹击落飞行目标的过程”,要为地对空导弹设计追踪算法,为飞行目标设计机动规避算法并且进行对抗。其中飞行器的的参数如下:
高度5-20km
飞行速度400-800m/s,速度大小不变
机动转向最大速度为0.1rad/s
不考虑飞行目标垂直方向机动
飞机规避导弹按照最大角速度转向时,因为速度大小不变,就相当于一个匀速圆周运动,可以用物理方法或几何方法来实现画圆。
几何方法当初想使用几何方法其实是对条件理解错了😂,以为机动转向最大速度是飞行器绕外部一点旋转的角速度,查了资料才发觉其实应该是偏航角速度。但无论如何,用几何方法模拟圆周运动还是很简单的。照着下面公式代入就行。
$$x_1 = x_0 + r * cos(\alpha)$$$$y_1 = y_0 + r * sin(\alpha)$$
物理方法由于不考虑飞行目标垂直方向机动,只在二维平面上运动,所以只用 x、y 两个轴就可以表示飞行器的坐标。由于飞机的转向速度受限,用 $\theta$ 来表示飞行器的速度方向,则其运 ...
链接库
链接库库文件库文件中每个目标文件存储的代码,并非完整的程序,而是一个个实用的功能模块。例如,C 语言库文件提供有大量的函数(如 scanf()、printf()、strlen() 等),C++ 库文件不仅提供有使用的函数,还有大量事先设计好的类(如 string 字符串类)。库文件的产生,极大的提高了程序员的开发效率,因为很多功能根本不需要从 0 开发,直接调取包含该功能的库文件即可。并且,库文件的调用方法也很简单,以 C 语言中的 printf() 输出函数为例,程序中只需引入 <stdio.h> 头文件,即可调用 printf() 函数。头文件和库文件最大的区别在于:
头文件只存储变量、函数或者类等这些功能模块的声明部分;
库文件才负责存储各模块具体的实现部分;
头文件和库文件相结合的访问机制,最大的好处在于,有时候我们只想让别人使用自己实现的功能,并不想公开实现功能的源码,就可以将其制作为库文件,这样用户获取到的是二进制文件,而头文件又只包含声明部分,这样就实现了“将源码隐藏起来”的目的,且不会影响用户使用。库文件只是一个统称,代指的是一类压缩包,它们都包含有功能 ...
gcc & python
gcc & python报错python 调用 dll 和 so 文件失败。报错内容:OSError: [WinError 193] %1 不是有效的 Win32 应用程序
解决生成的 dll 是32位,环境的 python 是64位。Anaconda 重新配置环境解决问题。
Anaconda 32位 python 环境配置
创建新的虚拟环境
切换到要修改的环境下
修改配置123set CONDA_FORCE_32BIT=1conda activate new_env_win32conda config --env --set subdir win-32
gcc使用在桌面上创建一个 add.c 文件文件内容如下所示:
12345678#include <stdio.h>int my_add(int a,int b){ int temp; temp = a + b; return temp;}
然后打开cmd切换到桌面目录
12345cd .\desktop生成 sogcc add.c -shared -o add.so ...
OpenCV-学习
OpenCV-学习
OpenCV-VS2019环境配置
OpenCV-VS2019环境配置环境变量配置
右键此电脑选中属性
选择高级系统设置
选择环境变量
双击【Path】
点击新建,输入opencv安装路径
依次确定返回
VS2019配置
创建新项目
选择空项目
填好位置和项目名称
源文件添加 mian.cpp
依次选择【视图】–>【其他窗口】–>【属性管理器】
Debug x86 改为 x64
找到 OpenCV 安装的后的文件夹 D:\OpenCV\opencv\build\x64\vc15\bin,将下面3个文件复制到 C:\Windows\System32 文件夹里。
回到 VS【属性管理器】,右键点击 Debug | x64,选择【添加新项目属性表】,输入任意名称
双击新建的属性表,依次选择【通用属性】–>【VC++目录】–>【包含目录】,点击【包含目录】右侧的向下箭头,选择【编辑】
点击如下图红框所示位置
点击右侧的…按钮,选择 D:\OpenCV\opencv\build\include 和 D:\OpenCV\opencv\build\include\opencv2 这两个路径,点击确定
和上 ...
蓝牙
蓝牙概述结构蓝⽛是⼀种短距通信系统,其关键特性包括鲁棒性、低功耗、低成本等。蓝⽛系统分为两种不同的技术:经典蓝⽛ (Classic Bluetooth) 和蓝⽛低功耗 (Bluetooth Low Energy)。ESP32 ⽀持双模蓝⽛,即同时⽀持经典蓝⽛和蓝⽛低功耗。从整体结构上,蓝⽛可分为控制器 (Controller) 和主机 (Host) 两⼤部分:
控制器包括 PHY、Baseband、Link Controller、Link Manager、Device Manager、HCI 等模块,⽤于硬件接⼝管理、链路管理等等;
主机包括了 L2CAP、SMP、SDP、ATT、GATT、GAP 以及各种规范,构建了向应⽤层提供接⼝的基础,⽅便应⽤层对蓝⽛系统的访问。
主机可以与控制器运⾏在同⼀个宿主上,也可以分布在不同的宿主上。ESP32 蓝牙主机与控制器关系结构图如下所示。
运行环境ESP-IDF 的默认运⾏环境为双核 FreeRTOS,ESP32 的蓝⽛可按照功能分为多个任务 (task) 运⾏,不同任务的优先级也有不同,其中优先级最⾼的为运⾏控制器的任务。控制器任务 ...
ESP32中断Bug
ESP32中断Bug特性浮点运算在中断内进行浮点运算会自动复位。在官方文档可以查到。官方文档描述如下:ESP-IDF FreeRTOS implements Lazy Context Switching for FPUs. In other words, the state of a core’s FPU registers are not immediately saved when a context switch occurs. Therefore, tasks that utilize float must be pinned to a particular core upon creation. If not, ESP-IDF FreeRTOS will automatically pin the task in question to whichever core the task was running on upon the task’s first use of float. Likewise due to Lazy Context Switching, only i ...
ESPIDF-UART
ESPIDF-UART概述嵌入式应用通常要求一个简单的并且占用系统资源少的方法来传输数据。通用异步收发传输器 (UART) 即可以满足这些要求,它能够灵活地与外部设备进行全双工数据交换。ESP32 芯片中有 3 个 UART 控制器可供使用,并且兼容不同的 UART 设备。另外,UART 还可以用作红外数据交换 (IrDA) 或 RS-485 调制解调器。UART 是一种以字符为导向的通用数据链,可以实现设备间的通信。异步传输的意思是不需要在发送数据上添加时钟信息。这也要求发送端和接收端的速率、停止位、奇偶校验位等都要相同,通信才能成功。一个典型的 UART 帧开始于一个起始位,紧接着是有效数据,然后是奇偶校验位(可有可无),最后是停止位。ESP32 上的 UART 控制器支持多种字符长度和停止位。另外,控制器还支持软硬件流控和 DMA,可以实现无缝高速的数据传输。开发者可以使用多个 UART 端口,同时又能保证很少的软件开销。
流控机制概念在两个设备正常通信时,由于处理速度不同,就存在这样一个问题,有的快,有的慢,在某些情况下,就可能导致丢失数据的情况。如台式机与单片机之间的通讯 ...