隨著 Ubuntu 12.04 LTS 的正式發行,越來越多人開始認識 Ubuntu(烏班圖) 這個開源 Linux 系統。其實我從 10.10 版本(2010年10月發行)其就開始接觸。發現轉向 ubuntu 最大的障礙,還是在自己的工具鏈。你說玩C#的人,讓他到 linux 上折騰,這不是作么~
這些現在慢慢都開始改變,比方說 Ruby,ror要真正發揮其效率,飛奔起來,那確實是要擺脫 windows 平臺;比方說 Java,Java 就是典型的跨操作系統的語言,至少基于 Java 開放的軟件(如 eclipse、Arduino IDE),基本都有其在 linux 上的版本;比方說傳說中的vi,看 windows 里面那個 gVim,總是怪怪的,還是 vim 跟純正些,……
當想做的事情都有通過 Ubuntu 實現的途徑以后,哪怕操作系統不同,工作也能開展,這樣才會真正開始了解、熟悉這個新的系統。而 Arduino 的開發也能轉到 ubuntu 上的話,那就更好不過了,是個很不錯的突破口哦~
視頻里面還是會有不少口誤、表達混亂、詞不達意的地方,請以文字為準:
1. Ubuntu 系統的準備
視頻中的 ubuntu 是用從官網下載的64bit版本ISO,通過easyBCD編譯引導后硬盤安裝完成。可以參考奶牛的這篇文章。需要注意的就是,重新引導到 linux 分區(/boot或/)的時候,應該選擇 grub2 模式。
安裝完成以后,我就只作了幾件事:
- 設置軟件更新源,更新系統;
- 更新語言包,讓對中文的支持更好
- 激活了 nvidia 顯卡的專用驅動
- 將 Dash(左側的工具欄)設置為自動隱藏,解鎖了默認的 Office 系列圖標(看自己喜好)
這些都可以在圖形界面上完成,都搞定以后,樣子應該就和視頻中的差不多了。再沒有安裝額外的程序。最近連著在三臺機子上做這些事情,已經蠻熟練了~ (想當年,折騰wn98、xp不也是都是這么開始的么)。之前體驗 ubuntu 都還是基于wubi,從 12.04 開始正式轉為純硬盤,速度真的又更快哦~
2. 安裝 Arduino IDE (ADE)
很簡單,打開終端(Termial),一般按快捷鍵 “Ctrl+Alt+T”。命令就一行
$ sudo apt-get install arduino |
之前很多教程,會講需要前置安裝 gcc-avr、avr-libc 之類的軟件,其實并無必要。apt-get 已經把所有需要的東西都包含進來,并提示一并安裝。所以,一句命令,再輸入個”Y”就好。
這里從安裝方式上,大家就可以看到 linux 和 windows 極大的不同。就安裝包來說,windows版本的ADE,是一個大文件包,不管原來有沒有、裝沒裝,先塞進去再說。而在ubuntu上,只是按需安裝,只下載機子上缺少的組件,而這些組件將來也可能被別的程序所調用,安裝別的程序,其實只需要安裝缺少的部分就好了。而所有這些軟件,都通過 apt-get 統一管理,也就說下載安裝的,都是最新的穩定版本,相信會比 windows 安裝包里面的新很多。
在需要下載的程序包里面,可以看到 gcc-avr、avrdude 這些熟悉的影子,包括 java 運行環境 (jre),也都會自動安裝。而且今天(2012-05-19)安裝的 ADE 就已經是 1.0 的版本,一切都拿最新的來用吧,不用擔心版本會落后。
3. 找串口
windows下的驅動這一步,也難住過不少人吧。不過以我目前的經驗,在 ubuntu 12.04 上,對 arduino uno 是“免驅”的,不需要任何額外的安裝,自動識別。而且確實整個系統安裝過程中,除了顯卡驅動這邊,需要額外 take care 一下(主要是因為沒開源),主板、聲卡、無線網卡(TP-WN722N )這些,都不需要特別照顧。這也比較容易理解,因為 linux 大量用在嵌入式開發領域么,自然天天和這些底層硬件打交道,相互都很熟悉吧~
串口可以在 /dev 文件夾內找到。可以用
$ ls /dev |
來查看比較,根據芯片不同,可能叫“ttyACM0”,也可能叫“ttyUSB0”(因為USB轉串口所用的芯片不同),仔細比較一下,插入前后的不同,基本是這樣的名字。
能這樣出現提示,基本說明“驅動程序”也不用擔心了。
進入 ADE,看看能不能正確顯示串口設備,以我的經驗,第一次確實是不能。需要卸載掉 brltty 先。至于為什么,請參考 ladyada 的這篇文章
$ sudo apt-get remove brltty |
卸載完畢后,重啟。
$ sudo reboot |
然后,再打開 ADE,相信串口設備這一項就會亮起來了。
我用自己的本子實驗的時候,有出現 USB3.0 不識別,但是2.0接口識別的情況。而錄制視頻的時候,又出現重啟后識別,但重新安裝 brltty 后依然識別的的情況,確實詭異,以目前的功力,還不敢去深究…… remove brltty 之后,USB3.0接口接的arduino,雖然可以識別出來,但是下載也不成功。所以,搞不清楚狀況的話,還是建議避開 USB3.0。
2012年5月23日更新:雖然之前一直有卸載掉 brltty,但是現在我又陸續把它裝回去了,發現沒有什么特別的影響,都還好識別。
4. 燒程序
一樣,燒寫經典的 “hello, world” ,也就是 File\Examples\Basics\Blink 例程。在板型、串口號選擇正確的情況下,應該是沒什么問題。
在視頻中出現,燒寫程序完畢后,arduino不復位,程序不運行的情況,相信是因為使用了“公版” avrdude。因為 arduino 的 windows 程序包中的 avrdude 是有被 hacked 過,讓程序下載完成后自動復位。沒這個功能也不要緊,手動 reset 一下,程序就開始運行了。
2012年5月23日更新:可能我視頻中的電腦比較特別一點,我后來在本子以及另外一臺臺式機,進行同樣的下載測試,發現板子都會自動復位。所以各位朋友如果嘗試的話,還是注意觀察,靈活掌握為宜。
這樣應該就差不多了,視頻會比較長,因為上面提到的一些注意點,也是在錄制過程中我才發現,中斷了幾次。感謝耐心看完視頻的朋友,陪伴我一起找問題,想原因,并解決它。
至于在 ubuntu 進行 arduino 開發的好處,首先第一個就是快,比較編譯下載的速度,快 windows 不是一點半點。而且,至少從表面來看,也有不少高手范兒吧~ 看過在 Mac Air 上運行的ADE,編譯運行的速度也是很快的,一開始還想著是不是蘋果硬件配置多高端,現在證明,是 windows 太渣,搞開發是比較弱,如果從血緣關系來說,ubuntu 和 max os 之間肯定也更親一些。
希望本文以及視頻,能給不了解 ubuntu 的朋友帶來一點感性認識。Enjoy Ubuntu & Arduino.
視頻記錄(可以點擊右下角 youku 圖標,進入優酷頁面,全屏觀看,720p的哦~ 選擇超清畫質下可以清楚看到輸入的命令內容)