自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(311)
  • 资源 (10)
  • 收藏
  • 关注

原创 IMU&GNSS的误差状态卡尔曼滤波器(ESKF)的后续处理

IMU&GNSS的误差状态卡尔曼滤波器(ESKF)的后续处理)

2024-04-21 23:45:00 285

原创 IMU&GNSS的误差状态卡尔曼滤波器(ESKF)---更新过程

在传统的EKF中,可以直观地对观测方程线性化,求出观测方程相对与状态变量的雅克比矩阵,进而更新卡尔曼滤波器。假设一个抽象的传感器能够对状态变量产生观测,其观测方程为抽象的h,那么可以写为。其它几项都是平凡的,只有旋转部分,因为 delat theat 定义为R的右乘,用右乘的BCH即可。下面就是如何计算H,大部分的观测数据是对名义状态的观测。其中,K为卡尔曼增益,Ppred为预测的协方差矩阵,最后的P为修正后的协方差矩阵。其中z为观测数据,v为观测噪声,V为该噪声的协方差矩阵。

2024-04-21 23:00:00 217

原创 IMU&GNSS 误差状态卡尔曼滤波器(ESKF)的离散时间的ESKF 运动方程与运动过程

至此,完成了在ESKF中进行IMU递推的过程,对应卡尔曼滤波器中的状态方程。为了让滤波器收敛,需要外部的观测对卡尔曼滤波器进行修正,也是所谓的组合导航。当然组合导航的方法很多,从传统的EKF,到本节介绍的ESKF,以及预积分和图优化都可以用于组合导航中。连续时间的噪声项可以视为随机过程的能量谱密度,而离散时间下的噪声 变量就是我们日常看到的随机变量。其中前两式的 delta t 是由于积分关系导致的,后两式则和 离散时间下的 零偏游走的标准差公式 一致。其中w为噪声,按照前面的定义,Q应该为。

2024-04-20 23:30:00 293

原创 IMU&GNSS的误差状态卡尔曼滤波器(ESKF)的数学模型

F中需要计算旋转矩阵R相对于某个扰动的导数,而在不引入张量的情况下,是无法表达矩阵对向量导数的形式的。不过这样的矩阵形式将含有很多的零项,相比上式并不会有明显简化,所以先使用这种散开的公式。滤波器仅需考虑误差状态如何运动,如何观测,最后如何滤波,和名义状态的关系不大。为更新量,应是位于切空间中的矢量,中间的加法应为流形与切空间指数映射的广义加法。不光是平移和旋转,把所有的状态都用误差状态来表达,这就是典型ESKF的做法。把噪声的处理放到误差状态变量中,可以认为名义状态变量的方程是不含噪声的。

2024-04-19 23:15:00 594 1

原创 IMU状态预积分的雅克比矩阵

最后讨论预积分相对状态变量的雅克比矩阵。由于预积分测量已经归纳了IMU在短时间内的读数,因此残差相对于状态变量的雅克比矩阵推导则简单。接下来,考虑速度项的雅克比矩阵。速度项与vi,vj呈线性关系,可以得到。由于速度的残差项与它只相差一个负号,所以只需要在下式中加个负号。然后,它们的关系大多为线性关系,雅克比矩阵可以得出。,在某一步迭代时,当前估计出来的零偏修正为。,而当前修正得到的预积分旋转观测量为。为了求导,又在上面两项的基础上加上了。零偏的残差在下面基础上加负号。假设优化初始的零偏为。

2024-04-12 23:15:00 1008

原创 IMU状态预积分模型归结至图优化

因此,如果把预积分残差看作同一个,那么它与状态顶点关联应该如下图所示,除了预积分因子本身,还需要约束IMU的随机游走,因此在IMU的不同时刻,零偏会存在一个约束因子。前面定义了预积分的测量模型,推导了它的噪声模型和协方差矩阵,并说明了随着零偏量的更新,预积分应该怎么更新。在IMU相关的应用中,通常把每个时刻的状态建模为包含旋转、平移、线速度、IMU零偏的变量,构成状态变量集合。在优化过程中,如果对i时刻的零偏进行更新,那么预积分观测量也应该线性地发生改变,从而影响残差项的取值。,但它们显然是和残差相关的。

2024-04-11 23:00:00 257

原创 IMU状态预积分零偏的更新

整理上面的雅克比矩阵,得到更整齐的结果由于后面四种雅克比矩阵本身就是累加的,总结成递推形式。

2024-04-10 23:15:00 946

原创 IMU状态预积分噪声模型

上面推导了,如何从j-1时刻将噪声项递推至j时刻。也可以将上面格式整理成矩阵形式。将三个噪声项合并成同一个:并且把IMU的零偏噪声定义为那么从ηij−1ηij−1​至ηijηij​的递推式可以写作:其中,系数矩阵Aj−1Bj−1Aj−1​Bj−1​为矩阵形式更清晰地显示了几个噪声项之间累积的递推关系。

2024-04-09 23:30:00 875

原创 IMU状态预积分测量模型

通过上面的推导,定义了预积分的三个观测量和它们的噪声。将它们代回最初的定义式,可以简单写为从公式中可以看到预积分的几大优点。它的左侧是可以通过传感器数据积分得到的观测量,右侧是根据状态变量推断出来的预测值,再加上(或乘上)一个随机噪声。左侧变量的定义方式非常适合程序实现。一方面,△Rik△Rik​可以通过IMU的读数得到,△vik△vik​可以由k时刻IMU的读数加上△Rik△Rik​算得,而△pik△p​ik​。

2024-03-25 10:09:41 560

原创 IMU状态预积分的定义

旋转R平移p角速度w线速度v加速度a这些变量的运动学关系可以写成:在t到tΔttΔt时间内,对上式进行欧拉积分,可得:其中,角速度和加速度可以被IMU测量到,但受噪声与重力影响。令测量值为ωω和a\tilde{a}a,则有噪声与零偏与重力的测量公式如下:其中bgb_{g}bg​和bab_{a}ba​为陀螺仪和加速度零偏ηg\eta_{g}ηg​和ηa\eta_{a}ηa​为测量的高斯噪声用测量值表示t到tΔ。

2024-03-24 08:09:15 772

原创 地理坐标系与UTM坐标系转换并进行gazebo测试

全球卫星导航系统(Global Navigation Satelite System,GNSS),简称卫星导航,是室外机器人定位的一个主要信息来源。GNSS定位原理:GNSS通过测量自身与地球周围各卫星的距离来确定自身位置,与卫星的距离主要通过测量时间间隔来确定。一个卫星信号从卫星上发出时,带有一个发送时间,而GNSS接收机接收到它时,有一个接收时间,通过比较时间间隔,就能估算各卫星离我们的距离。GNSS本质上可以看成一种高精度的授时系统。

2024-03-22 22:08:32 848

原创 惯导系统静止初始化方法与代码实现并在gazebo中测试

在进行GPS加IMU的组合导航或者Lidar加IMU的组合导航时,用EKF或者ESKF的滤波方法时,需要提前知道惯导的测量噪声、初始零偏、重力方向等信息。此时就需要对惯导进行一个初始化,来获取以上信息,常见的初始化方法为静止初始化法。例如无人机在上电后要进行自检,此时需要无人机静止一段时间,通过指示灯来提示自检是否完毕,在静止的过程中,则对惯导进行了初始化的方法。

2024-03-17 22:27:44 874

原创 卫星导航 | 坐标系---地理坐标系与UTM坐标系

全球卫星导航系统(Global Navigation Satelite System,GNSS),简称卫星导航,是室外机器人定位的一个主要信息来源。GNSS定位原理:GNSS通过测量自身与地球周围各卫星的距离来确定自身位置,与卫星的距离主要通过测量时间间隔来确定。一个卫星信号从卫星上发出时,带有一个发送时间,而GNSS接收机接收到它时,有一个接收时间,通过比较时间间隔,就能估算各卫星离我们的距离。GNSS本质上可以看成一种高精度的授时系统。

2024-03-07 23:15:00 997

原创 惯性导航 | 航迹推算与gazebo仿真

下面是在imu数据一帧一帧进来,如何实现状态的积分,在使用的时候则是来一帧IMU数据,调用一次这个函数。与真实的IMU 噪声模型差别很大,用rotors的imu插件,可以尽可能模拟IMU噪声模型。在gazebo中的IMU插件对惯导的噪声描述很简单,仅有一个高斯噪声可以设置。声明一个用与 IMU积分的类 ,来实现 短时间内的航迹推算。更新时间,用于判断下一帧数据,在时间间隔上是否满足要求。所以需要在IMU的回调函数里面,赋值上面的结构体数据。然后将数据加入,在该函数内部,即完成航迹的推算。

2024-03-06 20:45:00 1621

原创 惯性导航 | 测量方程中的噪声模型与离散时间噪声模型

随机过程可以从直观上理解,由于高斯过程的协方差随时间变得越来越大,IMU的测量值会随着采样时间变长而变得更加不准确,因此采样频率越高的IMU,其精度也会相对较高。若从高一级的系统层面来看,角速度就是角度的导数,加速度又是速度的导数,所以IMU的测量噪声,也可以解释为角度的随机游走和速度的随机游走。由于各种各样的原因,即使在车辆静止时,IMU的角速度和加速度输出也不一定形成均值为0的白噪声,而是带有一定的。这个偏移量是由IMU内部的机电测量装置导致的,有些IMU的偏移较小,也有的会比较大。

2024-03-05 23:30:00 862

原创 惯性导航 | 运动学---运动模型

注意另一种情况:如果不把IMU放在车辆中心,当车辆方式旋转和平移时,IMU还应该测量到由车辆旋转导致的离心力、科氏力和角加速度,最后体现在加速度计的读数上。,但其实现手段非常多样,从低成本的MEMS(Micro-electromechanical Systems,微0087机电)惯性导航到昂贵的光纤陀螺,它们的作用都是精确的测量物体的惯性。它们的体积很小,安装在设备内部,假设IMU静止,由于物体加速度的测量实际上是通过测量受力情况得到的,这个IMU应该受到一个反向的支撑力,所以应该测到一个-g方向的重力。

2024-02-28 23:45:00 856

原创 数学公式中的向量右上角的尖型帽子含义

由角速度矢量积分得到旋转矩阵,该公式称为转动的基本方程式。向量转换为反对称矩阵的符号。从而叉积可以写成下面的形式。有的写法也放在矢量的头上。反对称矩阵到向量的映射。

2024-02-28 14:34:29 501

原创 Eigen:Vector3d 变量初始化遇到的问题

首先在类的声明内部,是不能声明完,再给变量赋值的,不管是 Eigen:Vector3d 类型变量,还是float 类型变量。在函数内部是可以 Eigen::Vector3d a(0,0,1) 这样初始化的。Eigen:Vector3d 这个类型的 变量 在类定义内初始化遇到的。也就是说如果希望什么的变量有初始值,那么需要在声明时就进行初始化。如何需要初始化 要以下面的这样方式。可能是把a当做函数了?

2024-02-22 09:25:53 499

原创 Linux系统CPU性能分析工具总结

CPU 使用率是单位时间内 CPU 使用情况的统计,以百分比的方式展示。CPU 使用率是最常用来描述系统CPU 性能的指标。Linux 作为一个多任务操作系统,将每个 CPU 的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,因此造成多任务同时运行的错觉。

2023-12-30 23:30:00 1012

原创 Linux系统中CPU使用率概念与计算方法

CPU 使用率是单位时间内 CPU 使用情况的统计,以百分比的方式展示。CPU 使用率是最常用来描述系统CPU 性能的指标。Linux 作为一个多任务操作系统,将每个 CPU 的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,因此造成多任务同时运行的错觉。

2023-12-29 23:15:00 1130

原创 点云格式转换:将 ros PointCloud2格式数据转为livox CustomMsg格式

览沃科技有限公司(Livox)成立于2016年。为了革新激光雷达行业,Livox致力于提供高性能、低成本的激光雷达传感器。通过降低使用门槛和生产成本,Livox将激光雷达技术集成到更多产品和应用之中,从而为自动驾驶、智慧城市、测绘、移动机器人等行业带来创新性改变。Livox产品已销往包括美国、加拿大、中国、日本和欧盟在内的 26 个国家和地区。面向智能移动机器人市场,Livox 推出最新一代 3D 激光雷达 Mid-360,开启混合固态激光雷达 360° 立体感知新篇章。

2023-12-15 23:45:00 1944 4

原创 点云 ros PointCloud2格式与livox CustomMsg格式介绍

bit5 bit4 回波序号 : 00: 第 0 个回波 01: 第 1 个回波 10: 第 2 个回波 11: 第 3 个回波 由于Livox Avia 采用同轴光路,即使外部无被测物体,其内部的光学系统也会产生一个回波,该回波记为第 0个回波。随后,若激光出射方向存在可被探测的物体,则最先返回系统的激光回波记为第 1 个回波,随后为第 2个回波,以此类推。bit3 bit2 基于强度的点属性: 00:正常点 01:回波能量噪点置信度高 10:回波能量噪点置信度中 11:保留位。

2023-12-09 22:45:00 1226

原创 激光SLAM:Faster-Lio 算法编译与测试

Faster-LIO是基于FastLIO2开发的。FastLIO2是开源LIO中比较优秀的一个,前端用了增量的kdtree(ikd-tree),后端用了迭代ESKF(IEKF),流程短,计算快。Faster-LIO则把ikd-tree替换成了iVox,顺带优化了一些代码逻辑,实现了更快的LIO。在典型的32线激光雷达中可以取得100-200Hz左右的计算频率,在固态雷达中甚至可以达到1000-2000Hz,能够达到FastLIO2的1.5-2倍左右的速度。当然具体数值和计算平台相关。

2023-12-01 23:30:00 2528

原创 在gazebo里搭建一个livox mid360 + 惯导仿真平台测试 FAST-LIO2

livox mid360 在官网一直没有货,在gazebo里可以仿真该雷达形式的点云。但是其只发布雷达的数据,没有imu数据,实际的雷达是可以发布既有雷达也有imu的数据的运行 FAST-LIO2 也需要雷达和惯导的数据本篇博客在gazebo中搭建了一个有livox mid360 和惯导的平台,并成功运行了FAST-LIO2。

2023-11-30 22:45:00 2894 18

原创 livox 半固体激光雷达 gazebo 仿真 | 更换环境与雷达型号

览沃科技有限公司(Livox)成立于2016年。为了革新激光雷达行业,Livox致力于提供高性能、低成本的激光雷达传感器。通过降低使用门槛和生产成本,Livox将激光雷达技术集成到更多产品和应用之中,从而为自动驾驶、智慧城市、测绘、移动机器人等行业带来创新性改变。Livox产品已销往包括美国、加拿大、中国、日本和欧盟在内的 26 个国家和地区。面向智能移动机器人市场,Livox 推出最新一代 3D 激光雷达 Mid-360,开启混合固态激光雷达 360° 立体感知新篇章。

2023-11-28 23:30:00 1172

原创 livox 半固体激光雷达 gazebo 仿真 | 安装与验证

览沃科技有限公司(Livox)成立于2016年。为了革新激光雷达行业,Livox致力于提供高性能、低成本的激光雷达传感器。通过降低使用门槛和生产成本,Livox将激光雷达技术集成到更多产品和应用之中,从而为自动驾驶、智慧城市、测绘、移动机器人等行业带来创新性改变。Livox产品已销往包括美国、加拿大、中国、日本和欧盟在内的 26 个国家和地区。面向智能移动机器人市场,Livox 推出最新一代 3D 激光雷达 Mid-360,开启混合固态激光雷达 360° 立体感知新篇章。

2023-11-27 22:45:00 1452 1

原创 激光雷达与惯导标定 | Lidar_IMU_Init : 重点参数 与 核心代码

LI-Init是一种鲁棒、实时的激光雷达惯性系统初始化方法。该方法可校准激光雷达与IMU之间的时间偏移量和外部参数,以及重力矢量和IMU偏差。我们的方法不需要任何目标或额外的传感器,特定的结构化环境,先前的环境点图或初始值的外在和时间偏移。

2023-11-24 23:15:00 1402

原创 livox 半固体激光雷达 gazebo 仿真 | 更换仿真中mid360雷达外形

览沃科技有限公司(Livox)成立于2016年。为了革新激光雷达行业,Livox致力于提供高性能、低成本的激光雷达传感器。通过降低使用门槛和生产成本,Livox将激光雷达技术集成到更多产品和应用之中,从而为自动驾驶、智慧城市、测绘、移动机器人等行业带来创新性改变。Livox产品已销往包括美国、加拿大、中国、日本和欧盟在内的 26 个国家和地区。面向智能移动机器人市场,Livox 推出最新一代 3D 激光雷达 Mid-360,开启混合固态激光雷达 360° 立体感知新篇章。

2023-11-24 17:50:28 1533 1

原创 激光雷达与惯导标定 | Lidar_IMU_Init : 编译

LI-Init是一种鲁棒、实时的激光雷达惯性系统初始化方法。该方法可校准激光雷达与IMU之间的时间偏移量和外部参数,以及重力矢量和IMU偏差。我们的方法不需要任何目标或额外的传感器,特定的结构化环境,先前的环境点图或初始值的外在和时间偏移。

2023-11-23 22:45:00 2140

原创 依赖库:Ceres-solver-2.0.0安装

Ceres Solver是谷歌开源的C++非线性优化库,能够解决有约束或无约束条件下的非线性最小二乘问题。2010年之后大量的运用在谷歌的产品开发中,尤其在谷歌开源的cartographer中被大量的使用。ceres可以在Linux,Windows,macOS,Andrioid,IOS系统进行安装使用ceres被命名是由于高斯使用了最小二乘方法成功的预测了绕行至太阳背后的小行星ceres的位置。本篇博客在 ubuntu 20.04 环境下安装 Ceres-solver-2.0.0。

2023-11-22 22:00:00 1053

原创 C++编程基础|多级指针

在看代码时发现下面的内容显而是结构体GridNode首地址指针那么是什么?它实际上是一个这种用法不多,这里的含义之后再给出。

2023-10-13 22:15:00 627

原创 移动机器人运动规划 | 基于图搜索的Dijkstra 和 A*算法详解

Dijkstra在扩展的时候,同时考虑从n节点扩展所有可扩展节点的代价g(),如果某个节点m的代价g(m)比g(n)要小,则更新当前代价为g(m)Dijkstra的最优性保证:图运行的过程中,任何一个被扩展或者访问的节点,保证存储的代价g()值是从起点节点开始到当前节点的最小值。但是经过A节点的代价是4,所以经过A节点的路径是最优的。优先级队列:维护的是 代价函数+启发函数的 节点从小到大排序 f(n)=g(n)+h(n)可扩展的节点仅有a节点,计算f(a)=g(a)+h(a)=1+5=6。

2023-09-30 14:15:00 218

原创 ROS系统读取USB相机图像数据

usb_cam功能包简介为了丰富机器人与外界的交互方式,已经增加了与机器人的语音交互方式,不仅使机器人能够说话发声,还能听懂我们说的话,但是如果只有语音交互的话机器人就是一个盲人,无法看到这个色彩斑斓的大千世界,因此我们就需要为机器人增加视觉识别功能。

2023-09-29 22:15:00 1061

原创 移动机器人运动规划 --- 基于图搜索的A*算法

算法的逻辑找到的路径是 S直接到G ,这样的代价是5。但是经过A节点的代价是4,所以经过A节点的路径是最优的。优先级队列:维护的是 代价函数+启发函数的 节点从小到大排序 f(n)=g(n)+h(n)维护一个优先级队列,存储所有被扩展的节点,且节点按f()值的大小自动按从小到大排列。算法的演示图,每个边有个预先设置的代价g,每个节点有提前估计好的启发f。设计的启发函数为可接受的要满足:需要估计的启发值要小于等于实际的启发值。可扩展的节点仅有a节点,计算f(a)=g(a)+h(a)=1+5=6。

2023-09-28 23:30:00 230

原创 移动机器人运动规划 --- 基于图搜索的Dijkstra算法

Dijkstra在扩展的时候,同时考虑从n节点扩展所有可扩展节点的代价g(),如果某个节点m的代价g(m)比g(n)要小,则更新当前代价为g(m)Dijkstra的最优性保证:图运行的过程中,任何一个被扩展或者访问的节点,保证存储的代价g()值是从起点节点开始到当前节点的最小值。维护一个优先级队列,存储所有被扩展的节点,且节点按g()值的大小自动按从小到大排列。针对该缺点,与之对应的就是启发式搜索,例如贪心算法,根据到目标的进行一个启发式搜索。起始节点S可以扩展到子节点d\e\p,并且计算各节点的g值。

2023-09-22 21:00:00 176

原创 编译工具:CMake(八) | cmake 常用指令

用于在指定的目录运行某个程序,通过 ARGS 添加参数,如果要获取输出和返回值,可通过OUTPUT_VARIABLE 和 RETURN_VALUE 分别定义两个变量.这个指令可以帮助你在 CMakeLists.txt 处理过程中支持任何命令,比如根据系统情况去修改代码文件等等。在 cmake 生成 Makefile 的过程中,就会执行 ls 命令,如果返回 0,则说明成功执行,那么就输出 ls *.c 的结果。在 CMakeLists.txt 处理过程中执行命令,并不会在生成的 Makefile 中执行。

2023-09-20 23:00:00 295

原创 编译工具:CMake(七) | cmake 常用变量和常用环境变量

隐式定义显式定义隐式定义的例子:就是PROJECT指令,他会隐式的定义和两个变量。显式定义的例子:使用 SET 指令,就可以构建一个自定义变量了。这三个变量指代的内容是一致的,如果是in source 编译,指得就是工程顶层目录,如果是out-of-source 编译,指的是工程编译发生的目录。PROJECT_BINARY_DIR 跟其他指令稍有区别。这三个变量指代的内容是一致的,不论采用何种编译方式,都是工程顶层目录。也就是在 in source 编译时,他跟等变量一致。

2023-09-19 22:45:00 350 1

原创 编译工具:CMake(六) | 使用外部共享库和头文件

1,CMAKE_INCLUDE_DIRECTORIES_BEFORE,通过 SET 这个 cmake 变量为 on,可以将添加的头文件搜索路径放在已有路径的前面。这个指令可以用来为 target 添加需要链接的共享库,本例中是一个可执行文件,但是同样可以用于为自己编写的共享库添加共享库链接。添加非标准的共享库搜索路径,比如,在工程内部同时存在共享库和可执行二进制,在编译时就需要指定一下这些共享库的路径。hello.h 位于/usr/include/hello 目录中,并没有位于系统标准的头文件路径,

2023-09-01 22:00:00 519

原创 编译工具:CMake(五) | 静态库与动态库构建

这个问题的原因是:cmake 在构建一个新的 target 时,会尝试清理掉其他使用这个名字的库,因为,在构建 libhello.a 时,就会清理掉 libhello.so.为了回避这个问题,比如再次使用。以上面的例子,我们需要将 libhello.a, libhello.so.x 以及 hello.h 安装到系统目录,才能真正让其他人开发使用,在本例中我们将 hello 的共享库安装到/lib目录,将 hello.h 安装到/include/hello 目录。

2023-08-17 23:15:00 360

原创 编译工具:CMake(四)|安装目标文件、普通文件、脚本、目录

可用于安装一般文件,并可以指定访问权限,文件名是此指令所在路径下的相对路径。如果目录名不以/结尾,那么这个目录将被安装为目标路径下的 abc,如果目录名以/结尾,INSTALL 指令用于定义安装规则,安装的内容可以包括目标二进制、动态库、静态库以及文件、目录、脚本等。安装的需要有两种,一种是从代码编译后直接 make install 安装,一种是打包时的指定目录安装。来定义安装路径,就要写成相对路径,即不要以/开头,那么安装后的路径就是。定义了安装的路径,如果路径以/开头,那么指的是绝对路径,这时候。

2023-08-16 22:15:00 370

20200603_SmartDoor.zip c51单片机 控制 电机正转反转 模拟门的动作

通过按键模拟人 进入门和离开门 进入门 电机 正转一段时间停止 离开门反转一段时间停止 压缩包里有代码和仿真工程

2020-06-15

水温及水位采集报警.zip c51采集两路AD模拟水温及水位 控制继电器1、2 并led显示

通过adc0808采集两路ad值,c51进行数据处理, 根据水位与水温进行 继电器1、2控制 通过 led显示 和蜂鸣器 报警 压缩包里有代码和protues工程

2020-06-15

温度检测调节阈值.zip C51 单片机 检测 外界温度 按键调节阈值 报警

C51 单片机 检测 外界温度 按键调节阈值 报警 通过ADC0808 采集外界 温度 值 通过按键调解 阈值范围 单片机判断 并通过led 报警 lcd显示 压缩包里有 keil 代码和protues 工程

2020-06-15

路灯检测及报警.zip 根据白天夜晚光亮强度不同觉得是否亮路灯,并判断路灯是否损坏及报警

根据白天夜晚光亮强度不同决定是否亮路灯,并判断路灯是否损坏及报警 控制器选用C51单片机 通过ADC0808采集多了AD值 压缩包里有代码 和 protues 工程

2020-06-15

加强版红绿灯.rar

C51的控制器 加强版交通灯 南北东西方向 时间不一致 具有交通管制模式切换 可按键切换 可外部串口指令切换 具有夜间和白天 模式切换

2020-06-15

多键值输入显示.zip 多键盘输入 3*8 键盘 数码管流水显示

c51控制器 3*8键盘输入 数码管流水显示 0~F 按一个 显示对于数字,并向前移动 压缩包里有源码和protues 工程

2020-06-15

多adc采集计算.zip

通过ADC0808 进行 多路ad采集 并 显示 控制器 C51 压缩包里有源码和 protues工程

2020-06-15

波形发生器protues仿真_keil工程.zip

做的波形触发器 可出三角波 方波 正弦波 可通过 按键调解 频率战俘比 外部输入ad调节 幅值 lcd显示 压缩包里有代码和仿真工程

2020-06-15

stm32f4xx_DFP2.9.0网盘下载链接.txt

keil官网下载固件包常常失败因为是外网。 上传我常用的 stm32f4xx_DFP2.9.0 固件包,亲测可用 因资源上传220M限制,上传了百度网盘,进行了分享 下载txt后,按链接下载即可

2020-01-02

Keil.STM32F4xx_DFP.1.0.8&&Keil.STM32F1xx_DFP.2.3.0.zip

STM32固件包,官网下载经常失败。 下载后直接解压缩就行 Keil.STM32F4xx_DFP.1.0.8 Keil.STM32F1xx_DFP.2.3.0

2019-12-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除