2012年5月23日 星期三

關掉自動產生 Thumbs.db 檔

Thumbs.db 是 Windows 自動產生的圖片快取檔,在我們瀏覽照片縮圖的同時,Windows 就會在同一個資料夾自動產生 Thumbs.db,讓下一次看照片縮圖時可以更快速。Windows 這樣做目的是要給使用者方便,不過也帶來了其它不便。

像我最近在學 Android 手機程式設計,本來程式都好好的,編譯都很順利的,可是如果我用檔案總管看 res 資料夾裏的縮圖,Windows 就會自動產生 Thumbs.db,結果下次回到 Eclipse 時就會發現,明明程式碼都沒動過,卻無緣無故編譯過不了關,再去找錯誤原因,才知道是因為  Eclipse 發現多了一個它不認得的檔案的關係,我還得手動把 Thumbs.db 刪掉才能讓程式通過編譯,真惱人!

image

要怎麼讓 Windows 不要自動產生 Thumbs.db 檔呢?很簡單,只要開啟檔案總管,到選單的「工具 > 資料夾選項 > 檢視」這個畫面,然後勾選「不要快取縮圖」這個選項就行了:

image

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

參考資料