• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

5.2 利用LCD屏幕進(jìn)行離線調(diào)試(脫機(jī)調(diào)閾值) openmv+STM32 串口通信 神經(jīng)網(wǎng)絡(luò)訓(xùn)練

03/24 08:44
930
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

聯(lián)系方式.txt

共1個(gè)文件

**非常詳細(xì)的視頻和文字教程,講解常見(jiàn)的openmv教程包括 巡線、物體識(shí)別、圓環(huán)識(shí)別、閾值自動(dòng)獲取等。非常適合學(xué)習(xí)openmv、K210、K230等項(xiàng)目
視頻合集鏈接在


openmv教程合集 openmv入門(mén)到項(xiàng)目開(kāi)發(fā) openmv和STM32通信 openmv和opencv區(qū)別 openmv巡線 openmv數(shù)字識(shí)別教程LCD

專(zhuān)刊openmv視覺(jué)文章鏈接:
https://blog.csdn.net/qq_46187594/category_12900902.html

5.2 利用LCD屏幕進(jìn)行離線調(diào)試(脫機(jī)調(diào)閾值)

LCD屏幕原理圖
在這里插入圖片描述
按鍵
在這里插入圖片描述
LCD對(duì)應(yīng)PCB上從正面看,從右邊到左邊依次是KEY1、KEY2、KEY3

5.2.1-LCD基礎(chǔ)顯示功能(重要!使用LCD屏幕必看!)

注意你板子的不同固件,可以使用的LCD函數(shù)有所不同,所以如果LCD報(bào)錯(cuò),可以更改相關(guān)代碼。

0-LCD無(wú)法顯示或者LCD代碼報(bào)錯(cuò)(LCD屏幕使用出現(xiàn)問(wèn)題必看)

openmv長(zhǎng)排針和LCD排母接觸不良

問(wèn)題是:openmv長(zhǎng)排針和LCD排母接觸不良,解決方法,不要插太深排母或者 插更深一些排母,重新拔插幾次排母,或者更換焊接新的排針排母。
在這里插入圖片描述
LCD安裝問(wèn)題

如果是openmv通過(guò)我們的支架安裝到了小車(chē)上,依舊是可以有位置安裝我們的openmv的。

如果不知道支架如何組裝和安裝的可以看下面這個(gè)視頻的第19章節(jié):(https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from)
在這里插入圖片描述

在這里插入圖片描述
然后再把螺絲擰上
在這里插入圖片描述
然后插上就行
在這里插入圖片描述
代碼報(bào)錯(cuò)

解決:不同openmv版本,對(duì)應(yīng)的openmv函數(shù)是不一樣的,可以根據(jù)自己的固件版本自行替代函數(shù)。

現(xiàn)在一共分為兩類(lèi),一種的

# 此代碼適用于4.4.3及之前的固件版本。
import lcd  #這個(gè)是4.4.3要包括的模塊
lcd.init() # 初始化lcd屏幕。
lcd.display(img) # 拍照并顯示圖像。 注意這個(gè)img是你要處理顯示的圖像,要根據(jù)自己的進(jìn)行更改
# 此代碼適用于4.5.1至最新的固件版本。
import display  #4.5.1要包含的頭文件
lcd = display.SPIDisplay() #使用的初始化方式
lcd.write(img)  # 拍照并顯示圖像。注意這個(gè)img是你要處理顯示的圖像,要根據(jù)自己的進(jìn)行更改

電腦連接openmv 后下面會(huì)出現(xiàn)openmv固件版本

在這里插入圖片描述

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

適用于4.4.3及之前的固件版本,如果你是4.5.1及其以上固件,要換代碼

# LCD顯示例程
#
# 注意:要運(yùn)行這個(gè)例子,你需要一個(gè)用于OpenMV的LCD擴(kuò)展板。
#
# LCD擴(kuò)展板允許您在運(yùn)行時(shí)查看您的OpenMV Cam的幀緩沖區(qū)。
#
# 此代碼適用于4.4.3及之前的固件版本。

import sensor, image, lcd
#教程作者:好家伙VCC
#歡迎交流群QQ: 771027961 作者郵箱: 1930299709@qq.com
#更多教程B站主頁(yè):[好家伙VCC的個(gè)人空間-好家伙VCC個(gè)人主頁(yè)-嗶哩嗶哩視頻](https://space.bilibili.com/434192043)
#淘寶主頁(yè)鏈接:[首頁(yè)-好家伙VCC-淘寶網(wǎng)](https://shop415231378.taobao.com)
#更多嵌入式手把手教程-盡在好家伙VCC
sensor.reset() # 初始化sensor
#***************************如果不需要鏡像就注釋掉 下面 的代碼********************
# 設(shè)置攝像頭鏡像/翻轉(zhuǎn)操作,根據(jù)攝像頭安裝的方向決定是否需要
sensor.set_vflip(True)  # 垂直方向翻轉(zhuǎn)。根據(jù)實(shí)際攝像頭模塊的安裝位置調(diào)整是否需要此操作
#?。?!重要:不同攝像頭是否需要鏡像,根據(jù)實(shí)際情況定。如果不需要鏡像,請(qǐng)注釋掉以下代碼:
sensor.set_hmirror(True)  # 水平方向反轉(zhuǎn)。根據(jù)實(shí)際攝像頭模塊的安裝位置調(diào)整是否需要此操作
#?。?!重要:不同攝像頭是否需要鏡像,根據(jù)實(shí)際情況定。如果不需要鏡像,請(qǐng)注釋掉上述代碼。
#***************************如果不需要鏡像就注釋掉 上面 的代碼********************

sensor.set_pixformat(sensor.RGB565) # or sensor.GRAYSCALE
#設(shè)置圖像色彩格式,有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顯示例程
#
# 注意:要運(yùn)行這個(gè)例子,你需要一個(gè)用于OpenMV的LCD擴(kuò)展板。
#
# LCD擴(kuò)展板允許您在運(yùn)行時(shí)查看您的OpenMV Cam的幀緩沖區(qū)。
#
# 此代碼適用于4.5.1至最新的固件版本。

import sensor
import display
#教程作者:好家伙VCC
#歡迎交流群QQ: 771027961 作者郵箱: 1930299709@qq.com
#更多教程B站主頁(yè):[好家伙VCC的個(gè)人空間-好家伙VCC個(gè)人主頁(yè)-嗶哩嗶哩視頻](https://space.bilibili.com/434192043)
#淘寶主頁(yè)鏈接:[首頁(yè)-好家伙VCC-淘寶網(wǎng)](https://shop415231378.taobao.com)
#更多嵌入式手把手教程-盡在好家伙VCC
sensor.reset()  # 初始化sensor
#***************************如果不需要鏡像就注釋掉 下面 的代碼********************
# 設(shè)置攝像頭鏡像/翻轉(zhuǎn)操作,根據(jù)攝像頭安裝的方向決定是否需要
sensor.set_vflip(True)  # 垂直方向翻轉(zhuǎn)。根據(jù)實(shí)際攝像頭模塊的安裝位置調(diào)整是否需要此操作
#?。?!重要:不同攝像頭是否需要鏡像,根據(jù)實(shí)際情況定。如果不需要鏡像,請(qǐng)注釋掉以下代碼:
sensor.set_hmirror(True)  # 水平方向反轉(zhuǎn)。根據(jù)實(shí)際攝像頭模塊的安裝位置調(diào)整是否需要此操作
#?。?!重要:不同攝像頭是否需要鏡像,根據(jù)實(shí)際情況定。如果不需要鏡像,請(qǐng)注釋掉上述代碼。
#***************************如果不需要鏡像就注釋掉 上面 的代碼********************
sensor.set_pixformat(sensor.RGB565)  # or sensor.GRAYSCALE
sensor.set_framesize(sensor.QQVGA2)  # 128x160大小的特定液晶屏。
# 初始化lcd屏幕。
# 注意:如果支持,可以使用 DAC 或 PWM 背光控制器來(lái)控制背光強(qiáng)度:
#  lcd = display.SPIDisplay(backlight=display.DACBacklight(channel=2))
#  lcd.backlight(25) # 25% intensity
# 否則,將使用默認(rèn)的 GPIO(開(kāi)on/關(guān)off)控制器。
lcd = display.SPIDisplay()

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

所以比如你使用的是4.5.1固件,但是你使用LCD部分代碼是4.4.3就會(huì)可能出現(xiàn)下面的報(bào)錯(cuò)

報(bào)錯(cuò)沒(méi)有l(wèi)cd模塊 ImportError: no module named ‘Icd’
在這里插入圖片描述
如果你使用的是4.4.3之后固件,然后使用的代碼是4.5.1之后使用的LCD代碼,會(huì)出現(xiàn)下面報(bào)錯(cuò)

沒(méi)有display模塊。ImportError: no module named ‘display’
在這里插入圖片描述
所以總結(jié)他們的函數(shù)如下

# 此代碼適用于4.4.3及之前的固件版本。
import lcd  #這個(gè)是4.4.3要包括的模塊
lcd.init() # 初始化lcd屏幕。
lcd.display(img) # 拍照并顯示圖像。 注意這個(gè)img是你要處理顯示的圖像,要根據(jù)自己的進(jìn)行更改
# 此代碼適用于4.5.1至最新的固件版本。
import display  #4.5.1要包含的頭文件
lcd = display.SPIDisplay() #使用的初始化方式
while True:
    lcd.write(img)  # 拍照并顯示圖像。注意這個(gè)img是你要處理顯示的圖像,要根據(jù)自己的進(jìn)行更改
3-兼容之前分辨率如何讓LCD屏幕顯示更全

之前我們?cè)O(shè)置的圖像分辨率大多是QQVGA、QVGA或者其他分辨率,很少使用QQVGA2

那么我們?nèi)绾问褂肣QVGA、QVGA分辨率又能讓屏幕完全顯示畫(huà)幅那。

比如下面是這個(gè),顯示QQVGA的分辨率,顯示就是不全的,五個(gè)字,可能就只能顯示四個(gè)字,這樣不方便我們預(yù)覽調(diào)試。

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

QQVGA分辨率

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

# LCD顯示例程
#
# 注意:要運(yùn)行這個(gè)例子,你需要一個(gè)用于OpenMV的LCD擴(kuò)展板。
#
# LCD擴(kuò)展板允許您在運(yùn)行時(shí)查看您的OpenMV Cam的幀緩沖區(qū)。
#
# 此代碼適用于4.4.3及之前的固件版本。

import sensor, image, lcd
#教程作者:好家伙VCC
#歡迎交流群QQ: 771027961 作者郵箱: 1930299709@qq.com
#更多教程B站主頁(yè):[好家伙VCC的個(gè)人空間-好家伙VCC個(gè)人主頁(yè)-嗶哩嗶哩視頻](https://space.bilibili.com/434192043)
#淘寶主頁(yè)鏈接:[首頁(yè)-好家伙VCC-淘寶網(wǎng)](https://shop415231378.taobao.com)
#更多嵌入式手把手教程-盡在好家伙VCC
sensor.reset() # 初始化sensor
#***************************如果不需要鏡像就注釋掉 下面 的代碼********************
# 設(shè)置攝像頭鏡像/翻轉(zhuǎn)操作,根據(jù)攝像頭安裝的方向決定是否需要
sensor.set_vflip(True)  # 垂直方向翻轉(zhuǎn)。根據(jù)實(shí)際攝像頭模塊的安裝位置調(diào)整是否需要此操作
#?。?!重要:不同攝像頭是否需要鏡像,根據(jù)實(shí)際情況定。如果不需要鏡像,請(qǐng)注釋掉以下代碼:
sensor.set_hmirror(True)  # 水平方向反轉(zhuǎn)。根據(jù)實(shí)際攝像頭模塊的安裝位置調(diào)整是否需要此操作
#?。?!重要:不同攝像頭是否需要鏡像,根據(jù)實(shí)際情況定。如果不需要鏡像,請(qǐng)注釋掉上述代碼。
#***************************如果不需要鏡像就注釋掉 上面 的代碼********************

sensor.set_pixformat(sensor.RGB565) # or sensor.GRAYSCALE
#設(shè)置圖像色彩格式,有RGB565色彩圖和GRAYSCALE灰度圖兩種

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

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

下面是顯示效果。LCD屏幕上顯示的內(nèi)容是不全面的。
在這里插入圖片描述
所以這里我們需要修改一下,下面的代碼顯示更全面。

4.4.3及之前固件版本使用

# LCD顯示例程
#
# 注意:要運(yùn)行這個(gè)例子,你需要一個(gè)用于OpenMV的LCD擴(kuò)展板。
#
# LCD擴(kuò)展板允許您在運(yùn)行時(shí)查看您的OpenMV Cam的幀緩沖區(qū)。
#
# 此代碼適用于4.4.3及之前的固件版本。

import sensor, image, lcd

sensor.reset() # 初始化sensor
#***************************如果不需要鏡像就注釋掉 下面 的代碼********************
# 設(shè)置攝像頭鏡像/翻轉(zhuǎn)操作,根據(jù)攝像頭安裝的方向決定是否需要
sensor.set_vflip(True)  # 垂直方向翻轉(zhuǎn)。根據(jù)實(shí)際攝像頭模塊的安裝位置調(diào)整是否需要此操作
#?。?!重要:不同攝像頭是否需要鏡像,根據(jù)實(shí)際情況定。如果不需要鏡像,請(qǐng)注釋掉以下代碼:
sensor.set_hmirror(True)  # 水平方向反轉(zhuǎn)。根據(jù)實(shí)際攝像頭模塊的安裝位置調(diào)整是否需要此操作
#?。?!重要:不同攝像頭是否需要鏡像,根據(jù)實(shí)際情況定。如果不需要鏡像,請(qǐng)注釋掉上述代碼。
#***************************如果不需要鏡像就注釋掉 上面 的代碼********************

sensor.set_pixformat(sensor.RGB565) # or sensor.GRAYSCALE
#設(shè)置圖像色彩格式,有RGB565色彩圖和GRAYSCALE灰度圖兩種

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

while(True):
    img = sensor.snapshot()
    lcd_coyp = img.copy(0.7,0.7)# 兩個(gè)參數(shù)分別是 圖像在水平x方向上的縮放比例、圖像在垂直方向Y上的縮放比例 如果圖像顯示不全就調(diào)整更小些
       
    lcd.display(lcd_coyp) # 拍照并顯示圖像。

4.5.1至最新的固件版本

# LCD顯示例程
#
# 注意:要運(yùn)行這個(gè)例子,你需要一個(gè)用于OpenMV的LCD擴(kuò)展板。
#
# LCD擴(kuò)展板允許您在運(yùn)行時(shí)查看您的OpenMV Cam的幀緩沖區(qū)。
#
# 此代碼適用于4.5.1至最新的固件版本。

import sensor
import display

sensor.reset()  # 初始化sensor
#***************************如果不需要鏡像就注釋掉 下面 的代碼********************
# 設(shè)置攝像頭鏡像/翻轉(zhuǎn)操作,根據(jù)攝像頭安裝的方向決定是否需要
sensor.set_vflip(True)  # 垂直方向翻轉(zhuǎn)。根據(jù)實(shí)際攝像頭模塊的安裝位置調(diào)整是否需要此操作
#?。?!重要:不同攝像頭是否需要鏡像,根據(jù)實(shí)際情況定。如果不需要鏡像,請(qǐng)注釋掉以下代碼:
sensor.set_hmirror(True)  # 水平方向反轉(zhuǎn)。根據(jù)實(shí)際攝像頭模塊的安裝位置調(diào)整是否需要此操作
#?。?!重要:不同攝像頭是否需要鏡像,根據(jù)實(shí)際情況定。如果不需要鏡像,請(qǐng)注釋掉上述代碼。
#***************************如果不需要鏡像就注釋掉 上面 的代碼********************
sensor.set_pixformat(sensor.RGB565)  # or sensor.GRAYSCALE
sensor.set_framesize(sensor.QQVGA)  # 128x160大小的特定液晶屏。
# 初始化lcd屏幕。
# 注意:如果支持,可以使用 DAC 或 PWM 背光控制器來(lái)控制背光強(qiáng)度:
#  lcd = display.SPIDisplay(backlight=display.DACBacklight(channel=2))
#  lcd.backlight(25) # 25% intensity
# 否則,將使用默認(rèn)的 GPIO(開(kāi)on/關(guān)off)控制器。
lcd = display.SPIDisplay()

while True:
    img = sensor.snapshot()
    lcd_coyp = img.copy(0.7,0.7)# 兩個(gè)參數(shù)分別是 圖像在水平x方向上的縮放比例、圖像在垂直方向Y上的縮放比例 如果圖像顯示不全就調(diào)整更小些
       
    lcd.write(lcd_coyp) # 拍照并顯示圖像。

  • 聯(lián)系方式.txt
    下載

相關(guān)推薦

方案定制

去合作
方案開(kāi)發(fā)定制化,2000+方案商即時(shí)響應(yīng)!