交通燈模擬設計說明書
交通燈通常指由紅、黃、綠三種顏色燈組成用來指揮交通的信號燈。在我國交通法律上規定:綠燈亮時,準許車輛通行,黃燈亮時,已越過停止線的車輛可以繼續通行;紅燈亮時,禁止車輛通行。
設計目的:
設計這款交通燈模擬系統可以真實直觀的反映出十字路口紅綠燈亮滅情況,有利于駕駛員學習相關的交通規則,連接上相應的硬件設備還可以作為一款十字路口的交通燈控制系統。
程序特點:
這款交通燈模擬系統基于labview軟件開發,界面全部自己設計,簡潔明了。在以往單純的紅綠交替變化功能上添加了倒計時功能和燈光閃爍功能,并且配備有操作板可以人為設置各路口紅綠燈的亮滅時間,現實中可以根據實際路況進行有目地的調整,使交通更加通暢。
設計過程:
1.首先我先用簇來創建交通燈,用一個while循環配合使用層疊順序結構實現最簡單的紅綠黃燈交替變化,模擬出十字路口通行狀態,東西南北方顯可以調節,但功能簡單。
2.通過實際路口的觀察,確認需要添加倒計時模塊,之后嘗試多種方法來實現,均達不到預期的目標。通過一個小例子想到通過數組的索引來控制簇里各控件來模擬LED燈,之后 又加上一個算法成功實現交通燈倒計時功能。
3.現實十字路口的黃燈是閃爍而不是常亮,為了能更好的模擬需要添加一個能夠使黃燈閃爍的模塊,這個模塊通過一個數除以2得到余數的1或者0來控制燈的亮滅,將循環時間縮短即可實現燈的閃爍。
4.在界面設計的時候畫出斑馬線,于是需要在斑馬線兩邊安裝提示燈,便將閃光模塊在此控制綠燈閃爍來提示行人通過。
5.最后設計了一個歡迎界面用來介紹一下程序名稱等。在后面板上程序調用上開始時出現了沒反應的情況,后來反復嘗試通過修改子vi節點設置才成功解決。
歡迎界面:
本界面自己設計的一個開始界面,文字采用和交通燈相似的紅綠黃顏色,介紹了一些相關信息,直接“確認進入”即可進入主程序界面。
歡迎后面板:
后面板采用條件結構來調用子VI。(這步中的子VI通過對子vi節點的設置才可以在運行中調用)
交通燈模擬界面(前面板1):
這是程序的主體,結合實際的十字路口設計了紅綠黃燈的交替亮滅,黃燈的閃爍,路口時間倒計時和控制面板。上圖中展現的是南北方向允許通行,此時東西方向禁止通行時間為16s,同時斑馬線兩側的綠燈也會每隔一秒的閃爍,提示行人通行。斑馬線旁邊的倒計時LED燈用來顯示紅燈還有多久熄滅,給行車人提前的準備時間。當倒計時完畢后首先東西方向紅燈變成綠燈,同時斑馬線兩側的綠燈停止閃爍,南北方向綠燈變為黃燈閃爍之后變成紅燈,倒計時開始。在界面美化方面用的是labview自帶的修飾功能自己繪圖所以有一些地方不太完善。
后面板1:
后面板用了一個while循環配合使用層疊順序結構實現各組紅綠燈的間歇亮滅。
下圖為南北通行過程,在層疊順序結構里包含兩個for循環結構,上面的for循環實現燈光的閃爍,下面的for循環里用了模擬LED燈的子vi。可以通過調節東西方向的紅燈點亮時間來控制南北通行時間。
前面板2:
這個面板是東西方向剛恢復通行的指示,黃燈會根據設定的時間(初始時為1s)閃爍不同的次數,一次間隔200ms,之后南北方向的黃燈換成紅燈禁止此方向車輛通行。
這是黃燈階段的后面板,采用了一個閃爍模塊通過面板上黃燈的時間來控制閃爍次數。通過for循環里的等待時間來控制閃爍間隔。開始時設置的四組紅綠燈是通過簇的方式組合,這樣方便直觀,但無法對其中的元素進行單獨控制,所以換成繁雜的直接用布爾常量直接相連樣子,將黃燈放進for循環里進行單獨的閃爍控制。
前面板3:
上圖是東西方向允許通行時的指示,此刻南北方向禁止通行時間是5s,倒計時完畢南北方向紅燈換為綠燈,東西方向綠燈熄滅黃燈閃爍,之后又回到上面前面板1的情況,反復循環,實現紅綠黃交通燈的點亮熄滅來控制十字路口的交通。
模擬LED燈子VI:
LED燈后面板:
該子vi的應用數組常量索引的方式得到相應數組,再將數組轉換成簇用來控制簇里指示燈的亮滅來顯示不同的數碼。這里每個簇里的指示燈都需要按一定的順序組合,然后按照數組常量里的布爾常量位置通過不同的索引值來確定不同燈的亮滅顯示不同數字。只需要在數值控件中輸入一個0--99的數字通過除以10來確定出個位十位后分別在兩個簇里顯示出來。
上圖是一個完整的倒計時模塊,通過將模擬LED燈放入一個for循環來構成。等待1000ms確定了時間以一秒的間隔遞減。
閃爍部分后面板:
該部分主要應用了用0和1來控制燈的亮滅,加入for循環并且控制循環時間即可實現燈的閃爍。首相用0除以2得到余數0通過和0比較產生“真”來控制等亮,之后加1除以2的余數1比較后產生“假”控制燈熄滅一直這樣循環即可使燈閃爍。
設計心得:
通過本次自己親自設計并獨立完成交通燈模擬系統,我學到了很多。
1.做一件事情的時候要對它進行了解,我在設計期間仔細觀察了石家莊十字路口紅綠黃燈的交替變化,發現其中規律,才能根據實際情況進行模擬,在斑馬線兩側綠燈設計上是自己的小改動。
2.加強了自己發現問題解決問題的能力,開始的時候認為比較簡單,但真正開始后在各部分設計上才發現很多預期之外的問題,通過上網查閱資料,經過不斷嘗試后才得以解決。
3.鍛煉了自己的優良品質,以后在最事情上要有耐心,有細心,遇到困難后不灰心,這樣才可以真正實現自我。
以上圖文的Word格式文檔下載(內容和本網頁上的一模一樣,方便保存):
倒計時紅綠燈.doc
(1.1 MB, 下載次數: 145)
工程文件(目前還不完整,只有基本框架,很多預想功能還未完成,僅供參考,希望大家繼續完善,一起學習提升技術水平):
交通燈仿真.7z
(33.17 KB, 下載次數: 307)
984055 發表于 2021-5-9 13:36
我想問下,怎么在多個循環體里調用一個控件,比如一個燈,我在第一個判斷語句里執行了,我第二個判斷語句里 ...
984055 發表于 2021-5-9 13:36
我想問下,怎么在多個循環體里調用一個控件,比如一個燈,我在第一個判斷語句里執行了,我第二個判斷語句里 ...
歡迎光臨 (http://m.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |