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 提升電阻」這篇。

參考資料

15 意見:

city 提到...

nice opinion.. thanks for posting.

coopermaa 提到...

Thanks for your response.

Jay Cheng 提到...

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

coopermaa 提到...

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

Jay Cheng 提到...

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

coopermaa 提到...

在 LCD 上顯示會亂碼?

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

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

coopermaa77 AT gmail.com

Jay Cheng 提到...

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

coopermaa 提到...

OK, I'll check it.

Jay Cheng 提到...

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

coopermaa 提到...

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

Jay Cheng 提到...

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

yehnan 提到...

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

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

coopermaa 提到...

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

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

yehnan 提到...

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

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

coopermaa 提到...

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