当前位置: 首页 > news >正文

Android以及IoT设备传感器软件开发总结

1 传感器选型
1.1 传感器选型
6 axis:Bosch BMI160(比较差),InvenSense MPU6050(DMP),ST LSM6Dxx
Acc: Freescale MMA7450L (MicroMachined Accelerometer/MC Multi-Axis, iMX31), Kionix KXSD9, ST LIS3DH
Magnetic:AKM / ALPS / memsic
Gyro:ST,BMG160(包含FIFO模式)
Pedometer:DS3553,MMA9553L,STP201,ucomm提供计步算法
Pressure(barometer):Bosch BMP(差),Global mems

1.2 sensor hub
1.2.1 Bosch BHI160
ARC EM4 CPU.

1.2.2 Cywee CMH1000
Cywee CMH1000 sensor hub (tensilica CPU, 224KB DRAM, 336KB IRAM, SRAM 1V) is designed by Realtek, software is designed by Cywee.

1.2.3 14nm APL A39X0 ISH
ISH integrated Intel Lakemont MCU, based on Intel Pentium CPU (586), also used by Intel 32nm Quark SE C1000. ISH runs Viper RTOS. Refer to Atom-x5/x7 series processor, codenamed Cherry Trail.

2 Accelerometer
2.1 基本原理
加速度计算公式:(16bit_ADC / 32768) * 量程,16bit_ADC的最高一位是符号位,量程选项有正负2g、正负4g、正负8g、正负16g。
例如量程取正负2g,那么计算公式是 (((signed short)16bit_ADC) / 0x8000) * (2 * 9.8)

低通滤波:多个采样值取平均值

Sensors 报点时的时间戳单位是ms。

2.2 如何判断ACC校准PASS
The norm of accelerometer coordiate value should be close (0, 0, +9.8) (m/s^2), when device Z-axis faces sky direction.
we have to calculate bias value that makes accelerometer coordiate value close the norm for each device.

How to get accelerometer bias value:
xdata[0:99] = xraw[0:99] + x_pervious_bias;
ydata[0:99] = yraw[0:99] + y_pervious_bias;
zdata[0:99] = zraw[0:99] + z_pervious_bias;

x_newbias = (xdata[0]+..+xdata[99])/100;
y_newbias = (ydata[0]+..+ydata[99])/100;
z_newbias = ((zdata[0]+..+zdata[99])/100);

if (absf(x_newbias) > 0.39f)
    return (x_newbias = 0.0f); /*that means bias value is not met criterion*/

if (absf(y_newbias) > 0.39f)
    return (y_newbias = 0.0f); /*that means bias value is not met criterion*/

if ((absf(z_newbias) > 10.2f) || (absf(z_newbias) < 9.0f)))
    return (z_newbias = 0.0f); /*that means bias value is not met criterion*/

2.3 Pedometer
人步行过程中,加速度三轴平方和后开根号大概呈现正弦波,每一个周期算一步。每秒步频就是正弦波的频率。区分行走还是跑步可以通过波峰的值来区分(跑步时,每秒步频也会变快),值大于2g认为在跑步(异常情况是:大于等于2.8g一般认为是跌倒了),值在[1.2g, 2g]之间认为是行走,小于1.2g认为是静态,不进行计步。

accumulated_step_count/步数:总共走或跑的步数 (unit: 步)
accumulated_step_length:所有步幅的总和,即所走的路程(unit:meter)
step_frequency/步频:每分钟走或跑的步数 (unit: 步/分钟)
step_length/步幅:每步的步长 (unit: centimeter)
step_type: 1 for walk, 2 for run, and 3 for jogging
配速的单位是min/KM,即为每公里的用时。

DirectionUp:加速度sqrt(x*x + y*y + z*z) 不断增加,往波峰爬坡
DirectionDown:加速度sqrt(x*x + y*y + z*z) 不断减少,往波谷下坡

2.4 根据加速度计算Azimuth-Pitch-Roll姿态角做跌倒检测
Gyro 绕z轴旋转的叫Azimuth(航向角,又叫Yaw或者Heading),绕x轴旋转的叫Pitch(俯仰),绕y轴旋转的叫Roll(翻滚,3个单词记忆缩写为APR),加速度只能计算出Pitch和Roll,航向角Azimuth必须通过Gyro或者Mag计算

ρ、ψ、θ分别为传感器的xyz轴与重力加速度的夹角。传感器3个轴输出的加速度信号Ax、Ay、Az与重力加速度方向形成的夹角计算公式如下:

3 Gyro(陀螺仪)
3.1 基本原理
unit: deg/s或者dps(degree per second)
陀螺仪计算公式:(16bit_ADC / 32768) * 量程,16bit_ADC的最高一位是符号位,量程选项有正负125dps、正负250dps、正负500dps、正负1000dps、正负2000dps。
例如量程取正负2000dps,那么计算公式是 (((signed short)16bit_ADC) / 0x8000) * 2000

陀螺仪耗流一般比较大,可达1mA。

陀螺仪的XYZ分别代表设备围绕XYZ三个轴旋转的角速度:deg/second。XYZ使用的坐标系与gsensor相同。Gyro校准时,X或者Y或者Z > 0.4會判fail。

azimuth方位角(PDR中叫heading):就是绕z轴转动的角度(顺时针为正),0度=正北,(假设Y轴指向地磁正北方);90度=正东;180度=正南;270度=正西。
pitch仰俯:绕X轴转动的角度(-180<=pitch<=180), 如果设备水平放置,前方向下俯就是正;前方向上仰就是负值。
roll滚转:绕Y轴转动(-90<=roll<=90),向左翻滚是正值。

Sample Rate(Output Data Rate,ODR):
ACC:50/100 Hz(PDR和指南针用100 Hz,其它场景切换到50 Hz)
MAG:25 Hz
GRYO:100 Hz
poll_interval为轮训周期,即odr输出速率的倒数1000 / odr(单位是ms)

DCM:Direction Cosine Matrix(参看四元数与旋转矩阵)

3.2 角速率零点漂移
将陀螺仪放置在水平的桌面上,读出(x0, y0, z0)这3个值,即为3个轴的0点漂移;运动状态读出的值(x, y, z)需要减去0点漂移的值,再做离散点积分计算。

零点漂移不断修正的公式:
gOffset = EMAOFFSET * gyroRaw + (1 - EMAOFFSET) * gOffset;
gyroSpeed = gyroRaw - gOffset;
gAngleGlobal += gyroSpeed * tInterval;
gyroAngle = gAngleGlobal;

其中EMAOFFSET = 0.0005
说明漂移也一直在修正。

3.3 陀螺仪积分
陀螺仪积分原理是使用离散点积分,根据ODR(Output Data Rate)的倒数,可以算出2个点的时间间隔(dt = 1 / ODR),将读取到的x或者y或者z减去offset(0点漂移)后乘以时间间隔(dt = 1 / ODR)即是2点之间的积分,加上上一次的旋转角度,就是新的角度。

例子:
#include <Wire.h>
#include <L3G4200D.h>
#define EMAoffset 0.05
#define Gyr_Gain 0.076335877862595  // 1/131,250dps
float angleG;
float G_offset;
float gyroSpeed;
unsigned long timer = 0;

L3G4200D gyro;

void setup() {
    Serial.begin(9600);
    Wire.begin();
    gyro.enableDefault();
    delay(500);
}

void loop() {
    long o_timer = timer;
    timer = millis();
    int dt = timer - o_timer;
    gyro.read();
    G_offset = EMAoffset *(gyro.g.x - 55) / 131 + (1-EMAoffset) * G_offset;
    gyroSpeed = (gyro.g.x - 55) / 131 - G_offset;
    angleG = angleG + gyroSpeed * dt / 1000;
    Serial.print("angle_x: ");
    Serial.print(angleG,6);
    Serial.println(";");   
    delay(100);
}

积分运算的累积误差:
PITCH/ROLL角速度积分->PITCH/ROLL姿态角,再结合加速度纠正累积误差。
AZIMUTH(YAW)角速度积分->方向角,再结合地磁传感器、GPS纠正累积误差。

4 Magnetic(磁力计)
4.1 基本原理
unit:microtesla
寄存器读出来的16bit_ADC值 (x, y, z),16bit_ADC是无符号数,换算成uT,分成3步。
第一步,无符号的16bit_ADC值范围是[0,65536],转换到有符号数,就是16bit_ADC-32768后的,范围就是[-32768,32768]
第二步,得出Gauss:((16bit_ADC - 32768)/ 1024),就是1Gauss的变化,需要ADC的值变化1024
第三步,得出uT:((16bit_ADC - 32768)/ 1024) * 100

地磁场是一个矢量,对于一个固定的地点来说,这个矢量可以被分解为两个与当地水平面平行的分量和一个与当地水平面垂直的分量。如果保持电子罗盘和当地的水平面平行,那么罗盘中磁力计的三个轴就和这三个分量对应起来,如下图所示。

实际上对水平方向的两个分量来说,他们的矢量和总是指向磁北的。罗盘中的航向角(Azimuth)就是当前方向和磁北的夹角。由于罗盘保持水平,只需要用磁力计水平方向两轴(通常为X轴和Y轴)的检测数据就可以计算出航向角。当罗盘水平旋转的时候,航向角在0°- 360°之间变化。

磁力计会上报 (x, y, z, accuracy),其中accuracy的范围在0-3之间,数字越大越精确,低了需要做8字校准。
采集地磁三个轴的数据,通过画八字的形式,用MATLAB做个空间球,未校准的数据是个椭球,校准后就是个球了。椭球或者球对应点的直径(三个轴的合成磁场强度)是sqrt(x*x + y*y + z*z)。

4.2 方位传感器(Orientation Sensors)

Android指南针应用就是用的这个类型。
这个传感器是virtual sensor,是通过Magnetic的 (x, y, z, accuracy) 计算出来的,其中azimuth作为指南针应用的指针方向来源。
azimuth方位角(PDR中叫heading):就是绕z轴转动的角度(顺时针为正),0度=正北,(假设Y轴指向地磁正北方);90度=正东;180度=正南;270度=正西。
pitch仰俯:绕X轴转动的角度 (-180<=pitch<=180), 如果设备水平放置,前方向下俯就是正;前方向上仰就是负值。
roll滚转:绕Y轴转动(-90<=roll<=90),向左翻滚是正值。

Android上报的3个数据格式如下所示(APR):
values[0]:azimuth, rotation around the Z axis
values[1]:pitch, rotation around the X axis
values[2]:roll, rotation around the Y axis

5 IoT
5.1 心率
5.1.1 光学HRM
HRM:心率监控,单位是Beats Per Minute,每分钟心跳次数
IC:台湾原相
光学传感器(2个绿光LED和一个红外LED)会产生PPG1和TOUCH两个数据,基于这2个数据,计算得出HRM和TAKE_OFF数据。
HRM融合了G-sensor和光学传感器PPG1的数据。
TAKE_OFF(从手腕上脱下手表)检测是用G-sensor和红外TOUCH的数据计算而得。
SLEEPING检测是用G-sensor与HRM数据计算而得。

5.1.2 ECG
ECG:美国叫EKG,心电图,双电极技术
IC:NeuroSky(神念科技)BMD101
aVR:augmented Voltage Right Hand,心电导联的一种接法
医疗器械三巨头:GE、飞利浦、西门子(GPS)

穿戴类ECG仅显示单通道心电图(第一导联,Lead I ECG)

5.1.3 HRV
HRV是指Heart Rate Variability(心率变异性),HRV的单位是ms(毫秒),HRV特指心跳时间间隔的微小变化。心率变异性变化越大,表明自主神经系统对身体协调作用越好、身体具备更多的活力。测量心率变异性(HRV)可以直观反映一个人的身体健康状况,并且也能够判断目前的训练方式对改善身体状态是否有效。

5.2 Pressure
气压计的单位hPa(hundred Pa,Android就是用这个:hardware/*/sensors.h),100帕斯卡
0.12 hPa = 1米

5.3 ADR
heading:是飞行中飞机头所指向的方向,它从真北向顺时针用度数度量。

5.4 PDR
根据GPS输入的值(经度,维度,地面速度m/sec,定位精度GPACCURACY,真北True方位角-顺时针为正),sensorhub或者sensor fusion库返回经度和维度作为PDR的输出值。一般情况是GPS喂一次数据,sensorhub预测并给出接下来的几个GPS点。GPS不喂数据,sensorhub也不吐数据。
Cywee CMH1000 sensorhub(224KB DRAM,336KB IRAM,SRAM电压是1V)带有这个算法。
[1st-Apr-2022]
CMH1000 IC is designed by Realtek, software is designed by Cywee.

5.5 Sedentary reminder
Probability of sedentary reminder(久坐提醒), the value range is from 0 to 100.
久坐一般由MMI层预设一个时间下到sensorhub中去,时间unit: minute
久坐的算法:一般是如果在触发时间到之前(譬如1小时),有累计行走一分钟就会解除久坐,并重新计算时间(还是按照1小时计算)。

5.6 Sleep
5.6.1 Sleep Cycle
睡眠监测过程分为:Awake、Light Sleep、Deep Sleep、REM(清醒、轻度睡眠、深度睡眠和快速动眼睡眠)
Sleep Cycle:睡眠质量(百分数),(快速动眼睡眠 + 深度睡眠) / 总睡眠

夜晚会翻身的那些时间就是睡眠质量不好(Light Sleep)的时间,算法将它扣除后,剩下的就是实打实睡眠质量好(快速动眼睡眠 + 深度睡眠)的时间段。

5.6.2 算法
主要判断入睡和出睡满足的条件。
包括SLEEP和SLEEP_STAGING(SLEEPING)
SLEEP:纯粹由G-sensor的数据计算而得
SLEEP_STAGING(SLEEPING):融合了G-sensor、光学传感器PPG1和BISI(Beat Interval and Signal Integrity detection)的数据;半小时以上的低运动量才会触发SLEEP_STAGING测量人的睡眠状态(进入睡眠、浅度睡眠、深度睡眠、状态切换或起床、结束睡眠);睡眠数据的几种状态都存储在sensorhub中(起床时会集中一次上报),如果中途有起床方便之类的(这个也会报一次数据),只要时间不大于30分钟,算法会认为仍然是一次睡眠过程,将起床前后的2个时间段一起计算睡眠数据。

SLEEPING算法需要data-time,这个需要每天都写入SLEEPING算法中。

睡眠状态值:
0:入睡,enter sleep
1:浅睡,light sleep
2:深睡,deep sleep
3:清醒或翻身,awake/stat change
4:出睡,leave sleep

5.7 Watch Hand up and down
抬手亮屏,与之相类似的还有Android tilt和wrist传感器。
有2种实现方式:
- 使用ACC实现,需要分左右手,功耗较小
- 使用GYRO实现,不分左右手,功耗较大,很多GYRO启动后,最大耗流能达到1mA

5.8 血氧计
oximeter:血氧饱和度(SpO2)是医学界最新确立的衡量人体健康与否的指标,用于标注动脉血液中氧合血红蛋白占总血红蛋白的比值。健康人群的血氧饱和度普遍在94%以上,脉搏在60到100之间。

代码中一般使用PPG2表示,PPG1表示的是光学心率的原始数据。一般使用红光LED来测量。

5.9 颗粒物传感器
测量颗粒物的等效粒径及单位体积内不同粒径的颗粒物数量。
主要输出数据一是PMx.x下的浓度,单位是ug/m3;二是表示0.1升空气中直径在x.x微米以上颗粒物个数。

5.10 湿度传感器
绝对湿度:每立方米大气所含水汽的克数来表示,单位为g/m3。
相对湿度:通常把大气的绝对湿度跟当时气温下饱和水汽压的百分比称为大气相对湿度,用%RH(Relative Humidity)表示,若大气中所含水汽的压强等于当时气温下的饱和水汽压时,这是大气的相对湿度等于100%RH。

6 Android平台Sensor
6.1 Linux domain socket抓包工具
socat -t100 -x -v UNIX-LISTEN:/tmp/php-fpm.sock.socat,mode=777,reuseaddr,fork UNIX-CONNECT:/tmp/php-fpm.sock 2>/data/my_socket.log &

/tmp/php-fpm.sock is created by Android deamon
/tmp/php-fpm.sock.socat is created by socat
Framework or client APPs connect to /tmp/php-fpm.sock.socat

-t<timeout>    wait seconds before closing second channel
-x     verbose data traffic, hexadecimal
-v     verbose data traffic, text

6.2 MSM SSC
加速度、陀螺仪等数据量较大的最好使用FIFO(batch)模式,光线、距离等数据有变化才需要上报的传感器使用DRI(Data Ready Interrupt)模式。

SSC(Snapdragon Sensors Core)中带有uimg(__attribute__((section ("text.SMGR"))))标识的代码运行在缓存中,其中代码一般是做数据上报相关工作的,运行期间可以将外部ddr关闭以实现最低功耗的传感器运行;不带有uimg标识的代码运行期间是需要ddr开启的,其中代码一般做一些初始化相关的工作。

SAM: Sensors Algorithm Manager
SEE: Sensors Execution Environment
SLPI: Sensor Low Power Island
SSC: Snapdragon Sensors Core, used by aDSP

aDSP: qcom audio DSP
cDSP: qcom compute DSP
mDSP: qcom modem DSP
sDSP: qcom sensor DSP, SLPI

6.3 Debug方式
dumpsys sensorservice
dumpsys sensorservice data_injection APK_NAME

7 Abbreviations
7.1 General
AHRS:Automatic Heading Reference System,自动航向基准系统,广泛应用于四轴飞行器上
BISI:Beat interval (BI) and signal integrity (SI) detection. The BI is computed based on subtracting the peak position of the successive PPG beats. The SI is an indicator to identify the PPG signal integrity.
DDF:Device Driver Framework
EEG:Electroencephalography (EEG) is an electrophysiological monitoring method to record electrical activity of the brain.
EKG:Electrocardiography (ECG or EKG) is the process of recording the electrical activity of the heart over a period of time using electrodes placed on a patient's body.
EMG:Electromyography (EMG) is an electrodiagnostic medicine technique for evaluating and recording the electrical activity produced by skeletal muscles.
FSR:Full Scale Ranges,满量程范围
GSR:Galvanic skin response (GSR) is an electrophysiological monitoring method to record conductance of the skin.
HRV:Heart Rate Variability,心率变异性,需要ECG测量加算法
IMU:Inertial Measurement Units
MPU6050 DMP:Digital Motion Processing,数字运动处理器
ODR:Output Data Rate,for sensors sample rate(poll_interval = 1 / ODR),或者Output Data Register(STM32 GPIO)
PDR:Pedestrian dead reckoning, calculating one's current position by using a previously determined position or fix, and advancing that position based upon known or estimated speeds over elapsed time and course.
PPG:Photoplethysmogram (PPG) is an optical volumetric measurement of an organ. By illuminating skin with LED, the PPG is measured from the light transmitted or reflected to photodiode.

7.2 Sensors Part Number
7.2.1 Bosch
BHI160B:Bosch Sensor Hub with MEMS IMU 160B
BMA355:Bosch 3-Axis MEMS Accelerometer 355
BMI160:Bosch 6-Axis MEMS IMU 160

7.2.2 ST
AIS328DQ:Automotive Inertial Sensor - 3 axes - 2/4/8g full scale - Digital Output - QFPN package
A3G4250D:Automotive - 3 axes - Gyroscope - 4x4 LGA 16L - 245dps full scale - Digital Output
L3G4200D:Linear - 3 axes - Gyroscope - Digital Output
LIS3DH:Linear Inertial Sensor - Digital Output - High Level
LPS001DL:Linear Pressure Sensor - Digital Output - Low Level
LSM303DLH:Linear Sensor Module - Digital Output - High Level

相关文章:

Android以及IoT设备传感器软件开发总结

1 传感器选型 1.1 传感器选型 6 axis&#xff1a;Bosch BMI160&#xff08;比较差&#xff09;&#xff0c;InvenSense MPU6050&#xff08;DMP&#xff09;&#xff0c;ST LSM6Dxx Acc: Freescale MMA7450L (MicroMachined Accelerometer/MC Multi-Axis, iMX31), Kionix KXSD9…...

Vue2/Vue3中编程式路由导航实践总结

【1】Vue2编程式路由导航 ① router.push 除了使用 <router-link> 创建 a 标签来定义导航链接&#xff0c;我们还可以借助 router 的实例方法&#xff0c;通过编写代码来实现。 router.push(location, onComplete?, onAbort?)注意&#xff1a;在 Vue 实例内部&#…...

【nginx】ngx_http_proxy_connect_module 正向代理

50.65无法访问 服务器, (403 错误) 50.196 可以访问服务器。 那么,配置65 通过196 访问。 需要一个nginx作为代理 【nginx】搭配okhttp 配置反向代理 发送原生的nginx是不支持okhttp的CONNECT请求的。 大神竟然给出了一个java工程 GINX编译ngx_http_proxy_connect_module及做…...

单考一个OCP认证?还是OCP和OCM认证都要考?

​ Oracle的OCP认证是数据库行业非常经典的一个认证&#xff0c;从事数据库行业的人都建考一个 Oracle OCP 认证。 OCP认证内容包括&#xff1a; OCA部分&#xff1a;数据库基础知识、SQL 语言使用、基本的数据库管理技能等&#xff0c;如数据库安装与配置、理解数据库架构、…...

在Spring官网查看Springboot与Java的版本对应关系

查看Spring Boot与Java的版本对应关系&#xff0c;可以按照以下步骤操作&#xff1a; 访问Spring官方网站&#xff0c;进入Spring Boot项目页面。可以通过点击菜单中的“Projects”&#xff0c;然后选择“Spring Boot”来访问。Spring | Home 在Spring Boot的LEARN页签中&…...

HarmonyOS学习(十二)——数据管理(一)分布式数据

文章目录 1、分布式数据服务概述2、KV数据模型&#xff08;键值对数据库&#xff09;3、分布式数据服务的约束和限制4、接口说明5、分布式数据服务开发步骤5.1、导入模块5.2、构造分布式数据库管理类实例5.3、获取、创建分布式数据库5.4、订阅分布式数据库的数据变化5.5、插入数…...

3D GS 测试自己的数据

环境配置 win11 vs2019cuda11.8driver522.06python3.10pytorch 2.4.0colmap3.8&#xff08;可选&#xff0c;用于将图像生成点云&#xff09; 安装 1 minicodagit 略 2 vs2019 在装cuda前安装&#xff0c; 选择c桌面开发即可&#xff0c; 环境变量path中配置C:\Program…...

攻防世界 supersqli

supersqli 一般sql语句的题都是先判断&#xff0c;经过测试&#xff0c;是单引号注入 999 union select database(),2#可以发现很多关键字都被过滤了select&#xff0c;所以联合查询&#xff0c;报错注入&#xff0c;布尔和时间盲注都不能用了&#xff0c;可以想到堆叠注入。…...

OceanBase 运维管理工具 OCP 4.x 升级:聚焦高可用、易用性及可观测性

可视化的管控平台&#xff0c;对 OceanBase 这类的分布式数据库及大规模数据的运维管理来说&#xff0c;是提升运维效率与数据库管理水平的重要工具。OceanBase 运维管理工具 OCP 作为专为OceanBase数据库设计的企业级全生命周期管理平台&#xff0c;为用户提供了全面的数据库可…...

HarmonyOS应用开发( Beta5.0)HOS-用户认证服务:面部识别

介绍 User Authentication Kit&#xff08;用户认证服务&#xff09;提供了基于用户在设备本地注册的人脸和指纹来认证用户身份的能力。 用户向应用/系统服务请求访问某些个人数据或执行某些敏感操作时&#xff0c;应用/系统服务将调用系统用户身份认证控件对用户身份进行认证…...

解决Docker镜像不可下载

使用国内可信的镜像中心 可信国内镜像网址&#xff1a;https://hub.atomgit.com/ 点击镜像仓库 搜索想要的镜像 按如图所示&#xff0c;即可查看对应的版本 点击复制&#xff0c;即可下载使用 缺点&#xff1a; 可用的镜像相比于docker官方量少 并且&#xff0c;获取的镜像名字…...

考研报名确认上传身份证户口本学历证明照片如何压缩裁剪

随着考研季节的到来&#xff0c;数以万计的考生开始准备报名所需的各种材料。在这一过程中&#xff0c;证件照片的上传无疑是一个关键环节。正确的照片格式和尺寸不仅能确保报名流程的顺利进行&#xff0c;还能避免因材料不合格而造成的不必要麻烦。本文将详细介绍如何在考研报…...

DolphinScheduler应用实战笔记

DolphinScheduler应用实战笔记 一、前言二、DS执行SQL或存储过程二、DS调用DataX同步数据三、DS调用HTTP接口四、DS依赖(DEPENDENT)节点五、DS SPARK 节点六、DS Flink 节点七、DS Flink 节点八、DS SQL 节点九、DS Java程序十、DS Python节点 一、前言 DolphinScheduler&…...

IThenticate查重为何成为英语期刊论文投稿首选工具

发表一篇英语论文&#xff0c;我发现很多人在准备向期刊投稿之前&#xff0c;都会选择使用IThenticate查重系统对论文进行相似性检测。是什么魔力&#xff0c;让这个查重工具让投稿者如此偏爱使用它查重呢&#xff1f; 一、什么是IThenticate查重系统&#xff1f; 在了解它被…...

C++ 在项目中使用Git

目录 一&#xff1a;配置邮箱和姓名 二&#xff1a;生成SSH Key 三&#xff1a;git 工作区和状态 四&#xff1a;git log 常用法 五&#xff1a;git diff 常用法 六&#xff1a;git 分支操作 七&#xff1a;git 回溯分支 八&#xff1a;git rebase -i 压缩历史提交…...

Python(TensorFlow和PyTorch)及C++注意力网络导图

&#x1f3af;要点 谱图神经网络计算注意力分数对比图神经网络、卷积网络和图注意力网络药物靶标建模学习和预测相互作用腹侧和背侧皮质下结构手写字体字符序列文本识别组织病理学图像分析长短期记忆财务模式预测相关性生物医学图像特征学习和迭代纠正 Python注意力机制 对…...

选择firewalld还是iptables

firewalld与iptables介绍 firewalld和iptables都是Linux系统中用于管理防火墙规则的重要工具&#xff0c;但它们在功能、使用方式和适用场景上存在显著差异。 动态性&#xff1a; firewalld可以动态修改单条规则&#xff0c;并且能够动态管理规则集。这意味着在更新规则时不会…...

C到C++入门基础知识

一&#xff1a;命名空间&#xff1a;namespace &#xff08;一&#xff09;&#xff1a;命名空间的定义 注&#xff1a;命名空间只能定义在全局&#xff0c;不能定义在函数内部。 &#xff08;1&#xff09;类似于C语言的结构体&#xff0c;C语言的命名空间定义为&#xff1…...

Aigtek功率放大器的主要参数有什么

功率放大器是一种电子设备&#xff0c;通常用于放大输入信号的功率。为了评估和描述功率放大器的性能&#xff0c;有一些主要参数需要了解。下面将介绍一些常见的功率放大器参数。 增益&#xff1a;功率放大器的增益是指输出功率与输入功率之间的比值。它表示了信号经过放大器后…...

运维工程师概述及职责

运维工程师 运维运维工程师&#xff08;Operations Engineer 或 System Administrator&#xff09;是负责确保计算机系统、服务器、网络、存储设备等基础设施稳定运行的专业人员。 运维工程师在IT行业中扮演着至关重要的角色&#xff0c;是连接开发团队和业务团队的桥梁&#…...

Android系统dumpsys命令详解

文章目录 1. dumpsys 的工作原理2. 基本使用方法执行 dumpsys限制 dumpsys 的输出 3. 常见的 dumpsys 服务1. Activity Manager (activity)2. Battery Service (battery)3. Window Manager (window)4. Package Manager (package)5. Power Manager (power)6. Media DRM (media.d…...

[Unity Demo]从零开始制作空洞骑士Hollow Knight第二集:通过InControl插件实现绑定玩家输入以及制作小骑士移动空闲动画

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、通过InControl插件实现绑定玩家输入二、制作小骑士移动和空闲动画 1.制作动画2.玩家移动和翻转图像3.状态机思想实现动画切换总结 前言 好久没来CSDN看看&…...

基于鸿蒙API10的RTSP播放器(七:亮度调节功能测试)

目标&#xff1a; 当我的手指在设备左方进行上下移动的时候&#xff0c;可以进行屏幕亮度的调节&#xff0c;在调节的同时&#xff0c;有实时的调节进度条显示 步骤&#xff1a; 界面逻辑&#xff1a;使用Stack() 组件&#xff0c;完成音量图标和进度条的组合显示&#xff0c…...

基于SpringBoot+Vue的校内跑腿业务管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的…...

嵌入式鸿蒙系统开发语言与开发方法分析

大家好,今天主要给大家分享一下,HarmonyOS系统的主力开发语言ArkTS语言开发方法,它是基于TypeScript(简称TS)语言扩展而来。 第一:ArkTS语言基本特性 目的:声明式UI,让开发者以更简洁,更自然的方式开发高性能应用。 声明式 UI基本特性: 基本UI描述:ArkTS定义了各种装饰…...

SpringBoot开发——整合Spring Data MongoDB

文章目录 一、MongoDB简介1、MongoDB是什么2、MongoDB 基本概念(1)文档(2)集合(3)数据库3、MongoDB的系统数据库4、MongoDB数据模型二、SpringBoot整合Spring Data MongoDB1、创建项目,添加Spring Data MongoDB依赖2、创建实体类Student3、创建StudentRepository接口4、创建…...

camouflaged object detection中的decoder最核心的作用

在 camouflaged object detection&#xff08;COD&#xff09;任务中&#xff0c;decoder 的确有一个核心作用是进行 上采样 以恢复图像的分辨率&#xff0c;但这并不是它唯一或最核心的作用。我们可以从更广泛的视角来看 decoder 的作用。 1. 上采样&#xff08;Upsampling&a…...

Java volatile

Volatile 作用&#xff1a;保证变量的可见性&#xff0c;有序性&#xff08;禁止指令重排序&#xff09;。不保证原子性。 如何保证可见性的&#xff1f; 场景&#xff1a;每个 线程 下都有一块 工作内存。要使用变量需要从 主内存 中把 变量 读取出来&#xff0c;使用完成后写…...

一条sql是如何执行的详解

一条sql是如何执行的详解 1. SQL 解析&#xff08;Parsing&#xff09; 2. 查询重写&#xff08;Query Rewrite&#xff09; 3. 查询规划&#xff08;Query Planning&#xff09; 4. 查询执行&#xff08;Query Execution&#xff09; 5. 结果返回 示例&#xff1a;查询执…...

“先天项目经理圣体”丨超适合做项目经理的4种人

总有人在问&#xff0c;什么样的人适合做项目经理&#xff0c;当项目经理需要什么样的特质&#xff1f; 你别说&#xff0c;还真有那么一些人是“先天项目经理圣体”&#xff0c;天生就是吃项目经理这碗饭的。 沟通达人丨靠“嘴”走天下 我们知道项目经理大部分的时间都在进行…...