基于光學(xué)傳感器的智能玩具小車(chē)設計

發(fā)布時(shí)間:2010-8-2 11:57    發(fā)布者:lavida
智能機器人在當今社會(huì )的應用越來(lái)越廣泛。從普通的玩具機器人到工業(yè)控制機器人,從能夠炒菜的機器人到可以進(jìn)行太空探測的機器人,可以預見(jiàn)今后智能機器人的應用將更加廣泛。

普通的無(wú)線(xiàn)遙控車(chē)大家都很熟悉,任天堂的電玩WII大家也都覺(jué)得很神奇。熟悉的不好玩,神奇的又玩不起,可能是很多人遇到的共同問(wèn)題。本設計從全新的思維角度出發(fā),制作一個(gè)日常生活可以玩的智能小車(chē),以饗有共同愛(ài)好的讀者。  

系統總體設計  

智能小車(chē)系統原理是,將三維坐標傳感器安裝在小車(chē)上,小車(chē)即具有智能感知功能,就會(huì )隨著(zhù)目標物的前后左右移動(dòng)而跟著(zhù)移動(dòng)。系統主要有3個(gè)組件:一為三維坐標光感傳感器(ETOMS-ET21X111),用于采集目標物的移動(dòng)坐標,該傳感器使用非常簡(jiǎn)單;二為MCUEMC-EM78P156),讀取傳感器數據控制馬達轉動(dòng),EM78P156是市面上常見(jiàn)的MCU,使用簡(jiǎn)單,價(jià)格便宜;三是馬達,馬達選用普通直流馬達即可,采用PWM控制。系統整體框架如圖1所示。  

  
圖1 系統整體框架  

該設計的整體功能簡(jiǎn)單概括起來(lái)就是:讓小車(chē)能夠跟著(zhù)人(或是目標物)走。分開(kāi)來(lái)講需要實(shí)現以下3個(gè)小功能:傳感器能夠正確讀取X、Y、Z的坐標值,這是首要條件。MCU能夠正確判斷X、Z坐標值的大小變化,這是關(guān)鍵?赡苡腥藭(huì )有疑問(wèn),為什么不判斷Y坐標變化呢?那是因為小車(chē)不能上下跳躍(上下方為Y軸)。MCU根據坐標值的大小變化控制馬達轉向及馬達PWM的時(shí)間,這是結果。  

硬件系統設計  

1 傳感器周邊電路設計  

ETOMS-ET21X111是一款高性能具有X、Y、Z坐標資料輸出功能的光感傳感器。具有如下特點(diǎn):高速資料輸出,每秒鐘輸出坐標資料高達75frame;低電壓工作,電壓范圍2.7~3.5V;采用標準RS232串行資料輸出格式輸出坐標值;使用外部晶振,范圍0.5~12MHz,通常采用3.58MHz;具有可控制曝光接口EO4~EO7。  

EO4~EO7這四個(gè)接口是用于曝光控制的,既可以用軟件進(jìn)行控制,也可以用硬件的方式進(jìn)行控制。根據自己的需要選擇合適的即可。本設計采用硬件的方式將這四個(gè)接口全部置為高電平。  

傳感器周邊詳細的接口電路如圖2所示,從圖2中可知EO4~EO7為高,這是曝光設置為硬件拉高,也可以在軟件中設置。IC正常工作時(shí),坐標數據由RS232端口輸出。注意圖2中的4個(gè)LED紅外LED。IC工作電壓是3.3V,系統采用5V供電。IC采用3.58MHz外接晶振,上電自動(dòng)復位后即可正常工作。   


  

  
圖2 傳感器接口電路  

2 MCU接口電路設計  

MCU周邊控制電路詳細設計如圖3所示。圖3中L、L+控制左邊路馬達PWM,R、R+控制右路馬達PWM。RS232接收傳感器坐標數據輸入。IC工作于3.3V電壓,上電后自動(dòng)復位。系統時(shí)鐘采用4MHz外接晶振。  

  
圖3 MCU接口電路  

3 左路馬達控制電路  

左路馬達控制電路如圖4所示。右路馬達控制電路同左路的一樣,圖中Q3、Q4采用PNP管,L和L+不可同時(shí)為L(cháng)OW,以免造成短路。  

  
圖4 左路馬達控制電路  

軟件系統設計  

系統上電后,首先進(jìn)行初始化,對EMC78P156的寄存器進(jìn)行設置,使能中斷標志寄存器,等待中斷。圖5是主程序流程圖。  

  
圖5 主程序流程圖  

中斷產(chǎn)生時(shí)進(jìn)入中斷處理子程序,首先要關(guān)閉中斷標志且保護好現場(chǎng),然后讀取并解析XYZ坐標值,分成以下幾種情況。  

(1)判斷X軸變化,如果X值在大于14小于等于17時(shí),馬達不左右轉動(dòng),然后再判斷Z軸坐標值的變化,如果Z值也在大于14小于等于17時(shí),馬達不前后轉動(dòng)。  
(2)如果X軸坐標值大于17,判斷Z軸坐標,若Z值大于17,則反轉右馬達,之后左右馬達后轉;若Z值小于14,則正轉左馬達,之后左右馬達前轉;否則馬達不轉動(dòng)。  
(3)如果X軸坐標值小于14,判斷Z軸坐標,若Z值大于17,則反轉左馬達,之后左右馬達后轉;若Z值小于14,則正轉右馬達,之后左右馬達前轉;否則馬達不轉動(dòng)。
  
中斷處理子程序的流程如圖6所示。  

  
圖6 中斷處理子程序流程  

設計技巧  

1 傳感器的設計技巧  
ET21X111對紅外線(xiàn)的光譜響應最好,但自然光中含有大量的紅外線(xiàn),所以強烈的自然光會(huì )影響傳感器的數據,導致輸出的坐標與實(shí)際坐標有較大的偏差,解決方法是加濾光片,但這也只能起到衰減作用,具體應用視情況而定。  

2 馬達控制電路設計技巧  
設計控制馬達正反轉的電路時(shí)要注意:因MCU在上電的時(shí)候,I/O的狀態(tài)是不確定的,所以程序在一開(kāi)始就要將Q3、Q4的兩個(gè)I/O設成HI(Q3、Q4為PNP管,如果為NPN管則I/O設成LOW),以防止在上電的時(shí)候兩個(gè)I/O都為L(cháng)OW,使Q3、Q4導通形成短路。另外需要注意的是在同一時(shí)間Q3、Q4只能有一個(gè)是導通的。  

3 MCU設計技巧  
在電刷直流馬達啟動(dòng)或轉動(dòng)的時(shí)候,會(huì )產(chǎn)生很大的電源毛刺。這對MCU的工作非常不利,所以加入此LCπ型濾波電路,如圖7所示。  

  
圖7 濾波電路  

4 程序設計技巧  

智能小車(chē)在運行的過(guò)程中,需要一邊讀取傳感器傳過(guò)來(lái)的坐標數據,一邊控制馬達的PWM輸出。傳感器會(huì )每12ms輸出一次坐標資料,所以最好的方式是采用中斷來(lái)讀傳感器資料,而在沒(méi)有資料輸出的時(shí)間做PWM輸出的動(dòng)作。
本文地址:http://selenalain.com/thread-18508-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页