ROS系統玩轉自主移動機器人(4)-- 嵌入式硬件平台


 

一、概述

   所謂嵌入式,其實就是專用的微型計算機系統,包括嵌入式硬件和嵌入式軟件兩個部分。嵌入式硬件通常是由32位(或以下)的微處理器及其相關外設組成;嵌入式軟件則是寫入嵌入式硬件的用於實現特定功能的程序。筆者總結了一下,嵌入式具有以下幾個方面的特點:

  • 專用性。(一般是面對特定應用場景進行專門開發)
  • 實時性。(雖然嵌入式微處理器一般計算能力不高,但是因為“專片專用,定向開發”,因此具有良好的實時性)
  • 可靠性。(嵌入式系統一般直接和執行機構或底層設備打交道,要求代碼質量高、簡潔、穩定。)
  • 經濟性。(嵌入式系統一般價格都比較低,小微型電子設備)

 二、嵌入式硬件的開發流程

 圖1 嵌入式硬件發發流程

  嵌入式硬件開發的一般流程如圖1所示,這里只是筆者根據以往經驗進行簡單的總結,未必是用於所有的開發情況。第一步就是確定產品的設計需求,這里是指經過充分討論和評審的產品設計需求,然后開發人員根據設計需求進行分解,例如不同的功能需求可能對應的不同的硬件模塊。

  然后,根究需求進行整體方案設計和評審,這里的整體方案設計包括主控芯片的選型、功能模塊芯片的選型、供電方式等,整體設計方案細化程度越高,后續將會更加輕松。

  進一步,就是進行原理圖設計,這里是對上一步驟的進一步細化,原理圖的繪制主要包括: 確定各個元器件的電氣連接、相關模擬和數字電路設計等等,圖2是筆者以前繪制的一塊舵機控制板的部分原理圖截圖,主控芯片為C8051F系列。

                      

圖2. 筆者曾經繪制的某舵機控制電路原理圖部分模塊截圖

  進一步,根據原理圖設計進行PCB布局布線,例如:采用確定幾層板、電子元器件布局、連接線的走線方式和分布方式、安裝孔位和定位空位設計等(如圖3所示為筆者以前項目中設計的舵機控制板的布線和樣板)。原理圖設計和PCB布局布線最考驗一個硬件設計工程師的技術功底,例如晶振應該如何放置、如何避免電磁干擾、線寬和線間距如何選擇、如何避免電流耦合、時鍾電路如何布局等等,這一切都直接影響硬件的穩定性。這一步完成度高可以大大降低后續的測試和優化迭代的工作量。

   進一步,制作樣板並根據設計需求編寫各個功能模塊得測試程序進行功能驗證。這一步就需要嵌入式硬件工程師也必須有一定的軟件基礎,因為自己設計的硬件電路板首先就要自己來測試相關的功能。

             

圖3. 前述舵機電路板的布線和樣板示例圖

  進一步,如果應用場景比較嚴苛或要求較高,好需要做電路板的EMC測試和硬件沖擊振動試驗。EMC是指電測兼容性測試,它包含EMI(電磁干擾)和EMS(電磁敏感性)兩個方面,寫到這里想到母校的蔣全興老教授(電磁兼容元老級人物),記得當年老爺子年近古稀還堅持每天早早的去實驗室,而不是享受退休生活,可能到那個年紀還能做點研究就是幸福的吧(跑題了。。。-_-||)。沖擊振動試驗是指電路板安裝后要能承受一定的沖擊振動而不會失效,例如軍工行業、高鐵地鐵、汽車電子等領域用到的硬件一般都要做沖擊振動試驗以防運行時受沖擊而失效。

  最后,就根據上述的各種測試和驗證進行優化迭代,以滿足筆者在上一部分提到的專用行、實時性、可靠性和經濟性的特點。

tips:

  1.硬件工程師一定要會閱讀芯片英文版的datasheet;

  2.硬件工程師要有一定的動手能力,起碼要會用電烙鐵手動焊接TQFP100封裝的MCU。

三、本開源機器人的硬件系統介紹

   博文的前半部分簡單介紹了嵌入式硬件電路設計的流程和一些基礎知識,下面考試介紹本開源機器人的的嵌入式硬件部分的組成。為了快速開發和節約成本,這里的機器人嵌入式硬件全部采用現有的電路板進行搭建,以便降低成本和上手的難度,當然,如果讀者感興趣的話還是可以自己繪制幾塊電路板來練練手,體會一下從設計到制版,從手動焊接電路板到軟件調試的整個過程,其間一定會獲得很多成就感和樂趣。

                   

圖4. 本開源機器人的硬件電路組成框圖及實物分布圖

  閑話少說,圖4就是本開源機器人的硬件電路組成框圖,下面我們分別介紹一下:

  1. 鋰電池(如圖5所示)

    這里采用的鋰電池是24V的,電池容量為10Ah,這里我們電池容量也是經過一定的選型計算的,上一篇博文在介紹電機選型時提到要求機器人可以連續運行10小時,因此電池的選型過程如下:

    電池電壓U = 24V 連續運行Tim = 10 h

    單個電機額定工作環境下位3W,兩個電機為6W,算上嵌入式硬件功耗共計為P = 10W。

    電池容量為:

    K = P/U · Tim = 4.1667 Ah

    這里取安全系數為2,我們選擇電池容量需要大於等於4.1667x2 = 8.333 Ah,因此最終選擇的電池電壓為24V,容量為10Ah。

 

圖5. 鋰離子電池

  2. 直流穩壓模塊(如圖6所示)

    直流穩壓模塊是為了穩定電路板和電機的供電電壓,防止電池直接輸出的電壓不穩定而導致電路板損壞或電機控制精度下降。電池引出的24V電源分別介入兩塊直流穩壓板,其中一塊穩壓板穩定輸出22V給電機供電,另一塊穩定輸出12V給各個電路板供電。

 

圖6. 直流穩壓模塊

  3. STM32F407開發板(正點原子探索者)(如圖7所示)

  硬件系統的主控板是一塊STM32F407開發板,該開發板集成了很多個功能模塊,其中我們要用到的有:

  • 通信模塊。(RS232、USART等)
  • PWM信號輸出。
  • 傳感檢測模塊。(編碼器、超聲波測距等)
  • 陀螺儀。
  • 等等

  具體的功能及代碼后續的博文會分章節詳細介紹,關於該開發板的詳細資料查看:開發板資料傳送門

圖7. STM32F407開發板

  4. 直流電機驅動模塊(如圖8所示)

  該驅動模塊是一款H橋直流電機驅動板,獨立兩路電機接口,每路最高支持120W電機,使用P、N互補MOS管實現H橋,具體使用參見:手冊傳送門。我們用這一塊板子實現兩個電機的驅動,正合適。

圖8. 直流電機驅動模塊

  這里我們介紹了主要的幾個模塊,其他相關模塊后續會結合嵌入式軟件的介紹一起進行。OK,本篇到這里吧。

 <-- 本篇完 --> 

 

歡迎留言、私信、郵箱、微信等任何形式的技術交流。

作者信息:

名稱:Shawn

郵箱:zhanggx0102@163.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM