write README

Former-commit-id: 634e6fd710478b787c344c3bbe85b6b2cbddf9d2
This commit is contained in:
2025-07-07 19:14:54 +08:00
parent b696cb71be
commit 29eea0817e
4 changed files with 40 additions and 15 deletions

View File

@ -1,14 +1,40 @@
状态管理逻辑:
- 滑动窗口
维护一个滑动窗口history记录最近end_bounce_time内的状态。
状态包括:时间,浓度,状态,当前截图
这是一个基于传统图像处理方法的AI视觉滴定控制程序。
- 进入
1. middle: predictor返回middle立即进入slow状态。
2. about: 返回about且处于middle则进入about状态
3. end返回end置end_check标记开始检查
## 操作步骤
- check
1. middle: 进入middle的bounce_time后在最近bounce_time内middle比例<70%返回fast状态
2. about随着middle退出一起退出不单独处理
3. end进入end之后的end_bounce_time如果end_bounce_time内end比例<80%则实验终止逻辑否则从history中找到第二个end并继续check逻辑
1. 安装依赖
```bash
pip install -r requirements.txt
```
2. 校准光线
1. 运行`vid_chk.py`,按任意键直到显示为目标摄像头,按下`q`
2.`w``s`直到左上角参数在$0.01\sim 0.03$
3.`q`后将控制台输出参数输入`main.py`
3. 运行主程序
## 技术说明
### 变色预测
1. 前期分析
透明的溶液饱和度较低。粉色饱和度较高。故取HSV中的S分析筛选$S_{\rm{fil}}S>\rm{sensity}$,再根据$\frac{S_{\rm{fil}}}{S}$判断变色区域大小,并避免背景干扰
2. 终点检测
透明的溶液色相和变色后不同即HSV中的H不同。但是任何单点包括平均值不足以反应溶液是否完全变色故对图像H通道作直方图分析。刚到突变点时直方图的最高峰位置右移且位置和透明显著不同。随着继续滴加峰值继续右移并且从尖峰变为宽峰。
### 滴定控制
1. 前期
滴入后溶液完全没有变色,可以采用高速滴加。当发现溶液有小区域变色时,稍微降低速度,避免气泡、搅匀等因素干扰。
2. 中期
滴入后,溶液发生变色,且在数秒内褪色。这时候距离终点约$1\sim 2\,\rm{mL}$,采用较慢的滴定速度($0.05\,\rm{mL/s}$),且每次滴入后等待$1\sim 2\,\rm{s}$。
3. 末期
滴入后,溶液大范围变色,且在数秒至十秒左右褪色。这时继续减慢滴入速率($0.02\,\rm{mL/s}$并每次滴入后终点检测如认为变色则等待数秒后重新判断。持续4次后认为到达滴定终点汇报数据。
**意外处理**
中期检测可能存在误判。检测符合中期条件后,立即进入中期模式。如果在`bounce_time`内判定为中期的样本过少,则退出。`bounce_time`使用滑动窗口处理。
特别地为了避免在末期意外退出连续2次判定终点成功后禁用该退出。
类似地末期也有退出处理连续判定终点3次以上禁用退出。

BIN
ch340_gui.exe Normal file

Binary file not shown.

View File

@ -1 +0,0 @@
f3beccf0b1e66d017cf3a9c35c1f0a50476f25b6

View File

@ -1,5 +1,5 @@
numpy
opencv-python
pyserial
matplotlib
PySide6
scipy
requests