• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

5.2 利用LCD屏幕进行离线调试(脱机调阈值) openmv+STM32 串口通信 神经网络训练

03/24 08:44
573
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

联系方式.txt

共1个文件

[相关器件] BGSA147ML10E6327XTSA1

射频-混频器/开关/检波器,BGSA147ML10 - Ultra-low resistance SP4T antenna tuner

**非常详细的视频和文字教程,讲解常见的openmv教程包括 巡线、物体识别、圆环识别、阈值自动获取等。非常适合学习openmv、K210、K230等项目
视频合集链接在


openmv教程合集 openmv入门到项目开发 openmv和STM32通信 openmv和opencv区别 openmv巡线 openmv数字识别教程LCD

专刊openmv视觉文章链接:
https://blog.csdn.net/qq_46187594/category_12900902.html

5.2 利用LCD屏幕进行离线调试(脱机调阈值)

LCD屏幕原理图
在这里插入图片描述
按键
在这里插入图片描述
LCD对应PCB上从正面看,从右边到左边依次是KEY1、KEY2、KEY3

5.2.1-LCD基础显示功能(重要!使用LCD屏幕必看!)

注意你板子的不同固件,可以使用的LCD函数有所不同,所以如果LCD报错,可以更改相关代码。

0-LCD无法显示或者LCD代码报错(LCD屏幕使用出现问题必看)

openmv长排针和LCD排母接触不良

问题是:openmv长排针和LCD排母接触不良,解决方法,不要插太深排母或者 插更深一些排母,重新拔插几次排母,或者更换焊接新的排针排母。
在这里插入图片描述
LCD安装问题

如果是openmv通过我们的支架安装到了小车上,依旧是可以有位置安装我们的openmv的。

如果不知道支架如何组装和安装的可以看下面这个视频的第19章节:(https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from)
在这里插入图片描述

在这里插入图片描述
然后再把螺丝拧上
在这里插入图片描述
然后插上就行
在这里插入图片描述
代码报错

解决:不同openmv版本,对应的openmv函数是不一样的,可以根据自己的固件版本自行替代函数。

现在一共分为两类,一种的

# 此代码适用于4.4.3及之前的固件版本。
import lcd  #这个是4.4.3要包括的模块
lcd.init() # 初始化lcd屏幕。
lcd.display(img) # 拍照并显示图像。 注意这个img是你要处理显示的图像,要根据自己的进行更改
# 此代码适用于4.5.1至最新的固件版本。
import display  #4.5.1要包含的头文件
lcd = display.SPIDisplay() #使用的初始化方式
lcd.write(img)  # 拍照并显示图像。注意这个img是你要处理显示的图像,要根据自己的进行更改

电脑连接openmv 后下面会出现openmv固件版本

在这里插入图片描述

1-openmv固件为4.4.3及之前固件版本

适用于4.4.3及之前的固件版本,如果你是4.5.1及其以上固件,要换代码

# LCD显示例程
#
# 注意:要运行这个例子,你需要一个用于OpenMV的LCD扩展板。
#
# LCD扩展板允许您在运行时查看您的OpenMV Cam的帧缓冲区。
#
# 此代码适用于4.4.3及之前的固件版本。

import sensor, image, lcd
#教程作者:好家伙VCC
#欢迎交流群QQ: 771027961 作者邮箱: 1930299709@qq.com
#更多教程B站主页:[好家伙VCC的个人空间-好家伙VCC个人主页-哔哩哔哩视频](https://space.bilibili.com/434192043)
#淘宝主页链接:[首页-好家伙VCC-淘宝网](https://shop415231378.taobao.com)
#更多嵌入式手把手教程-尽在好家伙VCC
sensor.reset() # 初始化sensor
#***************************如果不需要镜像就注释掉 下面 的代码********************
# 设置摄像头镜像/翻转操作,根据摄像头安装的方向决定是否需要
sensor.set_vflip(True)  # 垂直方向翻转。根据实际摄像头模块的安装位置调整是否需要此操作
#!!!重要:不同摄像头是否需要镜像,根据实际情况定。如果不需要镜像,请注释掉以下代码:
sensor.set_hmirror(True)  # 水平方向反转。根据实际摄像头模块的安装位置调整是否需要此操作
#!!!重要:不同摄像头是否需要镜像,根据实际情况定。如果不需要镜像,请注释掉上述代码。
#***************************如果不需要镜像就注释掉 上面 的代码********************

sensor.set_pixformat(sensor.RGB565) # or sensor.GRAYSCALE
#设置图像色彩格式,有RGB565色彩图和GRAYSCALE灰度图两种

sensor.set_framesize(sensor.QQVGA2) # 128x160大小的特定液晶屏。
lcd.init() # 初始化lcd屏幕。

while(True):
    lcd.display(sensor.snapshot()) # 拍照并显示图像。
2-openmv固件为4.5.1至最新的固件版本

固件版本为:

4.5.1至最新的固件版本

# LCD显示例程
#
# 注意:要运行这个例子,你需要一个用于OpenMV的LCD扩展板。
#
# LCD扩展板允许您在运行时查看您的OpenMV Cam的帧缓冲区。
#
# 此代码适用于4.5.1至最新的固件版本。

import sensor
import display
#教程作者:好家伙VCC
#欢迎交流群QQ: 771027961 作者邮箱: 1930299709@qq.com
#更多教程B站主页:[好家伙VCC的个人空间-好家伙VCC个人主页-哔哩哔哩视频](https://space.bilibili.com/434192043)
#淘宝主页链接:[首页-好家伙VCC-淘宝网](https://shop415231378.taobao.com)
#更多嵌入式手把手教程-尽在好家伙VCC
sensor.reset()  # 初始化sensor
#***************************如果不需要镜像就注释掉 下面 的代码********************
# 设置摄像头镜像/翻转操作,根据摄像头安装的方向决定是否需要
sensor.set_vflip(True)  # 垂直方向翻转。根据实际摄像头模块的安装位置调整是否需要此操作
#!!!重要:不同摄像头是否需要镜像,根据实际情况定。如果不需要镜像,请注释掉以下代码:
sensor.set_hmirror(True)  # 水平方向反转。根据实际摄像头模块的安装位置调整是否需要此操作
#!!!重要:不同摄像头是否需要镜像,根据实际情况定。如果不需要镜像,请注释掉上述代码。
#***************************如果不需要镜像就注释掉 上面 的代码********************
sensor.set_pixformat(sensor.RGB565)  # or sensor.GRAYSCALE
sensor.set_framesize(sensor.QQVGA2)  # 128x160大小的特定液晶屏。
# 初始化lcd屏幕。
# 注意:如果支持,可以使用 DAC 或 PWM 背光控制器来控制背光强度:
#  lcd = display.SPIDisplay(backlight=display.DACBacklight(channel=2))
#  lcd.backlight(25) # 25% intensity
# 否则,将使用默认的 GPIO(开on/关off)控制器。
lcd = display.SPIDisplay()

while True:
    lcd.write(sensor.snapshot())  # 拍照并显示图像。

所以比如你使用的是4.5.1固件,但是你使用LCD部分代码是4.4.3就会可能出现下面的报错

报错没有lcd模块 ImportError: no module named ‘Icd’
在这里插入图片描述
如果你使用的是4.4.3之后固件,然后使用的代码是4.5.1之后使用的LCD代码,会出现下面报错

没有display模块。ImportError: no module named ‘display’
在这里插入图片描述
所以总结他们的函数如下

# 此代码适用于4.4.3及之前的固件版本。
import lcd  #这个是4.4.3要包括的模块
lcd.init() # 初始化lcd屏幕。
lcd.display(img) # 拍照并显示图像。 注意这个img是你要处理显示的图像,要根据自己的进行更改
# 此代码适用于4.5.1至最新的固件版本。
import display  #4.5.1要包含的头文件
lcd = display.SPIDisplay() #使用的初始化方式
while True:
    lcd.write(img)  # 拍照并显示图像。注意这个img是你要处理显示的图像,要根据自己的进行更改
3-兼容之前分辨率如何让LCD屏幕显示更全

之前我们设置的图像分辨率大多是QQVGA、QVGA或者其他分辨率,很少使用QQVGA2

那么我们如何使用QQVGA、QVGA分辨率又能让屏幕完全显示画幅那。

比如下面是这个,显示QQVGA的分辨率,显示就是不全的,五个字,可能就只能显示四个字,这样不方便我们预览调试。

注意这里我们使用的sensor.set_framesize(sensor.QQVGA) # QQVGA 分辨率

QQVGA分辨率

适用于4.4.3及之前的固件版本

# LCD显示例程
#
# 注意:要运行这个例子,你需要一个用于OpenMV的LCD扩展板。
#
# LCD扩展板允许您在运行时查看您的OpenMV Cam的帧缓冲区。
#
# 此代码适用于4.4.3及之前的固件版本。

import sensor, image, lcd
#教程作者:好家伙VCC
#欢迎交流群QQ: 771027961 作者邮箱: 1930299709@qq.com
#更多教程B站主页:[好家伙VCC的个人空间-好家伙VCC个人主页-哔哩哔哩视频](https://space.bilibili.com/434192043)
#淘宝主页链接:[首页-好家伙VCC-淘宝网](https://shop415231378.taobao.com)
#更多嵌入式手把手教程-尽在好家伙VCC
sensor.reset() # 初始化sensor
#***************************如果不需要镜像就注释掉 下面 的代码********************
# 设置摄像头镜像/翻转操作,根据摄像头安装的方向决定是否需要
sensor.set_vflip(True)  # 垂直方向翻转。根据实际摄像头模块的安装位置调整是否需要此操作
#!!!重要:不同摄像头是否需要镜像,根据实际情况定。如果不需要镜像,请注释掉以下代码:
sensor.set_hmirror(True)  # 水平方向反转。根据实际摄像头模块的安装位置调整是否需要此操作
#!!!重要:不同摄像头是否需要镜像,根据实际情况定。如果不需要镜像,请注释掉上述代码。
#***************************如果不需要镜像就注释掉 上面 的代码********************

sensor.set_pixformat(sensor.RGB565) # or sensor.GRAYSCALE
#设置图像色彩格式,有RGB565色彩图和GRAYSCALE灰度图两种

sensor.set_framesize(sensor.QQVGA) # QQVGA 分辨率
lcd.init() # 初始化lcd屏幕。

while(True):
    lcd.display(sensor.snapshot()) # 拍照并显示图像。

下面是显示效果。LCD屏幕上显示的内容是不全面的。
在这里插入图片描述
所以这里我们需要修改一下,下面的代码显示更全面。

4.4.3及之前固件版本使用

# LCD显示例程
#
# 注意:要运行这个例子,你需要一个用于OpenMV的LCD扩展板。
#
# LCD扩展板允许您在运行时查看您的OpenMV Cam的帧缓冲区。
#
# 此代码适用于4.4.3及之前的固件版本。

import sensor, image, lcd

sensor.reset() # 初始化sensor
#***************************如果不需要镜像就注释掉 下面 的代码********************
# 设置摄像头镜像/翻转操作,根据摄像头安装的方向决定是否需要
sensor.set_vflip(True)  # 垂直方向翻转。根据实际摄像头模块的安装位置调整是否需要此操作
#!!!重要:不同摄像头是否需要镜像,根据实际情况定。如果不需要镜像,请注释掉以下代码:
sensor.set_hmirror(True)  # 水平方向反转。根据实际摄像头模块的安装位置调整是否需要此操作
#!!!重要:不同摄像头是否需要镜像,根据实际情况定。如果不需要镜像,请注释掉上述代码。
#***************************如果不需要镜像就注释掉 上面 的代码********************

sensor.set_pixformat(sensor.RGB565) # or sensor.GRAYSCALE
#设置图像色彩格式,有RGB565色彩图和GRAYSCALE灰度图两种

sensor.set_framesize(sensor.QQVGA) # QQVGA 分辨率
lcd.init() # 初始化lcd屏幕。

while(True):
    img = sensor.snapshot()
    lcd_coyp = img.copy(0.7,0.7)# 两个参数分别是 图像在水平x方向上的缩放比例、图像在垂直方向Y上的缩放比例 如果图像显示不全就调整更小些
       
    lcd.display(lcd_coyp) # 拍照并显示图像。

4.5.1至最新的固件版本

# LCD显示例程
#
# 注意:要运行这个例子,你需要一个用于OpenMV的LCD扩展板。
#
# LCD扩展板允许您在运行时查看您的OpenMV Cam的帧缓冲区。
#
# 此代码适用于4.5.1至最新的固件版本。

import sensor
import display

sensor.reset()  # 初始化sensor
#***************************如果不需要镜像就注释掉 下面 的代码********************
# 设置摄像头镜像/翻转操作,根据摄像头安装的方向决定是否需要
sensor.set_vflip(True)  # 垂直方向翻转。根据实际摄像头模块的安装位置调整是否需要此操作
#!!!重要:不同摄像头是否需要镜像,根据实际情况定。如果不需要镜像,请注释掉以下代码:
sensor.set_hmirror(True)  # 水平方向反转。根据实际摄像头模块的安装位置调整是否需要此操作
#!!!重要:不同摄像头是否需要镜像,根据实际情况定。如果不需要镜像,请注释掉上述代码。
#***************************如果不需要镜像就注释掉 上面 的代码********************
sensor.set_pixformat(sensor.RGB565)  # or sensor.GRAYSCALE
sensor.set_framesize(sensor.QQVGA)  # 128x160大小的特定液晶屏。
# 初始化lcd屏幕。
# 注意:如果支持,可以使用 DAC 或 PWM 背光控制器来控制背光强度:
#  lcd = display.SPIDisplay(backlight=display.DACBacklight(channel=2))
#  lcd.backlight(25) # 25% intensity
# 否则,将使用默认的 GPIO(开on/关off)控制器。
lcd = display.SPIDisplay()

while True:
    img = sensor.snapshot()
    lcd_coyp = img.copy(0.7,0.7)# 两个参数分别是 图像在水平x方向上的缩放比例、图像在垂直方向Y上的缩放比例 如果图像显示不全就调整更小些
       
    lcd.write(lcd_coyp) # 拍照并显示图像。

  • 联系方式.txt
    下载
[相关器件] BGSA147ML10E6327XTSA1

射频-混频器/开关/检波器,BGSA147ML10 - Ultra-low resistance SP4T antenna tuner

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

方案定制

去合作
方案开发定制化,2000+方案商即时响应!