當前位置: 首頁 > 前沿科技 > 【新奇特】智能全向移動平臺——藍牙遙控版

【新奇特】智能全向移動平臺——藍牙遙控版

編輯:Jack-Bei2013-12-31 390378261@qq.com 瀏覽次數(shù):1285

  時隔幾個月,我對原來的設計智能全向移動平臺V1.0版本做了個升級,新版本的智能全向移動平臺,將原來的圓孔注塑算盤珠式全向輪改成了內六角孔,便于聯(lián)軸器盤安裝同軸,更換了高性能的、大扭矩、大功率360°金屬齒輪舵機,對原有的控制平臺進行更換,設計了以Freescale 自由設計平臺系列Kinetis KL25Z為主控的第一款控制擴展板(兼容Arduino UN3),對整個平臺的硬件和軟件算法做了較大的改動,下面請聽我娓娓道來。
躬行“硬”功夫
FRDM-KL25Z平臺是飛思卡爾公司最新推出的一款入門級的單片機開發(fā)板,以其低成本高性能在單片機林立今天,開始顯現(xiàn)其優(yōu)勢,在開始硬件設計之前還是簡單的介紹一下該平臺,這是基于業(yè)內首款采用 ARM® Cortex™-M0+ 處理器的 Kinetis L系列MCU,是一套體積小、功耗低、性價比高的評估和開發(fā)系統(tǒng),適用于快速應用原型開發(fā)和演示。
擴展板結構總共分為4個版塊,分別是電源模塊、控制器、藍牙通信模塊以及電子羅盤傳感器(由于電機等因素干擾,最終沒有應用于設計)。電源模塊作為整個供電的系統(tǒng)的核心,主要目的是為舵機供電和傳感器供電,由于在這個版本中將原有的塑膠齒舵機改為了大扭矩的金屬齒輪舵機,所以相應的消費電流也提高了,經過實際測試可知,在舵機輕載條件下,每個舵機的在5V額定電壓下,其電流達370mA,由于在此選擇的電池為7.4V的鋰電池,所以需要降壓穩(wěn)壓電路來實現(xiàn)5V電源供給舵機和其他的傳感器,所以需要選擇電流在1.5A以上的穩(wěn)壓電源,傳統(tǒng)的LDO顯然無法滿足此輸出功率,在此選擇了DC-DC的電源芯片LM2596-5.0,電流輸出能力達3A,滿足我們的設計需求,電路參考其官方的Datasheet,值得注意的是選擇濾波電感時必須選擇功率型大電感(以前設計含MCU供電電源時,由于電感功率選取不當,還因此燒掉過幾個單片機)。控制器部分其引腳以及功能完全兼容Arduino UN3(如圖1),藍牙模塊選用了透明傳輸?shù)乃{牙模塊BC-04B,對于硬件具體原理這塊并不復雜,所以不再贅述,詳見(圖2)。

FRDM-KL25Z引腳
    圖1 FRDM-KL25Z引腳

電路原理圖  

圖2 電路原理圖

  躬行“軟”功夫
在開始敲擊代碼前,首先來說說開發(fā)環(huán)境吧,對于開發(fā)選用的IDE可以是IAR6.4、MDK4.54亦或是CW10.3,在這里還是沿用以前老工具IAR,其次是調試器,從一開始吸引我的眼球的是OpenSDA,他有MSD和DEBUG兩種模式,當然在這是選用的調試模式,可以利用SWD接口下載調試程序,同時可以利用內置的USB轉UART對單片機進行調試,其具體使用步驟可以上飛思卡爾的官網查看學習使用,所以不在本文討論了,本設計的程序框架主要包含以下3大塊,分別是單片機模塊初始化、藍牙串口編程、運動控制,下面從這3個方面為您闡述。
——單片機功能模塊設置篇
單片機模塊初始化,在本設計中使用了單片機的TPM(用于產生PWM,控制舵機的轉速以及轉向)、UART(建立于透明藍牙模塊的通信,實現(xiàn)藍牙遙控)、AD(采集電源電壓,實現(xiàn)電池電量預警)、GPIO(利用IO電平狀態(tài)控制板載LED,顯示運動狀態(tài))、PIT(實現(xiàn)周期定時),綜上,對其功能參數(shù)如下列表1所示,由于是涉及一款新型號的單片機,對于各位DIY一族而言會比較陌生,在此我將所有的源碼公布在我的個人網站上(www.ruilongmaker.cc),望大家下載學習使用。



表1 單片機模塊設置參數(shù)要求

——藍牙模塊以及手機端的使用篇
作為一個遙控的平臺,就需要在終端和下位機進行通信,在這里選用了藍牙2.0這種通信接口,對于透明藍牙模塊的使用,想必各位電子愛好者已經很熟悉了,我選擇了一個主從一體的藍牙串口模塊BC04-B(以便于適應各種條件),在實際測試調試時使用的是從機模式;對于手機端的軟件,在這里向大家介紹一款在“安智市場”搜索到的較為好用的藍牙串口BlueCommPRO4(如圖3),其類似于我們在PC端調試時使用的串口小精靈亦或是串口獵人這樣的工具,其默認參數(shù)是波特率9600,無校驗,8位UART。
下面就實際教大家使用該軟件吧,打開軟件后,通過“模式切換”按鍵選擇模式二,在模式二里面擁有12個可以自定義的按鍵(如圖4),在這里我自定義其按鍵功能按鍵用于控制我的全向移動平臺,按鍵的功能(如圖5)所示,通過點擊“設置”,選擇“更多”,然后選擇對“地面站”設置,進入(如圖6)所示的界面,選擇相應的按鍵定義按鍵的“功能名稱”、“數(shù)據幀”,通過查閱軟件幫助說明的定義的數(shù)據幀,可以得出該按鍵動作的數(shù)據幀協(xié)議如下表2所示。

藍牙串口助手使用說明

 圖3軟件啟動頁面        圖4自定義的按鍵        圖5按鍵定義分劃         圖6按鍵頁面設置   

表2 數(shù)據幀協(xié)議

數(shù)據幀協(xié)議

                             圖7串口接收狀態(tài)的轉移圖

      手機端通過點擊“連接設備”選擇對應的藍牙模塊進行連接后,當在手機端觸發(fā)按鍵后,隨即會通過藍牙發(fā)送一幀上述協(xié)議的數(shù)據,單片機通過中斷去接收該幀數(shù)據,然后解析這一幀數(shù)據,為了高效無誤的解析出數(shù)據的有用信息,在此引入了基于有限狀態(tài)機的幀同步方法,先看看串口接收狀態(tài)的轉移圖(如圖7)吧,該方法是將數(shù)據幀的接收過程分為若干個狀態(tài),分別是幀頭1、幀頭2、幀長度、功能碼、校驗值、幀尾。假如接收到的數(shù)據串為“...0XAA,0XA5,0X5A,0X04,0XB1,0XB5,0XAA...”,系統(tǒng)的初始狀態(tài)為幀頭1,則系統(tǒng)的接收狀態(tài)依次為“...HEAD1,HEAD1,HEAD,LEN,DATA,CHECK,END...”,由此可見整個數(shù)據接收的同步狀態(tài),要注意一點,再接收完事一個數(shù)據幀或者在其他異常幀時需要將狀態(tài)機設置為HEAD1,否則將會影響下一幀的數(shù)據接收。通過解析數(shù)據幀,得到的功能碼,通過校驗成功后,更新主程序中的控制碼作為遙控的依據,供下述運動控制使用。

  ——運動控制篇
當我們在的手機控制端點擊觸控方向按鍵時,通過藍牙接收到了控制的功能碼,對于控制程序而言需要對控制碼所對應的動作進行響應,改變每個電機輸出的速度大小。由上述關系式中可以得出相應指令的速度當量值(暫設無量綱速度500)如下列表3所示(注意:在此參數(shù)條件下,1.5ms停止時的值為2250,2ms正轉最大時的值為3000,1ms反轉最大時的值為1500,實際速度可調整的當量范圍為±0~750)。

應動作的當量速度關系表

表3 對應動作的當量速度關系表

       下面說明一下遙控控制邏輯,當智能全向移動平臺上電后,默認是處于“停止”狀態(tài)(即關閉PWM輸出),所以只有觸控點擊“開始\停止”按鍵,讓其進入遙控受控狀態(tài)后,那些運動操作才能起到作用,在此需要設置一個操控的標志位start_flag,上電默認狀態(tài)為start_flag=0,當進入遙控受控狀態(tài)后,更改狀態(tài)為start_flag=1,隨后可以根據對應的控制碼,使4個電機輸出如上表3的速度當量值,具體控制代碼如下文所示。

 代碼演示

  結束語
通過努力,終于智能全向移動平臺可以掌控在我的手中,靈活自如在地上的運動了,當然由于考慮不周,設計初期的電子羅盤由于電機的干擾,想要用它來實現(xiàn)姿態(tài)檢測的愿望成為明日黃花,同時由于360°舵機的控制精度的原因,平臺的控制精度也有待提高,推動我來制作更加高性能的下一版的智能全向移動平臺。
 

本文已刊登在《無線電》雜志2013年12月刊

  • 用戶評價

暫時還沒有任何用戶評論

總計 0 個記錄,共 1 頁。 第一頁 上一頁 下一頁 最末頁
用戶名: 匿名用戶
E-mail:
評價等級:
評論內容:
驗證碼:
captcha

Hi,大家好,我是小奧!

歡迎來到奧松機器人的世界!

需要咨詢服務請點小奧哦!

  • 銷售咨詢: 銷售咨詢
  • 銷售咨詢: 銷售咨詢
  • 技術支持: 技術支持
  • 咨詢電話:
    0451-86628691
Top