Skip to content

10.Bugs

淹死的鱼 edited this page Dec 16, 2019 · 2 revisions

🐛调试遇到的问题以及解决方法

10.1 硬件与机械结构

  • 电源仓是否加开关

  • 加RTC电池

  • 硬件I2C

  • USB接口调试、不需要通过USB转UART

    • 然后shell中可以选择 无线调试还是USB有线调试
  • 云台舵机、网口 需要胶固定一下

  • 3D打印结构上预留 加扇热风扇 固定孔

    • 不采用
  • 摄像头控制板加 滤光片控制电路接口

  • 主板接口 设计

  • 24V稳压12V 双通道?

    • 不采用
  • 24V直接稳压5V

    • TPS54302
  • 加入电流监测芯片 INA169

  • 继电器光耦隔离

  • Wifi经常搜索不到


  • 新增电流传感器 INA169 采样电阻:0.01R 的功率3W
  • 推进器电源增加 功率二极管(30A),隔离反转时的回流
  • 推进器反转回流,用什么方式去吸收这部分回流,或者说如何放电
  • 在板子上去掉推进器供电接口,只留下信号线,外置2*7为一体的接线端子,用于推进器的+24V与PGND
  • 电力载波模块放在ROV_Controler下面?
  • 加电池接口
  • 核心板与树莓派叠起来
  • 检测漏水
  • 舵机与推进器电源连接一起
  • 电源开关接口
  • 推进器突然转动,将TPS54302烧毁
  • 深度传感器 应为硬件I2C
  • 核心板上的 B8 B9应为硬件I2C

日志

  • 1.去掉了24v->12v 的探照灯电源【因为探照灯可用24V供电】
  • 24v->5v稳压 改为TPS54302直接降压为5V,不再24v->12v->5v

10.2 树莓派

  • 树莓派开机时间计算
    • 不需要
  • MJPG反向问题
    • 物理反向
    • 镜头不支持-vf反向命令
  • 固定摄像头Video0/1 编号
  • 当PC上位机关闭,树莓派服务器异常退出
  • 上位机使得树莓派关机
  • 能否传音频
  • viode顺序
    • 可固定video号,但是拔插会造成 mjpg-streamer异常退出
    • 如何解决当mjpg-streamer退出,再次打开
  • 重启之后需要 打开远程桌面才能打开server.py
    • 因为自启动服务是以桌面启动运行的,所以会造成这样的结果
    • 此方法是在加载了桌面后再启动我们自定义的程序
  • 是否需要建立与树莓派握手机制
  • 变焦摄像头具有明显色差(对特定的黑色呈现出红色),可能为白平衡的原因
    • v4l2-ctl --set-ctrl=white_balance_temperature_auto=0 -d /dev/video0 关掉摄像头白平衡的命令
  • 树莓派系统裁剪:后台程序关闭

10.3 上位机

  • [x]树莓派server 与 MJPG开机自启动

  • 探照灯0x02【关闭】发送

    • 理解错误,只有一个控制字0x01;
    • 解决方法:先关闭、延时1s打开
  • 当PC上位机关闭,树莓派服务器异常退出

  • 连按支持

    • 手柄软件设置成【自动重复】
  • 发送速度过慢

    • 手柄软件设置成【自动重复】
    • 手柄最大1s 30次,考虑延迟以及手柄性能 ,最多25次,即40ms一次
  • 修改油门后 只有再切换油门的时候才会生效

  • 变焦摄像头传输视频出现 Ignoring empty buffer ...,导致无法传输

    • 线过长,传输衰减性
  • 变焦按键无 0x02

  • 启用第16字节:【紧急制动】作为启动与停止按钮 0x00为默认 0x01为启动,0x02为关闭

  • 上位机使得树莓派关机

  • 有时转动变焦摄像头,视频会卡住

    • 貌似为【shift】按钮冲突,将【shift】按键调整成单次解决了这项冲突
  • 灯控制的键盘符号修改,避免与变焦冲突,因为灯是一下一下按,变焦为连续

    • 修改完成,现在为 手柄上的 右摇杆 的上下左右即 电脑键盘上的 "[ ] 9 0"
  • 变焦摄像头图像 在 【上位机】中无显示  网址上可以显示  http://192.168.137.219:8086/?action=stream

    • 之前测试C#上位机 变焦摄像头端口改为8087,所以上位机显示不出来,已解决
  • PC上位机只有 远程连接树莓派桌面后 server.py才会开启

    • 将自启动服务中的Terminal=true 即可,原因不详
  • 调节档位也会控制推进器

  • 添加推进器正反(镜像)修改

  • 视频小窗可关闭

  • 视频镜像设定

  • 视频翻转复选框

  • 启动停止键P 单次检测

  • 发送数据时把新摇杆值清零

  • 按键自定义

  • 按键重定

10.4 MCU

  • 灯自动开关

  • ef_env初始化失败->flash内 不是env地址写入了数据

    • 由于之前flash数据储存占用env的空间,导致初始化失败
  • 尝试波特率加倍

    • baud : 921600 —— fail
  • 平移控制字RC_Control_Data[6] 一直存在0x01

    • 未知bug,莫名修复
  • 推进器电调重启问题

    • 电源供电不足
    • 貌似是STM32供电不足
  • 方向键同时按下,方向合力计算

  • 探照灯第四下关闭

  • 云台当前值Flash问题

  • STM32发热问题 55℃ 有稍微烫手

    • 拿一个串口供电,一个下载器下载,再看温度值
    • 加5V静音风扇 现在大约50.00℃
  • 惯性导航 解算航速

  • 电子罗盘规定

  • 修复了深度传感器采集异常问题【加了 禁止调度锁后会产生采集异常】,已去除

  • 启用第16字节:启动与停止按钮

  • 添加指南针参数MSH

  • 添加调试模式

  • 定深方式改变为 按一下上升或下降 然后锁定深度

  • 错误信息记录日志

  • debug 500ms发送一次

  • 推进器值慢慢减为0才改变其数值

  • FLASH结构修改,使用env

  • OLED显示锁定

  • 深度传感器8192精度测试

    • 已经可以,可能之前测试杜邦线接触不良
  • 返回给上位机锁定信息,上位机判断我此时是否锁定(图标对应)

  • 深度传感器初始化 与 初始化后采集值 相差10~20

  • 添加 缓慢关闭机制

  • 深度传感器 漂移问题

  • 添加首次初始化设定参数

  • 添加电池xS Flash参数设定

  • FLASH参数 自检机制

  • 电流参数设定

  • 电池预防报警机制完善:电池电量过低,蜂鸣器报警快闪红灯。

  • 用户修改参数系统界面

  • 系统自检完善

  • OLED刷新过慢、由于I2C深度传感器 占用 内存过大(软件I2C,有卡死延时的存在)

  • 深度传感器 I2C改成硬件I2C

  • 复位阶段 探照灯 引脚为高电平

  • INA169电流采集数据异常

    • 将下拉电阻增大,减少被拉低的情况
  • 数据环形缓冲器

    • 参考ETAFLY的数据接收