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 官網 |
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 作業系統下
在 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 |
設定好編輯環境之後,如果覺得好用,就去發掘它的優點與更好用的方法,讓你的樹莓派學習之路更加的順遂!
當然,方法有很多,只不過每個人使用的習慣不同,這是我推薦給大家用的方法,希望大家會喜歡!
目前下載回來的是evaluation版,會有期限的問題嗎!
回覆刪除引用至官網下載頁面上的說明,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."
作者已經移除這則留言。
回覆刪除