Atmel 最近推出新版開發工具 AVR Studio 5,號稱支援 8 位元和 32 位元的 AVR 微控制器。AVR Studio 5 的韌體燒錄功能座落在選單的『Tools > AVR Programming』這個位置:
- 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 入門教學
2011年5月30日 星期一
把 Arduino 當成一個 AVR ISP(In-System Programmer) 使用(3)
在 (1) (2) 前面兩篇中,我們介紹了 ArduinoISP 而且使用 ArduinoISP 燒錄 bootloader。這次要介紹的是用 ArduinoISP 來燒錄 Arduino 程式(Arduino Sketch)。這種做法是直接把 Arduino Sketch 燒錄到板子上,沒有用到 bootloader,這讓你得以使用 ATmega 晶片全部的程式空間(program space)。所以,原本 ATmega328 的 32 KB 之中有 2 KB 被 bootloader 拿去使用,現在你將可以完整使用這 32 KB 的空間而不再是 30 KB,ATmega168 將是 16 KB 而不再是 14 KB,而 ATmega8 則是 8 KB 而不再是 7 KB。另外,當板子重啟電源時,原本會有 bootloader 的開機延遲 (約 6 至 8 秒),這問題現在也一併避掉了。
使用 ArduinoISP 燒錄 Arduino Sketch
1) 首先,先關掉 Arduino IDE
2) 編輯 Arduino 的 preferences.txt
preferences.txt 可以在這個資料夾中找到:
- Mac: /Users/<USERNAME>/Library/Arduino/preferences.txt
- Windows: C:\Documents and Settings\<USERNAME>\Application Data\Arduino\preferences.txt
- Linux: ~/.arduino/preferences.txt
把 upload.using=bootloader 這行改成 upload.using=arduinoisp。
你也可以用其它 ISP,例如 AVR ISP, AVRISP mkII, USBtinyISP 或 Parallel Programmer,這些 ISP 的識別名稱可以在 hardware/programmer.txt 中找到,例如 avrispmkii。
如果只是某張特定的板子需要用 ISP,那麼你可以編輯 hardware\boards.txt,把 <BOARDNAME>.upload.using=<ISPNAME> 這行加到 boards.txt 中。
3) 照底下的接線圖把 ArduinoISP 跟 Target Board 連接起來。記得要供電給 Target Board。
2011年5月27日 星期五
低態動作 LED (Active Low LED)
Active High LED
大部份人通常會直覺地認為 HIGH 的訊號代表 ON,而 LOW 的訊號代表 OFF,這種方案稱為 Active High。底下這張圖就是一個標準 Active High 的 LED 線路接法。
DigitalAdvanced Library V0.2
說明
DigtialAdvacned Library V0.2 新增一個 resistorMode() function,可以用來把 Arduino 內建的提升電阻打開。關於提升電阻的概念,請見「Arduino 的提升電阻」一文。
安裝
DigitalAdvanced Library V0.2 可以在底下的連結中取得:
把檔案解壓縮放到 Arduino Sketchbook Folder 的 Libraries 資料夾底下,或是放到 Arduino IDE 的 \libraries 資料夾底下即可。
Arduino 的提升電阻
我們在「Arduino 筆記 - Lab2 使用按鍵控制 LED 燈號」一文中學過如何用按鍵 (PushButton) 控制 LED 的開關,線路接法為:
其中,按鍵的一支腳接到 +5V,而另一支腳接 pin2 並且接一個 10K 電阻連到 GND。
2011年5月20日 星期五
Arduino Simulator for iPhone
Schogini Systems 做了一個 IPhone 的 Arduino Simulator app,可以讓你模擬 Arduino 的電路並且跑 Arduino 的程式。這個 Simulator 有個類似 Fritzing 的麵包板介面,可以讓你拉線(Wire)把 LED 連接到 Arduino。app 預計在下周就可以取得。如果你有 iPhone 或 iPod,到時不妨下載回來玩玩看。
延伸閱讀
2011年5月18日 星期三
DigitalAdvanced Library
說明
DigitalAdvanced 是 Arduino 的一個 library。
目前提供一個可以切換指定 digital pin 的狀態的 digitalToggle() function。
安裝
DigitalAdvanced Library 可以在底下的連結中取得:
把檔案解壓縮放到 Arduino Sketchbook Folder 的 Libraries 資料夾底下,或是放到 Arduino IDE 的 \libraries 資料夾底下即可。
2011年5月14日 星期六
Source Navigator NG 介紹
Source Navigator NG
source navigator NG 是一個程式碼分析工具。
有了它,你可以編輯 source code,用它顯示 classes 跟 functions 以及 members (instance variables 與 instance methods 等) 之間的關係,而且還可以顯示 call trees。
就像地圖導航工具帶給人們的方便一樣,你可以用 source navigator NG 導覽 source code,很輕鬆就能找到 functions, variables 和 macros 等 symbols 的宣告(declarations)與實作(implementations)的位置。
這種商品市面上也有,比較知名的應屬 source insight。source navigator NG 則是 GPL 自由軟體,固然如此,相較於 source insight,source nagivator NG 其實毫不遜色。
source nagivator NG 是 Source Navigator 的下一代,它改善了效能,也比較好用。
Android Open Accessory Development Kit(ADK) (基於 Arduino)
▲ Android ADK 開發套件(基於 Arduino)
之前在「Android-Firmata 與 Amario 簡介」一文中提到:
想像一下,把 Android 手機跟 Arduino 板子結合起來可以做什麼呢?用 Android 手機遙控機器人、自走車、飛行器? 或者是控制家電,例如電燈、電風扇、電視、冷氣機、窗簾、音響? 只要你有決心,這些都是可能的。
沒想到真的讓我說中了,Google 看中了 Arduino 而且還付諸實際行動。Google 在這次 Google I/0 2011 大會中發表了 Android Open Accessory Development Kit (簡稱 ADK)。
簡單的說,ADK 其實就 Android 周邊商品的開發標準,ADK 可以讓 Android USB 周邊跟 Android 手機/平板電腦互動。所以,不只行動市場和 Google TV,Google 的下一步很可能是想跨足手持設備的周邊、體感遊戲裝置以及家庭裏的所有電子裝置,進一步深入人們的日常生活。
2011年5月9日 星期一
用 Proteus 的虛擬示波器觀察 PWM 波形
Proteus 的虛擬示波器是一個觀察訊號的方便的工具,底下將做一個簡單的示範,用 Proteus 的虛擬示波器來觀察 Arduino 產生的 PWM 訊號。如果你對 PWM 不熟,請先看這篇教學。
範例程式
底下是一支產生 PWM 訊號的程式(pwm.pde)。程式邏輯很單純,只是在 Arduino pin 5 上產生 PWM 訊號,而且每隔 5 秒改變一次 PWM 的 duty cycle,從 0%, 25%, 50%, 75% 一直到 100%,然後再變回 0%。
2011年5月6日 星期五
Barebone Arduino in Proteus
我用 Proteus 設計了一個 Barebone Arduino:
Barebone Arduino 的腳位完全仿照 Arduino UNO 和 Duemilanove 而設計:
2011年5月5日 星期四
Arduino 的簡易模擬,使用 Proteus
Arduino 簡易模擬
Proteus 也可以模擬 Arduino。底下是一個很簡單的示範,用 Proteus 來模擬 Arduino UNO 或 Duemilanove。你可以點這裏(Blink.DSN)下載設計檔。
Arduino 入門教學
簡介
Arduino 是一張微控制器板子 (microcontroller board),約莫一個手掌大:
使用者可以在 Arduino 板子上接上各種電子裝置,例如 LED 燈、喇叭、馬達、開關、溫濕度感測器、紅外線發射與接收器、LCD 顯示裝置,以及 Ethernet, WiFi, XBee, Bluetooth, RFID, GPS 等各種通訊模組。若再配合撰寫一些自動控制的程式,就能利用 Arduino 做出各式各樣的自動控制應用,例如利用溫度感測器控制風扇的運轉、使用可變電阻控制燈光的明暗、控制馬達的轉速、利用紅外線遙控家電/ 利用伺服機 (Servo) 控制機械手臂或機器人,以及製作自走車、飛行器等等。
這系列教學將讓你認識 Arduino,並且向你介紹各種基本電子裝置的使用方法。
2011年5月4日 星期三
Arduino IDE 產生的 HEX 檔
Arduino IDE 能不能產生 HEX 檔?它輸出的 HEX 檔放在哪裏呢?
可以的。
參考下圖,在編譯程式的時候,只要按著 SHIFT 鍵不放再點 Verify 編譯程式:
畫面下方的狀態視窗就會顯示 HEX 檔所在的位置:
延伸閱讀
Soundcard Scope
Soundcard Scope 是 Christian Zeitnitz 用 LabView 開發而成的一套 PC-Based 音效卡示波器,可以在底下的網址取得:
特色:
- Trigger modes: off, automatic, normal and single shot
- Triggerlevel can be set with the mouse
- The signals of the two channels can be added, subtracted and multiplied
- x-y mode
- Frequency analysis (Fourier spectrum)
- Waterfall diagram (frequency spectrum as function of time)
- Frequency filter: low-, high- and band-pass
- Cursors to measure amplitude, time and frequency in the main window
- Audio Recorder to save data to a wave file
- For multi soundcard system, the used card can be selected in the settings tab
底下這張圖是利用 Soundcard 量測紅外線訊號得到的波形,真酷!