• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于STM32滾球控制系統(tǒng)的分析與設(shè)計(jì)

      2018-02-28 19:54劉志嫻江敏

      劉志嫻++江敏

      摘要:本設(shè)計(jì)是基于STM32F407單片機(jī)設(shè)計(jì)的滾球控制系統(tǒng),本系統(tǒng)主要由圖像采集與處理模塊、液晶顯示屏驅(qū)動(dòng)模塊、矩陣鍵盤模塊、電源穩(wěn)壓模塊等構(gòu)成。本系統(tǒng)通過OV2640攝像頭采集圖像數(shù)據(jù)以此判斷滾球的位置,并結(jié)合PID算法來控制調(diào)節(jié)舵機(jī)進(jìn)而實(shí)現(xiàn)小球停在目標(biāo)位置。為了方便調(diào)試和復(fù)測,系統(tǒng)采用矩陣鍵盤的模式。通過對本系統(tǒng)的軟硬件的實(shí)際測試,其能穩(wěn)定地運(yùn)行,到達(dá)了預(yù)期的目標(biāo)。

      關(guān)鍵詞:STM32F407;OV2640;PID

      中圖分類號:TM33 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2017)12-0017-02

      1 系統(tǒng)方案設(shè)計(jì)原理

      1.1 設(shè)計(jì)原理

      本設(shè)計(jì)主要由四個(gè)部分組成,分別是圖像采集與處理模塊、平板驅(qū)動(dòng)模塊、矩陣鍵盤模塊、電源穩(wěn)壓模塊,系統(tǒng)設(shè)計(jì)框圖如圖1所示。

      圖像采集與處理模塊作為本系統(tǒng)的最核心,主要是利用圖像傳感器完成對小球位置的采集和對圖像進(jìn)行二值化處理;平板驅(qū)動(dòng)模塊是通過PWM對電機(jī)的驅(qū)動(dòng)完成對平板的驅(qū)動(dòng),使小球運(yùn)動(dòng)到指定位置;矩陣鍵盤模塊是通過對主芯片的控制來改變對小球目標(biāo)位置的控制;電源穩(wěn)壓模塊是提供給芯片,舵機(jī)等穩(wěn)定電源。

      1.2 電源穩(wěn)壓設(shè)計(jì)

      在此系統(tǒng)中運(yùn)用到的電源可能不穩(wěn)定,需要性能較好的穩(wěn)壓模塊。目前小功率的直流穩(wěn)壓電源模塊有很多,主要有線性穩(wěn)壓和開關(guān)穩(wěn)壓電路,大多數(shù)采用線性集成穩(wěn)壓器,因此設(shè)計(jì)的主要任務(wù)是選擇合適的集成穩(wěn)壓器及整流濾波參數(shù)。本設(shè)計(jì)采用的是三端固定輸出集成穩(wěn)壓器CW7800。

      CW7800集成穩(wěn)壓器內(nèi)部電路組成框圖如圖2所示,它由調(diào)整電路、保護(hù)電路、比較放大、基準(zhǔn)電壓、啟動(dòng)電路、取樣電路等部分組成。啟動(dòng)電路是電路有輸入電壓UI時(shí),利用UI對穩(wěn)壓器自身快速建立一個(gè)輸出電壓UO,使穩(wěn)壓器工作。在取樣電路中,利用電阻對輸入電壓進(jìn)行分壓,由于分壓電阻是固定的,則輸出電壓UO是固定的;保護(hù)電路對穩(wěn)壓器起到保護(hù)作用。

      1.3 算法設(shè)計(jì)

      傳統(tǒng)的位式控制算法的結(jié)構(gòu)如圖3所示。

      基本特點(diǎn)是輸出信號單一,只能為高電壓或者低電壓,用來驅(qū)動(dòng)控制對象;算法輸出信號的依據(jù)是設(shè)定值與當(dāng)前值比較,若設(shè)定值大于當(dāng)前值,則輸出高電平,若設(shè)定值小于當(dāng)前值,則輸出低電平。這種算法沒有考慮到偏差,在控制對象時(shí)不能實(shí)現(xiàn)對對象的變化趨勢的控制。

      PID控制算法的結(jié)構(gòu)如圖4所示。

      Sv是用戶設(shè)定的初始值;Pv是當(dāng)前的狀態(tài)。在PID控制算法中,有三個(gè)變量分別為Ek,Sk,Dk。Ek表示當(dāng)前的偏差,Sk表示歷史偏差,Dk表示最近兩次的偏差之差。

      (1)

      通過公式(1)即可實(shí)現(xiàn)PID控制。根據(jù)公式(1)可知,PID算法有三個(gè)環(huán)節(jié),比例環(huán)節(jié),積分環(huán)節(jié)和微分環(huán)節(jié)。若偏差為0,則Kp為0,只有存在偏差時(shí),比例系數(shù)才會(huì)加大或減小,當(dāng)比例系數(shù)Kp加大時(shí),會(huì)使?jié)L球系統(tǒng)動(dòng)作加快,但容易造成不穩(wěn)定。積分環(huán)節(jié)主要是用于消除系統(tǒng)穩(wěn)定后輸出值與設(shè)定值的差值。在本系統(tǒng)中為了簡化系統(tǒng)設(shè)計(jì),可不用積分環(huán)節(jié)。微分系統(tǒng)反應(yīng)了偏差信號的變化規(guī)律,可以進(jìn)行超前調(diào)節(jié)。

      2 系統(tǒng)程序設(shè)計(jì)

      利用OV2640攝像頭采集圖像,并將數(shù)據(jù)發(fā)送到核心芯片,判斷小球位置是否到達(dá)目標(biāo)位置。若小球未到達(dá)目標(biāo)位置,則根據(jù)增量式PID算法使小球快速穩(wěn)定的停在指定位置,完成要求。為方便調(diào)試,系統(tǒng)程序分模塊進(jìn)行設(shè)計(jì),將程序分成LCD液晶顯示模塊,舵機(jī)驅(qū)動(dòng)模塊,攝像頭模塊。軟件程序流程圖如圖5所示。

      2.1 OV2640攝像頭處理程序設(shè)計(jì)

      圖像采集模塊利用J-Link仿真編程器將編譯之后的二進(jìn)制文件燒寫到Flash啟動(dòng)文件系統(tǒng),圖像采集系統(tǒng)采用OV2640攝像頭模塊,輸出顯示采用2.4英寸TFT液晶顯示屏。當(dāng)儲(chǔ)存按鍵按下時(shí),系統(tǒng)接收中斷,同時(shí)將從OV2640攝像頭采集到的數(shù)據(jù)顯示在液晶顯示屏上[1]。首先需要對攝像頭進(jìn)行初始化,其程序設(shè)計(jì)如下所示。

      LCD_ShowString(30,130,240,16,16,"OV2640 ERR");

      LCD_Fill(30,130,239,170,WHITE);

      LCD_ShowString(30,130,200,16,16,"OV2640 OK");

      OV2640_OutSize_Set(176,144);

      OV2640_RGB565_Mode();//RGB565模式

      My_DCMI_Init();//DCMI配置

      DCMI_DMA_Init((u32)rgb_buf,sizeof(rgb_buf)/4,DMA_MemoryDataSize_HalfWord,DMA_MemoryInc_Enable);//DCMI DMA配置

      當(dāng)對攝像頭配置完成后,需要對攝像頭采集到的數(shù)據(jù)進(jìn)行灰度值處理。其程序設(shè)計(jì)如下所示。

      gray=((rgb_buf[i][j]>>11)*19595+((rgb_buf[i][j]>>5)&0x3f)*38469+(rgb_buf[i][j]&0x1f)*7472)>>16;//將RGB轉(zhuǎn)化成灰度值

      if(gray>=23)

      {

      if(i>8&&i<136&&j<160&&j>16)

      {

      if(i>X_MAX) X_MAX=i;

      if(i

      if(j>Y_MAX) Y_MAX=j;

      if(j

      }

      LCD->LCD_RAM=WHITE

      }

      else

      LCD->LCD_RAM=BLACK;//對灰度值進(jìn)行二值化處理

      2.2 算法程序設(shè)計(jì)

      本系統(tǒng)控制平板只需要PD算法,在產(chǎn)生中斷后進(jìn)入控制函數(shù)控制舵機(jī)的平衡以及控制轉(zhuǎn)動(dòng)的幅度。具體程序設(shè)計(jì)如下。

      void balance_a()

      {

      AKp=300;

      AKd=500;

      Aim_AX=0;

      Aim_AY=0;

      Err_AX=AX-Aim_AX;

      Err_AY=AY-Aim_AY;

      PWM_AX=(Err_AX*AKp+(Err_AX-Err_AX_LAST)*AKd);

      PWM_AY=(Err_AY*AKp+(Err_AY-Err_AY_LAST)*AKd);//算法控制

      Err_AX_LAST=Err_AX;

      Err_AY_LAST=Err_AY;

      }

      void xianfu()

      {

      if(PWM_Y>9550)PWM_Y=9550;

      if(PWM_Y<9150)PWM_Y=9150;

      if(PWM_X>9390)PWM_X=9390;

      if(PWM_X<8990)PWM_X=8990;

      }

      3 結(jié)語

      本設(shè)計(jì)是基于STM32F407基礎(chǔ)上的滾球控制系統(tǒng),由圖像采集與處理模塊、矩陣按鍵模塊、OV2640攝像頭模塊、平板驅(qū)動(dòng)模塊構(gòu)成,完成了包括系統(tǒng)在內(nèi)的硬件和軟件測試。通過不斷測試修改參數(shù),最終實(shí)現(xiàn)了小球穩(wěn)定的停在平板中心及四個(gè)角落等地點(diǎn),達(dá)到了設(shè)計(jì)的預(yù)期目標(biāo)。本設(shè)計(jì)為攝像頭視覺處理以及平衡控制提供了一定的研究價(jià)值。

      參考文獻(xiàn)

      [1]王建,梁振濤,鄭文斌,等.STM32和OV2640的嵌入式圖像采集系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用.2014(9):46-48.

      [2]Rafael C.Gonzale,Richard E.Woods.‘Digital Image Processing[M], Publishing House of Electronics Industry, BEIJING.2004.

      [3]Jong H,Jangsangjin Han.Taeghwan Hyeon,SEUNG M Oh[J].Journal of Power Source, 2003,123:79.

      [4]劉歌群,盧京潮,閆建國,等.用單片機(jī)產(chǎn)生7路舵機(jī)控制PWM波的方法[J].機(jī)械與電子,2004,(2):76-78.

      [5]朱翔,潘崢嶸.基于OV7620的機(jī)器人視覺導(dǎo)航系統(tǒng)設(shè)計(jì)[J].電子測量技術(shù),2010,3(1):64-66,73.

      [6]曾迎生.圖像二值化研究及其改進(jìn)[J].研究與開發(fā),1990,(1):22-27.

      Abstract:This design is a rolling ball control system based on STM32F407 microcontroller .The system is mainly composed of image acquisition and processing module,LCD driver module,matrix keyboard module,power supply regulator module and so on.It's collects image data through OV2640 camera to determine the location of the ball,and combines the PID algorithm to control the steering gear and realize the ball stopping at the target position.In order to facilitate the debugging and retesting,the system adopts the matrix keyboard mode.Through the actual testings of the hardware and software of this system,it can run steadily and reach the expected target.

      Key words:STM32F407;OV2640;PIDendprint

      延边| 奉贤区| 华安县| 元江| 余姚市| 万州区| 五大连池市| 固阳县| 贵南县| 含山县| 宁陕县| 漠河县| 利川市| 榆中县| 墨江| 天津市| 兴和县| 库车县| 琼结县| 靖边县| 从化市| 兴仁县| 桐柏县| 永德县| 随州市| 永胜县| 行唐县| 天峻县| 囊谦县| 昭觉县| 闻喜县| 个旧市| 延安市| 封开县| 巍山| 辽阳县| 历史| 乌海市| 合阳县| 拉孜县| 永靖县|