2012年8月19日 星期日

2.1 發射紅外線訊號 part 2

前一篇中,我們提到,在使用 IRRemote Library 時,紅外線發射功能限定使用 pin 3,所以你只能把紅外線發射器接到 pin 3,不能接到其它腳位,像這樣:

image_thumb2

但是萬一你 pin3 有其它用途,真的不能挪來接紅外線發射器,那要怎麼辦才好呢?還好,其實 IRRemote Library 有提供一個選項可以讓你選擇其它腳位,方法是修改 IRRemote Library 的 IRremoteInt.h 這一段:

這段程式碼主要是設定 Timer,Timer 的設定會決定紅外線發射器所用的腳位。

以 UNO, Duemilanove, Diecimila 等板子為例,預設是 Timer2,發射器要接 pin 3,假如你不想用 pin 3 當作紅外線發射的腳位,你有一個選擇,可以換成 Timer1,這樣就可以改用 pin 9 來接紅外線發射器:

// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
#else
  #define IR_USE_TIMER1   // tx = pin 9
  // #define IR_USE_TIMER2     // tx = pin 3
#endif

修改 IRremoteInt.h 之後,接線也要同步修改:

  • 把紅外線發射器 (IR LED) 接到 pin 9,長腳 (陽極) 串接一顆 100 ohm 電阻接到 pin 9,短腳 (陰極) 接到 GND
  • 按鈕的一支腳接到 +5V,另一支腳接到 pin 4 同時接一個 10K 電阻連到 GND

2012-08-19_11h38_22

程式碼的部份不需要修改,不過必須重新編譯,並且上傳到 Arduino 板子上就可以了:

2012年8月18日 星期六

Wii Nunchuk 在 Arduino 的使用方法

500x378xmotionxs-controller.jpg.pagespeed.ic.Kwc0VzEbAO B000IMYKQ0-2-lg

Wii Nunchuk 左手把是任天堂 Wii 遊戲機的附件,它搭配 Wii Remote 搖桿用於許多互動遊戲,主要是用來控制遊戲角色的遊動。Nunchuk 上有兩軸 Joystick 搖桿,C 和 Z 兩個按鈕,而且還內建一個可以計算位移的三軸加速計。

Wii Nunchuk 很便宜,很適合作為互動工具。於是,便有人想到可以結合 Nunchuk 與 Arduino 來做一些互動的應用,並且還做出專門用來連接 Arduino 與 Wii Nunchuk 的轉接板 WiiChuck:

wiichuck_adapter2

Wii Nunchuk 走的是 I2C 通訊介面,WiiChuck 它就是把 I2C 用到的腳位 (SCL, SDA, GND, VCC) 拉出來,讓你方便連接 Nunchuk 與 Arduino。

WiiChuck 硬體的連接非常簡單,首先把 WiiChuck 接到 Nunchuk 上:

wiichuck_adapter3

然後再把 WiChuck 接到 Arduino 上就可以了 (注意!必須把 WiiChuck 接到 Arduino 的 Analog Pin 2, 3, 4 5 這四支腳位上!):

wiichuck_adapter1 

接下來就是如何撰寫程式了。在以前,你必須對 I2C 的通訊有一些了解,然後用比較硬派的方式寫程式(比較接近硬體底層的意思,參考這裏)。還好現在已經有比較方便的 WiiChuck Library 可以使用了。

範例

請先到底下的連結取得 Wiichuck library,然後裝到 Arduino 安裝目錄下的 libraries 裏面:

https://github.com/coopermaa/Wiichuck

輸入底下的程式碼 (可在 WiiChuck 的 examples 裏找到,程式名稱為 WiichuckDemo):

將程式上傳到 Arduino 板子上執行,接著打開 Serial Monitor 視窗,便會看到 Wii Nunchuck 傳回的資料了,包括 X, Y 搖桿、XYZ 三軸加速度、C 和 Z 按鈕狀態等:

image

本文圖片大部份取自 http://todbot.com/blog/2008/02/18/wiichuck-wii-nunchuck-adapter-available/

參考資料

2012年8月15日 星期三

Plex Media Server (隨插即用多媒體伺服器)

Plex Media Server 是一個隨插即用多媒體伺服器,電腦上若安裝這套軟體,支援 DLNA 與 UPnP AV 的數位家電,就可以通過網路取得並播放位於電腦裏的電影、音樂和照片等多媒體。播放器有很多種形式,可以是一般電腦,可以是數位電視,也可以是智慧型手機。

 

dlna

這篇將介紹 Plex Media Server 的安裝與基本使用方法,最後我會提到如何用 Android 手機來播放電腦裏的多媒體。

下載

Plex 支援 Mac, Linux 和 Windows,所有版本都可以在這裏取得。我電腦用的還是很古老的 Windows XP 作業系統,所以這篇將以 Windows XP 為例說明,Windows 版本的 Plex 可以在這裏取得。(請確定你下載的是 Plex Media Server,不是 Plex Media Center。Plex Media Center 是播放器。)

為了方便,我將用 Plex Media Server 的簡稱 PMS。

安裝 PMS

下載 PMS 後,點兩下執行檔啟動安裝程式:

2012-08-15_09h58_41

照著安裝程式一步一步做 (一直按 Next 就對了),最後會出現安裝完成的畫面:

2012-08-15_10h01_23

如果你有勾選左下方的 "Run Plex Media Server on exit",當按下 Finish 按鈕時,PMS 就會開始運行。你可能會看到底下這個自動檢查軟體更新的訊息,就看你喜歡哪個,要讓它自動檢查就按 Check automatically,不然就按選 Don't check。

2012-08-15_10h02_26

設定 PMS

安裝好 PMS 後,應該會在右下角的系統工具列看到 PMS 的圖示:

2012-08-15_10h02_05

在圖示上按右鍵會帶出一個選單,請選擇 "Media Manager",這個動作會在你瀏覽器上啟動 Media Manager:

2012-08-15_10h23_10

現在可以開始把多媒體 (電影、音樂或照片) 加到我們的 Media Library 了。只要點選畫面上的多媒體 (如 Moveis, TV Shows, Photos, Home Movies, Music),然後就會跳出一個可以讓你指定多媒體檔案位置的 popup box:

2012-08-15_11h55_48

在加入多媒體後,你可能要耐心等候一下,因為如果你有很多影片、音樂和照片,PMS 會花一些時間收集這些多媒體的資訊。當 PMS 掃瞄完畢時,回到 Media Manager 主畫面,應該就會看到已經加進 Media Library 的多媒體:

2012-08-15_11h58_49

點選任何一個影片,會跳到影片的詳細介紹,這個是 PMS 從網路上收集來的資訊:

2012-08-15_12h02_26

PMS 的設定簡單介紹到這邊,接下來我們來用 Android 播放多媒體伺服器裏的內容。

Android 播放器

首先,請先到 Google Play 下載 BubbleUPnP。安裝好啟動後, BubbleUPnP 會問你要不要建置一個 server,你可以按 Skip 跳過:

Screenshot_2012-08-15-14-06-43

此時請確定 Wi-Fi 有開啟並且連到和 PMS 同一個網路,切到 BubbleUPnP 的 DEVICES 頁面,在 SELECT LIBRARY 下應該會看到你的 PMS server,請在清單中選擇 PMS server:

Screenshot_2012-08-15-13-50-33

在上圖的 SELECT RENDERER 區中,要確定選擇的是 Local Renderer。Local Renderer 代表你的 Android 裝置。如果家裏有其它播放器也可以利用 BuubleUPnP 把 PMS 中的多媒體串流到其它播放器中,例如數位電視。

接著切到 LIBRARY 頁面,就會看到 PMS 上分享出來的多媒體:

Screenshot_2012-08-15-13-50-43 

因為我加了一些影片在 Movies 資料夾,所以選擇 Movies:

image

之後便會看到我 PMS 上分享出來的電影:

Screenshot_2012-08-15-13-50-58

接著只要點一下影片,就可以用手機播放電腦裏的電影囉。

參考資料