2012年5月23日 星期三

Arduino 1.0.1(支援 Arduino Leonaro 與多國語言)

Arduino 官網在今天推出了新版 Arduino Software 1.0.1 版,現在已經可以在下載網頁取得:

http://arduino.cc/en/Main/Software

這個版本修正了很多臭蟲而且增加了一些新的功能(細節請看 release notes)。新增的功能中,比較大的是支援 Arduino Leonardo 與多國語言。讓我們來看看 Arduino 1.0.1 有什麼不同:

支援 Arduino Leonardo

首先是增加 Arduino Leonardo 板子的支援,可以在 Tools > Board 底下找到:

image

Arduino Leonardo 板子硬體外觀如下:

image

Arduino Leonardo 是基於 ATmega32u4 的低成本 Arduino 板子,shape 與 connectors 跟 UNO 一樣,不過電路比較簡單。ATmega32u4 內建 USB,可以讓 Leonardo 模擬 mouse, keyboard 以及 serial port 等 USB 裝置。

其實 Uno 也可以拿來做 USB 裝置,我曾寫過幾篇文章介紹。只不過 Uno 板子上用了兩顆 MCU,一顆是 ATmega328P,另一顆是有 USB 介面的 ATmega8/16U2,在寫 USB 的應用程式時,你得更新兩顆 MCU 的韌體,步驟有點麻煩,若不是我手指還算靈活的話,我都覺得有點折騰人了。現在用 Leonardo 簡單多了,一次就搞定。所以,如果你想用 Arduino 開發 USB 的應用,Leonardo 會是個好選擇。

另外,Leonardo 在輸入輸出腳位這部份也比較突出,PWM 腳位有 7 支,而 Analog Input Pins 則有 12 個之多,除了標準的 A0 到 A5 這 6 支外,Digital Pin 的 4, 6, 8, 9, 10, and 12 也可以當成 Analog Input Pins 使用。詳細規格可以參考藝科這個頁面的介紹:

http://www.aroboto.com/shop/goods.php?id=502

那麼 Leonardo 的 USB 功能怎麼用呢?這個問題問的好!答案當然是看範例了,Arduino 1.0.1 在選擇 File > Examples > 09. USB(Leonardo) 裏已經提供了幾個範例供你參考:

2012-05-22 23h11_44

支援多國語言

另一個比較大的新特色是增加多國語言的支援,可以在 File > Preferences 的 "Editor language" 選擇你喜歡的語言,比如繁體中文:

image

重新啟動 Arduino Software 後,軟體介面整個會變成繁體中文的:

2012-05-22 23h02_04
▲ 這真是酷!飲水思源,感謝葉難兄幫忙翻譯!

除了支援 Arduino Leonardo 與多國語言外,Arduino 1.0.1 還有一些小幅的調整,如下:

可變更 Serial Monitor 的字型大小

可以在「編輯器字型大小」這個選項裏改變 Serial Monitor 的字型大小:

image

這個選項不只會改變編輯器的字型大小,同時也會改變 Serial Monitor 的字型大小:

image

以前 Serial Monitor 字體不夠大,看得眼睛容易累,這下像是帶了老花眼鏡,真是輕鬆多了!不過,個人覺得,如果可加個讓 Serial Monitor 自動 Log 到檔案的功能會更方便。

加快了編譯速度

Arduino 1.0.1 加快了編譯速度。以往每次編譯程式,Arduino Software 它還會去編譯 "hardware\arduino\cores\arduino" 底下的 Arduino 核心程式,這其實不是必要的,因為沒有換板子,核心程式應該是用同一份,幹嘛每次都要大費周章重新編譯?感謝 Paul Stoffregen 把這個問題給處理掉了。

修正 ArduinoISP
如果你的 Arduino Software 是 1.0 版,不知道你有沒有玩過 Arduino 1.0 的 ArduinoISP?如果有的話,可能會發現 Arduino 1.0 的 ArduinoISP 竟然不能拿來燒錄 target board(可參考我這篇的說明與權宜之計)。在 Arduino 1.0.1 中,ArduinoISP 版本更新了,這次修掉了不能燒錄這個問題。
pinMode() 增加 INPUT_PULLUP 選項

這個功能可以讓你打開 I/O 腳位內部的提升電阻,方法為:

pinMode(buttonPin, INPUT_PULLUP)

提升電阻?這啥?簡單的說,以按鈕的電路接法為例,以往我們得這樣在按鈕到 GND 線路接一顆 10K 電阻:

image

當你改用 pinMode(buttonPin, INPUT_PULLUP) 去設置按鈕接腳後,便不需要接那顆 10k 電阻,就可以把它收到盒子裏去了:

image

關於提升電阻的觀念,請參考「Arduino 提升電阻」這篇。

參考資料

13 意見:

Unknown 提到...

您好,我剛初學Arduino這塊,所以有些程式上的問題想請教一下,請問方便指點一下嗎?

Cooper Maa 提到...

歡迎啊
你可以在這邊留言,也可以到 Openlab Taipei FB 一起交流:
http://www.facebook.com/groups/openlab.taipei/

Unknown 提到...

謝謝你,我使用Arduino Duemilanove MEGA328這塊板子,想利用AD590測溫IC 傳送到Arduino裡面然後再接LCD出來,而我使用AD590經Arduino AD轉換後是可以直接在編輯程式裡的monitor上顯示出來,不過想要透過LCD這邊顯示,好像就有問題了(LCD會亂碼),請問我可以把程式碼給你,幫我指點一下好嗎?謝謝

Cooper Maa 提到...

在 LCD 上顯示會亂碼?

AD590 量測到的溫度已經可以在 Serial Monitor 上顯示出來了嗎?

如果是這樣的話,可能是 LCD 這段(Maybe HW or SW)有問題。OK, 可以寄給我看,我的 email:

coopermaa77 AT gmail.com

Unknown 提到...

不好意思,我已寄信給你了,再麻煩你了,謝謝

Cooper Maa 提到...

OK, I'll check it.

Unknown 提到...

你好,我又有問題想向您請教,我有將我的問題寄信給您了,可以幫我檢查嗎?真的很不好意思,謝謝您

Cooper Maa 提到...

sorry 信太多了,一下就被淹沒了
I'll check it.

Unknown 提到...

不會不會,在你百忙之中還願意幫我檢查,非常謝謝

yehnan 提到...

你居然知道是我(葉難)翻譯的,眼睛還真是銳利啊:)。

我翻譯時有點倉促,應該有不少地方會怪怪的orz。

Cooper Maa 提到...

我是在這頁看到的 http://arduino.cc/playground/Main/LanguagesIDE

不會,你翻譯得很棒啊!
倒是有個建議,Sketch 你翻成「草稿碼」,OT 上有很多的朋友覺得直接用「草稿」比較好

yehnan 提到...

Arduino的sketch可以是指程式碼,也可以指一個專案。就我來說,我覺得草稿碼或草稿都很好。

現在的Arduino IDE好像沒辦法讓使用者自己修改翻譯字串?

Cooper Maa 提到...

翻譯好的字串包在 lib/pde.jar 裏
好像沒辦法修改