久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

只需一步,快速開(kāi)始

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

OV5116攝像頭圖像采集步驟與xs128單片機(jī)源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
  一般而言,攝像頭可分為CCD與CMOS兩種類型。都是現(xiàn)在被廣泛用到的兩種圖像傳感器,兩者的共同之處就是都通過(guò)感光二極管將光信號(hào)轉(zhuǎn)換為電信號(hào),將模擬電壓值轉(zhuǎn)化為具體的數(shù)字值,而二者的主要差異在于數(shù)字值的傳送方式不同。 CCD傳感器中每一行的每一個(gè)象素的電荷數(shù)據(jù)都會(huì)依次傳送到下一個(gè)象素中,由最底端部分輸出,再經(jīng)由傳感器邊緣的放大器進(jìn)行放大輸出;而在CMOS傳感器中,每個(gè)象素都會(huì)鄰接一個(gè)放大器及A/D轉(zhuǎn)換電路,用類似內(nèi)存電路的方式將數(shù)據(jù)輸出。造成這種差異的原因在于:CCD的特殊工藝可保證數(shù)據(jù)在傳送時(shí)不會(huì)失真,因此各個(gè)象素的數(shù)據(jù)可匯聚至邊緣再進(jìn)行放大處理;而CMOS工藝的數(shù)據(jù)在傳送距離較長(zhǎng)時(shí)會(huì)產(chǎn)生噪聲,因此,必須先放大,再整合各個(gè)象素的數(shù)據(jù)。本著攝像頭優(yōu)越性與可用性的原則,這里采用了SONY CCD模擬攝像頭。

這是我前幾天做的智能小車的穩(wěn)壓電路,在科學(xué)技術(shù)發(fā)達(dá)的今天,電子電路設(shè)計(jì)已經(jīng)非常普遍與常見(jiàn),種類更是五花八門(mén),各式各樣。但是有句話叫“萬(wàn)變不離其宗”因此不管何種電路,它是為哪個(gè)特定的系統(tǒng)而設(shè)計(jì),在設(shè)計(jì)的過(guò)程中大體都要遵從以下幾個(gè)大的設(shè)計(jì)原則:
a:可靠性。從大到宇宙飛船、人造衛(wèi)星,小到在用電器、數(shù)碼設(shè)備。任何電路的設(shè)計(jì)都要保證其可靠性,就是要經(jīng)得起時(shí)間檢驗(yàn),讓用戶、使用者完全信賴。不能出任何大的故障,造成生命財(cái)產(chǎn)的損失。影響電路可靠性的因素有很多,比如各元器件間的電磁干擾、電感耦合等等。
b:穩(wěn)定性。與可靠性同樣重要,穩(wěn)定性要求所設(shè)計(jì)電路在較長(zhǎng)時(shí)間段里要穩(wěn)定的按照預(yù)設(shè)流程去工作,達(dá)到本該達(dá)到的目的或完成本該完成的任務(wù)而不出現(xiàn)任何故障,不需要經(jīng)常去檢查與維修,不給用戶或使用者帶來(lái)不必要的麻煩與不便。
c:邏輯性。我們知道,任何一個(gè)大的電路系統(tǒng)都可以拆分成若干個(gè)小的子電路系統(tǒng)。所以一一設(shè)計(jì)子電路系統(tǒng),然后合理的把這些子電路系統(tǒng)連接起來(lái)組成一個(gè)大的電路系統(tǒng),這有利于電路的檢修與調(diào)試。
d:優(yōu)化性。任何產(chǎn)品,物美價(jià)廉一直是人們所追求的。所以美觀漂亮、低價(jià)格、簡(jiǎn)潔高效、低功耗等都是電路設(shè)計(jì)時(shí)不得不考慮的原則。


  OV5116攝像頭程序采集步驟


本采集程序基于k60芯片與拉普蘭德開(kāi)源函數(shù)驅(qū)動(dòng)庫(kù),利用DMA功能直接采集ov5116二值化圖像,利用pwm模擬pclk信號(hào)作為DMA觸發(fā)源,可根據(jù)實(shí)際比賽需求在不縮小攝像頭視野的前提下修改圖像寬度,利用dma方式采集圖像可實(shí)現(xiàn)程序的并行處理,極大的提高程序處理效率。例程中圖像大小為80*120。注:修改圖像寬度時(shí)應(yīng)同時(shí)修改pwm頻率。


接口說(shuō)明:VS-------pta5

          HS-------ptb3

          D1-------ptd0

          注:?jiǎn)纹瑱C(jī) pte6口與單片機(jī)ptb18口相連接(pwm模擬pclk信號(hào)觸發(fā)dma采集)

串口波特率:256000

            rx---ptc15

            tx---ptc14



下圖為80*120大小時(shí)采集到的二值化圖像:

下圖為60*160大小時(shí)采集到的二值化圖像:



單片機(jī)源程序如下:

  1. #include <hidef.h>      
  2. #include <MC9S12XS128.h>
  3. #pragma LINK_INFO DERIVATIVE "mc9s12xs128"


  4. int ii,jj;
  5. unsigned  int  t,t1;
  6. unsigned  char sdata;
  7. //------------------------------------------------
  8.   
  9.   #define lie_end  260
  10.   #define hang_end  91
  11.   #define lie  52   
  12.   unsigned  char ab[lie+1];


  13.   #define delay(num)   \
  14.   { \
  15.      unsigned int i,j; \
  16.     for(i=0;i<num;i++) \
  17.        for(j=0;j<58;j++); \
  18.   }

  19.   unsigned char c_lie=0,g_lie=0;
  20.   unsigned int lie_count=0,hang_count=0,am;  
  21.    
  22.   unsigned char ta[lie][hang_end];
  23.   
  24.   unsigned int get_n[]={  16,29,41,52,62,71,79,86,92,98,     //圖像定距采集對(duì)應(yīng)的攝像頭行數(shù)
  25.                          103,108,112,116,120,124,128,132,135,138,
  26.                          141,144,147,150,153,156,159,162,165,168,
  27.                          170,172,174,176,178,180,182,184,186,188,
  28.                          190,192,194,196,198,200,202,204,206,208,
  29.                          210,211,212,242,243,245,246,247,248,249,250};


  30. unsigned char ts1,ts2, ge,shi;

  31. void SciTx(unsigned char text);


  32.         

  33. void chuankou(){
  34.      
  35.       delay(1700);
  36.       ge=37%10;
  37.      shi=37/10;
  38.      
  39.         //sdata=shi*16+ge;  
  40.      //SciTx(sdata);
  41.      
  42.      for(ii=1;ii<40;ii++){///第一次的調(diào)試的時(shí)候把40修改為2,校對(duì)調(diào)試助手的屏幕大小,當(dāng)出現(xiàn)的數(shù)據(jù)剛剛一行時(shí),說(shuō)明串口調(diào)試助手的屏幕大小適合。
  43.                           //當(dāng)完成上面的操作后,把2修改為40,這時(shí)候就能夠看到一幅圖像的數(shù)據(jù)了。
  44.         for(jj=1;jj<90;jj++){
  45.         
  46.            ts1=0;ts2=0;
  47.                
  48.            if(ta[ii][jj]==1&&ta[ii][jj+1]==1) ts1=16;//&&ta[ii][jj]>20
  49.              jj++;
  50.            if(ta[ii][jj]==1&&ta[ii][jj+1]==1) ts2=1;//&&ta[ii][jj]>20
  51.      
  52.            sdata=ts1+ts2;
  53.            SciTx(sdata);  
  54.         }
  55.      }  for(;;) {}      

  56. }

  57. void SciInit()
  58. {
  59.   DDRM=0x01;
  60.   SCI0BDH=0x00|0x01;
  61. SCI0BDL =0xA0;        
  62. SCI0CR2=0X2C;      
  63. SCI0CR1=0;     

  64. }

  65. /*-------發(fā)射端程序----------------------*/
  66. void SciTx(unsigned char text)
  67. {
  68.       
  69. while (!(SCI0SR1&0x80));   
  70. SCI0DRH=0;
  71. SCI0DRL=text;
  72.   
  73. }


  74. void chaopin(void)
  75. {  
  76.     CLKSEL=0X00;   
  77.     PLLCTL_PLLON=1;   
  78.     SYNR =0xc0 | 0x07;                        
  79.     REFDV=0xc0 | 0x01;
  80.     POSTDIV=0x00;      
  81.     _asm(nop);         
  82.     _asm(nop);
  83.     _asm(nop);
  84.     _asm(nop);
  85.     while(!(CRGFLG_LOCK==1));   
  86.     CLKSEL_PLLSEL =1;                    
  87. }

  88. void TIM_init(void)
  89. {   
  90.   PACTL=0X50;
  91.   PACNT=0X0000;
  92.   
  93.     TIOS =0x00;
  94.     TSCR1=0x80;
  95.     TCTL4=0x18;
  96.     TIE=0x06;  
  97.     TFLG1=0xFF;
  98.       
  99. }
  100. void shijian(void) {
  101.    PITCFLMT_PITE=0;      
  102.    PITCE_PCE0=1;         
  103.    PITLD0=9999;
  104.    PITMTLD0=5;      
  105.    PITMUX=0X00;
  106.    PITINTE_PINTE0=1;     
  107.    PITCFLMT_PITE=1;

  108.       
  109.          
  110. }




  111.            
  112. //===========================================================================================
  113. void main(void)
  114. {     
  115.    
  116. DDRA=0Xff;
  117. DDRJ=0X02;
  118. DDRK=0X30;


  119.    
  120.    DisableInterrupts;                 
  121.    {
  122.    
  123.      DDRB=0X01;


  124.      DDRM=0X00;
  125.      
  126.      DDRJ=0XBF;
  127.      PTJ_PTJ6=1;
  128.    
  129.     DDRS=0XEE;
  130.     PPSS=0X11;
  131.     PPSJ=0XFF;

  132.         
  133.     }
  134.                  
  135.     chaopin();            
  136.                
  137.     TIM_init();
  138.     shijian();
  139.    
  140.   SciInit();                     
  141.       EnableInterrupts;
  142.    
  143.      {
  144.       unsigned  int e,w;
  145.        for(e=1;e<6;e++)
  146.         for(w=0;w<10;w++);
  147.         
  148.             
  149.     }
  150.   
  151. DDRS=0XFF;
  152. PPSS=0X11;
  153. PPSJ=0XFF;
  154. DDRB=0XFF;
  155. DDRJ=0XfF;


  156. DDRA=0Xf0;

  157.   
  158. for(;;)
  159.   {
  160.    
  161. chuankou();
  162. /*這個(gè)函數(shù)一定要開(kāi)啟,串口調(diào)試方法
  163. 首先鏈接好線:通過(guò)USB轉(zhuǎn)串口或者是MAX232,把芯片的S0與TXD接通,S1與RXD接通,共地線。
  164. 接著把接通芯片的電源,和攝像頭的電源,同時(shí)保證攝像頭和芯片的線連接正確,并保證攝像頭看到完整的賽道。
  165. 把本程序拷入芯片里。打開(kāi)串口調(diào)試助手,校對(duì)對(duì)應(yīng)的串口端口,并選擇十六進(jìn)制顯示。接下來(lái)的操作看上面的注釋。

  166.   */
  167.   }
  168. }

  169.             
  170. //---------------------------------  
  171. #pragma CODE_SEG NON_BANKED
  172. void interrupt 10 IC2ISR(void) {
  173.    
  174.      TFLG1_C2F=1;

  175.   if(lie_count==get_n[c_lie]) {
  176.     delay(1);
  177.      
  178.      
  179.     for(hang_count=0;hang_count<=hang_end;hang_count++){
  180.      
  181.      
  182.       ta[c_lie][hang_count]=PORTA_PA0;//ATD0DR0L;

  183.       
  184.     }

  185.    c_lie++;
  186.   }
  187.   lie_count++;
  188.   
  189. }


  190. void interrupt 9 IC1ISR(void){              
  191.    TFLG1_C1F=1;
  192.    hang_count=0;
  193.    lie_count=0;
  194.    c_lie=0;   
  195.    }  

  196. void interrupt 66 PIT0Interrupt(void)
  197. {
  198.    //chesudu=PACNT;
  199.    
  200. ……………………

  201. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
  202. </font></font>
復(fù)制代碼



全部資料51hei下載地址:

手創(chuàng)科技OV5116采集和串口調(diào)試程序.rar (1.36 MB, 下載次數(shù): 14)

ov5116圖像采集程序說(shuō)明.docx (54.14 KB, 下載次數(shù): 6)




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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲成人精品国产 | 亚洲成人精品视频 | 日本又色又爽又黄又高潮 | 天天爽网站 | 久久久久久国产精品 | 午夜精品久久久久久久久久久久久 | 九九热这里只有精品6 | 热久色 | 黄色电影在线免费观看 | 亚洲一区二区三区视频 | 色综合久久久 | 中国大陆高清aⅴ毛片 | 水蜜桃久久夜色精品一区 | 99精品一区二区 | www国产亚洲精品久久网站 | 欧美综合久久久 | 欧美精品一区二区在线观看 | 精品综合视频 | 青青草社区 | 日韩成人影院 | 国产夜恋视频在线观看 | 北条麻妃一区二区三区在线视频 | 99re99 | 亚洲精品2区 | 国产欧美日韩在线播放 | 日韩中文不卡 | av天天看 | a级在线| 日本久久一区二区三区 | 国产在线观看一区二区 | 羞羞视频网站 | 午夜精品视频一区 | 亚洲图片一区二区三区 | www国产精品 | 亚洲精品久久区二区三区蜜桃臀 | 日本精品久久 | 91亚洲精华国产 | 在线超碰 | 国产一级特黄aaa大片评分 | 九九热免费视频在线观看 | 国产乱码精品1区2区3区 |