2011年5月30日 星期一

讓 AVR Studio 5 支援 ATmega8 的燒錄

image

Atmel 最近推出新版開發工具 AVR Studio 5,號稱支援 8 位元和 32 位元的 AVR 微控制器。AVR Studio 5 的韌體燒錄功能座落在選單的『Tools > AVR Programming』這個位置:

image

把 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 線路接法。

image

DigitalAdvanced Library V0.2

說明

DigtialAdvacned Library V0.2 新增一個 resistorMode() function,可以用來把 Arduino 內建的提升電阻打開。關於提升電阻的概念,請見「Arduino 的提升電阻」一文。

安裝

DigitalAdvanced Library V0.2 可以在底下的連結中取得:

DigitalAdvancedV0.2.zip

把檔案解壓縮放到 Arduino Sketchbook Folder 的 Libraries 資料夾底下,或是放到 Arduino IDE 的 \libraries 資料夾底下即可。

Arduino 的提升電阻

我們在「Arduino 筆記 - Lab2 使用按鍵控制 LED 燈號」一文中學過如何用按鍵 (PushButton) 控制 LED 的開關,線路接法為:

image 

其中,按鍵的一支腳接到 +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 可以在底下的連結中取得:

DigitalAdvanced.zip

把檔案解壓縮放到 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)

image
▲ 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:

image
▲ Barebone Arduino

Barebone Arduino 的腳位完全仿照 Arduino UNO 和 Duemilanove 而設計:

2011年5月5日 星期四

Arduino 的簡易模擬,使用 Proteus

Arduino 簡易模擬

Proteus 也可以模擬 Arduino。底下是一個很簡單的示範,用 Proteus 來模擬 Arduino UNO 或 Duemilanove。你可以點這裏(Blink.DSN)下載設計檔。

image
▲ 使用 Proteus 模擬 Arduino UNO/Duemilanove

Arduino 入門教學

簡介

Arduino 是一張微控制器板子 (microcontroller board),約莫一個手掌大:

image

使用者可以在 Arduino 板子上接上各種電子裝置,例如 LED 燈、喇叭、馬達、開關、溫濕度感測器、紅外線發射與接收器、LCD 顯示裝置,以及 Ethernet, WiFi, XBee, Bluetooth, RFID, GPS 等各種通訊模組。若再配合撰寫一些自動控制的程式,就能利用 Arduino 做出各式各樣的自動控制應用,例如利用溫度感測器控制風扇的運轉、使用可變電阻控制燈光的明暗、控制馬達的轉速、利用紅外線遙控家電/ 利用伺服機 (Servo) 控制機械手臂或機器人,以及製作自走車、飛行器等等。

這系列教學將讓你認識 Arduino,並且向你介紹各種基本電子裝置的使用方法。

2011年5月4日 星期三

Arduino IDE 產生的 HEX 檔

Arduino IDE 能不能產生 HEX 檔?它輸出的 HEX 檔放在哪裏呢?

可以的。

參考下圖,在編譯程式的時候,只要按著 SHIFT 鍵不放再點 Verify 編譯程式:

image

畫面下方的狀態視窗就會顯示 HEX 檔所在的位置:

image
▲ HEX 的路徑可用滑鼠選取並複製到剪貼簿

延伸閱讀

Soundcard Scope

Soundcard Scope 是 Christian Zeitnitz 用 LabView 開發而成的一套 PC-Based 音效卡示波器,可以在底下的網址取得:

http://www.zeitnitz.de/Christian/scope_en

特色:

  • 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 量測紅外線訊號得到的波形,真酷!

image