找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3157|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

K60單片機(jī)攝像頭處理(上位機(jī))飛思卡爾 NXP

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本帖最后由 帆船102 于 2021-5-18 12:26 編輯

花了一段時(shí)間研究了下飛思卡爾恩智浦的K60系列的單片機(jī),主要是通過攝像頭來完成賽道一圈的行駛,本人萌新比較菜,到處CtrlC+V程序,又到處去問,總算是了解了一些,經(jīng)過理解修改代碼,算是入了個(gè)門吧,接下來有空的話搞一搞直立小車,那也就另說了……

發(fā)這篇文的目的主要還是記錄一下自己的經(jīng)歷,順便對(duì)比我還菜的萌新有個(gè)引導(dǎo)作用,額……應(yīng)該沒有吧,感覺有也非常少。

首先我用的是逐飛的一系列的東西,大大小小加起來還是花了上千,有些還是咸魚買的……所以如果想搞智能車大賽的同志們要做好掏空錢包的準(zhǔn)備……當(dāng)然能報(bào)銷最好,我僅僅是出于興趣。。

主板:某一個(gè)寶搜索 逐飛科技智能車基地      

K60是非常老的一款單片機(jī),主頻為100MHZ,K66的話主頻為180MHZ。

攝像頭:MT9V032(這是130度的攝像)

電機(jī)驅(qū)動(dòng):雙電機(jī)驅(qū)動(dòng)電路模塊

車模類型:C車車模(自帶3010舵機(jī)與電機(jī))

編碼器(512線)

顯示屏:IPS液晶屏模塊 1.14寸

無線轉(zhuǎn)串口通信:主要是將攝像頭采集的圖片通過上位機(jī)傳輸?shù)诫娔X上YY上位機(jī)上。(傳輸為藍(lán)色,接收為綠色)

另外:編譯環(huán)境用的是IAR,不過需要配置一下逐飛庫的參數(shù)才能用,不然報(bào)錯(cuò),上位機(jī)用的是YY上位機(jī)(能夠以方格形式顯示)

說一下攝像頭小車思路,這里用main函數(shù)說明,可以很好的知道小車具體流程,大致有個(gè)思路,我覺得
{

     get_clk(); //逐飛程序必備初始化代碼,可以不用管

     Init_Hardware();// 初始化各個(gè)模塊,如串口模塊,電機(jī)驅(qū)動(dòng)模塊,攝像頭模塊,按鍵模塊,等等。

    //Test_Steer_CenterVal();//尋找舵機(jī)中值代碼

    while(1)

    {

       if(mt9v032_finish_flag)//一場(chǎng)圖像采集的標(biāo)志

       {

            JC_isGet_Gray_Image(image,PICTURE_USE2);//得到灰度圖像。

            mt9v032_finish_flag = 0;//圖像采集完的結(jié)束標(biāo)志

            THRESHOLD = JC_Get_OSTU (PICTURE_USE2);//自動(dòng)尋找最佳閾值,也就是圖像二值化的臨界值,閾值越大黑點(diǎn)越多。

            JC_GetBinaryImage(PICTURE_USE2,PICTURE_USE2,THRESHOLD);//得到閾值后,就可以得到二值化的圖像

            ips114_displayimage032(PICTURE_USE2[0],IMGW,IMGH) ;//在顯示屏顯示二值化圖像           

            JC_Element(PICTURE_USE2);//元素處理,如十字處理,彎道處理,環(huán)島處理額這個(gè)沒弄起。

            hauxian();//畫線,在ISP114顯示屏顯示中線位置,可以快速檢測(cè)有無錯(cuò)誤

            Test_KD_Control();//這個(gè)簡(jiǎn)單的舵機(jī)PD控制,可以通過按鍵增加P D 與qianzhan值。

            //sending(PICTURE_USE2,sizeof(PICTURE_USE2));//當(dāng)需要將圖像發(fā)往PC端yy上位機(jī)時(shí)才加,不然占內(nèi)存。

            ips114_showint16(0,-9,st_control.jiao); //在顯示屏顯示舵機(jī)角度。

            ips114_showint16(0,-10,st_control.qianzhan); //顯示前瞻值,作用舉個(gè)例子:當(dāng)有彎道出現(xiàn)時(shí),值的增加和減少會(huì)讓 小車提前轉(zhuǎn)彎沖出賽道或延遲沖出賽道。

            ips114_showint8(0,-12,st_control.kp);//實(shí)際上我感覺 它調(diào)節(jié)舵機(jī)在規(guī)定范圍內(nèi)的最大角度

            ips114_showint8(0,-11,st_control.kd);  //實(shí)際上感覺無卵用,當(dāng)然針對(duì)我的代碼,有點(diǎn)問題 鎖定在1或2.

            //ips114_showint16(0,-11,st_control.duoji_mid - st_control.jiao); //負(fù)值應(yīng)該向左轉(zhuǎn),正值向右轉(zhuǎn),0的值不轉(zhuǎn),值的絕對(duì)值越大舵機(jī)打角越大

       }
    }

}
流程大概是這樣,我太懶了也不細(xì)說,代碼附一份,不過文件大概有80M,只有將代碼的.c與.h文件單獨(dú)發(fā)出來,在說一次這是逐飛庫!山外啊龍邱啊請(qǐng)別燒……代碼中有些地方會(huì)有注釋,不過對(duì)于初學(xué)者來說,只需要大概搞懂那一坨代碼干啥的?然后直接調(diào)用就對(duì)了,當(dāng)然你是大佬,覺得代碼太low,那也很正常,逐飛底層代碼也不用管,也不要改,拿來用就是了,當(dāng)然你要深入理解那也就當(dāng)我沒說,反正我沒管。

附圖

俯視圖: 側(cè)視圖:

工程文件遠(yuǎn)大于20M發(fā)不了,截取其中需要的代碼上位機(jī)等關(guān)鍵資料附上: 代碼上位機(jī).zip (10.26 MB, 下載次數(shù): 14)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:584814 發(fā)表于 2021-5-12 21:12 | 只看該作者
果然不同凡響,當(dāng)下的技術(shù)單片機(jī)內(nèi)存居然有100M而且一堆東西只要千元,呵呵。
回復(fù)

使用道具 舉報(bào)

板凳
ID:494288 發(fā)表于 2021-5-12 22:33 | 只看該作者
man1234567 發(fā)表于 2021-5-12 21:12
果然不同凡響,當(dāng)下的技術(shù)單片機(jī)內(nèi)存居然有100M而且一堆東西只要千元,呵呵。

不好意思,應(yīng)為主頻為100MHZ , 確確實(shí)實(shí)是上千買的 ,有些咸魚買的便宜一半。我還以為是草稿沒想到發(fā)出去了。
回復(fù)

使用道具 舉報(bào)

地板
ID:494288 發(fā)表于 2021-5-12 22:43 | 只看該作者
帆船102 發(fā)表于 2021-5-12 22:33
不好意思,應(yīng)為主頻為100MHZ , 確確實(shí)實(shí)是上千買的 ,有些咸魚買的便宜一半。我還以為是草稿沒想到發(fā)出 ...

真是丟臉哈哈哈哈哈哈,其實(shí)我當(dāng)時(shí)寫的時(shí)候是想到的是:既然可以燒寫100MB的工程文件,那它的內(nèi)存應(yīng)該就是100M,這樣理解好像有問題。
回復(fù)

使用道具 舉報(bào)

5#
ID:494288 發(fā)表于 2021-5-12 22:44 | 只看該作者
帆船102 發(fā)表于 2021-5-12 22:33
不好意思,應(yīng)為主頻為100MHZ , 確確實(shí)實(shí)是上千買的 ,有些咸魚買的便宜一半。我還以為是草稿沒想到發(fā)出 ...

還沒有寫完,寫完麻煩大佬再看看哪里有錯(cuò)誤,感謝批評(píng)指正。
回復(fù)

使用道具 舉報(bào)

6#
ID:584814 發(fā)表于 2021-5-13 09:29 | 只看該作者
如果打算靠這玩易吃飯的幾千元投入小意思,業(yè)余純玩的自己可選,對(duì)這個(gè)老東東還是感覺高大尚
只是看到100內(nèi)存對(duì)現(xiàn)有技術(shù)感覺驚嘆,百度后知道這東東還可以隨便超頻到150M不過沒考證。
目前本人入門級(jí)51水平會(huì)且只會(huì)對(duì)51有興趣,偶爾參與討論不敢隨便引導(dǎo)怕是帶人入溝就是圖有一樂,呵
回復(fù)

使用道具 舉報(bào)

7#
ID:584814 發(fā)表于 2021-5-13 09:37 | 只看該作者
帆船102 發(fā)表于 2021-5-12 22:43
真是丟臉哈哈哈哈哈哈,其實(shí)我當(dāng)時(shí)寫的時(shí)候是想到的是:既然可以燒寫100MB的工程文件,那它的內(nèi)存應(yīng)該就 ...

這個(gè)理解沒錯(cuò),電視上經(jīng)常有報(bào)氣功大師就是這樣帶人的邏輯:
拉動(dòng)十噸大卡,十噸大卡一般指其載重量而不是自重,自重也不表示平地拉動(dòng)需克服的靜摩擦力等于其自重.....和這一個(gè)套路的還有十噸大卡過身.......拉動(dòng)大型飛機(jī)......
普通小型客車(就是常說的私家小轎車)掛空檔平地成人都可以推動(dòng)誰能感覺也是一噸多的呢 ?
所以
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表