2016年5月22日 星期日

【Arduino入門】LED控制篇01_一個LED的閃爍控制

目標:


在麵包版上控制一個LED閃爍,使該LED能不斷地變亮0.5秒、變暗0.5秒。


麵包板接線圖:




Code編寫:


int led = 13;  //假設一常數led等於13,int為假設"整數"的意思

void setup()
{
  pinMode(led, OUTPUT);  //將led=13帶入pinMode()函數中,代表設定數位接角13是輸出模式
}

void loop()
{
  digitalWrite(led, HIGH);   //從數位接角13輸出高態電壓
  delay(500);                //延遲0.5秒
  digitalWrite(led, LOW);    //從數位接角13輸出低態電壓
  delay(500);                //延遲0.5秒
}


函式說明:


setup()函式: 
Arduino語法之中,主要的一個部分。一般來說,Arduino的語言主要由兩種函式組成,一種是setup(),另一種則是loop()。它的功用為初始化變數、定義數位接角模式、設定函數值、定義參數等....。

loop()函式:
程式會不斷重複這個部分的語言,就如同它的字面意思,loop就是一個不斷執行一次再一次的迴圈。

pinMode()函式:
專門定義Arduino中,各個數位接角的模式。運用格式為pinMode(pin, mode)。其中,pin指定Arduino數位接角的編號;mode則設定數位接角的模式,有INPUT(高阻抗輸入模式)、INPUT_PULLUP(內部電阻上升模式)、OUTPUT(輸出模式)。

digitalWrite()函式:
專門定義Arduino中,需要讓數位接角執行的狀態。運用格式為digitalWrite(pin, value)。其中,pin指定Arduino數位接角的編號;value則設定要讓數位接角執行的狀態,有HIGH(高態)、LOW(低態)。

delay()函式:
延遲程式執行的速度。當成是執行到有delay()函式的行數時,會根據函數中的值來做延遲。運用格式為delay(time)。其中,time若設定為1000,則為1秒;若設定為5000,則為5秒。以此類推。

機械手臂也能自我學習!? 有如人類手臂的超靈巧機械手臂誕生。


        現今的機器人已經能夠處理一些困難且危險的任務,例如拆解炸彈、車輛製程等....。儘管這些機器比人類還擅於處理一些外太空的艱難任務,但它們卻沒辦法去執行一些生活瑣事,甚至自我學習某些日常技能。


        不過最新的"超靈巧機械手臂"宣稱,它可隨著時間推移去學習一些新技能---完全不透過三位來自華盛頓大學的人類們的幫忙!!  這三位研究者在斯德格摩爾的國際機器人與自動化會議上,首次展現出他們的心血結晶,名為『超靈巧控制系統(Adroit manipulation system)』的新穎研究。

        研究人員認為,他們的創造物在機器人領域上是個重大啟示,對於那些需要各種複雜技能的行業來說,例如太空探索、健康照護機器人管家等....。

       主導研究計畫的研究人員Vikash Kumar認為,透過操作機械手臂去執行一些細微的動作,例如撿取棒子、旋轉掌中棒子、翻滾小磚塊等...,對於目前的機械手臂來說是一大難題。

「製造一個通才型的機器人,比設計那種典型的單任務機器人困難太多了。」Vikash Kumar在一次CNN的專訪中提到。

        因此在他們西雅圖華盛頓大學的動力控制實驗室中,Kumar與他的研究團隊致力於設計一種能執行簡單任務並隨時適應環境變化的機器人。從Kumar近期在YouTube所上傳的影片裡也能看到,經由一系列的訓練跟錯誤嘗試,機械手臂可以自我逐漸計算出如何在掌中旋轉一個轉滿咖啡豆的管子。



        首先,機器手臂調度一些手指頭去細微的移動管子。而在下一次嘗試中,機械手臂舉高了一些,並且先些許的移動自己的中指,然後才開始去進一步的旋轉管子。機械手臂就這樣持續嘗試一連串的動作,直到最後它成功的旋轉管子而不借助人類的幫助為止。

         Kumar與他的研究同事Emanuel Todorov從建立機器手臂的機構開始,他們總共花了2年半(超有毅力....)才完成了典型的五指機械手臂。這種五指機械手臂是目前世界上自栩速度最快、範圍最廣、最先進的機械手臂構造。



        華盛頓大學的電腦科學教授Sergey Levine也參與了此次研究計畫,他建立了一種能藉由過去的嘗試資料去改善自我行為的機械學習演算法---不增加額外的程式碼或是研究人員的輔助。

「當它(機械手臂)失敗之後,它就會去取得資料並思考在下一次動作中要如何去改善,以此來使再下一次的任務能完美達成。」Levine說道。

       這樣的過程會一直反覆執行,直到機械手臂能完美掌握這項任務為止。

「對我們來說,數學計算或下棋之類的任務算是困難的,但對機器人來說,這並不困難。不過,我們的腦袋對於控制我們自己的身體卻是最優美的設計師,而對機器人來說,若要它們執行這件事(控制身體)反而很困難。」


         另外,對一些外來的物質因為接觸而有反應的感知,對機器手臂來說也是一大困難。但它目前還是有能力去感應並處理一些來自人類的接觸或是被氣流吹到的狀況。

「這對機器人的學習是很有正向幫助的,因為演算法是概括所有行為的。你不需要再花好幾年去設計新的程式碼或是建造新的機械構造,這對各行各業來說有很明顯的經濟效益。」Levine提到。

        Kumar解釋建立最初這種超靈巧系統"是實驗性質,而沒有經濟考量"。這項計畫約花了大概30萬美金,其中包括定製一些稱為"Shadow Dexterous Hand"的現有機器人零件。他們最後在機械手臂上總共安裝了235個感測器、氣動肌腱、以及一個外部的攝影機。不過整個系統其實不需要花到那麼多錢,研究人員說道。

        華盛頓大學的這三人提到,可以想像這種超靈巧機械手臂,在未來各行各業中一些需要靈巧度的應用: 海洋、太空及戰地探索;針對體弱多病的病人需要的藥物投放治療;拆除炸彈;甚至只是在咖啡廳裡煮咖啡豆。

        不過這三人也提到,他們對機械管家的機器人種類更期待。它將會是一個通才,有能力處理各種家務瑣事,並且還能無時無刻提升自己的能力。

「如果你讓機器人去烤土司,那麼它在應用面上就是一台烤土司機。我們希望這台機器人能擁有多種功能。」Todorov說道。

        為了做到這件事,Kumar解釋,那些對使用者算是友善的機器人需要通過複雜的安全性測試,並且理解有關當下的環境會因為它執行的任務所造成的長遠影響。


「不過,我們距離那天還很遠呢。」他最後補充。