冬營營招生中

2019年7月21日 星期日

[micro:bit x Nexus:bit] 行人號誌燈




這篇的目的在用Nexus:bit製作一個簡單的行人號誌燈:


  1. 平時RGB LED亮著紅燈,並在螢幕顯示行人號誌燈標誌。
  2. 按下A鍵時,開始倒數15秒,RGB LED轉為綠燈,螢幕上顯示跑步的小人。
  3. 剩下7秒時,RGB LED變成黃燈,並轉而顯示剩餘秒數。
  4. 倒數完畢,回到紅燈和行人號誌燈標誌。
  5. 此外蜂鳴器也會響起類似真實世界行人號誌燈的聲音。





綠燈(剩15-8秒時)

黃燈(剩7-1秒時)

紅燈(倒數尚未開始或結束後)


在這裡的重點是如何控制好倒數的時間。顯示圖案、數字積木會有約400毫秒延遲,而在倒數剩15~8秒時會有輪替的圖案,因此這階段迴圈每跑一次要2秒,號誌燈聲響只響一次,但秒數要減兩次。我們也得用某種方式填補顯示圖案後尚需的600毫秒時間,可以用蜂鳴器的聲音延遲或單純的暫停積木來達成。

到了第二次迴圈,變成每1秒輪迴一次。我們同樣用蜂鳴器播放和暫停積木來湊到差不多1秒。最後就是確定RGB LED在每個階段會亮起正確的顏色,並在號誌整個倒數完畢後把螢幕畫面恢復到一開始的圖案。

程式如下:



點圖可放大










沒有留言:

張貼留言