2012-07-29

NXT RGB LED訊息看板(Message Board):(I)介面與機構

幾週前在KICKSTARTER見到這個ProjectL8 SmartLight :: The SoundLess Speaker :: for Phone/PC
據稱是作為智慧型手機以及電腦的〝無聲喇叭〞,也就是以8*8 RGB LED矩陣的動態圖示來取代聲音的提醒,雖然應用上不算很創新,因為對於產品包裝得宜,所以已經過了募款門檻。
而這也提示了我想做一個NXT的〝無聲喇叭〞,讓NXT可以有表達訊息的管道。
同樣也是採用8*8 RGB LED矩陣,製作一個可以顯示接收自NXT傳送字串訊息的看板,同時為了能夠清楚且完整的顯示訊息,所以打算用跑馬燈方式播放,完成後效果還算OK



功能與介面
在選用適合的LED矩陣時,剛好Sparkfun有一個SPI介面LED
Matrix - Serial Interface - Red/Green/Blue
,搭配Arduino現成的SPI程式庫很容易使用,
用法是每次傳送64 Bytes的資料,LED矩陣的控制器會依據byte的順序與內容,在對應的位置顯示LED的顏色。
至於NXT的介面,則一方面考慮要讓NXT操作便利,如:傳送文字 (Text)而不是字型(Font),以及能夠提供NXT彈性的設定功能,如:可以控制字型與背景的顏色顯示等。因此,綜合這些需求,最適合的方式就是透過I2C暫存器(registers)的操作,可以作出具備多功能的NXT訊息看板(NXT Message Board)
(Photo-NXT_MSGBOD_109)




SPII2C/TWI都是Arduino程式庫支援的同步序列通訊界面,屬Master-Slave架構,都需要獨立的時脈訊號線,使用到Arduino I/O分別是:
SPID10(SS)D11(MOSI) D12(MISO) D13(SCK)
I2C/TWIA4(SDA) A5(SCL)
供電ArduinoNXT供電,LED矩陣則連接Arduino5VGND pins
NXTArduino之間的接線方式
NXT 4.3V(Pin4) → Arduino VIN
NXT GND(Pin3) → Arduino GND
NXT SCL(Pin5) → Arduino A5(SCL)
NXT SDA(Pin6) → Arduino A4(SDA)


如果使用MindsensorsBreadboard Connector Kit for NXT可以不需要另外製作NXT的跳線。

機構組合
既然是要作為NXT的訊息看板,就嘗試使用LEGO零件將:LED矩陣、Arduino UNO板以及NXT cable端口組合成單一的裝置。



雖然這些組件並非依照LEGO的尺寸規格,不過並不難。完成之後,裝置的右邊是UNOUSB端口,可以用來上載Arduino程式。



NXT
端口則在後方,接上NXT之後,既可以供電給整個裝置,而NXT也可以透過I2C介面傳送字串資料,由RGB矩陣以跑馬燈方式顯示。

(Photo-NXT_MSGBOD_102)

軟體功能
軟體在這次的專案裏是最大的挑戰(Arduino),包含了以下的這些功能:
(1) 將文數字轉換成可以在RGB矩陣顯示的字型資料,含:大小寫英文字母、數字以及一些符號。

(2)
自訂圖像的顯示功能。

(3)
RGB矩陣跑馬燈的顯示效果。

(4)
建置提供給NXT使用的許多I2C的控制功能。


以上這些功能都可以由示範影片中見到,至於實作的方式,會再找時間整理囉!

沒有留言:

張貼留言