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 底下找到:
Arduino Leonardo 板子硬體外觀如下:
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) 裏已經提供了幾個範例供你參考:
支援多國語言
另一個比較大的新特色是增加多國語言的支援,可以在 File > Preferences 的 "Editor language" 選擇你喜歡的語言,比如繁體中文:
重新啟動 Arduino Software 後,軟體介面整個會變成繁體中文的:
▲ 這真是酷!飲水思源,感謝葉難兄幫忙翻譯!
除了支援 Arduino Leonardo 與多國語言外,Arduino 1.0.1 還有一些小幅的調整,如下:
可變更 Serial Monitor 的字型大小
可以在「編輯器字型大小」這個選項裏改變 Serial Monitor 的字型大小:
這個選項不只會改變編輯器的字型大小,同時也會改變 Serial Monitor 的字型大小:
以前 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 電阻:
當你改用 pinMode(buttonPin, INPUT_PULLUP) 去設置按鈕接腳後,便不需要接那顆 10k 電阻,就可以把它收到盒子裏去了:
關於提升電阻的觀念,請參考「Arduino 提升電阻」這篇。
參考資料