refine power module
This commit is contained in:
71
config.py
71
config.py
@@ -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 = {
|
||||
# ==================== 引脚映射配置(板载 WiFi,I2C5)====================
|
||||
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=使用ArUco,False=使用传统黄色靶心检测)
|
||||
|
||||
# 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表示不自动关机
|
||||
|
||||
|
||||
Reference in New Issue
Block a user