Skip to main content

Posts

Showing posts with the label NXT-G

[LEGO] How to make an "Unique Random Number" my Block

這篇是答應某人要公開分享的教學...這兩天終於湊出時間來寫... Erin 分享的原則通常都秉持著 "給你魚吃,到不如教你釣魚" 的想法在寫,所以如果沒有附上原始檔也請不用詢問了呦...意思就是我已經提供很多可以讓你"開始學"釣魚的概念囉! 這是去年三月在台北舉辦的 Flex&AIR AUG 網聚上使用的 lotto-bot 中的取得唯一亂數號碼 myBlock,可以用在樂透遊戲或者是亂數只給出現一次的程式應用。它的邏輯很簡單,只是要改成 NXT-G 的 myBlock 花了些時間連連看...XD 開始製作之前請先注意看看你的 NXT-G 有沒有安裝過 Dynamic Block Update ,安裝完成後可以在下拉式功能表中找到 "Block Import and Export Wizard"。接下來請下載及 import Simple Array Block ,在下載的時候請記得點一下畫面中的google AD 感謝 Simple Array 的作者 Steve Hassenplug 提供了很多很棒的NXT-G Blocks 給大家使用。 由於 NXT-G 的變數是全域變數,所以在組合 myBlock 要小心變數命名,取得唯一亂數號碼需要兩個 myBlock ,一個負責初始化相關參數,一個負責輸出唯一號碼: initUniqueRandom myBlock: var uniq_total:Number = total; Simple Array Block : clear Add a value(e.g. 100) to index 0 in Simple Array Block, coz we don't use index 0. If you need it to count from 0, just ignore this step. 如圖: 接下來就麻煩了...很長一串... getUniqueRandom myBlock: 這段要用程式表示囉...不然寫的好累...冏... var Logic 1 : Logic = false; //Logic Switch if(uniq_total == uniq_legth){ //Logic Switch Conditions :...

[LEGO] NXT LCD大號數字顯示 by NXT-G

由於 Erin 正在製作 Lotto-bot (樂透機器人)供 MMUG 三月網聚 使用,平常 NXT-G 輸出到 NXT LCD 上的數字顯示實在太小,所以利用 nxtRICedit 來製作大數字圖片並整理到 MyBlock 中供程式使用。 nxtRICedit 是一套免費又好用的黑白兩色階 for NXT LCD 的圖片編輯軟體,它相當簡單,短時間就可以上手。在手工製作數字 0 到 9 的圖片後,統一將圖片存到 C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\Pictures\ 裡,這樣在 NXT-G 的編輯視窗中才能選到你剛剛新增的圖片, nxtRICedit 編輯視窗如下圖: 使用 nxtRICedit 製做圖片不需要太擔心一開始的起始位置,當圖片被放置到 NXT LCD 後,它的起始位置會是以圖片有像素的部份最左最下邊界為 0, 0,再由 NXT-G 編輯視窗設定 x, y。 接下來開始製作 ImageNumber MyBlock:(關於MyBlock的基本製作方法請參照前篇) 說穿了,要用 NXT-G 編輯 NXT LCD 大數字顯示就是作手工,請努力將每一個數字分別使用 Display Block 對應到相對的數字圖片上,請記得每一個 Display Block 都需要接上資料線喔! 測試程式: 輸出如最上方圖片!完成!! 當完成的 ImageNumber MyBlock 可以串接其他 Sensor輸出的數字,只需要將輸出的數字分別作運算切出分開的數字再傳入相對應的 ImageNumber MyBlock 中就可以了呦!

[LEGO] NXT-G MyBlock 製作概要

玩了一兩天的NXT-G,雖然一開始被它的連連看編輯介面打敗,但是熟悉後又對它的超直覺編輯感到激賞,其中的 MyBlock更是方便使用者製作類似程式中的function或巨集,將常用的功能組織起來。 [NXT-G中的MyBlock圖示] 要製作MyBlock非常簡單,直接開個新檔編輯,不需要存檔就可以製作。以下利用在NXT畫面秀出Number來製作MyBlock。在NXT螢幕要秀出數字的話,需要使用Number to String + Display Block才可以秀出,由於它的使用率很高,所以將這個過程製作成 MyBlock來重複利用。 先想好MyBlock保留給外部設定的變數數量,Number to String Display一定要可以傳入數字,外加Display x y 的設定,所以最低限度共有三個變數需要傳入。 讓MyBlock有write功能: 1. 開新檔案。 2. 拉出Variable Block,選擇 Number1 / read mode,放置位置即使variable block不在鐵軌上也ok,如下圖: 3. 拉出 Number to String Block與 Display Block , Display block選擇文字模式,將要輸入的資訊連起來,如下圖: 4. 選擇要輸出為MyBlock的程式部份,用滑鼠框選 Number to String and Display block,框選後點選下拉式功能表 Edit / Make a new My Block 5. 填入MyBlock相關資訊,選擇你的要的 MyBlock Icon, 完成了! 6. 更換變數說明:連點剛剛製作出來的NumberToString Block,會進入它的編輯模式,直接變更Value1-3的文字儲存後退出即可。 [完成的Number to String Block] 結語,如果你使用的 MyBlock有資訊送出(Read)功能,就是將它要輸出的資料型態選擇對應的Block放置在畫面右方,唯一重點就是資料線一定要連上,圈選設為 My Block 的部份,你就會發現它會有欄位將資料送出了。 被儲存的MyBlock會被放在LEGO Default local folder: 我的文件夾\LEGO Creations\MINDSTORMS Projects\Profi...