2014年11月16日 星期日

Raspberry Pi 初體驗:準備器材、安裝OS、環境設定


試過Arduino後,接下來嘗試其他較進階的版子例如Raspberry Pi,試著製作中繼站以負責相關運算及邏輯判斷使用。但我們首先必須了解相關規格與特性,以下是經參考許多網友所提供的資料,再經自己動手實作測試所彙整之結果與步驟。

一、準備相關周邊器材  

Raspberry Pi 所需的零配件如下。可經有購物網或實體店面依序準備好,以利 Raspberry Pi 後續的開機:

  • 電力供應:電源供應器(使用一般手機的USB充電器即可)
  • 儲存設備:記憶卡(Micro SD可支援到 Class 10規格,購買前先查對一下「SD 卡相容性清單」)
  • 影音端子:HDMI 連接線 或 RCA 複合端子與音源端子
  • 輸入設備:USB 鍵盤與滑鼠(可選用主動式(Active)的 PS/2 轉 USB 轉換器)
  • 網路連線:Ethernet 固接網路線 或 USB Wi-Fi 的無線網路接收器(參考RPi VerifiedPeripherals官網的型號額外購買USB無線網卡)

完成圖

接下來就是安裝我們的OS了

二、安裝OS

  • 至官方網站下載OS映像檔
準備好需要的硬體設備以後,就剩下Raspberry Pi作業系統的部份了。Raspberry Pi使用SD記憶卡為主要的儲存設備(Raspberry Pi Model B+使用Micro SD),所以作業系統也必須安裝在SD記憶卡。Raspberry Pi支援許多Linux作業系統,官方網站就提供幾種不同的選擇,開啟官方網站的下載網頁http://www.raspberrypi.org/downloads/,選擇「RASPBIAN」的「Download ZIP」:
至官方網站下載OS

  • 下載把作業系統檔案燒錄到SD記憶卡的工具
執行燒錄SD程式工具(以系統管理員身分執行)

燒錄SD情形

三、環境設定

  • 作業系統初始設定

當我們全部就緒後,開插啟電源,接下來在Raspberry Pi文字選單畫面中執行設定的工作:
  1. 選擇「1. Expand Filesystem」,擴大記憶卡的使用空間
  2. 選擇「2. Change User Password」,更改預設使用者「pi」的密碼
  3. 選擇「4. Internationalisation Options -> Change Locale」,使用空白鍵勾選「en_US.UTF-8 UTF-8」與「zh_TW.UTF-8 UTF-8」,取消預設已經勾選的「en_GB,UTF-8 UTF-8」,設定完成後按「Enter」鍵確認
  4. 選擇「4. Internationalisation Options -> Change Timezone」,選擇「Asia, Taipei」
  5. 選擇「4. Internationalisation Options -> Change Keyboard Layout」,依照順序選擇:
    • Generic 105-key(Intl) PC
    • Other
    • English (US)
    • English (US)
    • The default for the keyboard layout
    • No compose key
    • No
  6. 選擇「8. Advanced Options -> Memory Split」,輸入「128」(這個設定是為了讓JavaFX應用程式可以運作的順暢一些)
  7. 選擇「8. Advanced Options -> SSH」,選擇「Enable」
完成上面的設定以後,選擇「Finish」後選擇「Yes」,系統會重新開機。開機完成後,使用帳號「pi」,上面設定好的密碼登入系統。

  • 網路設定

  • 如果使用USB WiFi無線網卡,就要執行額外的設定。確定已經連接鍵盤與滑鼠,登入系統以後,輸入下列的指令(startx),啟動圖形使用者畫面:

指令畫面完成圖

進入圖形使用者畫面以後,在桌面找到與啟動「WiFi Config」,出現設定視窗畫面後,依照下列的順序執行設定:
  1. 選擇「Scan」按鈕開啟網路掃描視窗
  2. 在網路掃描視窗選擇「Scan」按鈕
  3. 雙擊你的無線網路名稱(注意:SSID名稱要避免有中文)
  4. 在「PSK」欄位輸入無線網路的密碼
  5. 選擇「Add」按鈕後選擇「Close」按鈕關閉視窗
  6. 選擇「Connect」按鈕
網路設定圖

無線網路連線成功

  • 自動連線  wifi config auto connect

設定相關設定檔
於網路設定檔靜態IP
設定後的結果


  • 安裝中文環境

  1. 先更新一下套件清單:$ sudo apt-get update
  2. 安裝中文字型,文泉驛微米黑、文泉驛正黑、文泉驛點陣宋體。$ sudo apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy
  3. 將locale設定成繁體中文。$ sudo dpkg-reconfigure locales
  4. 繁體中文的部份,選三個zh_TW BIG5、zh_TW.EUC_TW EUC-TW、zh_TW.UTF-8 UTF-8。
  5. 安裝中文輸入法。$ sudo apt-get install scim scim-tables-zh scim-chewing(其中scim-chewing是注音的輸入法,若是大陸用的拼音輸入法,請安裝scim-pinyin。)
  6. 重開機。
  7. 以Ctrl-Space即可切換輸入法,輸入中文
套件更新情形
重新開機後,右下角出線輸入法
介面完成中文化,且有輸入法可使用

  • 遠端桌面設定

     於Raspberry Pi 中執行sudo apt-get install xrdp

於一般電腦執行遠端桌面連線

出現剛安裝完成的遠端套件視窗

成功地登入Raspberry Pi遠端桌面

注意事項


如果我們想要從防火牆外面,連線到 Raspberry Pi 的 xrdp 時,xrdp 的通訊埠是 Port 3389,別忘了將 Port Forwarding 設定好,否則會無法連線。

之後我們就方便進行相關的應用與加值了。

如果也遇到了HDMI轉VGA在螢慕上無法顯示畫面的狀況,請修改SD記憶卡中第一個分割區裡的config.txt,將
 #hdmi_force_hotplug=1 、
 # uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=2
#hdmi_mode=16
「#」拿掉,其中 
if hdmi_group=2 (DMT)
hdmi_mode=16 代表解析度為1024x768且60 Hz 之設定,這樣應該就可以強迫從HDMI輸出視訊

調整解析度可參考這裡

VNC Server



https://www.raspberrypi.com.tw/586/setting-up-vnc/

參考資料
  1. http://www.kenming.idv.tw/raspberry-pi_remote-desktop_control_by_xrdp
  2.  http://www.codedata.com.tw/java/java-embedded-3-raspberry-pi-equipment-os/
  3. http://life-of-raspberrypi.blogspot.tw/2013/01/raspberry-pi-sd-14-raspbian.html
  4. http://life-of-raspberrypi.blogspot.tw/2013/01/raspberry-pi-510-sd.html
  5. http://life-of-raspberrypi.blogspot.tw/2013/01/raspberry-pi-710.html
  6. http://yehnan.blogspot.tw/2014/02/raspberry-piraspbian.html
  7. http://a1239537.pixnet.net/blog/post/123235007-raspberry-pi%E4%BD%BF%E7%94%A8hdmi%E7%9A%84%E8%A8%AD%E5%AE%9A. 
  8. http://yehnan.blogspot.tw/2013/10/raspberry-pi.html
  9. http://elinux.org/RPiconfig
  10. http://weworkweplay.com/play/automatically-connect-a-raspberry-pi-to-a-wifi-network/ 
  11. http://hatemegalaxy.blogspot.tw/2014/01/play-raspberry-pi-3-set-usb-wi-fi.html

2014年11月2日 星期日

Arduino 整合測試:簡易式雨量警報器

本次測試將前幾次的單元測試做個防災小利器:簡易式雨量警報器。
我們經由既有的手機網路或電腦網路與Web介接雨量資料,並透過芽藍將雨量警戒資訊,經由蜂鳴器來提醒民眾注意自家附近低窪易淹水的地方,做為準備沙包或安裝防水閘門的參考資訊。

首先我們進行C#程式的改寫, UI部署如下圖:
  • System Time:目前系統時間。
  • Serial Port:藍芽COM
  • Message:ˇ雨量警戒資訊。
  • 連線測試:測試網路與介接的雨量資訊是否正常。
C#撰寫好了之後,接下來,將Arduino板上感測器與藍芽的PIN接到預定的腳位。


經測試後,一但雨量達到警戒,除了會出現相關警戒訊息外,同時會發出警報聲提醒,而簡易式雨量警報器就完成了,日後我們也可以在這上面進行做更多的需求功能。
許也有人會想說這有什麼用處呢?? 在這氣候變遷且極端氣候(短延時強降雨)的時代中,一般民眾與保全對象(弱勢或須協助)的民眾,對中央氣象局所觀測到的雨量值,是相當無感或認知的,例如1小時累積下達100mm或24 小時累積雨量下達600mm恐難了解這兩個數值在現實情況到底是下多大呢?,但對專業的氣象或防災人員來說這些觀測值都是相當恐怖的,恐會有嚴重的淹水災情或土石流的情事發生。
教養院道路積水,國軍支援撤離任務


所以為了讓一般民眾更清楚了解雨量值所代表的意義,由專業人員判斷設定期警戒值,一但達到該警戒值,簡易式雨量警報器就會提醒你,要注意自身居家附近的雨量恐會造成的災情,對山坡地區的民眾更可以作為提早疏散避難的參考資訊。