refine power module

This commit is contained in:
gcw_4spBpAfv
2026-04-28 16:58:51 +08:00
parent fe3e26e21d
commit 4a3b111ce4
7 changed files with 93 additions and 90 deletions

View File

@@ -65,21 +65,20 @@ LOG_FILE = APP_DIR + "/app.log"
BACKUP_BASE = APP_DIR + "/backups"
# ==================== 硬件配置 ====================
# WiFi模块开关True=有WiFi模块False=无WiFi模块
HAS_WIFI_MODULE = True # 根据实际硬件情况设置
# UART配置
UART4G_DEVICE = "/dev/ttyS2"
UART4G_BAUDRATE = 115200
DISTANCE_SERIAL_DEVICE = "/dev/ttyS1"
DISTANCE_SERIAL_BAUDRATE = 9600
# I2C配置根据WiFi模块开关自动选择
# 无WiFi模块I2C_BUS_NUM = 1引脚P18(I2C1_SCL), P21(I2C1_SDA)
# 有WiFi模块I2C_BUS_NUM = 5引脚A15(I2C5_SCL), A27(I2C5_SDA)
I2C_BUS_NUM = 5 if HAS_WIFI_MODULE else 1
# I2C:板载 WiFi 方案固定 I2C5引脚 A15(SCL) / A27(SDA),供 INA226 等
I2C_BUS_NUM = 5
INA226_ADDR = 0x40
# False=完全不访问 INA226无电源计量板或未供电时避免 ~2.5s writeto 重试与底层 write failed 日志);量产有芯片时设为 True
INA226_ENABLE = True
# True=整总线 I2C scan 探测 INA226在部分平台上极慢可达 ~90s+False=仅对 INA226_ADDR 快速探测writeto 空写)
INA226_PROBE_FULL_BUS_SCAN = False
REG_CONFIGURATION = 0x00
REG_BUS_VOLTAGE = 0x02
REG_CURRENT = 0x04 # 电流寄存器
@@ -165,7 +164,7 @@ TRIANGLE_EARLY_EXIT_CANDIDATES = 4 # 找到多少个候选就提前停
TRIANGLE_ADAPTIVE_BLOCK_SIZES = (11, 21) # 自适应阈值 blockSize 尝试列表;置空 () 可完全关闭 adaptiveThreshold
TRIANGLE_MAX_FILTERED_FOR_COMBO = 10 # 参与四点组合评分的最大候选数(超过则截断到最可能的一部分)
FLASH_LASER_WHILE_SHOOTING = True # 是否在拍摄时闪一下激光True=闪False=不闪)
FLASH_LASER_WHILE_SHOOTING = False # 是否在拍摄时闪一下激光True=闪False=不闪)
FLASH_LASER_DURATION_MS = 1000 # 闪一下激光的持续时间(毫秒)
# ==================== 显示配置 ====================
@@ -185,67 +184,17 @@ MAX_BACKUPS = 5
LOG_MAX_BYTES = 10 * 1024 * 1024 # 10MB
LOG_BACKUP_COUNT = 5
# ==================== 引脚映射配置 ====================
# 无WiFi模块的引脚映射I2C1
PIN_MAPPINGS_NO_WIFI = {
"A18": "UART1_RX",
"A19": "UART1_TX",
"A29": "UART2_RX",
"A28": "UART2_TX",
"P18": "I2C1_SCL",
"P21": "I2C1_SDA",
}
# 有WiFi模块的引脚映射I2C5
PIN_MAPPINGS_WITH_WIFI = {
# ==================== 引脚映射配置(板载 WiFiI2C5====================
PIN_MAPPINGS = {
"A18": "UART1_RX",
"A19": "UART1_TX",
"A29": "UART2_RX",
"A28": "UART2_TX",
"A15": "I2C5_SCL",
"A27": "I2C5_SDA",
"A24": "GPIOA24", # 电源板的引脚
"A24": "GPIOA24", # 电源板关机控制
}
# 根据WiFi模块开关选择引脚映射
PIN_MAPPINGS = PIN_MAPPINGS_WITH_WIFI if HAS_WIFI_MODULE else PIN_MAPPINGS_NO_WIFI
# ==================== ArUco标定配置 ====================
USE_ARUCO = False # 是否使用ArUco标定True=使用ArUcoFalse=使用传统黄色靶心检测)
# ArUco标记配置
if USE_ARUCO:
import cv2
ARUCO_DICT_TYPE = cv2.aruco.DICT_4X4_50 # ArUco字典类型
ARUCO_MARKER_SIZE_MM = 40 # ArUco标记边长毫米
ARUCO_MARKER_IDS = [0, 1, 2, 3] # 四个角的ArUco标记ID
# 靶纸物理尺寸(毫米)
TARGET_PAPER_SIZE_MM = 400 # 靶纸边长 400mm x 400mm
# ArUco标记在靶纸上的中心坐标毫米以靶纸中心为原点
# 靶纸坐标系:中心(0,0)X向右Y向下图像坐标系
# 四个角位置:(20,20), (20,380), (380,380), (380,20)
# 转换为以中心为原点的坐标:
# 左上角(0): (-180, -180) -> 实际(20,20)相对于中心(200,200) = (-180,-180)
# 右上角(1): (180, -180) -> 实际(380,20)相对于中心 = (180,-180)
# 右下角(2): (180, 180) -> 实际(380,380)相对于中心 = (180,180)
# 左下角(3): (-180, 180) -> 实际(20,380)相对于中心 = (-180,180)
ARUCO_MARKER_POSITIONS_MM = {
0: (-180, -180), # 左上角
1: (180, -180), # 右上角
2: (180, 180), # 右下角
3: (-180, 180), # 左下角
}
# 靶心(黄心)在靶纸上的位置(毫米,相对于靶纸中心)
# 标准靶纸靶心就在正中心
TARGET_CENTER_OFFSET_MM = (0, 0)
# ArUco检测参数
ARUCO_MIN_MARKER_PERIMETER_RATE = 0.03 # 最小标记周长比例(相对于图像)
ARUCO_CORNER_REFINEMENT_METHOD = cv2.aruco.CORNER_REFINE_SUBPIX # 角点精修方法
# ==================== 电源配置 ====================
AUTO_POWER_OFF_IN_SECONDS = 10 * 60 # 自动关机时间0表示不自动关机