由於Bridan先生的鼓勵,讓我想挑戰摩斯電碼電報機的程式。
所以大概寫了一些程式,還請大家指教!
硬體設備都是一樣,觸碰感應器接在一號,光源感應器接在三號。
發出訊號可以使用觸碰感應器,也可以使用NXT的橘色按鍵。
聲音與燈光會同步反應,壓多久就叫(亮)多久。
A. 這是以多工方式分別監測觸碰及橘色按鍵。
B. 這是最傳統的方法,兩個SWITCH判別觸碰及橘色按鍵,按鍵組合的判別方式。
C. 使用邏輯運算,可以使用一個SWITCH做出按鍵組合判別。這個程式的架構就是Bridan先生公布的NXC程式。
D. 改良我的舊程式(參考探奇舊文章NXT-G教學--等待指令之觸碰感應器)
將原本等待指令擴充為按鍵組合的等待,注意第二個等待迴圈是使用AND運算,這部分的邏輯值可以由兩個SWITCH程式(B)得出真值表。
所有程式經過簡單測試,應該可以符合Bridan先生原NXC程式的功能。
順便看看程式大小,由這些程式得知不同的程式結構會有不同的程式大小。
程式編號,rbt大小,rxe大小
A, rbt 1097KB, rxe 3.9 KB
B, rbt 616KB, rxe 3.2 KB
C, rbt 454KB, rxe 2.9 KB
D, rbt 711KB, rxe 3.3 KB
可見用最少的命令方塊,可以節省記憶空間,但也需要仔細想一想程式的運作。
歡迎討論!謝謝!
一樣的功能, 可以使用多種不一樣的程式寫法
回覆刪除各有邏輯上面的巧妙, 這也是程式設計有趣的地方
謝謝邱老師的分享!!
[版主回覆06/06/2008 10:50:27]是的,就像每個孩子也都有不同的巧思及創意。謝謝你的回應!
真利害一次提供四個程式 各位 NXT 玩家應該感謝 邱老師的分享 住嘉義的小朋友真幸福 有邱老師的悉心指導
回覆刪除個人偏好程式 C 它還可以再簡化 如果聲音撥放時間設定 0.1 秒 那麼可以移除關閉聲響的模組
最後提醒各位 Light Sensor 的 Compare 設定 把它設為 >0 或 <100 以免不同光線環境下 程式會當機不動
[版主回覆06/06/2008 10:54:08]謝謝您的回應。
我用的Light Sensor Block只是當成燈光開關,可以不需要理會Compare設定值,因為它沒有使用任何輸出資料線,應該不會當機。
也謝謝您提供這麼有趣的題目。
哈哈~我真是太失禮了
回覆刪除原來學長您的地盤是嘉義縣市
看來以後有機會就可以向您討教討教
對於該怎麼將程式編寫得較為精簡
我還不是很了解,感謝您的分享
我會好好專研的
[版主回覆06/06/2008 11:04:17]失禮?!有嗎?
我只是目前時間有限,所以只能在嘉義市教學,沒有時間回雲林上課。
嘉義市的前輩是陳穗祥老師,我只是努力學習而已。
有任何問題都很歡迎討論。
我也開發出一種來囉!!
回覆刪除不過我覺得很爛...
想看點下面網址
http://tw.myblog.yahoo.com/jw!lbrg2r.cCANWi9.w2iKs/photo?pid=12&prev=9
[版主回覆06/18/2008 23:17:22]你不用覺得自己很爛,你的程式寫法也很好阿!我還沒有想過這種方法!
如果不會同時按下兩種按鈕,應該是可以正常執行的喔!
謝謝你的分享!