【導讀】本文根據國際機器人大賽的三關(guān)節機器魚(yú)的設計思路設計了雙關(guān)節機器魚(yú)的控制系統。仿生機器魚(yú)在水質(zhì)檢測、海洋資源勘測、水下搜救方面發(fā)揮了重要的作用。本系統具有成本低廉、功耗低、體積輕巧的特性。
1 機器魚(yú)控制系統設計方案
機器魚(yú)控制系統總體結構如圖1所示。系統主要分為指令發(fā)送端和指令執行端,兩部分均以CC1110無(wú)線(xiàn)單片機作為核心控制器,負責指令的發(fā)送、接收、數據處理,進(jìn)而控制機器魚(yú)的相關(guān)執行機構工作。指令發(fā)送端的指令來(lái)自上位機,USB串口轉換電路將USB接口模擬成串口,實(shí)現上位機與CC1110的串口通信。電源模塊完成電壓的變換,為相關(guān)電路提供各種合適的工作電壓。存儲器模塊存儲機器魚(yú)的相關(guān)信息。舵機驅動(dòng)模塊為執行機構舵機提供合適的控制信號。

圖1 機器魚(yú)控制系統總體結構圖
2 機器魚(yú)控制系統硬件設計2.1 USB串口轉換電路
CH341T是一款USB總線(xiàn)轉接芯片,通過(guò)簡(jiǎn)單的接線(xiàn)即可實(shí)現USB接口和串口之間的轉換,此時(shí)無(wú)需改動(dòng)上位機與下位機的程序,通過(guò)USB接口即可實(shí)現上位機與下位機的串行通信。USB串口轉換電路原理圖如圖2所示。

圖2 USB串口轉換電路
在本設計電路中,將CH341T芯片的SDA和SCL引腳懸空,此時(shí)芯片功能為USB轉異步串口,模擬計算機串口;CH341T芯片的TXD和RXD兩個(gè)引腳分別連接到CC1110無(wú)線(xiàn)單片機的RX(P0.2)和TX(P0.3)兩個(gè)引腳;TEN#引腳為串口發(fā)送使能端,接地使CH341T能發(fā)送數據。CH341T芯片的地要和CC1110無(wú)線(xiàn)單片機的地相連。CH341T不需外接電源,直接由上位機通過(guò)USB口提供+5V電源。2.2 DC-DC電壓變換電路
指令發(fā)送端由USB提供5V電壓,指令執行端由電池提供5V直流電壓。電池提供的5V直流電壓可以直接為舵機驅動(dòng)芯片以及舵機供電。而系統內部CC1110無(wú)線(xiàn)單片機正常工作電壓范圍是2.0~3.6V,存儲器芯片24AA01正常工作電壓范圍是1.7~5.5V,這里可以將二者的工作電壓選擇為3.3V.為此,專(zhuān)門(mén)設計了一個(gè)DC-DC電壓變換電路,將5V直流電壓變換為3.3V直流電壓后再提供給CC1110無(wú)線(xiàn)單片機和24AA01芯片,以保證系統的正常工作。這里采用AMS公司生產(chǎn)的AMS1117芯片設計了電壓變換電路,具體的DC-DC電壓變換電路如圖3所示。

圖3 DC-DC電壓變換電路
在電壓輸入端接有22 μF電解電容及電壓輸出端接有47 μF電解電容,以保證輸出電壓的穩定。[page]
2.3 CC1110無(wú)線(xiàn)收發(fā)電路
在機器魚(yú)控制系統中,機器魚(yú)指令的發(fā)送、接收以及指令解析執行是系統的關(guān)鍵部分。而現有的無(wú)線(xiàn)收發(fā)系統很多都是采用單片機和RF收發(fā)模塊組成,這樣整個(gè)控制電路的體積較大,將會(huì )使機器魚(yú)的體積變大。為了將機器魚(yú)體積做小以及將功耗降低,這里采用TI公司生產(chǎn)的一種低成本、低功耗的CC1110無(wú)線(xiàn)單片機作為指令收發(fā)執行的核心器件。CC1110無(wú)線(xiàn)收發(fā)電路如圖4所示。

圖4 CC1110無(wú)線(xiàn)收發(fā)電路
在無(wú)線(xiàn)收發(fā)電路中,電容C1-C6為電源去耦電容;電阻R2和電容C18構成上電復位電路;電容C7、C9以及電感L1、L2構成BALUN阻抗匹配電路,將輸出阻抗轉換為50 Ω標準天線(xiàn)阻抗;Y1、C13以及C14構成CC1110高速時(shí)鐘源;Y2、C15以及C16構成CC1110低速時(shí)鐘源:JATG接口用于在線(xiàn)調試與下載程序;PWM01(P1.0)和PWM02(P1.1)接舵機驅動(dòng)電路的輸入;RX(P0.2)和TX(P0.3)接USB串口轉換電路,用于串口通信;2401_WP(P0.4)、2401_SCL(P0.5)以及2401_SDA(P0.6)接存儲器模塊,控制存儲器的讀寫(xiě)。2.4 舵機驅動(dòng)電路
在機器魚(yú)控制系統中,我們利用舵機的擺動(dòng)來(lái)模擬機器魚(yú)的游動(dòng)。而無(wú)線(xiàn)單片機產(chǎn)生的PWM信號不足以驅動(dòng)舵機,為保證舵機正常工作,要專(zhuān)門(mén)設計一個(gè)舵機驅動(dòng)電路。舵機驅動(dòng)電路采用了74AHCT1G04芯片,舵機驅動(dòng)電路原理圖如圖5所示。

圖5 舵機驅動(dòng)電路
2.5 存儲器電路在機器魚(yú)初始化階段以及在機器魚(yú)控制過(guò)程中需要存儲一些參數,因此要有專(zhuān)門(mén)的存儲模塊。由于參數的數據量比較小,這里采用I2C接口的24AA01存儲芯片,存儲器電路原理圖如圖6所示。

圖6 存儲器電路
3 機器魚(yú)控制系統軟件設計在機器魚(yú)控制系統中軟件設計采用模塊化設計,主要包括串口通信程序、無(wú)線(xiàn)通信程序、存儲器讀寫(xiě)程序以及舵機驅動(dòng)程序。
3.1 串口通信程序設計
串口通信程序完成CC1110無(wú)線(xiàn)單片機與上位機PC的串行通信。串口接收數據采用中斷的方式,串口發(fā)送數據采用查詢(xún)的方式。串口收發(fā)程序流程圖如圖7所示。

圖7 串口收發(fā)程序流程圖
在硬件設計中采用了CH341T串口轉換電路模擬串口,為了配合硬件的使用,需要在上位機中安裝驅動(dòng)程序,驅動(dòng)程序可以從南京沁恒電子有限公司網(wǎng)站上下載。
[page]
3.2 無(wú)線(xiàn)通信程序設計
在設計無(wú)線(xiàn)通信程序前,需要配置CC1110的高頻部分,以確定無(wú)線(xiàn)收發(fā)器的收發(fā)頻率、發(fā)送功率、傳輸速率以及調制方式等。由于CC11 10高頻配置較為復雜,這里可以采用TI公司的SmartRF Studio軟件來(lái)進(jìn)行配置。通過(guò)設置寄存器FREQ2、FREQ1和FREQ0將CC1110的收發(fā)頻率選擇在433MHz頻段;通過(guò)設置PA TABLE0將CC1110的發(fā)送功率設置為10dBm,這樣可以提高發(fā)射距離;由于該控制系統的指令數據量較小,可以選擇較低的傳輸速率,不僅可以提高傳輸距離,而且可以降低能耗;調制方式選擇2-FSK方式。
無(wú)線(xiàn)通信程序包括無(wú)線(xiàn)發(fā)送程序和無(wú)線(xiàn)接收程序兩部分。無(wú)線(xiàn)發(fā)送程序將待發(fā)送的數據通過(guò)無(wú)線(xiàn)的方式發(fā)送出去,無(wú)線(xiàn)接收程序可以接收同頻率的發(fā)射機發(fā)送的數據。無(wú)線(xiàn)通信程序流程圖如圖8所示。

圖8 無(wú)線(xiàn)通信程序流程圖
3.3 指令發(fā)送端主程序設計在機器魚(yú)控制系統的指令發(fā)送端,實(shí)現的功能包括串口收發(fā)數據和無(wú)線(xiàn)收發(fā)數據。指令發(fā)送端主程序流程圖如圖9所示。

圖9 指令發(fā)送端主程序流程圖
指令數據無(wú)線(xiàn)發(fā)送以后,指令發(fā)送端開(kāi)始等待接收指令執行端反饋的數據。指令發(fā)送端接收到反饋數據后調用串口發(fā)送程序將反饋數據發(fā)回到PC,將反饋數據與指令數據比對,如果反饋數據與發(fā)送數據一致,則認為指令數據發(fā)送成功,否則重新發(fā)送指令數據。如果長(cháng)時(shí)間沒(méi)有接收到反饋數據,則重新發(fā)送指令數據。3.4 指令執行端主程序設計
在機器魚(yú)控制系統指令執行端,主要包含指令數據的接收、指令數據的反饋發(fā)送、存儲器的讀寫(xiě)以及舵機的控制等。其中,舵機的控制是最為關(guān)鍵的部分。在控制舵機前要先對指令數據進(jìn)行解析,計算出舵機的控制量。由于舵機采用級聯(lián)的方式來(lái)模仿魚(yú)體的擺動(dòng),因此舵機間關(guān)節的運動(dòng)規律可以采用以下數學(xué)模型:

式中,Ka為振幅系數,Ki為偏斜系數,f為擺動(dòng)頻率,φi為關(guān)節滯后角,Aimax為關(guān)節擺動(dòng)幅度,t為時(shí)間。以上參數即為舵機的主要控制參數。在程序設計過(guò)程中,一般取Ka≤0.5,Ki、f、φi以及Aimax四個(gè)參數根據具體的速度指令和方向指令來(lái)計算出相應的控制量。指令執行端主程序流程圖如圖10所示。

圖10 指令執行端主程序流程圖
相關(guān)閱讀:
單片機不起振?這是為什么?
智能加濕器系統用單片機如何設計?
3分鐘!攻破單片機低功耗設計技術(shù)