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

 

1、概述html

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

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

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

 圖1 嵌入式硬件發發流程佈局

  嵌入式硬件開發的通常流程如圖1所示,這裏只是筆者根據以往經驗進行簡單的總結,未必是用於全部的開發狀況。第一步就是肯定產品的設計需求,這裏是指通過充分討論和評審的產品設計需求,而後開發人員根據設計需求進行分解,例如不一樣的功能需求可能對應的不一樣的硬件模塊。測試

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

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

                      

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

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

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

             

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

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

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

tips:

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

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

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

   博文的前半部分簡單介紹了嵌入式硬件電路設計的流程和一些基礎知識,下面考試介紹本開源機器人的的嵌入式硬件部分的組成。爲了快速開發和節約成本,這裏的機器人嵌入式硬件所有采用現有的電路板進行搭建,以便下降成本和上手的難度,固然,若是讀者感興趣的話仍是能夠本身繪製幾塊電路板來練練手,體會一下從設計到製版,從手動焊接電路板到軟件調試的整個過程,其間必定會得到不少成就感和樂趣。

                   

圖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開發板,該開發板集成了不少個功能模塊,其中咱們要用到的有:

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

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

圖7. STM32F407開發板

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

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

圖8. 直流電機驅動模塊

  這裏咱們介紹了主要的幾個模塊,其餘相關模塊後續會結合嵌入式軟件的介紹一塊兒進行。OK,本篇到這裏吧。

 <-- 本篇完 --> 

 

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

做者信息:

名稱:Shawn

郵箱:zhanggx0102@163.com

相關文章
相關標籤/搜索