2012年9月8日 星期六

Arduino 七段顯示器擴充板

玩 Arduino 玩了快兩年,終於開始學習電路焊接了。今天到台北數位藝術中心參加 Peter 潘老師的「手焊 Arduino 互動裝置工作坊」上一整天的焊接實做課程,這是今天的成果,我的第一張 Arduino 擴充板:

2012-09-08_19h39_28
▲ Arduino 七段顯示器擴充板(正面)

2012-09-08_19h39_42
▲ Arduino 七段顯示器擴充板(背面)

2012-09-08_19h39_04 
▲ 與 Arduino 合體照

從這幾張照片,看得出我的焊功還要好好加強,不過不管怎麼樣,初體驗感覺總是特別的。

這張擴充板用到的主要材料:

  • 共陽極七段顯示器 x 1
  • 330 歐姆電阻 x 8
  • 按鍵開關 x 1
  • 10k 歐姆電阻 x 1
接線圖

課堂上潘老師也大略介紹了如何用 Fritzing 繒製電路圖。假如用麵包板來製作今天的電路,底下是線路參考接法:

2012-09-08_19h29_17

Arduino 與七段顯示器的腳位對應表:

Arduino 腳位 七段示顯器腳位 (筆劃)
D8 a
D11 b
A0 c
D12 d
D13 e
D9 f
D10 g
A1 dp
電路圖

Fritzing 產生的電路圖(當然,Fritzing 自動佈線還不夠聰明,還得手工佈線一下才會整齊):

2012-09-08_19h29_38

程式碼

這支程式的邏輯很簡單,當按下按鍵時,就從 0 開始計數,每按一下計數一次,數到 9 時就回頭從 0 開始數起。底下是一段示範影片:

參考資料

2012年9月5日 星期三

Blueterm and Arduino

Blueterm 是一個 terminal App,可以用來顯示通過 bluetooth serial port 連線傳送的資料。這篇教學將教你如何使用 Blueterm 讓 Arduino 與 Android 建立藍芽通訊。

所需材料
  • Android 裝置 x 1
  • Arduino x 1
  • bluetooth module x 1

Step 1: 安裝 Blueterm

到 Google Play 下載並安裝 Blueterm 到 Android 裝置上。

下載

Step 2: 安裝 Arduino IDE 並上傳測試程式

如果你電腦上還沒有 Arduino IDE,請先到 http://arduino.cc/en/Main/Software 下載軟體,下載後解壓縮即可。

接著將底下的 Arduino Sketch 上傳到 Arduino 板子上:

這支程式所用的 baud rate 預設是 57600 bps,如果你的藍芽模組不是 57600 bps,記得先做適當的調整:

image

Step 3: 連接藍芽模組

我用的是廣州匯承信息科技的 HC-0x 系列藍芽模組,下圖是 HC-0x 藍芽模組的外觀:

image_thumb3522 image_thumb6422
▲ HC-0x 藍芽模組 (圖左:正面圖,圖右:背面圖)

這個藍芽模組連接方法很簡單,只要照下表把 Arduino 和藍芽模組連接起來就好:

Arduino 藍芽模組 備註
5V VCC 注意電源不可接錯
GND GND 注意電源不可接錯
RXD TXD  
TXD RXD  

image_thumb132

連接的時候有兩點要注意:第一是電源千萬不可接錯,不然藍芽模組可能會壞掉,第二是 Arduino 的 RXD 要接藍芽模組的 TXD,而 Arduino 的 TXD 要接藍芽模組的 RXD。

通電之後,藍芽模組上的 LED 會一直閃爍:

image_thumb13322

Step 4: 測試連線

打開 Android 上的 Blueterm App,然後跟著後面的步驟做:

image

按 Menu 鍵打開選單(如下圖左),為了方便,你可能會想要打開 Local echo,請按 Prefeneces,然後啟用 Local echo(如下圖右),你也可以把 Font size 調大一些,這樣眼睛會比較舒服:

image image

回到選單,選擇 Connect device,如下圖左所示,點擊 Scan for devices 掃瞄藍芽裝置,然後選擇 Arduino 的藍芽裝置(如下圖右):

 image image

如下圖所示,如果是第一次跟藍芽裝置連線,Android 會出現「藍牙配對要求」的畫面,此時必須輸入配對密碼(一般為 0000 或 1234)才能與此藍芽裝置連線:

 image

建立連線後 (此時藍芽裝置上的 LED 會停止閃爍),接著你就可以在 terminal 上輸入資料測試通訊:

image

如果一切順利,當你在 terminal 輸入 1 時,Arduino 板子上的 LED 就會打開,而且 Android 會收到 "Arduino Led On" 的訊息,當你輸入 0 時,Arduino 板子上的 LED 就會關掉,而且 Android 會收到 "Arduino Led Off" 的訊息。

image
▲ Arduino 板子上的 LED

參考資料

2012年9月4日 星期二

LCDproc for Arduino

LCDproc 簡介

image

可以這麼說,LCDproc 相當於是 Linux 版的 LCD Smartie,它也是 open source 的軟體,可以用來在 LCD 上顯示 Linux/BSD 的系統資訊,比如 CPU load, system load, 記憶使用狀況, uptime 等等資訊。這篇將介紹如何在 Ubuntu 上安裝 LCDproc 並使用 Arduino 來製作一個 LCDproc 顯示設備。

Arduino 軟硬體設定
  1. 連接 Arduino 及 LCD,如果你用的跟我一樣是 I2C LCD,請安裝 I2C 的 LiquidCrystalLCD library,線路接法可參考這篇。(標準 HD44780 的接法可參考這篇,至於程式碼呢…,嗯,就留給你當作業了)。
  2. 把底下這個 Arduino Sketch 上傳到 Arduino 板子上:

安裝套件

在 Ubuntu 上,只要下個指令就可以安裝 lcdproc:

sudo apt-get install lcdproc

設定 /etc/LCDd.confg

接著編輯 /etc/LCDd.config,準備設定 LCD 的一些參數以及 Arduino 連接的 Serial Port (本例使用 /dev/USB0):

sudo vi /etc/LCDd.conf

首先把 Driver 設定成 hd44780(可以用 /Driver 尋找):

然後切到 [hd44780] 的區塊設定 LCD 的參數(可以用 /hd44780 尋找):

要設定的主要是 ConnectionType, Device, Speed 和 Size 這幾個參數,其中 ConnectionType 必須設定成 lcdserializer, Device 要設定成你 Arduino 所用的 Serial Port,Speed 要設成 9600,而 Size 則設成根據你 LCD 的種類設定,例如 16x2。

啟動 lcdproc

設定好 /etc/LCDd.conf 後,現在便可以啟動 lcdproc 了:

sudo /etc/init.d/LCDd start            # 或 restart

然後 LCD 上應該會顯示類似下圖的資訊:

2012-09-04_20h24_04

跟著下 lcdproc 指令執行 client 程式以顯示 CPU load, system load, 記憶使用狀況等資訊:

sudo lcdproc

示範影片:

你可能會有個疑問:「我可以決定 LCD 上要顯示的資訊嗎?」,答案是可以的。設定檔是  /etc/lcdproc.conf 這個檔案,底下截錄一段 /etc/lcdproc.conf 的內容,這段內容主要是設定 CPU 和 Ethernet 的資訊,假如你希望打開某個資訊,就把 Active 設成 True,不然就設成 false,這樣就行了:

參考資料