2008-05-23

LEGO NXT-G教學--NXT大型數字顯示原理

探奇教室利用大型數字顯示替代了NXT的小字型,解決一些看不清楚的情形。

(請參考NXT螢幕大型數字顯示(Big Digits for NXT LCD Display)

在投籃機,吃角子老虎以及SIMON GAME都充分利用。

以下是顯示大型數字的原理及使用方法:

大型數字的圖形編輯

使用nxtRICedit,很容易就可以進行RIC圖檔的編輯,還可以輸入中文字。

我們利用這個圖形編輯程式,製造NUM0.ric~NUM9.ric

共十個圖形(數字0~9),所佔的記憶體大約為0.1Kx10=1K



下圖:nxtRICedit很貼心地自動將圖片存到NXT-G軟體的目錄下。



下載大型數字圖片至NXT

我已經編輯好大型數字的圖片,你也可以編輯更大的數字。

跟我索取程式的使用者必須將NUM0.ric~NUM9.ric等十個圖檔複製到你的NXT-G軟體目錄,

大部分是C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\Pictures

(也可以直接利用NXT-G的NXT Window下載到NXT主機)

如果你是放在Pictures子目錄,可以在你的NXT程式前面加上這個MY BLOCK,

Input Big Num,這個MY BLOCK很單純地顯示0到9的圖片,NXT-G就會自動將圖片下載到NXT。

下圖:MY BLOCK--Input Big Num



下圖:我們可以看到Display Block的設定就是顯示數字圖片。


顯示大型數字

我們做了兩個MY BLOCK,方便直接顯示大型數字。

第一個是Print_BF,我們直接利用資料線,配合文字的接合,直接讓NXT顯示相對應數字的圖片,當然也保留XY座標的輸入控制。所以可以隨意地在LCD螢幕的任何位置顯示單一數字。


第二個是print_xy_num

利用MathScript Block,將三位數的數字分解為百位數、十位數及個位數,連續分別顯示。

顯示位置直接利用X座標累加方式,就能一次顯示三位數字。

(關於MathScript Block,大家可以參考舊文章:超級好用的MathScript Block)


另一個大型數字使用的範例

下圖是一個簡單的範例,可以取代NXT主目錄的View--Reflected light的功能,將接在輸入埠3的光源感應器數值,直接使用大數字顯示,小朋友可以方便觀測光源感應器的讀值,不用盯著小小的數字觀看。



你可以試試看,將光源感應器改為超音波感應器,也就是模擬View--Ultrasonic cm的功能。

你也可以改進這個程式,讓它可以自由選擇哪一個輸入埠,哪一種感應器(這需要能監測NXT按鍵輸入,下一堂課再做介紹)

下課了!

歡迎討論,謝謝!




2 則留言:

  1. ANDY~酷喔11:17 下午

    老師
    請問一下 關於你print_xy_num的圖前面一開始的"小#"是怎麼叫出來的?
    它有什麼功能呢?
    [版主回覆03/26/2009 22:40:49]你好:

    製作MY BLOCK時可以包含輸入及輸出的資料線,自動就會產生這個"#"符號。

    這樣你就可以連結輸出入的資料線(Data wire)。

    當你雙點擊MY BLOCK時,程式會另開分頁,顯示MY BLOCK的程式,就會有這些『#』。

    所以如果你看到別人的程式有這種符號,表示他是一個MY BLOCK(自訂命令方塊)。

    回覆刪除
  2. ANDY~酷喔6:51 下午

    了解!謝謝老師的指導
    [版主回覆03/30/2009 19:19:19]不客氣!歡迎討論,也祝你玩得高興!

    回覆刪除

探奇歡迎大家留言討論!謝謝分享你的意見。