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

[星瞳科技]OpenMV使用时有哪些常见错误和解决办法?

常见代码错误

ImportError:no module named xxx

这个错误是Import错误,没有stepper这个模块。

原因:

  • 你没有把stepper.py这个文件拖到你的板子里。见:模块的使用

  • 拖过去之后,需要重启,使模块生效

MemoryError:FB Alloc Collision!!!

这个问题是模板匹配的模板文件太大了,内存爆了。见:模板匹配

AttributeError:'tuple' object has no attrbute 'rect'

这个报错提示,第一眼看上去是代码写错了,也确实是写错了,一个tupple没有rect这个方法。
但是这个代码是例程的代码,怎么回事呢?

固件和IDE不匹配!升级固件就好了!

常见故障

 

OpenMV插上电脑没反应怎么办?

  • 检查OpenMV的电源。用万用表测量3.3V引脚,如果读数不正常(小于3V),说明你电脑的USB口有问题,或者USB线有问题,换换换。
  • 检查电脑上的设备管理器,查看驱动是否正确安装,正确的步骤:开发环境
  • 询问卖家,是否正确的烧写固件

OpenMV和Arduino/STM32/51串口连接,但是没有接收到信息怎么办?

  • 确定OpenMV的串口可以正确输出。使用TTL-USB模块接到电脑上,或者用示波器/逻辑分析仪接到引脚上,查看是否数据输出。
  • 确定Arduino/STM32/51的程序没问题,使用TTL-USB模块给Arduino/STM32/51发送数据,查看结果。比如你写的是接收到指定的数据就亮灯或者灭灯,或者串口转发(此处新手最易犯错误,根本没搞清楚哪个串口接收数据,哪个串口发送数据,也是我被问的最多的一个问题)。
  • 确定串口连线没问题。OpenMV的TX—-Arduino的RX,OpenMV的RX—-Arduino的TX,GND一定要接起来。 确定OpenMV和Arduino/STM32/51的供电没问题。有些人确实不知道一定要供电,或者是粗心。:-)

串口的数据是乱码怎么办?

  • 需要选择ascii码显示,如果是16进制显示,可能你会看成乱码。
  • 确认是ttl电平连接,不能使用电脑上的RS232直接连接OpenMV的串口。

详见串口通信下

为什么不能上电运行程序呢?

  • (最常见)检查代码是否有问题,请在IDE里测试代码,如果有错误,肯定不会正常运行。
  • 根据 10分钟快速上手 的步骤,把main.py修改为要运行的代码。
  • 确认正确供电,VIN引脚输入3.7V~7V的电压(推荐5V),或者直接插入USB供电。
  • 如果是插入USB线缆供电,请确认不要在IDE连接OpenMV,或者任何串口助手连接OpenMV的USB串口,因为这时会启用REPL,会中断main.py的程序。

为什么不能保存程序到OpenMV呢?

  • 这是由于你可能打开了这个文件,或者那个驱动抽风了--->重启电脑
  • 如果还不行,可能是文件系统坏了--->格式化

运行程序之后IDE里的 没有图像/图像不动 呢?

如果正常运行,那么可能你不小心点击了disable,再点击一下即可。

为什么没有右侧的显示图像栏?

用鼠标在右侧拖出来即可。

为什么帧率没有标识的那么高?

在IDE里运行时,因为OpenMV需要传输图像给电脑,这个需要耗费很多的时间,可以关闭电脑的图像显示。

记录耗费时间

假如运行程序后,图像一卡一卡的,那么说明帧率小.

计算帧率

import sensor, image, timesensor.reset()                      # Reset and initialize the sensor.
sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA)   # Set frame size to QVGA (320x240)
sensor.skip_frames(10)              # Wait for settings take effect.
clock = time.clock()                # Create a clock object to track the FPS.while(True):clock.tick()                    # Update the FPS clock.img = sensor.snapshot()         # Take a picture and return the image.print(clock.fps())

通过time.clock()可以追踪帧率。

计算耗费的时间

如果帧率小,那么可以通过millis()来计算不同过程的时间。 可以测量出到底是程序哪里耗费时间多。

例子:

import sensor, image, timesensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000)clock = time.clock()while(True):time_start = time.ticks_ms()img = sensor.snapshot()time_end = time.ticks_ms()print(time_end - time_start)

使用time.ticks_ms()记录时间

然后过一段时间,做差,计算出经历的时间。

 

http://www.lryc.cn/news/426349.html

相关文章:

  • 深度学习入门(二):PyTorch使用-张量的类型转换,拼接操作,索引操作,形状操作
  • 使用C#禁止Windows系统插入U盘(除鼠标键盘以外的USB设备)
  • 18. 基于ES实战海量数据检索
  • SpringBoot和Redis的交互数据操作以及Redis的持久化/删除策略和缓存问题
  • Butterworth filter的运行原理
  • 掌握SQL的威力:批量更新与删除的艺术
  • 《新一代数据可视化分析工具应用指南》正式开放下载
  • 数据结构与算法——BFS(广度优先搜索)
  • 登录 k8s-Dashboard 显示 Your connection is not private
  • 【Bifrost】ubuntu24.04 远程构建及clion设置编码风格google
  • 批量查询全国快递单号:高效追踪物流信息
  • DVWA | CSRF(LowMedium)攻击的渗透实践
  • Tmagic-editor低代码底层拖拽库Moveable示例学习
  • 公开测评:文件防泄密系统哪家好|4款文件防泄密软件推荐
  • 【wiki知识库】09.欢迎页面添加(统计浏览量)Vue修改
  • ui自动化难点
  • 静态路由与默认路由和实验以及ARP工作原理
  • 美国洛杉矶大带宽服务器的运维与监控
  • AtCoder Beginner Contest 367 A~D
  • oracle 保留两位小数
  • Aop切面技术之存储用户信息
  • FreeBSD 针对OpenSSH 高危漏洞发布紧急补丁
  • 【C语言小项目】五子棋游戏
  • 基于Java语言的能源管理系统-水电气热油数据采集系统
  • 人工智能在肿瘤亚型分类领域的研究进展|顶刊速递·24-08-13
  • Taro+Vue 创建微信小程序
  • 智能安全守护,寺庙安全用电解决方案
  • 加热系统加入达温即停和保温功能
  • C++_2_ inline内联函数 宏函数(2/3)
  • ROS执行多个节点报错(遥控运动及SLAM建图)