找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 6368|回復: 3
收起左側

基于STM32F407與OPENMV通信(識別顏色發(fā)送坐標+顏色類別)

  [復制鏈接]
ID:589140 發(fā)表于 2019-12-8 17:32 | 顯示全部樓層 |閱讀模式
最近擁有了OPENMV,這可是個好攝像頭,雖然他是用我還沒接觸過的Python,但是里面例程超級多��!大部分都是比較常用的
作為新手,剛開始不知道如何將攝像頭獲得的數(shù)據(jù)傳給單片機..

于是,迷茫的我最終獲得師兄贊助的通信程序,改成了自己需要的,就分享給大家康康啦

通過單片機給openmv供電5v,我的是openmv3,將openmv3上的P4與P5與單片機上的PA9和PA10 連接,就是單片機的Tx接攝像頭的Rx,單片機的Rx接攝像頭的Tx。如果接電以后,LCD上數(shù)值無變化,可能是接線接反了,一般交換過來就行。

openmv要脫機運行,就將程序保存進去,即在IDE界面點左上方的“工具”選擇“將打開的腳本保存到openmvcam”即可,這時給攝像頭上電就能執(zhí)行程序

就是攝像頭識別四個顏色,四個顏色是有順序的,在我程序里,紅色是1,黃色是2,綠色是4,深藍色是8(本來是紅色是0001,黃色是0010,綠色是0100,深藍色是1000,傳給單片機就轉成了十進制輸出來),然后傳給單片機之后,就可以通過獲得的數(shù)據(jù)判斷識別到了哪種顏色,進而給單片機相應的指令。

可以通過實際情況修改攝像頭里面程序中的顏色閾值,以達到想要的效果。在不同的環(huán)境下,可能顏色的閾值會有點變動,就是識別沒那么準確啦..有能力的小伙伴可以自己修改程序讓攝像頭適應不同環(huán)境,我沒能力就只能修改閾值啦..唉..嘆氣,哪個伙伴會的話告訴我!我去下載!

單片機與攝像頭通信以后,識別到對應顏色,會在屏幕上顯示posX,這是顏色中心坐標的橫坐標,顯示posY,這是顏色類別的序號。

這些都是我個人理解,有不對的地方歡迎大家指正啊~我們可以多多交流,一起進步鴨!
以下是主函數(shù)的程序
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"

extern u16 posX,posY

void color_s()
{
if(posY==1)
{LCD_ShowString(30,100,210,24,24,"red");        }
if(posY==2)
        {LCD_ShowString(30,100,210,24,24,"yellow");        }
         if(posY==4)
        {LCD_ShowString(30,100,210,24,24,"green");        }
         if(posY==8)
        {LCD_ShowString(30,100,210,24,24,"blue");        }

}


int main(void)
{
         u8 x=0;
        u8 lcd_id[12];                        
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2)
        delay_init(168);     
        uart_init(115200);        
        
        LED_Init();                                
         LCD_Init();         
        POINT_COLOR=RED;     
        sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id)                                 
          while(1)
        {                 
                USART1_Rx_Task();
                POINT_COLOR=RED;
color_s();         
                LCD_ShowNum(30,40,posX,3,24);
                LCD_ShowNum(30,70,posY,3,24);
                                 
          x++;
                if(x==12)x=0;
                LED0=!LED0;         
                delay_ms(1000);        
        }
}

全部資料51hei下載地址:
STM32F407與OPENMV的通信.7z (335.9 KB, 下載次數(shù): 209)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:696130 發(fā)表于 2021-8-2 12:07 | 顯示全部樓層
樓主,為什么我的串口是亂碼的啊,急
回復

使用道具 舉報

ID:955629 發(fā)表于 2021-8-2 16:06 | 顯示全部樓層
YaNGsHuOcONG 發(fā)表于 2021-8-2 12:07
樓主,為什么我的串口是亂碼的啊,急

你看一下你的波特率是不是對應的
回復

使用道具 舉報

ID:956087 發(fā)表于 2021-8-2 19:08 | 顯示全部樓層
YaNGsHuOcONG 發(fā)表于 2021-8-2 12:07
樓主,為什么我的串口是亂碼的啊,急

觀察波特率設定正確,引腳配置是否與復用引腳沖突。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表