2008-06-04

NXT-G教學--NXT摩斯電碼電報機的挑戰

由於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

可見用最少的命令方塊,可以節省記憶空間,但也需要仔細想一想程式的運作。

歡迎討論!謝謝!


4 則留言:

  1. yorkwu88369:54 上午

    一樣的功能, 可以使用多種不一樣的程式寫法
    各有邏輯上面的巧妙, 這也是程式設計有趣的地方
    謝謝邱老師的分享!!
    [版主回覆06/06/2008 10:50:27]是的,就像每個孩子也都有不同的巧思及創意。謝謝你的回應!

    回覆刪除
  2. 真利害一次提供四個程式  各位 NXT 玩家應該感謝  邱老師的分享  住嘉義的小朋友真幸福  有邱老師的悉心指導
    個人偏好程式 C  它還可以再簡化  如果聲音撥放時間設定 0.1 秒  那麼可以移除關閉聲響的模組 
    最後提醒各位 Light Sensor 的 Compare 設定  把它設為 >0 或 <100  以免不同光線環境下  程式會當機不動
    [版主回覆06/06/2008 10:54:08]謝謝您的回應。

    我用的Light Sensor Block只是當成燈光開關,可以不需要理會Compare設定值,因為它沒有使用任何輸出資料線,應該不會當機。

    也謝謝您提供這麼有趣的題目。

    回覆刪除
  3. 哈哈~我真是太失禮了
    原來學長您的地盤是嘉義縣市
    看來以後有機會就可以向您討教討教
    對於該怎麼將程式編寫得較為精簡
    我還不是很了解,感謝您的分享
    我會好好專研的
    [版主回覆06/06/2008 11:04:17]失禮?!有嗎?

    我只是目前時間有限,所以只能在嘉義市教學,沒有時間回雲林上課。

    嘉義市的前輩是陳穗祥老師,我只是努力學習而已。

    有任何問題都很歡迎討論。

    回覆刪除
  4. LEGO NXT8:50 下午

    我也開發出一種來囉!!
    不過我覺得很爛...
    想看點下面網址
    http://tw.myblog.yahoo.com/jw!lbrg2r.cCANWi9.w2iKs/photo?pid=12&prev=9
    [版主回覆06/18/2008 23:17:22]你不用覺得自己很爛,你的程式寫法也很好阿!我還沒有想過這種方法!

    如果不會同時按下兩種按鈕,應該是可以正常執行的喔!

    謝謝你的分享!

    回覆刪除

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