0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

19.3-星曈科技 openmv Hopenmv發(fā)送五個(gè)uchar Openmv+STM32F103C8T6視覺(jué)巡線小車 STM32循跡小車系列教程

dfhjgfg ? 來(lái)源:dfhjgfg ? 作者:dfhjgfg ? 2024-08-20 11:32 ? 次閱讀

功能介紹放開(kāi)頭, 使用便捷無(wú)需愁

這是全網(wǎng)最詳細(xì)、性價(jià)比最高的STM32實(shí)戰(zhàn)項(xiàng)目入門教程,通過(guò)合理的硬件設(shè)計(jì)和詳細(xì)的視頻筆記介紹,硬件使用STM32F103主控資料多方便學(xué)習(xí),通過(guò)3萬(wàn)字筆記、12多個(gè)小時(shí)視頻、20多章節(jié)代碼手把手教會(huì)你如何開(kāi)發(fā)和調(diào)試。讓你更快掌握嵌入式系統(tǒng)開(kāi)發(fā)。

**V3.3.0-STM32智能小車 **

**視頻: **[https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click]

V3:HAL庫(kù)開(kāi)發(fā)、功能:PID速度控制、PID循跡、PID跟隨、遙控、避障、PID角度控制、視覺(jué)控制、電磁循跡、RTOS等功能。

第19章-OpenMV視覺(jué)循跡功能

19.3-openmv發(fā)送五個(gè)uchar

openmv 通過(guò)串口發(fā)送數(shù)據(jù)格式:幀頭+一個(gè)字節(jié) +一個(gè)字節(jié)+一個(gè)字節(jié)+一個(gè)字節(jié)+一個(gè)字節(jié)+幀尾。

把上面識(shí)別的數(shù)據(jù)發(fā)送出來(lái)結(jié)合電腦串口上位機(jī)調(diào)試、顯示上位機(jī)上

前面我們通過(guò)openmv 識(shí)別到線的相對(duì)位置,那么現(xiàn)在要openmv 把上面的信息發(fā)給STM32,然后STM32接受到信息知道線位置才能更好控制電機(jī)運(yùn)動(dòng)。
如何完成通信 發(fā)送什么數(shù)據(jù)
在這里插入圖片描述
如何驗(yàn)證發(fā)送正確的數(shù)據(jù)了

把openmv 的串口連接串口上位機(jī),通過(guò)上位機(jī)接收數(shù)據(jù),查看數(shù)據(jù)是否正確。
在這里插入圖片描述
我們看一下代碼,主要看串口部分

#.....省略部分代碼...
uart = UART(3,115200,bits=8, parity=None, stop=1, timeout_char = 1000)#初始化串口三、波特率115200 TXD:P4PB10 RXD:P5PB11
?
#.....省略部分代碼...
def send_five_uchar(c1,c2,c3,c4,c5):#功能發(fā)送五個(gè)無(wú)符號(hào)字符(unsigned char)
    global uart;
    data = ustruct.pack("

整個(gè)工程代碼如下

import pyb, sensor, image, math, time
from pyb import UART
import ustruct
from image import SEARCH_EX, SEARCH_DS
import time
import sensor, lcd
#導(dǎo)入需要的庫(kù)和模塊
?
#使用中可能根據(jù)自己情況需要修改的值
#1. GROUND_THRESHOLD 閾值參數(shù) 通過(guò)工具- >機(jī)器視覺(jué)- >閾值編輯器- >幀緩沖區(qū) 調(diào)整出要識(shí)別的LAB閾值。
#2.注意是否有下面兩句根據(jù)自己攝像頭調(diào)整
  #sensor.set_vflip(True)
  #sensor.set_hmirror(True)
?
?
#sensor.set_contrast(1)#設(shè)置相機(jī)圖像對(duì)比度。-3至+3。
#sensor.set_gainceiling(16)#設(shè)置相機(jī)圖像增益上限。2, 4, 8, 16, 32, 64, 128。
?
uart = UART(3,115200,bits=8, parity=None, stop=1, timeout_char = 1000)#初始化串口三、波特率115200 TXD:P4PB10 RXD:P5PB11
?
roi1 = [( 20,   105, 10, 10),
          ( 45,   105, 10, 10),
          ( 75,   105, 10, 10),
          ( 105,  105, 10, 10),
          (130,   105, 10, 10)]#定義一個(gè)名為roi1的列表,其中包含了5個(gè)元組。每個(gè)元組代表了一個(gè)矩形感興趣區(qū)域在圖像上的位置和大小。
#具體而言,每個(gè)元組包含了4個(gè)數(shù)值依次的含義是:ROI左上角點(diǎn)的x坐標(biāo)、ROI左上角點(diǎn)的y坐標(biāo)、ROI的寬度、ROI的高度
?
led = pyb.LED(1) # led = pyb.LED(1)表示led表示紅燈。各種狀態(tài)如下:Red LED = 1, Green LED = 2, Blue LED = 3, IR LEDs = 4.
led.on()         #點(diǎn)亮紅燈 板載紅燈點(diǎn)亮表示程序得到執(zhí)行
?
sensor.reset()#初始化相機(jī)傳感器。
sensor.set_pixformat(sensor.RGB565)#設(shè)置相機(jī)模塊的像素模式:sensor.RGB565: 16 bits/像素。
sensor.set_framesize(sensor.QQVGA)#設(shè)置圖像分辨率、如果改變分辨率也要調(diào)整ROI區(qū)域。攝像頭不同、應(yīng)用場(chǎng)景不同可以選擇不同分辨率。這里使用QQVGA可能畫質(zhì)很胡,但是為了兼容不同型號(hào)攝像頭我們先使用QQVGA 不影響循跡效果
sensor.skip_frames(time=2000)#跳過(guò)指定數(shù)目的幀。在這里,設(shè)置為跳過(guò)2000毫秒(即2秒)的幀。這樣可以給傳感器一些時(shí)間進(jìn)行初始化和自適應(yīng)調(diào)整。
sensor.set_auto_whitebal(True)#設(shè)置為自動(dòng)白平衡模式。這使得攝像頭可以根據(jù)場(chǎng)景中的光照條件自動(dòng)調(diào)整圖像的白平衡,從而保持圖像色彩更加準(zhǔn)確和自然。
sensor.set_auto_gain(False)#關(guān)閉自動(dòng)增益模式。通常情況下,開(kāi)啟自動(dòng)增益會(huì)幫助攝像頭自動(dòng)調(diào)整亮度,并在低亮度環(huán)境下提高圖像清晰度。通過(guò)設(shè)置為False,禁用了這個(gè)功能,使用固定增益值。
?
# 注意是否有下面兩句根據(jù)自己攝像頭調(diào)整
sensor.set_vflip(True)  #垂直方向翻轉(zhuǎn) 根據(jù)自己攝像頭和模塊安裝位置調(diào)整 ?。。≈匾煌瑪z像頭是否需要鏡像根據(jù)實(shí)際情況定,如果不需要鏡像需要注釋掉
sensor.set_hmirror(True) #水平方向反轉(zhuǎn) 根據(jù)自己攝像頭和模塊安裝位置調(diào)整 ?。?!重要不同攝像頭是否需要鏡像根據(jù)實(shí)際情況定,如果不需要鏡像需要注釋掉
?
?
#lcd.init() #初始化lcd屏幕
?
#最好根據(jù)自己情況設(shè)置一下?。?!
#GROUND_THRESHOLD=(0, 8, -128, 23, -128, 80)#閾值參數(shù),用于在圖像處理中對(duì)標(biāo)物體進(jìn)行顏色識(shí)別分割。在OpenMV IDE軟件 工具- >機(jī)器視覺(jué)- >閾值編輯器- >幀緩沖區(qū) 調(diào)整出要識(shí)別的LAB閾值。
GROUND_THRESHOLD=(0, 30, -22, 23, -128, 80)#閾值參數(shù),用于在圖像處理中對(duì)標(biāo)物體進(jìn)行顏色識(shí)別分割。在OpenMV IDE軟件 工具- >機(jī)器視覺(jué)- >閾值編輯器- >幀緩沖區(qū) 調(diào)整出要識(shí)別的LAB閾值。
def send_five_uchar(c1,c2,c3,c4,c5):#功能發(fā)送五個(gè)無(wú)符號(hào)字符(unsigned char)
    global uart;
    data = ustruct.pack("

openmv在線運(yùn)行(即板子需要連接openmv IDE 控制運(yùn)行)

使用openmv連接外部供電時(shí)候一定不能接錯(cuò)接反電源**
在這里插入圖片描述
通過(guò)SSCOM查看發(fā)送的數(shù)據(jù) 是否和攝像頭應(yīng)該識(shí)別的狀態(tài)一致
在這里插入圖片描述

如何脫機(jī)運(yùn)行

然后就可以脫機(jī)運(yùn)行(openmv 板子不連接 openmv IDE 上電自動(dòng)運(yùn)行)

  1. USB 把openmv 連接到電腦,點(diǎn)擊連接
  2. 點(diǎn)擊連接
    在這里插入圖片描述
    點(diǎn)擊否保留我們的注釋內(nèi)容
    在這里插入圖片描述
    然后我們?cè)趏penmv 對(duì)應(yīng)的U盤就會(huì)看到多的main文件,打開(kāi)可以可以看到是剛剛代碼
    在這里插入圖片描述

現(xiàn)在我們拔掉USB進(jìn)行如下連接

然后打開(kāi)串口軟件查看接收到的數(shù)據(jù)。
在這里插入圖片描述
這里我們openmv發(fā)送了數(shù)據(jù),下面我們使用STM32進(jìn)行接受

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 小車
    +關(guān)注

    關(guān)注

    0

    文章

    54

    瀏覽量

    20718
  • STM32F103C8T6
    +關(guān)注

    關(guān)注

    106

    文章

    160

    瀏覽量

    82501
  • 循跡
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    12948
  • openMV
    +關(guān)注

    關(guān)注

    3

    文章

    39

    瀏覽量

    9763
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    第19.1 章-瞳科技 OpenMV視覺(jué)循跡功能 超詳細(xì)OpenMVSTM32單片機(jī)通信

    第19.1 章-[瞳科技]OpenMV視覺(jué)循跡功能 超詳細(xì)OpenMVSTM32單片機(jī)通信
    的頭像 發(fā)表于 08-20 11:41 ?527次閱讀
    第19.1 章-<b class='flag-5'>星</b>瞳科技 <b class='flag-5'>OpenMV</b><b class='flag-5'>視覺(jué)</b><b class='flag-5'>循跡</b>功能 超詳細(xì)<b class='flag-5'>OpenMV</b>與<b class='flag-5'>STM32</b>單片機(jī)通信

    19.4-STM32接收數(shù)據(jù)-狀態(tài)顯示在屏幕 openMV尋跡與小車控制 Openmv+STM32F103C8T6視覺(jué)小車

    19.4-STM32接收數(shù)據(jù)-狀態(tài)顯示在屏幕 openMV尋跡與小車控制 Openmv+STM32F103C8T6視覺(jué)
    的頭像 發(fā)表于 08-20 11:12 ?523次閱讀
    19.4-<b class='flag-5'>STM32</b>接收數(shù)據(jù)-狀態(tài)顯示在屏幕 <b class='flag-5'>openMV</b>尋跡與<b class='flag-5'>小車</b>控制 <b class='flag-5'>Openmv+STM32F103C8T6</b><b class='flag-5'>視覺(jué)</b><b class='flag-5'>巡</b><b class='flag-5'>線</b><b class='flag-5'>小車</b>

    怎樣去設(shè)計(jì)基于STM32F103C8T6循跡避障小車

    基于STM32F103C8T6循跡避障小車完整制作過(guò)程由于本人的一個(gè)小項(xiàng)目,要做一個(gè)基于STM32
    發(fā)表于 08-03 06:20

    如何利用STM32F103C8T6完成循跡避障小車的制作?

    如何利用STM32F103C8T6實(shí)現(xiàn)循跡避障小車的制作?
    發(fā)表于 10-08 09:09

    基于stm32紅外小車的設(shè)計(jì)資料分享

    基于stm32的紅外小車(基礎(chǔ)版)硬件篇軟件篇一、硬件篇1.stmf103c8t6最小系統(tǒng)板2.l298n電機(jī)驅(qū)動(dòng)模塊3.兩
    發(fā)表于 12-07 06:22

    基于openMV的追球小車設(shè)計(jì)資料分享

    程序設(shè)計(jì)【microPython】2)STM32控制程序設(shè)計(jì) 【C語(yǔ)言】①對(duì)OpenMV發(fā)送的數(shù)據(jù)包進(jìn)行解析②小車的簡(jiǎn)單PID控制③系統(tǒng)狀態(tài)
    發(fā)表于 01-14 09:23

    基于STM32F103C8T6小車制作過(guò)程以及出現(xiàn)的問(wèn)題參考

    基于STM32F103C8T6小車制作過(guò)程以及出現(xiàn)的問(wèn)題參考
    發(fā)表于 01-20 06:56

    基于openmv與51小車串口通信的相關(guān)資料推薦

    **基于openmv與51小車的串口通信**新手小菜雞,寫的可能不大行,歡迎大神指正。硬件連接:我用的是openmv3(注意供電電壓端V
    發(fā)表于 01-24 07:26

    基于OPENMVSTM32的識(shí)別追蹤小車設(shè)計(jì)實(shí)現(xiàn)

    STM32為控制器的尋物小車,不多說(shuō),直接進(jìn)入正題!材料準(zhǔn)備小車底盤直流減速電機(jī)杜邦若干7.2V電源L298N模塊STM32F407最小系
    發(fā)表于 02-25 06:21

    基于stm32的紅外小車(基礎(chǔ)版)

    基于stm32的紅外小車(基礎(chǔ)版)硬件篇軟件篇一、硬件篇1.stmf103c8t6最小系統(tǒng)板2.l298n電機(jī)驅(qū)動(dòng)模塊3.兩
    發(fā)表于 11-23 18:21 ?0次下載
    基于<b class='flag-5'>stm32</b>的紅外<b class='flag-5'>巡</b><b class='flag-5'>線</b><b class='flag-5'>小車</b>(基礎(chǔ)版)

    基于openmv與51小車的串口通信

    **基于openmv與51小車的串口通信**新手小菜雞,寫的可能不大行,歡迎大神指正。硬件連接:我用的是openmv3(注意供電電壓端V
    發(fā)表于 11-29 11:06 ?54次下載
    基于<b class='flag-5'>openmv</b>與51<b class='flag-5'>小車</b>的串口通信<b class='flag-5'>巡</b><b class='flag-5'>線</b>

    OPENMVSTM32的識(shí)別追蹤小車(詳細(xì)版)之OPENMV

    STM32為控制器的尋物小車,不多說(shuō),直接進(jìn)入正題!材料準(zhǔn)備小車底盤直流減速電機(jī)杜邦若干7.2V電源L298N模塊STM32F407最小系
    發(fā)表于 01-13 12:05 ?0次下載
    <b class='flag-5'>OPENMV</b>和<b class='flag-5'>STM32</b>的識(shí)別追蹤<b class='flag-5'>小車</b>(詳細(xì)版)之<b class='flag-5'>OPENMV</b>端

    【DIY】基于OpenMVSTM32追球小車

    簡(jiǎn)單識(shí)別程序設(shè)計(jì)【microPython】2)STM32控制程序設(shè)計(jì) 【C語(yǔ)言】①對(duì)OpenMV發(fā)送的數(shù)據(jù)包進(jìn)行解析②小車的簡(jiǎn)單PID控制③
    發(fā)表于 01-14 13:01 ?39次下載
    【DIY】基于<b class='flag-5'>OpenMV</b>的<b class='flag-5'>STM32</b>追球<b class='flag-5'>小車</b>

    使用stm32f103c8t6設(shè)計(jì)的藍(lán)牙小車

    使用stm32f103c8t6設(shè)計(jì)的藍(lán)牙小車,具有前進(jìn)后退,左轉(zhuǎn)右轉(zhuǎn)等功能
    發(fā)表于 08-07 16:08 ?25次下載

    第19.2章-科技 openmv H7 plus openmv視覺(jué)循跡功能-完成視覺(jué)識(shí)別指定區(qū)域 OpenMV視覺(jué)模塊循跡 STM32F103C8T6視覺(jué)

    第19.2章-【科技】openmv H7 plus openmv視覺(jué)循跡功能-完成
    的頭像 發(fā)表于 08-20 11:28 ?261次閱讀