我整理了一份介紹 Arduino 的簡報,這份簡報說明什麼是 Arduino、各種 Arduino 板子與相容板、各式各樣的擴充模組與感測器,最後簡介 Arduino 的各式應用,希望可以讓更多朋友知道 Arduino 能做什麼應用。
- Arduino 教學系列
- Arduino 入門教學
- TOC
- Arduino Video Workshop
- 認識 Arduino
- 準備開發環境
- Lab1 Blink
- Lab2 Button
- Lab3 Fade
- Lab4 potentiometer
- Lab5 LED Bar Graph
- Lab6 Buzzer
- Lab7 Seven Segments
- Lab8 Photocell
- Lab9 2x16 LCD
- Lab10 SHT15 Humidity and Temperature Sensor
- 製作一個溫溼度記錄器(三部曲)
- Lab11 74hc595
- Lab12 Cascading 74hc595
- Lab13 74hc595 and 7 Segs
- Lab14 74hc595 and HD44780
- Lab15 4-digit Seven Segments
- Lab16 Servo
- Lab17 Photocell and Servo
- Lab18 3x4 Keypad
- Lab19 5x7 LED Matrix
- Lab20 PIR
- Lab21 Relay
- IRRemote 紅外線遙控教學
- Amarino: Android meets Arduino
- Bluetooth
- Arduino Keyboard
- V-USB
- ISP
- Arduino 入門教學
2012年4月29日 星期日
2012年4月15日 星期日
如何讓 IRRemote 支援 ATmega2560?
要怎麼讓 IRRemote Library 可以支援 ATmega2560 呢?方法是編輯 IRRemoteInt.h,搜尋底下字串:
defined(__AVR_ATmega1280__)
把所有出現的地方改成這樣:
defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
或是直接用我已經改好的版本:
除了更新 Library 外,還有一件事要特別注意,當你在使用紅外線發射功能的時候,紅外線發射器必須接到 ATmega2560 的 pin 9 才行。
▲ Arduino Uno 或 Duemilanove 的板子: 紅外線發射器要接到 pin 3
▲ Arduino Mega 1280 或 Mega 2560 的板子: 紅外線發射器要接到 pin 9
參考資料
Arduino 1.0 的 ArduinoISP 無法運作的解法
Arduino-0022 的 ArduinoISP 我已經用了很久都沒碰到問題,在升級到 Arduino 1.0 後,我發現當我用 Arduino 1.0 上傳 ArduinoISP 後,居然沒辦法燒錄 target board,每次都會出現這個錯誤訊息:
avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x64
avrdude: stk500_cmd(): programmer is out of sync
如果切回 Arduino-0022 然後重新上傳 ArduinoISP,就又可以燒錄 target board。
比較 Arduino-1.0 和 Arduino-0022 兩個版本的 ArduinoISP,程式碼是一樣的,所以很可能是 Arduino-1.0 的 library 做了什麼改變導致 ArduinoISP 無法正常運作。果然,Issue 661 提到了這個問題,正是因為 Arduino-1.0 HardwareSerial.cpp 把 SERIAL_BUFFER_SIZE 從原來的 128 改成 64,導致 ArduinoISP 發生 buffer overflow。
2012年4月12日 星期四
麵包板 USB 名片卡 (ATtiny45/85)
Frank Zhao 用 ATtiny85 做了一個 USB 名片卡(USB Business Card)。當卡片插到 USB 埠的時侯,它會偵測 Caps lock 有沒有被連續按下三次,一旦偵側到,就會自動把聯絡資訊印到 text editor 的視窗上。底下有示範影片:
現在我們就用 ATtiny45/85 做個麵包板的 USB 名片卡。
所需材料
- ATtiny85 或 ATTiny45 (ATtiny45/85-20xx 版本,非 ATtiny45/85-10xx 低壓版本)
- 68 歐姆電阻 2 顆
- 1k5 或 2k2 歐姆電阻 1 顆
- 3.6V 穩壓二極體 (Zener diodes)
- 麵包板和跳線些許
- USB 連線接
- USB 名片卡韌體:usbbusinesscard-20120429.zip
- avrdude-GUI
製作 USB 連接線
首先要做一條可以插到麵包板上的 USB cable,先做剝線,然後把四條線焊接到 pin header。USB Connector 有四條線,pinout 如下:
2012年4月11日 星期三
修改 ATtiny85 的時脈 (clock speed)
ATtiny85 的時脈預設是 1 MHz (也就是每秒震盪百萬次),要修改時脈必須調整 Fuse 位元的設定,底下說明怎麼把 ATtiny85 時脈改成 16 MHz。
軟體與材料
你需要準備下列這些材料:
- Arduino Uno 或 Duemilanove
- ATtiny85 晶片
- 麵包板
- LED 一顆
- 跳線些許
- avrdude-GUI
準備工作
請先參考「使用 Arduino 燒錄 ATtiny」這篇先把 Arduino 變成燒錄器,並且連接 Arduino 與 ATtiny。
2012年4月10日 星期二
使用 Arduino 燒錄 ATtiny
上禮拜六去寶藏巖參加 Openlab Taipei 舉辦的 Our do ino 聚會,跟大家一起學習如何使用 ATtiny85 晶片。本來計劃要用 ATtiny85 搭配 V-USB 製作 USB 名片卡,因為對 ATtiny85 不夠熟悉,中途卡了個關,沒有試成功(PS:可能是 ATtiny85 運作頻率沒設正確)。不過,至少我們學會了怎麼用 Arduino 燒錄 ATTiny。這篇是如何使用 Arduino 燒錄 ATtiny 的記錄。
我們用的是 ATtiny85 晶片,雖然如此,這篇所說的方法對 ATtiny84 (84/44/24), ATtiny85 (85/45/25) 和 ATtiny2313 這些系列的晶片來說應該都適用。
材料
你需要準備下列這些材料:
- Arduino Uno 或 Duemilanove
- ATtiny85 晶片
- 麵包板
- LED 一顆
- 跳線些許
安裝 arduino-tiny
- 下載 arduino-tiny
- 開啟檔案總管,切到 Arduino sketchbook 資料夾(通常是 "C:\Documents and Settings\username\My Documents\Arduino"
- 在 sketchbook 資料夾下建立 hardware 資料夾
- 解開 arduino-tiny 後,把裏面的 tiny 這個資料夾 copy 到 hardware 資料夾
- 重新啟動 Arduino IDE
- 在 Tools > Board 選單裏,你應該會看到像下圖一樣多出很多 ATtiny 的板子可供選擇