2013年2月1日 星期五

在 Windows 設置 Raspberry Pi (樹莓派) 遠端編輯環境


Sublime Text 2 編輯畫面


不曉得大家在樹莓派撰寫程式時是使用何種編輯器 ?

學習 Raspberry Pi (樹莓派) 控制電子週邊,通常都需要撰寫 C/C++、Python、Java...等程式語言,由於又需要接週邊的電路,因此是否可以像一般撰寫單晶片的方式,直接在 PC 端撰寫程式後上傳到晶片中直接執行控制週邊設備 ?

這是可以做到的 !

方法很多,像是遠端桌面 VNC、掛載遠端資料夾 SSHFS、網頁編輯器 WebIDE ...等,都是可以達到遠端撰寫程式控制樹莓派週邊的目的,除了 SSHFS 之外,都要額外在樹莓派作業系統下另外裝軟體。

最近賣場進了幾款樹莓派擴充板,除了可以學習電子週邊控制知識與技術的 Gertboard (介紹)之外,還有大小與樹莓派相同可直接嵌入在上方的 PiFace (介紹)。為了讓樹莓派變成簡單的週邊,能夠使用 PC 在 Windows 作業系統下撰寫樹莓派的控制程式,我們將為各位介紹下面的遠端 IDE 編輯器環境設置方法。

Sublime Text 2 這套軟體是我現在平常使用的編輯器,因為愛上它的簡潔、漂亮的編輯畫面、語法高亮度標示清晰、且功能強大!擴充套件 ( plugins ) 以及網路資源很多,相信使用過之後你 (妳) 一定會非常喜歡 ^_^

所需軟體:
  • Advanced IP Scanner:好用的網路 IP 掃描工具
  • 不需進入樹莓派就可得知樹莓派在區域網路中的 IP 位址

  • PuTTY:終端機軟體,可使用 Raw、Serial、Rlonig、SSH 等 connect type
  • 連線到樹莓派用,我們要使用它做程式編譯以及執行

  • Sublime Text 2:程式碼編輯軟體
  • 點擊到軟體官網首頁去,可看到它的使用方法展示


步驟:

要設置樹莓派遠端編輯環境,請照下面的說明打開打開 SSH Server


下面所使用的作業系統版本是:全新安裝 2012-12-16-wheezy-raspbian

登入樹莓派之後,請輸入指令 sudo raspi-config,進入 raspi-config 選單,將樹莓派的 SSH 功能打開,然後 Finish 後關機,將所有東西拔掉只留下電源與網路線連結之後開機,就可先放在一邊,繼續接下來的工作了!

raspi-config 選單


下面分為三個主要步驟作說明:首先,安裝 IP 掃描工具 Advanced IP Scanner,簡單得知樹莓派在區域網路中的位址;接著,安裝 PuTTY 並設置相關參數之後建立一個 SSH 連線;最後安裝 Sublime Text 2 文字編輯器並設置其環境讓其可以獲取遠端文件進行編輯與儲存。


Step 1: 安裝 Advanced IP Scanner

打開 SSH 後,必須要知道樹莓派在區域網路裡的位址,一般只要確認一次就好,只要區域網路的電腦變動不大,IP 通常都不會再變動 (即使是 DHCP)。

不過,還是會有例外的 !

因此在這邊介紹一個可以掃描區域網路中電腦 IP 位址的軟體 Advanced IP Scanner,它可以幫助你簡單得知樹莓派在區域網路中的 IP 位址,只要按下 Scan 按鈕就好 !

Advanced IP Scanner 軟體開啟時畫面,source:www.advanced-ip-scanner.com

下載 Advanced IP Scanner (版本 2.2.224)

Advanced IP Scanner 中文教學:網段內不知道那些IP有使用~Advanced IP Scanner快速掃描


點擊上方的 "下載 Advanced IP Scanner" 連結。進入官網頁面之後,點下 Download 圖示就可以下載。

Advanced IP Scanner 官網
下載之後就先安裝,然後打開它按下 Scan 按鈕進行掃描,看看你的樹莓派的 IP 位址是多少並把它寫下或是記下,下一個步驟中會需要它。


Step 2: 安裝與設定 PuTTY

若對 PuTTY 不熟,相關設定及教學可參考這篇網頁:PuTTY 入門教學

進入到 PuTTY 下載網頁,下載網頁中分類在 For Windows for Inter x86 的 PuTTY (下載,beta 0.62)。

黃色底色為要下載的檔案

下載後的檔案本身就是一個執行檔了,不需要做安裝!但是請在 Windows 作業系統下建立或找一個目錄將它存放起來,並先記住這個位置,因為下一個步驟在設定 Sublime Text 2 時會用到。

開啟下載的 PuTTY 程式。程式開啟後會出現下面的設定視窗,在 "Host Name (or IP address)" 輸入你在上一步驟得知的樹莓派 IP 位址,並設定此 Session 的名稱 (隨便怎麼命名都好,我設為  "Raspberry Pi + Gertbpard",記住它!下一步驟會用的到),先按下 Save 按鈕儲存 (不管哪個頁面參數有變更,都要到這頁面再儲存一次)。

黃色底色的部分為要輸入的欄位


在左方樹狀目錄中選擇 "Window \ Appearance",設定下面黃色的部分;如果樹莓派有設定中文環境的話,在 "Font settings" 按下 "Change..." 按鈕進去裡面設定字型,字型只要能顯示中文字就好,"Script" 要選擇能顯示中文的字集 (這在上面提供的教學網頁裡面也有說到)。

PuTTY 字型設定


如果要在一開始登入 SSH server 先輸入使用者名稱,可以在樹狀目錄選擇 "Connection \ Data" 並設定 Auto-login username pi  (預設的樹莓派帳號),密碼要在登入 SSH server 輸入 (可使用 SSH Key,不過不會常常開啟,手動輸入就可以),如果不是這個帳號的話要記得改一下!

自動登入帳號名稱設定


PuTTY 還有其他參數可以設定,有需要的話再自己找找!


Step 3:安裝與設定 Sublime Text 2

若對 Sublime Text 2 不熟的話,可以先到官網首頁看它的動態展示。若是需要教學的話,可以到 "mrkt 的程式學習筆記:Sublime Text 2",裡面有非常多的教學。


最後一個步驟就是安裝與設定 Sublime Text 2。進入到 Sublime Text 2 的下載頁面,選擇作業系統後就可下載 (如下面黃色底色的部分,portable version 也可以),下載完成之後,就進行安裝。

Sublime Text 2 下載網頁


Sublime Text 2 最讓我喜歡的就是它豐富的套件,可以支援很多的外掛功能,而且安裝時非常方便,只要從列表中選擇你要的套件就可以自動安裝,而這個功能就是來自於 Package Control 這個套件,有了它就能隨時隨地的安裝、移除、關閉、打開套件。

因此我們會安裝的套件有下面幾個:
  • Package Control:Sublime Text 2 套件的尋找、安裝、更新和移除管理員
  • A full-featured package manager that helps discovering, installing, updating and removing packages for Sublime Text 2. It features an automatic upgrader and supports GitHub, BitBucket and a full channel/repository system.

  • EncodingHelper:檔案文字的編碼,不會再產生亂碼文字
  • Encoding Helper is a Sublime Text plug-in which provides the following features:
    • attempts to guess encoding of files
    • show encoding on status bar
    • show when the current document is maybe broken because was opened with an incorrect encoding
    • convert to UTF-8 from a variete of encodings organized in a menu.
    • convert to UTF-8 quickly from guessed encoding via menuitem
    • convert to UTF-8 automatically when opening a file via some defined encodings found on User preferences

  • SFTP:遠端資料夾連線,讓你可以對遠端文件修改、儲存和更新
  • Spend less time managing file transfers and more time coding. FTP, FTPS and SFTP support for Sublime Text 2 that is blazing fast, with smart features, flexible workflow options and top-notch support.
    • Work off of a server – edit and manipulate files and folders
    • Map a local folder to a remote folder
      • Publish files, folders, or just the changes since your last commit
      • Sync folders – up, down or both directions
      • Diff local vs. remote versions of a file
      • Other operations and options to help you get stuff done
    • Password and SSH key auth with SSH agent support
    • Persistent connections for performance

  • Terminal:根據檔案所在位置或是專案目錄開啟終端機
  • Shortcuts and menu entries for opening a terminal at the current file, or the current root project folder in Sublime Text 2.

  • Web Encoders
  • A simple ST2 plugin to help you encode/decode data. Currently supports base64, urlencoding and HTML encoding

看起來要安裝的套件真不少,但別被嚇到了!這只要彈指之間就可以完成的,要花功夫的是 SFTP 與 Terminal 這兩個套件的設定檔案,弄好了就上天堂了!


Step 3.1 安裝 Package Control

下圖示未安裝 Package Control 套件的 "Preferences" 下拉選單,最下面是看不到 "Package Control" 的文字的

未安裝任何套件的 Sublime Text 2

Package Control Install 頁面,下載 Package Control.sublime-package,並且儲存到 <<Sublime Text 2>> \ Data \ Installed Pakages 目錄下

Sublime Text 2 Package Control 安裝說明頁面

儲存 Package Control 在 Sublime Text 2 "Data \ Installed Packages" 目錄下

重新開啟 Sublime Text 2,再次檢查一下 "Preference"!看到了嗎 ? "Package Control" 文字已經出現了 ^_^ ,接下來就點一點滑鼠就可完成安裝其他四個套件的安裝了!

Package Control 安裝完成

點擊 "Preferences \ Package Control",等一會兒!中間的地方會出現一個下拉式列表,用滑鼠點選 "Package Control: Install Package"

Package Control 選單


接著會出現套件列表,在上方文字欄中輸入 "EncodingHelper",不用輸入全部文字就會出現與輸入文字接近的套件,點擊最上方的 "EncodingHelper" 進行安裝

Sublime Text 2 套件 EncodingHelper 安裝


重覆剛剛上面的動作,繼續安裝 "SFTP"、"Terminal" 和 "Web Encoder",步驟就不再贅述了!

Sublime Text 2 套件 SFTP 安裝


完成套件安裝之後,就會有下面幾個東西出現在 "Package Settings" 裡

完成 Sublime Text 2 套件安裝


Step 3.2 Terminal 設定檔參數設定

Terminal 在 Sublime Text 2 的操作非常簡單,使用快速鍵就可以開啟
  • 終端機開啟時目錄設定在檔案所在處 ( Open Terminal at File )
  • Ctrl + Shift + t,Windows 作業系統下

  • 終端機開啟時目錄設定在專案目錄所在處 ( Open Terminal at Project Folder )
  • Ctrl + Shift + Alt + t,Windows 作業系統下
不過,開啟的終端機是本地的,並不是我們要的遠端樹莓派終端機!所以我們要修改終端機的設定文件,讓它可以自動連線到樹莓派的 SSH Server。

在 Sublime Text 2 的選單 "Preferences \ Package Settings \ Terminal \ Settings - Default",打開 Terminal 設定檔

Terminal 未修改的設定檔

還記得 Step 2 設定的 Session 名稱嗎 ? 若設定跟我一樣,那就是 "Raspberry Pi + Gertboard",不然就輸入剛剛自己所設定的耐個 Session 名稱,將它輸入到下面的 "parameters" 最後面那個地方,前方的參數 "-load" 不要改 (-load 是載入 PuTTY 以儲存的 Session 名稱)。

上方 "terminal" 後面的參數是 PuTTY 的完成檔案目錄與檔案名稱,若與我不一樣就要做修改;兩個斜線 \\ 就是代表輸出一個斜線 \

Terminal 修改好的設定檔

設定好之後"存檔",並將設定檔裡面的內容全部選啟後複製。於選單  "Preferences \ Package Settings \ Terminal \ Settings - User" 打開另一個設定檔,將剛剛複製的資料貼上再存檔。

上面做兩次的用意是,Sublime Text 2 在套件做更新時會將設定重新設定回原始狀態,如果不想在更新套件後遺失所有設定,就是確認在做完全部設定之後,再次將其存到 Setting - User 去。對於其它套件而言,這動作也是成立的!


Step 3.3 SFTP  - 設定樹莓派 SSH Server 資料

在 Sublime Text 2 的選單點擊 "File \ SFTP/FTP \ Setup Server...",會出現 Server 設定的文件設定檔

SFTP 設定 SSH Server 資料


伺服器設定檔,裡面可以選擇所需要的連線類型:SFTP、FTP 和 FTPS,還有遠端伺服器的登入資料可以填寫 (這次不用再輸入密碼了)

未修改前的 SSH Server 連線資料


需要設定或是修改的欄位說明如下,請依實際的情形做變更:

host:是樹莓派主機的 IP 位址
user:登入到樹莓派主機的使用者名稱
password:登入到樹莓派主機的密碼
port:連線所使用 port 號碼;這維持預設值 22 就好,除非有特殊需求

修改之後的 SSH Server 連線資料


Step 3.4 SFTP  - 設定遠端資料夾到本地 ( Map to Remote)

這一步驟主要是設定遠端文件與本地文件的相互對照,就像檔案同步一樣,本地與遠端都存在相同的文件資料,只要任一方有變更都可使用選單對單一文件與資料夾做上傳、下載或是雙方同步的更新。

每一個本地資料夾,當執行 "SFTP/FTP \ Map to Remote..." 選單指令後,就會開啟一份全新的 sftp-config.json 設定文件,讓你設定本地與遠端的連結,因此可以同時在 sublime Text 2 開啟和管理不同的遠端資料夾。

接下來,我們將舉一個例子作說明:

請先在 Windows 作業系統新增一個資料夾 ( 命名為 sftp-remote ),然後在 Sublime Text 2 的選單點選 "File \ Open Folder..." 選擇剛剛新建的資料夾。

完成之後,就會在 Sublime Text 2 的邊欄出現 sftp-remote 資料夾

新增本地資料夾於邊欄


移動滑鼠邊欄 stp-remote 上方,點擊右鍵選擇 "SFTP/FTP \ Map to Remote...",Sublime Text 2 就會新增一個設定檔 sftp-config.json 在 sftp-remote 目錄下

開啟遠端設定檔 sftp-config.json

未做修改的 sftp-config.json



需要設定或是修改的欄位說明如下,請依實際的情形做變更:

host:是樹莓派主機的 IP 位址
user:登入到樹莓派主機的使用者名稱
password:登入到樹莓派主機的密碼
port:連線所使用 port 號碼;這維持預設值 22 就好,除非有特殊需求
remote_path:欲連接的 ( 遠端 ) 樹莓派資料夾絕對路徑


修改之後請記得存檔!

修改完成的 sftp-config.json


完成設定檔設定之後,就可以將遠端 (樹莓派) 資料夾 (/home/pi/GertBoard) 下載到本地 ( sftp-remote ) 資料夾

下載遠端資料夾到本地端


完成上面所有步驟之後,只要檔案在本地端有做變更,就可以直接傳到遠端資料夾裡。SFTP 使用的方法可參考 SFTP Usage

程式編輯好之後,要做編譯就按下 Ctrl+Shift+t 連線到樹莓派,在終端機下進行。這在之後介紹 Gertboard 與 PiFace 會常常用到的,請先自己試試吧!

Sublime Text 2 with PuTTY


設定好編輯環境之後,如果覺得好用,就去發掘它的優點與更好用的方法,讓你的樹莓派學習之路更加的順遂!

當然,方法有很多,只不過每個人使用的習慣不同,這是我推薦給大家用的方法,希望大家會喜歡!

3 則留言:

  1. 目前下載回來的是evaluation版,會有期限的問題嗎!

    回覆刪除
  2. 引用至官網下載頁面上的說明,Sublime Text 2 雖然不是免費軟體,但是現在使用還沒有時間限制,可以放心使用

    "Sublime Text 2 may be downloaded and evaluated for free, however a license must be purchased for continued use. There is currently no enforced time limit for the evaluation."

    回覆刪除
  3. 寫得很棒的文章,謝謝你的分享。

    回覆刪除