2016/04/10

Arduino Yún:基本介紹與設定Wi-Fi無線網路組態

買了一塊Arduino Yún,試著玩玩看。

因應物聯網推出的板子,取了個中文名字Yún(雲),跟其他一般Arduino板子差異之處在於,Yún除了有微控制器ATmega32U4(同Leonardo),另有Atheros AR9331,負責運行Linux發行套件OpenWrt-Yun(以OpenWRT為基礎修改而成),並且連接到乙太網路(Ethernet)與Wi-Fi無線網路,另外也連接板子的A型USB埠(扮演主方)與micro SD卡插槽。

因使用ATmega32U4,基本特性與Leonardo相同,腳位配置也與Leonardo/Uno一樣,在此不再多說。

Arduino軟體自1.5.4版開始支援Yún,驅動程式安裝步驟跟Leonardo一樣,在此便不浪費篇幅;簡言之就是使用A-micro B的USB線連接電腦,便會要求你指定驅動程式的路徑,總共會有兩次,分別會在裝置管理員裡產生兩個COM序列埠(但不會同時出現)。

板子上沒有5V穩壓器,沒有一般的筒狀電源插座,可從micro USB埠輸入電源,或從Vin與5V腳位輸入,但要自己穩壓。

通電後,ON LED應該亮起,試著燒錄內建範例草稿碼「檔案」-「範例」-「01.Basics」-「Blink」,L13 LED應會閃爍,確認驅動程式成功安裝。

LED代表的意義如下:
RX(黃)是序列埠接收。
TX(黃)是序列埠傳送。
L13(紅)是內建LED,連接到數位腳位13。
WAN(黃)是乙太網路指示燈。
ON(綠)是電源指示燈,通電後應持續亮起。
WLAN(藍)是Wi-Fi無線網路指示燈。
USB(白)是USB埠指示燈。
板子上有3個重置鍵:

左上標示為32U4 RST的重置鍵,按一次是重置目前執行中的草稿碼,按兩次會重置ATmega32U4這顆微控制器。

右下標示為YÚN RST的重置鍵,重置AR9331,重新啟動Linux系統(OpenWrt-Yun),記憶體中的東西全部不見,執行中的程式也會終止。注意,重新啟動應需要30~45秒以上的時間。

左 下標示為WLAN RST的重置鍵,有兩個作用,第一是將WiFi組態重置回工廠設定值,會讓WiFi晶片進入AP(access point)模式,IP是192.168.240.1,分享出來的網路名稱是「Arduino Yun-XXXXXXXXXXXX」,其中X是Wi-Fi無線網路卡的MAC位址,按著此重置鍵不放、持續5秒以上,即可進入Wi-Fi組態重置模式。

第二個作用是將Linux映像檔重置回工廠預設的映像檔內容(或是你更新後的版本),必須按著重置鍵不放持續30秒,這麼一來,儲存在板子裡的快閃記憶體(與AR9331連接)的檔案與設定值,通通都會消失。
Yún接上電源後,此時Wi-Fi處於AP模式,其分享出來的SSID(無線網路名稱)類似於「Arduino Yun-XXXXXXXXXXXX」。


連接後,開啟瀏覽器輸入網址http://arduino.local或192.168.240.1,便可看到如下畫面,要求輸入密碼,預設密碼是「arduino」。
成功登入後便可看到如下畫面,先顯示Wi-Fi與乙太網路的網路組態。再點按「CONFIGURE」進行組態設定。
進入網路組態頁面:
YÚN NAME,算是給予主機名稱吧,請自由設定,但要記住,將來存取時需要這個名稱。
PASSWORD,在此輸入新密碼,若不輸入則沿用預設密碼「arduino」。
CONFIRM PASSWORD,再輸入一次新密碼。
TIMEZONE,設定時區。

勾選「CONFIGURE A WIRELESS NETWORK」。
DETECTED WIRELESS NETWORKS:從此處選擇你想連接的Wi-Fi網路。
WIRELESSNAME:或是自己輸入。
SECURITY:安全協定,請根據路由器組態設定。
PASSWORD:存取該Wi-Fi網路時的密碼。
底下的「REST API ACCESS」,此處不用。

按下「CONFIGURE & RESTART」,儲存組態設定並重新啟動。
重新啟動完成。
然後Yún的Wi-Fi晶片就會進入一般模式,連接到你指定的無線網路。

成功後,找出Yun的IP位址,你仍可從瀏覽器輸入該IP位址登入,修改組態。

嘿,我的無線路由器以DHCP動態分配某IP位址給Yun。
除了一般的有線燒錄方式(透過USB線連接),Yun也可無線燒錄。開啟電腦上的Arduino IDE,可從選單「工具-序列埠(Tools-Port)」看到含有IP位址的Yún,勾選後,記得從選單「工具-板子」勾選Yún。

Yún使用Bonjour在區域網路內發佈服務,如果你的作業系統是Windows而且看不到Yún的話,請到這裡下載安裝Bonjour,另外也請確認沒有防火牆或防毒軟體擋住連接埠5353。

然後找份草稿碼,進行上傳動作,會要求你輸入密碼,然後就會進行燒錄動作。


嗯,基本設定完成囉,還有很多可以玩,慢慢來吧。

註:Arduino鬧分家,arduino.cc與arduino.org兩邊都想要突出,佔據Arduino這個品牌;常常會使用不同的詞彙,以及另行開發新技術,譬如arduino.cc原先使用Linino,後來沿用並改成OpenWrt-Yun,但官網上仍會出現Linino字樣(該打屁股);arduino.cc的溝通軟體層是Bridge,而arduino.org另行開發出Ciao。

參考資料:

8 comments:

  1. 葉大你好:
    之前買了一塊YUN,照著你之前的教學都能正常運作。
    之後電腦都升到WIN10之後,現在進入第一層的組態設定裡面的
    DETECTED WIRELESS NETWORKS按好幾次的Refresh都不會顯示出AP清單
    然而我點 configure & restart 後會出現這個錯誤
    Failed to execute call dispatcher target for entry '/webpanel/config'.
    The called action terminated with an exception:
    ?:0: attempt to index a nil value
    stack traceback:
    [C]: in function 'assert'
    ?: in function 'dispatch'
    ?: in function
    換了其他瀏覽器、重置映像檔都是一樣的問題,但是我用手機進管理模式就又一切正常
    不知道葉大是否清楚這是哪方面的問題呢?謝謝

    ReplyDelete
    Replies
    1. 不清楚真正的原因。似乎是在存取yun的網頁管理介面時,yun沒有送出某部分檔案,於是導致錯誤。

      若到Arduino官方論壇搜尋,很多人的回答也都是東試試、西試試,不知道根本原因在哪。

      Delete
    2. 葉大不好意思,我剛剛亂試好像已經解決困擾我好幾天的問題了
      原本預設登入的方式都是用http://192.168.240.1
      但是我改成https://192.168.240.1 就完全正常了
      剛好讓其他人如果也有這樣的問題可以試試看:D

      Delete
    3. 哦,謝謝回報。

      Delete
  2. 老師您好,我們的目前的理想動作是 : 電路板 (心跳感測器偵測脈搏) 脈搏跳一次 LED燈 亮一次 然後要接上 Arduino 讓次數存在Arduino內 所以目前有2個問題
    1. Arduino 接電路板 要接哪個腳位 ?
    2. Arduino 計數器 該如何撰寫 ?

    ReplyDelete
    Replies
    1. 1. 心跳感測器 是哪一款?
      2. 不就是定義全域int變數,不斷累加嗎?

      Delete
  3. 請問 arduino yun 用USB連接電腦後
    裝置管理員裡沒出現裝置是什麼原因呢
    我無法用有線燒錄

    ReplyDelete
  4. 嗯,驅動程式沒裝好吧。

    ReplyDelete