LEGO SPIKE Prime Essential 樂高機器人,LEGO MINDSTORMS Robot Inventor, EV3 ,樂高動力機械 BricQ Motion 程小奔Codey Rocky,mBot2,CyberPi 童芯派 mBlock5 慧編程, Python 專業教學,課程設計。 Scratch, MakeBlock產品 艾多美 Atomy 生活用品 NXT 樂高機器人:創意樂趣,隨心所欲!
SPIKE 樂高機器人
▼
我的網頁
▼
2012-05-20
NXT-G 2.0 (2.1) 的整數運算
NXT-G數學運算的過去
當初NXT-G軟體隨著NXT上市時,數學運算功能只有整數計算功能,變數也只能儲存整數,
雖然有玩家提出可以使用固定點運算 ( fixed-point ) 解決問題,
但還是讓大家非常不習慣,特別是當除法需要保留小數時。
後來NXT-G軟體推出 2.0版時,就將數學運算及變數改成浮點運算,並且在數學命令方塊中新增『絕對值』及『平方根』功能。
這時反倒有一些狀況需要整數運算,但是卻無法使用。
例如在探奇的大數字顯示功能中,需要分別知道一個數字的百位、十位及個位數字,
如果有整數運算,那麼236/200=2,馬上就能知道236的百位數字是『2』,
但是浮點運算的結果卻是236/200=2.36,或許可以改用減法來得到答案,不過還是需要比較麻煩的算式。
舊版整數數學運算
其實雖然NXT-G 2.0版以後的數學運算改為浮點數計算,但是軟體內仍然保留舊的整數運算功能,只是沒有顯示在命令面板中。
為什麼會保留整數運算的功能呢?探奇認為應該是為了舊版程式的相容性問題。
如果你使用2.0版的軟體,開啟使用舊版軟體所撰寫的rbt程式,就會看到數學運算的命令方塊多出一個驚嘆號。
剛好前一陣子也有老師提及需要整數運算,探奇在此將增加方式記錄下來。
新增命令方塊後的命令面板如下:
請使用檔案總管開啟NXT-G軟體目錄,
C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\EditorVIs\BlockRegistry
在這個目錄下新增Data的子目錄,接著新增一個空的文字文件,檔名設為『Numeric Operations.txt』
根據Team Hassenplug的說明,你還可以新增其他命令方塊,
可以新增的命令方塊列表在下面目錄中:
C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\vi.lib\LEGO\Blocks\
(我想大部分都是整數型態相關的命令方塊,還有舊版RCX的相容命令方塊)
使用測試結果
探奇寫了一個程式測試使用結果,
上半部使用新版的數學運算,100/3=33.333
下半部使用舊版數學運算,100/3=33
有整數運算需求的讀友不妨試試。
NICE!真的是解決一大難題誒!
回覆刪除[版主回覆05/21/2012 22:03:17]還請問解決什麼難題?
解決最大的問題就是整除!我也是做過一個需要提取十位和個位的數字的程序,當時沒辦法,只好用減法與循環來模擬一個除法
回覆刪除[版主回覆05/22/2012 20:28:32]用減法的確很麻煩,但是也可以瞭解『除法的意義』
蠻常用來取出兩數的商(Q)和餘(R)
回覆刪除Q= [A/B]
R=A-B*[A/B]
這在去年和今年WRO的高中職組,應該都蠻實用的
[版主回覆05/22/2012 20:30:04]整數運算對於取商及餘數的確是蠻有用的方法。
R=A-B*Q
老師你好~我按照上面方法作,但我把Numeric Operations.txt放到Advanced,有跑出來,後來我覺得放在Advanced那不方便,就在Block Import and Export Wizard把它移除,但之後再按照步驟做就都沒跑出來了!
回覆刪除請問老師有什麼辦法可以解決嗎?
[版主回覆08/26/2012 09:23:49]你好:
這個整數運算Block原本就存在NXT-G中,只是沒有顯示在命令面板中,新增Numeric Operations.txt,只是讓NXT-G在命令面板顯示Block的圖示。
如果想將圖示放在不同的命令群組,應該是將Advanced子目錄的Numeric Operations.txt直接搬移到其他子目錄(例如:Data)。
如果使用Wizard移除,我想原本的Block可能真的全部刪除。那麼就不會出現這個Block。
我想到的辦法有二:重新安裝NXT-G;
或是從別台電腦中,以Block Import and Export Wizard輸出這個整數運算Block,再Import到你的電腦。
祝你成功!
沒辦法!
回覆刪除新增Numeric Operations.txt之後沒反應~T_T
你好:
刪除剛剛特地找台電腦測試,是正常的。
你有新增一個目錄嗎?目錄名稱是Data。
請再看看這個檔案夾內,是否有Numeric Operations.txt檔案。
祝你成功!
有新增,但沒出現任何東西
回覆刪除你好:
刪除新增『Numeric Operations.txt』c與O 有一格空白,請確認。
應該都可以成功,請將你的目錄資料夾作一快照,如此才能確認狀況。