skip to main | skip to sidebar

顯示具有 Arduino Integration 標籤的文章。 顯示所有文章
顯示具有 Arduino Integration 標籤的文章。 顯示所有文章

2011年3月14日 星期一

Android-Firmata 與 Amarino 簡介

想像一下,把 Android 手機跟 Arduino 板子結合起來可以做什麼呢?用 Android 手機遙控機器人、自走車、飛行器? 或者是控制家電,例如電燈、電風扇、電視、冷氣機、窗簾、音響? 只要你有決心,這些都是可能的。

image
AR.Drone – iPhone 無線(Wi-Fi)遙控直升機

目前透過藍芽傳輸連接 Android 與 Arduino 的方案有兩個,一個是 Android-Firmata,另一個是 Amarino,這兩個方案作者是同一個人,叫做 Bonifaz Kaufmann。底下將簡介這兩個方案。

Android-Firmata

Android-Firmata 可以讓 Android 手機透過藍芽傳輸來控制 Arduino,它講的是 Firmata 協定。Firmata 是一個通用的通訊協定,它可以讓你的 Arduino 跟 Android 用同一套語言對話。底下是 Android-Firmata 應用架構示意圖:

 image
▲ Android-Firmata 應用架構示意圖,Arduino 這端的 Firmata 程式在 Arduino IDE 裏就有內附。

Android-Firmata 目前只支援 Firmata 1.0,可以讓你設定數位腳位 (Digital Pins) 的輸入輸出模式 (input/output mode),讀取數位和類比 (Analog) 輸入腳位,以及開關數位腳位,另外也可以控制 PWM 腳位。可以控制 Arduino 的函式有:

  • int digitalRead(int pin);
  • int analogRead(int pin);
  • void pinMode(int pin, int mode);
  • void digitalWrite(int pin, int value);
  • void analogWrite(int pin, int value);

使用 Android-Firmata 連接 Android 與 Arduino 的步驟大概如下:

  1. 上傳 StandardFirmata.pde 到 Arduino 板子上(Arduino IDE 內附,Android-Firmata 套件裏也找得到)
  2. 設定 Bluetooth 的通訊速率為 57600 bps
  3. 上傳使用 Android-Firmata 開發的 Android app 到手機上
  4. 掃瞄 Arduino Bluetooth 設備
  5. 跟 Arduino Bluetooth 配對並建立連線
Amarino

image
▲ Amarino Logo

Amarino (Android meets Arduino) 是 Bonifaz Kaufmann 寫的另一個連接 Android 與 Arduino 的軟體套件(Toolkit),跟 Android-Firmata 比起來,Amarino 一樣是走藍芽傳輸,不一樣的地方在於 Amarino 用的不是 Firmata 通訊協定,而是作者自創的一個很簡單的協定。 Amarino 的應用架構示意圖如下:

image
▲ Amarino 應用架構示意圖

Amarino 協定封包格式非常單純,只是把要傳輸的資料夾在一個 0x12 起始符號和 0x13 確認符號中間而已。也許是比較簡單的關係,作者後來似乎把重心移到 Amarino,Android-Firmata 從 2010 年 1 月之後便沒再更新了。

要開發 Amarino 的互動應用,Arduino 這端的程式要用 MeetAndroid 函式庫,而 Android 這端的程式則要使用 AmarinoLibrary.jar 函式庫,這兩個函式庫都可以在 Amarino 官網取得。

總結

不管是用 Android-Firmata 或 Amarino,你都將需要幾樣東西:

  1. 一台 Android 手機或平板
  2. 一塊可以走藍芽傳輸的 Arduino 板子
  3. Android-Firmata 或 Amarino 軟體套件
  4. Android SDKEclipse SDK,App 的程式開發工具

在 Arduino 藍芽傳輸這部份,你有兩種選擇,一種是用內建藍芽通訊的 Arduino BT,另一種則是用像 Bluetooth Mate 這類藍芽模組來擴充你 Arduino 的能力。

image
▲ Arduino BT (圖片來源: Sparkfun)

image
▲ Bluetooth Mate (圖片來源: Sparkfun)

延伸閱讀

2011年3月12日 星期六

用 NETLab Toolkit 把 Processing 與 Arduino 連接起來

實驗目的

練習使用 NETLab Toolkit 把 Processing 與 Arduino 連接起來,使用可變電阻 (potentiometer) 來控制 Processing 畫面上的矩形的水平移動。

image

註: 這篇跟「使用 Firmata 協定連接 Processing 與 Arduino」一文所用的例子是一樣的,文中部份內容會重覆,對沒有看到該文的朋友來說,這樣比較方便閱讀。

2011年3月11日 星期五

使用 Firmata 協定連接 Processing 與 Arduino

實驗目的

練習使用 Firmata 協定把 Processing 與 Arduino 連接起來,使用可變電阻 (potentiometer) 來控制 Processing 畫面上的矩形的水平移動。

image

註: 這篇跟「透過序列通訊把 Processing 與 Arduino 連接起來」一文所用的例子是一樣的,文中部份內容會重覆,對沒有看到該文的朋友來說,這樣比較方便閱讀。

材料與接線
  • 麵包板 x 1
  • Arduino 板子 x 1
  • 可變電阻 x 1
  • 單心線 x N

透過序列通訊把 Processing 與 Arduino 連接起來

實驗目的

練習透過序列通訊把 Processing 與 Arduino 連接起來。使用可變電阻 (potentiometer) 來控制 Processing 畫面上的矩形的水平移動。

image

材料與接線
  • 麵包板 x 1
  • Arduino 板子 x 1
  • 可變電阻 x 1
  • 單心線 x N

2011年3月10日 星期四

NETLab Toolkit and Flash 入門 (3)

這是這系列的第三篇。

前一篇中,你已經建立了一份 Flash 文件,並且使用 Flash Widgets 建立跟 Arduino 板子上可變電阻的連線了。下一步是加入一張圖片和一個 ClipControl 元件,利用可變電阻來控制圖片的移動,包括圖片的三維旋轉、縮放、陰影、模糊等效果。

利用可變電阻控制圖片的移動

1) 點選「檔案 > 匯入 > 匯入舞台...」或按 Ctrl+R 匯入任意一張圖片:

image

點選「修改 > 轉換成元件…」或按 F8 把圖片轉換成「影片片段」類型的元件:

NETLab Toolkit and Flash 入門 (2)

這是這系列的第二篇。

前一篇中,你已經把 Firmata 程式上傳到 Arduino 板子上,而且也安裝好 NETLab Toolkit 的 Flash Widgets 了。下一步是建立一個 Flash 文件,然後用 Flash Widgets 來連接 Arduino 板子上的可變電阻。

建立 Flash 文件與連接可變電阻

1) 首先,點兩下 NETLabHub.exe 打開 NETLab Hub 應用程式:

image
▲ NETLab Hub 已啟動

用 Flash Widgets 寫 Flash 程式不需要知道太多有關 Hub 的細節,因此,你只要把 Hub 打開放著就行了。

NETLab Toolkit and Flash 入門 (1)

照著底下的步驟做,練習使用 NETLab Toolkit 的基本 Flash 元件,這系列教學將帶你入門教你學會使用 NETLab Tookit。

情境說明

底下是範例情境的示意圖:

image

我們將在 Arduino 上跑 Firmata 程式,讓 Arduino 可以用 Firmata 協定跟外部的軟體溝通(在此為 Flash 程式),接著在電腦上跑 NETLab Hub 應用程式,你可以將 NETLab Hub 看做是一個序列通訊轉接成網路通訊的程式,最後再利用 NETLab Toolkit Flash widgets 寫一支 Flash 應用程式來與 Arduino 產生互動。

NETLab Toolkit 介紹

什麼是 NETLab Toolkit?

NETLab Toolkit 是一個實體互動速寫與製作藝術作品(tangible interaction sketching and production)的系統。它使新手和專家得以快速的整合硬體、媒體以及互動行為做出產品、設施裝備與研究。它整合了包括 Arduino 等微控制器(microcontrollers),而且透過其 Flash 元件(Flash Widgets)它提供了硬體和數位媒體速寫(media sketching)一個拖放的開發環境(drag-and drop environment),使用者不需撰寫程式碼。

Arduino

Makecontroller

XBee

2011年3月7日 星期一

Flash 程式 ArduinoMonitor 一步一步教學(2)

這是這系列的第二篇。

這篇教學將一步一步 (step by step) 教你在電腦上把 ArduinoMonitor 這支 Flash 程式跑起來。

所需軟體
必備知識

讓我們先同步一下。我假設你對 Arduino 有一些基本的了解,而且也已經把 Arduino IDE 裝起來並玩過一些簡單的範例程式。假如你還沒接觸過 Arduino,建議你先閱讀底下的資料,這會比較容易讓你了解這篇教學在說什麼:

Flash 程式 ArduinoMonitor 一步一步教學(1)

ArduinoMonitor 簡介

ArduinoMonitor 是一支 Flash 程式,它可以用來監測 Arduino 所有 I/O 的狀態。底下這張圖便是 ArduinoMonitor 的軟體介面:

video_03
▲ ArduinoMonitor (註: 上圖是以 Screenpresso 錄影再以 123 AVI to GIF Converter 轉成 GIF 動畫)

2011年3月4日 星期五

序列伺服器 TinkerProxy 簡介

什麼是 Tinkerproxy?

TinkerProxy 是一支基於 serproxy 可以把序列通訊轉接成網路通訊(Redirecting network socket connects to/from serial ports)的程式。相較於 serproxy,TinkerProxy 解決了 serproxy 無法在 Mac OSX 10.6 執行的問題。TinkerProxy 的組態設定檔(Configuration File)跟 serproxy.cfg 是完全相容的。

我假設你已經認識 serproxy,如果你不知道,在繼續往下讀之前,請先看「序列伺服器 serproxy 介紹」這篇。

哪裏可以取得 TinkerProxy?

TinkerProxy 可以在它的官網下載:

http://code.google.com/p/tinkerit/wiki/TinkerProxy

2011年3月3日 星期四

序列伺服器 serproxy 介紹

什麼是 serproxy?

serproxy 是一支可以把序列通訊轉接成網路通訊(Redirecting network socket connects to/from serial ports)的程式。參考底下這張示意圖,serproxy 允許你透過網路跟 Arduino 建立通訊。

image
▲ serproxy 運作示意圖

2011年2月24日 星期四

Fritzing - 利用 Power 和 Ground 符號把電路圖變清爽點

在使用 Fritzing 的時候,與其把元件直接接到 GND 或 +5V,不如多多利用 Power 和 Ground 符號。善用 Power 和 Ground 符號會讓你的電路圖變得清爽一點。

image
▲元件視窗(PARTS window)

2011年2月23日 星期三

Bitlash 範例 - 透過 Serial 通訊控制 LED

實驗目的

練習透過 Serial 通訊控制 5 顆 LED。利用 Bitlash 以下指令的方式來控制 LED 的開關。

這篇是「透過 Serial 通訊控制 LED」的重新改寫。我假設你已經看過「Bitlash 新手入門」這幾篇,對 Bitlash 有相當程度的了解。

軟體需求

你必須先把 Bitlash 函式庫安裝起來,安裝辦法請參考「Bitlash 新手入門」一文。

材料
  • 麵包板 x 1
  • Arduino 主板 x 1
  • LED x 5
  • 220 ohm 電阻 x 5
  • 單心線 x N

2011年2月20日 星期日

Arduino 筆記 – bitlash 基本要素簡介(2)

前一篇簡介了數值變數(Numeric variables)、腳位變數(Pin variables) 、指令(Commands) 跟內建函式(Build-in functions)這些基本要素。其中有幾個指令比較重要,底下將特別介紹。

help - 查詢可用的指令和函式

如果你忘了指令或函式的名稱,可以輸入 help 指令,Bitlash 就會列出所有指令與內建函式給你看:

> help
bitlash here! v2.0 RC1 (c) 2011 Bill Roy -type HELP- 999 bytes free
http://bitlash.net
See LICENSE for license
Pins: d0-22,a0-22  Variables: a-z, 32 bit long integers
Operators: + - * / ( ) < <= > >= == != << >> ! ^ & | ++ -- :=
Commands: arg boot else function help if ls peep print ps return rm run stop switch while
Functions:abs ar aw baud bc beep br bs bw constrain delay dr dw er ew free inb max millis min outb pinmode pulsein random sign snooze

Arduino 筆記 – bitlash 基本要素簡介(1)

在看完前一篇的「bitlash 新手入門」之後,相信你已經會用 bitlash 下指令做一些簡單的事情了,例如讀取數位或類比接腳(digital or analog pins)的讀值、控制 LED 燈號、甚至是搭配繼電器控制家電的開關等,你可能也已經在思考要怎麼運用巨集(Bitlash Functions)來把一些工作自動化(Automation),只是不清楚 bitlash 的巨集有多少能力,可以做到什麼樣的程度。

其實 bitlash 很有彈性,只要好好的利用,它會帶給我們很大的方便。現在大可不必感到困擾,一步一步來,在正式開始使用 bitlash 前,我們還是按部就班,先從認識 bitlash 的基本要素開始。

2011年2月18日 星期五

Arduino 筆記 - bitlash 新手入門

什麼是 bitlash?

Bitlash 是一個 Open Source 的 Arduino Shell,作者是 Bill Roy。它是一個指令直譯器(Command Line Interpreter),可以讓你透過 serial port 下指令跟 Arduino 互動,它同時也是一個簡易的劇本語言(Scripting Language),可以讓你用類似 C 的語法寫程式(或稱 Script -- 劇本)。

如果你有聽過 DOS Shell 或 UNIX 的 bash, csh,相信你一定聽得懂,因為 Bitlash 其實就是類似 DOS, bash, csh 的東西,只不過它是在 Arduino 上面跑的,而且它很小,只用了 14K 左右的 Flash 空間。

2011年1月11日 星期二

VirtualBreadBoard 簡介– Arduino 與 PICMicro 的模擬器

我想 VirtualBreadBoard(VBB, 虛擬麵包板) 可能是目前最好的 Arduino 模擬器。VBB 已經準備了一些 Arduino 範例,可以立即拿來模擬。在 VBB 裏,你可以撰寫 Arduino 的程式,畫電路,並且進行模擬。另外,VBB 也支援一堆周邊的元件,比如 LCD, Servo, 邏輯電路, Timer, EEPROM, Buzzer 等。

底下是一個結合 Arduino 與 LCD 的範例,這兩張圖分別是 VBB 的設計畫面以及其模擬的執行結果:

image

2011年1月10日 星期一

為你的麵包板原型套用紙本模板 (paper templates)

底下要介紹的這個方法,如果用在 Arduino 的教學或許會有幫助。

通常我們都是在實體麵包板上做出原型後再利用 Fritzing 以虛擬麵包板畫出電子版的原型,其實也可以反過來做。

只要載入 Fritzing 的 sketch,把它印出來,你就會得到一張紙本的模板 (paper template),你唯一要做的事,就是將把這張模板固定到實體麵包板上,然後接上實際的電子材料 (part)。

方法如下:

  • 打開隨便一張 Fritzing sketch
  • 點 File > Print (記得要關掉印表機自動縮放尺寸的功能),同時準備好電子材料

image

  • 剪下紙張的一個角落,以便對齊麵包板紙本模板與實體的麵包板

2011年1月9日 星期日

Fritzing – PCB 印刷電路板的設計工具

Fritzing 簡介

Fritzing 是一套設計 PCB (Printed Circuit Board) 印刷電路板的軟體,是特別給設計師、藝術家、研究者以及業餘玩家使用的工具。跟 ProcessingArduino 一樣,Fritzing 的開發者秉持開放、簡單與共享的精神而設計這套軟體,Fritzing 簡單好用的軟體操作介面,讓使用者即使沒有電子電機的背景也可以輕而易舉地製作出 PCB 印刷電路板的設計圖。

image
▲ 圖片來源: fritzing.org

Fritzing 是開放源碼的軟體(Open-source Software),我們可以在它的官網免費下載軟體。Fritzing 是跨平台的,有 Windows, Macintosh OSX 和 Linux 的版本。

訂閱: 意見 (Atom)
 

AltStyle によって変換されたページ (->オリジナル) /