回覆列表
  • 1 # 工業機器人之家

    很多初學者可能一時興起想起自己動手製作機器人,很多人可能並不是嵌入式開發的業內人士,甚至沒有聽說過微控制器、步進電機這些名詞;有的人一上來就準備做一個可以雙足行走的人形機器人等等。

    其實新手最好還是從小車開始。人形機器人可以說是一個系統的大工程,不是一個人玩的起來的,而且資金上的投入也是比較龐大的。機器人小車技術門檻較低,資金投入也少,市場上的各種產品和零配件的支援也較多,但是可以實現的功能並不少。

    首先是理論部分——小車的控制結構。

    小車的整體控制系統

    小車是怎麼來控制的?為什麼小車判斷出障礙物後可以自動的繞開?

    理論:控制工程——處理自動控制系統各種工程實現問題的綜合性工程技術。包括對自動控制系統提出要求(即規定指標)、進行設計、構造、執行、分析、檢驗等過程。它是在電氣工程和機械工程的基礎上發展起來的。

    閉環控制:閉環控制有反饋環節,透過反饋系統是系統的精確度提高,響應時間縮短,適合於對系統的響應時間,穩定性要求高的系統。

    開環控制:開環控制沒有反饋環節,系統的穩定性不高,響應時間相對來說很長,精確度不高,使用於對系統穩定性精確度要求不高的簡單的系統。

    一般稍微複雜一點的機器人小車都是閉環控制,也就是說它有一個反饋機制,會根據自己配備的各種感測器來讀取環境資訊,並且根據這些環境資訊來決定自己下一步的行動,決定好後將行動指令發給執行系統,使機器人做出合適的動作。當然也有的機器人小車是開環控制,我就見過一個機器人小車配了一支筆,將機器人放在紙上,機器人一轉,刷的一下在紙上畫出一個圈來,當然由於摩擦力和機械誤差等原因,畫出來的圓圈可能不閉合,也可能不圓。不過人家阿Q都說了:“孫子才畫的圓呢……”有點迷糊?沒關係,其實簡單一點說就是這樣:機器人可以分為三部分——感測器部分、控制器部分、執行器部分。

    感測器部分:機器人用來讀取各種外部訊號的感測器,以及控制機器人行動的各種開關。好比人的眼睛、耳朵等感覺器官。

    控制器部分:接收感測器部分傳遞過來的訊號,並根據事前寫入的決策系統(軟體程式),來決定機器人對外部訊號的反應,將控制訊號發給執行器部分。好比人的大腦。

    執行器部分:驅動機器人做出各種行為,包括髮出各種訊號(點亮發光二極體、發出聲音)的部分,並且可以根據控制器部分的訊號調整自己的狀態。對機器人小車來說,最基本的就是輪子。這部分就好比人的四肢一樣。

    好的,現在我們來分析一下機器人小車的避障行為控制:機器人正在行走過程中(人在路上走),忽然接收到裝在機器人前部的感測器發來的一個“左前方有障礙物”的訊號(人眼發現左前方有一根電線杆),我們事先寫在機器人控制晶片中的程式演算法要求機器人發現左前方有障礙物就往右邊轉(人發現左前方有電線杆就應該往右躲——什麼,你還要繼續往前走?那我就等著聽響了,哦原來你只是想去看上面的小廣告……),控制晶片對機器人的驅動器——或是輪子,或是雙足——發出向右轉的指令(人大腦發出向右轉的指令,通俗點說就是“拐了拐了”),此時機器人的執行器部分應該立即響應控制器的指令,改變自己的狀態,使機器人的前進方向改變,避開障礙物(恭喜你,躲開了電線杆)。

    怎麼樣,是不是有了點機器“人”的意思?

    那麼這三部分是怎麼聯絡起來的呢?很簡單:電!其實機器人小車就是一個電子作品,感測器將外部的光訊號、聲音訊號、溫度訊號等全部轉換為控制部分可以接受的電訊號,控制系統發出的指令也是各種電訊號,透過執行部分轉變為電機輸出的扭矩、聲音、光訊號等等。

    下面我來分別介紹一下這三個部分。

    感測器部分

    感測器是機器人的眼睛,想要小車完成不同的任務就要配備各種不同的感測器。

    現在市場上林林總總的感測器數不勝數,一般個人機器人愛好者經常使用的有碰撞檢測感測器(碰撞開關)、紅外測障感測器、紅外測距感測器、光敏電阻、電子溫度計、電子指南針等等。

    一般機器人用的感測器返回的訊號分兩種:一種返回值很簡單,只有兩個狀態:“有”或者“沒有”;“是”或者“不是”;“0”或者“1”。我一般習慣把這種量稱為“狀態量”。它所反映的是一種狀態,只是簡簡單單的“是”或“否”。比如“機器人左邊有沒有障礙物”,“有沒有聲音訊號”等。還有一種返回值返回的是一個已知範圍內任意值,比如一隻光敏電阻返回的訊號就可能是0~5V範圍內的任意電壓訊號。我一般把這種量稱為“強度量”。它所反映的是一個有效範圍內的強度。比如“機器人左邊的障礙物有多遠”,“現在的聲音訊號有多強”等。

    “狀態量”反映的資訊較簡單,相應的感測器也較簡單,成本較低。而“強度量”反映的資訊則較豐富,相應的感測器的成本就會比較高,同時給控制上也帶來了更大的靈活性和複雜性。

    下面我們來看一些常用的感測器:

    碰撞開關:電路常開,碰到障礙物後連通,可以用來檢測機器人是否發生碰撞。

    光敏電阻:光敏電阻器是利用半導體的光電效應制成的一種電阻值隨入射光的強弱而改變的電阻器;入射光強,電阻減小,入射光弱,電阻增大。光敏電阻器一般用於光的測量、光的控制和光電轉換(將光的變化轉換為電的變化)。可以用來檢測光線強度。

    紅外測障感測器:紅外測障感測器利用紅外線遇到障礙物會反射的原理,來檢測某一方向上是否有障礙物的存在。

    紅外測距感測器:紅外測距感測器利用紅外訊號遇到障礙物距離的不同反射的強度也不同的原理,進行障礙物遠近的檢測。紅外測距感測器具有一對紅外訊號發射與接收二極體,發射管發射特定頻率的紅外訊號,接收管接收這種頻率的紅外訊號。

    超聲波測距感測器:超聲波測距感測器利用聲音在空氣中的傳輸距離和傳輸時間成正比的原理,透過檢測不同遠近的反射面對超聲波反射回去的時間不同來檢測障礙物的距離。

    對於感測器,很多人覺得只要看看文件,知道怎麼用了就行。但我的建議是:不但要知道怎麼用,還要知道其檢測原理。只有深刻的理解了感測器的檢測原理,才能具有更好的發散性思維。我舉一個例子:當初在學校開展機器人滅火比賽,我們用了廠家提供的地面灰度感測器依靠可見光反射來檢測地面白線,效果一直不是很理想。後來有同學仔細研究了當時電機上配備的光電編碼器,發現其原理就是利用紅外線在不同顏色表明上反射率不同檢測高速旋轉的電機上黑白相間的碼盤來測出電機的旋轉速度,動手將光電編碼器上的紅外檢測模組拆下來裝在機器人底部,用來檢測地面白線,檢測效果一下子好了很多。

    購買途徑:當地的電子市場,或是網上購買(現在很多機器人商家都有各種各樣的感測器提供,其實原理和適用範圍都差不多,很多都可以互換通用)。購買時需要注意的是感測器的電壓範圍和有效範圍。

    終極開發:影象識別 依靠一隻攝像頭,根據攝像頭返回的影片訊號,計算出各個不同物體距自己的距離以及其運動速度等等。如果你可以邁入這一步,那麼,有一門叫做“機器視覺”的學科的大門也就向你敞開了。

    控制器部分

    適合機器人的控制晶片有很多:微控制器、DSP、甚至我們計算機上所用的CPU,都可以。不過我們這裡主要介紹的針對機器人小車的技術,所以把其他的先放一放,讓我們把注意力放到物美價廉的微控制器上來。

    微控制器:微控制器又稱單片微控制器,它不是完成某一個邏輯功能的晶片,而是把一個計算機系統整合到一個晶片上。概括的講:一塊晶片就成了一臺計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。

    小晶片有大智慧

    微控制器是自動控制系統中應用非常廣泛的控制晶片,現在就在我們身邊的許多的電器中都有微控制器的身影。想自己動手製作機器人的話,相應的微控制器知識是必不可少的。

    系統的微控制器知識我這裡不想多說,想要對微控制器系統有一個深入的理解,還是要找一本比較好的微控制器教材一頁一頁的看下去,網上的任何“技巧”“快速入門”(包括本文)都只能算是水果、零食之類,閒暇無事時可以拿來開開胃,真正想要吃飽吃好,還是要用大餅卷饅頭就著米飯吃才行。

    以上是基礎的入門概念。

    對剛拿到手的微控制器晶片,開發人員要做的就是教會微控制器處理各種各樣的問題,給微控制器配備上各種各樣的擴充套件工具,使微控制器可以將複雜的問題簡單化,數字化。

    微控制器開發涉及兩方面:硬體、軟體。

    微控制器不同於其他電器,拿過插銷直接插在電源上就可以使用,一塊空白的微控制器想要使用,還需要一些其他的電路來支援。一般來說,最基本的電路就是微控制器最小系統:

    所謂的微控制器最小系統就是指可以讓微控制器工作起來的最基本的電路,在所有的微控制器系統中,你都可以找到類似的電路。至於它的原理,我這裡就不累述了,找本書看去吧。

    再介紹一些做機器人需要的擴充套件電路:

    程式下載電路:微控制器最終需要程式來控制,一般都是在PC上編寫好程式,透過下載線來下載到微控制器中執行。下載需要一個電路來支援,以前的通常做法是連線到PC的串列埠,不過現在有很多透過USB下載程式的電路。

    以上兩個電路就是機器人開發所需要的最基本的微控制器電路,其他也許還需要一些電機驅動、A/D轉換、開關選擇等電路。

    也許你有些迷糊,可以有一點感到棘手了,這些電路對於一個從未接觸過微控制器的新手來說可能有些頭大,沒關係,現在市場上有很多成熟的微控制器開發系統出售,價格極為低廉,如果不想在底層電路上多花精力的話,到一些電子商務網站上搜索一下“微控制器開發板”,一百多就可以買到功能十分齊全,贈送軟體+教程還有技術支援服務的適用開發板了(當然,你如果自己動手的話,成本會更低)。

    軟體:說白了就是你自己給微控制器開發的智慧程式,讓機器人可以具有最簡單的智慧。不要看到“智慧”這兩個字就覺得多麼高深,看到前面有電線杆知道要拐,這,就是智慧。

    不同的微控制器需要不同的開發環境,這個要在購買的時候就弄清楚,很多微控制器公司都有自己配套的開發軟體,很多都是可以在公司網站上免費下載。一般來說,國外的很多晶片公司在自己的網站上都有非常豐富和適用的資料,抱本英漢詞典,將網站上的資料瀏覽一下,你會發現一切都變得十分簡單。

    以前一說起微控制器開發就會想起組合語言,那時候的晶片成本很高,晶片的運算開銷和儲存開銷都要精打細算,高效率的組合語言是微控制器的最佳選擇。而現在隨著晶片成本的降低,開銷問題已經不再是制約微控制器程式開發的瓶頸,所以很多類C或Basic語言的開發環境都已經出現。只要有一定的程式開發基礎,對微控制器的各種引腳足夠熟悉,那麼相信寫出一個簡單的智慧程式將是很容易的事。

    購買途徑:電子市場或是網購。現在微控制器的價格已經十分低廉,價格上無需考慮太多,關鍵是要選擇一款合適的,資料較多,容易上手的就可以。就機器人開發來說,要滿足以下幾個條件:有程式下載線,可以方便的將程式從PC上下載到微控制器上;集成了A/D轉換;有PWM輸出(便於控制電機)。

    終極開發:微控制器終究能力有限,想要做一些運算量較大的應用時(例如音訊影片的處理),就需要一些更高階的晶片,比如DSP等,或者乾脆把你的電腦機箱加上幾個輪子,讓你的電腦跑起來吧!

    執行器部分

    對於機器人小車來說,最基本的執行器部分就是輪子。要有輪子,小車才能被稱為小車。這部分可能也是各位愛好者最發愁的部分,感測器和控制器到處都有的賣,而一般適合機器人小車上用的輪子,機械結構,車體等部分卻很難尋覓。找人訂做成本極高,現在很多朋友都用玩具小車來進行改裝。其實現在已經開始有機器人小車底盤出售,不過在電子市場很難見到,多數都要在網上一些教育機器人公司的網店裡郵購。

    機器人常用的電機分為三種:普通的直流電機、步進電機、伺服電機。

    直流電機:輸出或輸入為直流電能的旋轉電機,稱為直流電機,它是能實現直流電能和機械能互相轉換的電機。當它作電動機執行時是直流電動機,將電能轉換為機械能;作發電機執行時是直流發電機,將機械能轉換為電能。

    步進電機:步進電機是將電脈衝訊號轉變為角位移或線位移的開環控制元件。在非超載的情況下,電機的轉速、停止的位置只取決於脈衝訊號的頻率和脈衝數,而不受負載變化的影響,即給電機加一個脈衝訊號,電機則轉過一個步距角。這一線性關係的存在,加上步進電機只有週期性的誤差而無累積誤差等特點。使得在速度、位置等控制領域用步進電機來控制變的非常的簡單。

    伺服電機:伺服電動機又稱執行電動機,在自動控制系統中,用作執行元件,把所收到的電訊號轉換成電動機軸上的角位移或角速度輸出。分為直流和交流伺服電動機兩大類,其主要特點是,當訊號電壓為零時無自轉現象,轉速隨著轉矩的增加而勻速下降。

    這三種電機一般來說成本是 直流<步進<伺服,控制精度是直流<步進<伺服(當然也有不一般的時候,並不是說伺服電機就一定比步進電機便宜)。

    初學者對微控制器控制電機不太熟悉,起步可以先用微控制器輸出的PWM訊號來控制直流電機,更進一步可以試著控制步進電機,以求更高的控制精度。對於小車的運動驅動來說,一般可以選用直流電機或步進電機,而伺服電機一般用在機械臂上,用來得到精確的旋轉角度。

    一般微控制器要透過驅動電路來控制步進電機、伺服電機。有專門的模組來負責驅動電機,微控制器只需要為這樣的模組提供一定頻率的脈衝和控制訊號就可以了。網上相關的資料很多,大家需要的話可以去自己找一下。

    購買途徑:電子市場、五金商店、網購、舊家電。

    終極開發:當你可以自如的控制機器臂的時候,你就會發現,一個類人機器人將不再遙遠。

    其他的常用驅動裝置還有機械臂機械手等,裝在小車上去抓取東西。可以自己利用伺服電機開發(初學者最好繞行),也可以選擇市面上的成型產品,這些產品一般都有完整的文件,仔細閱讀,使用起來都是很方便的。

    最後再介紹一下電子電路開發。

    提起電路,可能很多朋友首先想起來的就是墨綠色的印刷電路板,現在很多電子市場都有人可以根據你的電路圖為你加工印刷電路板。不過在設計階段,很多東西都會改來改去,每次都去重新制作電路板效率和成本都是大問題,一般在電路開發中,有一種專門的實驗板(也叫麵包板),適合在開發階段使用。

    附贈:

    新手入門專用的《機器人制作天空寶典》和《智慧機器人 邊學邊做》下載:

    《機器人制作天空寶典》http://pan.baidu.com/s/1kTzX9A3

    《智慧機器人 邊學邊做》http://pan.baidu.com/s/1c0nuBB

  • 中秋節和大豐收的關聯?
  • 二戰時,託布魯克之戰為什麼是隆美爾的巔峰戰役?