Maker Faire 聚集了一群喜歡探究事物、凡事好奇想追根究柢、並樂於與人分享個人創作的手作達人,透過活動所提供的場地可以讓他們展示自己的作品,也讓他們有機會與人互「尬」技術。其實Make雜誌每年定期舉辦這種DIY創意盛會是因為許多Maker迷都表示,他們沒有適合的場所可以與人分享自己的創作, 一些DIY的成品常常只出現在社區或是小商店裡,甚至有的隱身在車庫和廚房餐桌上僅供自己獨賞。他們沒有傳統藝術、科學或工藝這類創作的光環,也未受到同等的關注與重視,如今這些平日難得一見的作品與想法,終於能透過 Maker Faire 這個舞台完整地呈現在眾人面前。今年將首度在花博公園天使生活館內展出,展出日期 7/28~7/29,共計 2 天,當天將推出智動工作坊活動,讓孩子透過動手實作組裝機器人,學會觀察、思考、執行,在學習的過程中達到寓教於樂的效果。消息來源: 智動館 (花博天使生活館)
- 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年7月26日 星期四
2012年7月22日 星期日
SpeakToArduino
這篇是寫給 amarino 初學者看的,目的是教導你如何執行 Amarino 的 SpeakToArduino 範例程式。SpeakToArduino 這個範例示範如何用 Android 手機聲控 Arduino。
所需材料
- Android 手機一支
- Arduino x1
- bluetooth module x 1
- 紅色 LED, 綠色 LED 及藍色 LED 各一顆(若無特定顏色 LED,可用其它顏色的 LED 取代),或一顆 RGB Led
- 220 歐姆電阻 x 3
Step 1:安裝 Amarino
到 http://www.amarino-toolkit.net/ 下載下列 App 並安裝到 Android 手機上:
1) Amarino
Step 2: 安裝 Arduino IDE 與 MeetAndroid Library
如果你電腦上還沒有 Arduino IDE,請先到 http://arduino.cc/en/Main/Software 下載軟體,下載後解壓縮即可。
接著下載 MeetAndroid Library,把 MeetAndroid 解到 Arduino IDE 安裝目錄下的 libraries 資料夾。
重新啟動 Arduino IDE,在 Sketch > Import Library 底下應該會看到 MeetAndroid,如下圖:
Step 3:連接 LED
參考下圖,把紅、綠、藍三顆 LED 分別接到 pin 9, 10, 11,LED 的接法為: 長腳(陽極)接到 pin 腳,而短腳(陰極)串接一顆 220 ohm 電阻接到 GND:
Step 4: 上傳 SpeakToArduino 程式
到這裏下載,並使用 Arduino IDE 打開 SpeakToArduino 程式。
程式所用的 baud rate 預設是 57600 bps,如果你的藍芽模組不是 57600 bps,請做適當的調整:
然後把程式上傳到 Arduino 板子上。
Step 5:連接藍芽模組
我用的是廣州匯承信息科技的 HC-0x 系列藍芽模組,下圖是 HC-0x 藍芽模組的外觀:
連接方法很簡單,照下表把 Arduino 和藍芽模組連接起來就好:
Arduino | 藍芽模組 | 備註 |
5V | VCC | 注意電源不可接錯 |
GND | GND | 注意電源不可接錯 |
RXD | TXD | |
TXD | RXD |
有兩點要注意:第一是電源千萬不可接錯,不然可能會燒壞藍芽模組,第二是 Arduino 的 RXD 要接藍芽模組的 TXD,而 Arduino 的 TXD 要接藍芽模組的 RXD。
通電之後,藍芽模組上的 LED 會一直閃爍:
Step 6:執行 SpeakToArduino App
首先,先利用 Amarino 搜尋藍芽設備,找到設備後,將藍芽設備的 MAC Address 抄起來(記得不要在 Amarino 設定任何 Event!):
打開 Android 手機上的 SpeakToArduino App,你會看到這樣的畫面:
選手機 Menu 鍵 Set BT Device Address,手機會跳出這個畫面,此時請輸入剛剛抄下來的 MAC Address,然後按下【Save】鈕:
按一下手機 Back 鍵退出 SpeakToArduino App,然後重新啟動 SpeakToArduino,這樣 App 才會用新的 Mac Adress 跟藍芽模組連線。
如果一切順利,Android 手機就會跟 Arduino 建立連線,並且呈現如下圖的畫面(注意手機上方的 Status bar,若有成功與 Arduino 連線,status bar 上會顯示 Active connection: … 的訊息):
按下【Click and order your color】鈕,手機會跳出語音辨識的畫面:
這時便可以說出想要的顏色,例如 red, green, blue, white, pink, orange, yellow, dark 或 off,這時候 Arduino 上三顆 LED 便會同步改變亮度。比如當我說 red,這時 Android 手機就會叫 Arduino 把紅色 LED 打開:
如果你有 RGB Led,可以用一顆 RGB Led 取代三顆 Led,這樣更可以呈現 LED 顏色變化的效果。
參考資料
2012年7月20日 星期五
Arduino 簡介影片
這禮拜三 (7/20) 我到 Taipei GTUG 跟大家分享 Arduino 簡介,當天的實況錄影已經上線了,如下。非常感謝 gasolin 的邀請以及當天眾多朋友的協助,讓這次活動可以順利進行,謝謝大家。^o^
參考資料
- Arduino Introduction 簡報
- Getting Started with Amarino 簡報
- Openlab Taipei 社群 blog, Facebook
- MOSUT 社群 Wiki, Facebook, 討論區
2012年7月15日 星期日
Getting Started with Amarino 簡報
我做了一份 Amarino 入門簡報,如下。我預計在 2012/7/18 這天會到 Taipei GTUG 介紹 Arduino 這個開放硬體平台,當天會先講 Arduino Introduction,假如還有時間的話,我就接著講 Amarino 入門。(但是可能會有點困難,因為 2 個多月前 Arduino Introduction 簡報剛出爐時總頁數為 78 頁,剛剛更新後,總頁數已經來到 89 頁,我看到時時間恐怕會不夠用! ^o^)
2012年7月14日 星期六
HC-0x bluetooth module 選購指南
廣州匯承信息科技的 HC-0x 系列 bluetooth module 有很多種款式,我所知道的就有 HC-03, HC-04, HC-05, HC-06 和 HC-07 這麼多種。如果你有在使用這家公司的藍芽模組,可能會發現一個問題:「怎麼這家公司生產的藍芽模組每個都長得很像?」,而且有點麻煩的是,因為模組上沒有標示產品型號,所以要知道哪個才適用,在購買的時候可能會讓人有點頭痛。
如果你有這方面的困擾,這篇 HC-0x bluetooth module 選購指南也許可以幫助你。
產品差別
根據廣州匯承信息科技網站上的說明,HC-0x 系列產品主要差別有兩個:
1) HC-03 和 HC-05 是相容產品,HC-03 是工業用的,成本較高,需要低成本的可選擇 HC-05。HC-04 和 HC-06 是相容產品,HC-04 是工業用的,成本較高,需要成本低的可選擇 HC-06
2) HC-03/05 是主從一體化,可以用 AT 指令修改主從模式 (Master/Slave mode),功能比較豐富,使用靈活,價格比 HC-04/06 貴 2 塊 RMB。而 HC-04/06 使用簡單,價格低,需要低成本的用戶可以選擇,不過 HC-04/06 不能修改主從模式,因為出廠的時候就確定了。
簡而言之,HC-03 和 HC-04 是工業用的,HC-05 和 HC-06 是一般用的。奇數的 HC-03/05 是主從一體化的,而偶數的 HC-04/06 只有一種模式 (主機或從機,出廠時已確定)。另外,HC-07 則是精簡型的 HC-06,原本 HC-06 模組上有兩顆晶片,HC-07 只用一顆晶片,封裝完全兼容。
底下是一張簡易比較表:
模組型號 | 用途 | 模式 |
---|---|---|
HC-03 | 工業用 (成本高) | 主從一體 |
HC-04 | 工業用 (成本高) | 單一模式 (主機或從機,出廠已確定) |
HC-05 | 一般用 (成本便宜) | 主從一體 |
HC-06 | 一般用 (成本便宜) | 單一模式 (主機或從機,出廠已確定) |
HC-07 | 一般用 (成本便宜),精簡型 HC-06 | 單一模式 (主機或從機,出廠已確定) |
選購決策
1) 如果你只需要從機的話,那麼選擇 HC-06 或 HC-07 就夠用了。從機可以跟主機配對,和電腦 Bluetooth dongle 配對,也可以跟智慧型手機配對。
2) 如果希望藍芽模組一會兒是主機,可以跟另一個從機通信,一會兒又希望它是從機,可以跟另一個主機通信,那就要用 HC-05,利用 AT 指令動態切換主從模式。
3) 如果是環境比較惡劣、溫差大,容易受干擾的情況,建議選擇工業級的。
4) 第一次使用建議買帶底板的 (下圖),帶底板的模組通常已幫你做好了 5V 與 3.3V 電壓轉換,而且還拉引腳方便連接
如何分辨模組型號?
前面提到,這系列藍芽模組上沒有標示產品型號,那到底要怎樣分辨是否買對板子呢?底下有個簡單的方法(僅適用 HC-05/06 和 HC-7):
HC-06 主機有標白點:
HC-06 從機沒標白點:
HC-05 有標紅點:
至於 HC-07 的話,因為模組上只有一顆晶片,所以外觀比較迷你:
Stackable Bluetooth Shield
另外,市面上也有把 HC-0x 模組做成 Arduino 擴充板的,也是一個不錯的選擇,例如 Stackable Bluetooth Shield:
這個板子的特點是可以直接插在 Arduino 板子上:
除了可以擴充 Arduino 藍芽通訊能力外,板子上還有兩個開關。一個是用來選擇 5V 或 3.3V 相容電壓,一般 Arduino 是用 5V 電壓,但若用其它板子如 LeafLabs Mapple (STM32) 和 Digilent 的 chipKit (PIC32),此時便可以切換到 3.3V 電壓與之相容。另一個開關是用來選擇 UART 的通訊方式,可選擇通過 UART 連接 Arduino,或是直接通過 USB 晶片 (FT232/Atmega32u4) 連接到電腦上,用 Serial Monitor 直接跟藍芽模組通信。
以上的資訊若有錯誤,請不吝指正,謝謝。
參考資料
2012年7月11日 星期三
C# and Arduino over Bluetooth
在 "Talk with Arduino using C# and Firmata" 一文中,我們提到如何利用 Firmata.NET 跟 Arduino 建立通訊。當時PC 是通過 COM 連接埠跟 Arduino通訊 (也就是用 USB cable 連接 Arduino 與 PC),這次我們將改用藍芽讓 C# 程式與 Arduino 建立通訊。底下以 HC-0x 藍芽模組為例說明:
1) 確定藍芽模組 baud rate 為 57600 bps。藍芽模組 baud rate 設定方法請參考 "Bluetooth module configuration", "Config bluetooth baud rate w/ Arduino" 或 "Arduino as an USB to TTL adapter"
2) 上傳 StandardFirmata 到 Arduino:打開 Arduino IDE,點選 File > Examples > Firmata > StandardFirmata,把程式上傳到 Arduino 板子上,切記在上傳程式的時候不要接藍芽模組,不然可能會影響上傳程序。
連接 Arduino 與藍芽模組
把 Arduino 5V 接到藍芽模組的 VCC,而 GND 接到 GND:
有兩點要注意:第一是電源千萬不可接錯,不然可能會把藍芽模組燒壞,第二是 Arduino 的 RXD 要接藍芽模組的 TXD,而 Arduino 的 TXD 要接藍芽模組的 RXD。可參考下表:
Arduino | 藍芽模組 | 備註 |
5V | VCC | 注意電源不可接錯 |
GND | GND | 注意電源不可接錯 |
RXD | TXD | |
TXD | RXD |
通電之後,藍芽模組上的 LED 會一直閃爍:
執行 C# Example
參考 "Loop back test" 一文建立電腦跟藍芽模組之間的配對,並且記住配對完成之後的藍芽連接埠號碼,本例用的是 COM21。
下載 C# 範例程式,打開 Blink 範例。選好 Serial Port (本例為 COM21),按下 Open 鈕:
順利的話,Arduino 板子上的 LED 燈就會不斷地閃爍,亮一秒,滅一秒,如此循環不已:
▲ pin 13 上的 LED (L)
如果你有興趣,可以進一步參考 "Talk with Arduino using C# and Firmata" 一文,然後試一試 AnalogRead 和 Fade 這兩個範例。
參考資料
2012年7月9日 星期一
Arduino as an USB to TTL adapter
Arduino 也可以當成 USB to TTL 轉換器使用,方法很簡單,參考下圖,只要在 GND 和 Reset Pin 之間拉一條線就搞定了:
這樣做會讓 MCU 停留在 reset mode,你便可以使用 RX (pin 0) 和 TX (pin 1) 直接與 USB to Serial Converter 晶片 (FT232R 或 Atmegaxxux) 溝通。
設定 HC-0x 藍芽模組
把 Arduino 變成 USB to TTL 轉換器可以做什麼?嗯...我首先想到的是可以拿來改 HC-0x 藍芽模組的設定。我在這篇介紹過如何用 USB to TTL 轉換器設定 HC-0x 藍芽模組,同樣的事 Arduino 完全可以勝任。
底下以修改 HC-0x 藍芽模組的 baud rate 為例說明:
1) 首先,參考上圖在 GND 和 Reset Pin 之間拉一條線
2) 把 Arduino 與藍芽模組連接起來
接線方法可以參考下表:
Arduino | 藍芽模組 | 備註 |
5V | VCC | 注意電源不可接錯 |
GND | GND | 注意電源不可接錯 |
RXD (pin 0) | RXD | |
TXD (pin 1) | TXD |
通電之後,藍芽模組上的 LED 會一直閃爍:
先做個簡單的測試,看看藍芽模組通信正不正常。
打開 Serial Monitor,把換行模式改成 "No line ending",接著輸入 AT 指令(指令全部大寫),然後按下 Send 按鈕或 Enter 鍵,這時藍芽模組應該會回應 OK:
3) HC-0x 藍芽模組 baud rate 預設是 9600 bps,有些時候你可能會需要改變它的 baud rate,比如改成 57600 bps。要怎麼把 baud rate 修改為 57600 bps 呢?方法為:
輸入指令:
AT+BAUD7
這時藍芽模組應該會回應:
OK57600
像下圖這樣:
以上的資訊,希望對你有幫助。
參考資料
2012年7月3日 星期二
Loop back test
Loop back test 是什麼?它是最快最簡單的測試方法,可以測試藍芽模組的接收和發送功能,用來檢查模組有沒有故障。HC-0x bluetooth module 可以做 Loop back test,也就是自己接收自己所發送的資料,方法很簡單,只要把藍芽模組的 TXD 接到自己的 RXD 就好。底下教你怎麼做:
材料
連接 Arduino 與藍芽模組
下圖是 HC-0x 藍芽模組的外觀:
只要把 Arduino 5V 接到藍芽模組的 VCC,而 GND 接到 GND:
要注意電源千萬不可接錯,不然可能會把藍芽模組燒壞。可參考下表:
Arduino | 藍芽模組 | 備註 |
5V | VCC | 注意電源不可接錯 |
GND | GND | 注意電源不可接錯 |
通電之後,藍芽模組上的 LED 會一直閃爍:
與電腦配對 (paring)
首先,打開藍芽裝置:
按下【新增(D)…)】打開新增藍芽裝置精靈:
勾選「我的裝置已設定並就緒可以找到」後按【下一步】,系統會將搜尋藍芽裝置,接著選 linvor 裝置,然後點【下一步】:
選擇「使用文件中的密碼金鑰】並輸入配對密碼 1234:
按下一步,系統會開始進行配對:
配對成功:
按下【完成】,回到藍芽裝置視窗,切到 COM 連接埠頁面,請記住名稱為 linvor 'Dev B' 的連接埠,例如下圖是 COM21:
Loop Back 測試
1) 拿一條跳線把藍芽模組的 TXD 和 RXD 對接起來,如下圖的綠線:
2) 打開 SSCOM 工具,ComNum 選擇藍芽裝置的連接埠,例如 COM21:
這時候藍芽模組上的 LED 會停止閃爍變成恆亮。
點下方的 SEND 鈕,電腦就會發送訊息給藍芽模組,由於會 Loop back,所以正常的話,訊息便會馬上從藍芽模組傳回來顯示在視窗上方:
你可以試著修改要發送的訊息 (Data input),並且設定發送的間隔時間,勾選 Send every,SSCOM 就會每定期發送訊息持續的測試:
以上的資訊,希望對你有幫助。
參考資料
2012年7月1日 星期日
Config bluetooth baud rate w/ Arduino
▲ HC-0x 藍芽模組 (圖左:正面圖,圖右:背面圖)
HC-0x 藍芽模組的 baud rate 預設是 9600 bps,有些時候你可能會需要改它的 baud rate,要改 baud rate,用 USB to TTL 是最簡單的,這部份可以參考這篇,不過如果手邊沒有 USB to TTL,用 Arduino 也是可以的,底下教你怎麼做。
首先,你得知道怎麼把 Arduino 跟藍芽模組連接起來,參考下圖:
連接的時候有兩點要注意:第一是電源千萬不可接錯,不然可能會燒錄藍芽模組,第二是 Arduino 的 RXD 要接藍芽模組的 TXD,而 Arduino 的 TXD 要接藍芽模組的 RXD。可參考下表:
Arduino | 藍芽模組 | 備註 |
5V | VCC | 注意電源不可接錯 |
GND | GND | 注意電源不可接錯 |
RXD (pin 0) | TXD | |
TXD (pin 1) | RXD |
通電之後,藍芽模組上的 LED 會一直閃爍:
改 Baud rate 的步驟
底下示範如何把藍芽模組 baud rate 改成 57600 bps:
1) 把底下的 sketch 上傳到 Arduino 板子上(注意!在上傳程式的時候,切記不要插著藍芽模組):
2) 打開 Serial Monitor,過 6 秒鐘之後,你應該會看到 AT+BAUD7 的訊息:
3) 關閉 Serial Monitor
4) 拔掉 Arduino 的電源
5) 插上藍芽模組
6) 給 Arduino 上電,請在上電後 6 秒鐘之內打開 Serial Monitor,過 6 秒後應該就會看到 AT+BAUD7OK57600 的訊息,代表你已經正確把藍芽模組 baud rate 修改成 57600 bps 了,如下圖所示:
由於藍芽模組 baud rate 已經改成 57600 bps,如果想改回 9600 bps,可以照底下的步驟做。
如何把 baud rate 改回 9600?
1) 把 Sketch 的 setup() 改成如下:
void setup()
{
Serial.begin(57600); // Baud rate of HC-0x bluetooth module
delay(6000);
Serial.write("AT+BAUD4"); // Set baud rate as 9600
}
2) 把 Sketch 上傳到 Arduino 板子上(注意!在上傳程式的時候,切記不要插著藍芽模組):
3) 打開 Serial Monitor,將下方的 baud rate 設定改成 57600 bps:
接著等 6 秒後,應該會看到 AT+BAUD4 的訊息:
4) 關閉 Serial Monitor
5) 拔掉 Arduino 的電源
6) 插上藍芽模組
7) 給 Arduino 上電,請在上電後 6 秒鐘之內打開 Serial Monitor,過 6 秒後應該就會看到 AT+BAUD4OK9600 的訊息,代表已經正確把藍芽模組 baud rate 改回預設值 9600 bps 了,如下圖所示:
以上的方法,希望對你有幫助。