11. 十字路口¶
11.1. 目標¶
打造智能紅綠燈系統,根據道路交通情況,在不同路口紅綠燈之間自動切換紅綠燈。
11.3. 材料準備¶
Microbit (1)
Expansion board 擴展板 (1)
Distance sensor 距離傳感器(2)
Traffic light 交通燈 (2)
4-pin module wire PH2.0轉杜邦綫4P(2)
母對母杜邦綫 Female To Female Dupont Cable Jumper Wire Dupont Line (8)
M2*8mm screw (8)
M3*8mm screw (4)
M2 nut (8)
M3 nut (4)
螺絲批
Module E (2)
Module I(2)
11.4. 組裝步驟¶
11.4.1. 第一步¶
用M3*8螺絲和螺母將交通燈模塊安裝到I1模型上。
11.4.2. 第二步¶
把I1模型放到I2模型上。
11.4.3. 第三步¶
組裝完成
11.4.4. 第四步¶
使用M4螺釘將距離傳感器安裝到E1模型上。
11.4.5. 第五步¶
把E2模型放在E1模型上。
11.4.6. 第六步¶
組裝完成!
11.5. 硬件連接¶
Microbit 1:
將交通LED模塊連接到P0 P1 P2埠。
將距離傳感器連接到P14(Trig)/P15(echo)端口。
Microbit2:
將交通LED模塊連接到P0 P1 P2埠。
將距離傳感器連接到P14(Trig)/P15(echo)端口。
Microbit 3:
Car
Microbit4:
Car
11.6. 編程¶
11.6.1. Traffic light 1:¶
11.6.2. 設置一個新的功能(TurnRed)。¶
暫停一秒
n 控制交通燈亮黃燈
暫停一秒
控制交通燈亮紅燈
11.6.3. 設置一个新的功能(TurnGreen)。¶
暫停一秒
控制交通燈亮黃燈
暫停一秒
控制交通燈亮綠燈
11.6.4. 初始化程式¶
將 trafficLight to Traffic light pin setting Red P0 Yellow P1 Green P2 拖入 當啓動時
將廣播群組設爲10拖入當啓動時
控制交通燈亮紅燈
暫停5秒
11.6.5. 保留綠燈狀態五秒¶
呼叫函數 TurnGreen
在此前暫停1.5s
在此後暫停3.5s
11.6.6. 保留紅燈狀態五秒¶
呼叫函數 TurnRed
設定變數second為50
當second大於0,停止0.1秒,並改變second減少1
11.6.7. 獲得距離數值¶
將get distance unit cm trig P15 echo P16 < 20的如果句式拖入循環中
11.6.8. 發送廣播數字以控制交通燈及車輛¶
將廣播發送數字1拖入 if 句式
將廣播發送數字0拖到TurnGreen後
將廣播發送字串“R”拖到TurnGreen前
將廣播發送字串“G”拖到TurnRed前
Full solution:
https://makecode.microbit.org/_Pm2eWtRwERU8
11.6.9. Traffic light 2:¶
11.6.10. 設置新的功能。¶
11.6.11. 初始化程序¶
將 trafficLight to Traffic light pin setting Red P0 Yellow P1 Green P2 拖入當啓動時
將廣播群組設爲10拖入當啓動時
控制交通燈亮綠燈
暫停5秒
11.6.12. 通過接收不同數字來控制交通燈及車輛¶
將如果語句放入當收到廣播數字 receivedString
設receivedString=”R”,並呼叫TurnRed
S設receivedString=”G”,並呼叫TurnGreen
11.6.13. 保留紅燈狀態五秒¶
設定變數second為50
當second大於0,停止0.1秒,並改變second減少1
在此前暫停1.5s
在此後暫停3.5s
11.6.14. 獲得距離數值並控制車輛¶
將get distance unit cm trig P15 echo P16 < 20的如果句式拖入循環中
將廣播發送數字1拖入 if 句式
將廣播發送數字0拖到TurnGreen後
Full solution:
https://makecode.microbit.org/_fudKTM57XTKA
11.6.15. Car 1:¶
11.6.16. 在起始位置設置廣播群組¶
將廣播群組設爲10拖入當啓動時
11.6.17. 通過接收不同數字來控制車輛¶
將如果語句放入當收到廣播數字 receivedNumber
設receivedNumber =1,並控制刹車。
設receivedNumber=0,並讓車向前移動。
Full solution:
https://makecode.microbit.org/_1o1iRhg3qfRF
11.6.18. Car 2:¶
11.6.19. 在起始位置設置廣播群組¶
將廣播群組設爲10拖入當啓動時
11.6.20. 通過接收不同數字來控制車輛¶
將如果語句放入當收到廣播數字 receivedNumber
設receivedNumber =3,並控制刹車。
設receivedNumber=2,並讓車向前移動。
Full solution:
https://makecode.microbit.org/_YmH3PrRA14pC
11.7. 總結¶
距離傳感器可用作感應是否有車輛經過。如果有,它會向有關方向的車輛發送信息,要求他們刹車。