眾所周知,“線程”指的是一組可以在程序中獨(dú)立執(zhí)行的計(jì)算機(jī)指令集合,引入“多線程”運(yùn)行機(jī)制的根本目的是為了更好利用CPU資源。如果程序在運(yùn)行過(guò)程中只有一個(gè)線程的話(單線程方式),那么下一個(gè)任務(wù)必須要等到上一個(gè)任務(wù)結(jié)束后才能進(jìn)行,這是一種低效的“串行”流程;如果使用多線程,就可以在主線程執(zhí)行任務(wù)的同時(shí)來(lái)“并行”執(zhí)行其他的任務(wù),不需要等待時(shí)間,從而極大提高了程序的運(yùn)行效率。
【實(shí)驗(yàn)?zāi)康摹?/p>
在樹(shù)莓派中通過(guò)古德微機(jī)器人平臺(tái)編程,實(shí)現(xiàn)多線程控制LED燈陣彼此獨(dú)立地運(yùn)行,各個(gè)LED燈的閃亮頻率均不同(“頻閃”效果),驗(yàn)證計(jì)算機(jī)編程中多線程運(yùn)行機(jī)制的高效性。
【實(shí)驗(yàn)器材及連接】
樹(shù)莓派一塊,古德微擴(kuò)展板一塊,紅、綠、黃、藍(lán)色LED燈各一支。
首先將古德微擴(kuò)展板正確插入樹(shù)莓派中,注意要四周均勻小心用力,然后將四支LED燈分別插入到擴(kuò)展板的5號(hào)、6號(hào)、12號(hào)和16號(hào)插孔,注意LED燈的長(zhǎng)腳為正極、短腳為負(fù)極,必須正確插入插孔上標(biāo)注有“+”、“-”標(biāo)記的對(duì)應(yīng)處,最后將樹(shù)莓派電源線連接好,通電啟動(dòng)系統(tǒng)(如圖1所示)。
圖1
【平臺(tái)編程與程序運(yùn)行調(diào)試】
1.登錄古德微機(jī)器人平臺(tái)
使用瀏覽器訪問(wèn)http://www.gdwrobot.cn,點(diǎn)擊右上角的“登錄”并輸入自己的賬號(hào)和密碼,然后點(diǎn)擊“設(shè)備控制”進(jìn)入“積木”編程界面,再點(diǎn)擊“連接設(shè)備”按鈕出現(xiàn)五個(gè)連續(xù)的綠色對(duì)勾提示,表示連接成功(如圖2所示)。
圖2
2.進(jìn)行“積木”編程
“積木”編程非常簡(jiǎn)單,我們只需將對(duì)應(yīng)的命令語(yǔ)句塊從左側(cè)“積木”區(qū)域拖至中央空白編程區(qū)進(jìn)行組合即可。程序包括主程序和四個(gè)函數(shù)共兩大部分,主程序是順序執(zhí)行的四個(gè)子線程調(diào)用語(yǔ)句塊,操作方法是從左側(cè)的“線程”處將“添加子線程,線程函數(shù)名為‘xxx’”拖入編程區(qū),注意其中的線程函數(shù)名必須是英文名稱。每個(gè)子線程就對(duì)應(yīng)主程序待調(diào)用的一個(gè)函數(shù),而每一個(gè)函數(shù)都是控制所對(duì)應(yīng)的LED燈亮滅交替,通過(guò)設(shè)置不同的等待時(shí)間來(lái)實(shí)現(xiàn)不同的閃爍頻率,以第一個(gè)LED5函數(shù)為例:
首先調(diào)用“控制5號(hào)小燈亮”命令語(yǔ)句,然后通過(guò)“等待0.1秒”命令語(yǔ)句讓其保持通電的發(fā)光狀態(tài)持續(xù)0.1秒;接著“控制5號(hào)小燈滅”,第二條“等待0.1秒”命令語(yǔ)句的作用是保持該LED的熄滅狀態(tài)持續(xù)0.1秒。四個(gè)命令語(yǔ)句循環(huán)執(zhí)行,最終實(shí)現(xiàn)的效果就是控制插在古德微擴(kuò)展5號(hào)插孔的紅色LED燈先亮0.1秒、再滅0.1秒,然后再亮0.1秒、滅0.1秒……即控制該LED燈以5Hz的頻率(周期是兩個(gè)0.1秒相加)進(jìn)行“頻閃”。其它三支LED燈的控制函數(shù)分別對(duì)應(yīng)LED6、LED12和LED16,語(yǔ)句基本一致,惟一不同的是等待的時(shí)間分別設(shè)置為0.2秒、0.5秒和1秒(可自行設(shè)置,目的是進(jìn)行對(duì)比觀察),即分別實(shí)現(xiàn)2.5Hz、1Hz和0.5Hz頻率亮、滅的“頻閃”效果(如圖3所示)。
圖3
3.程序的運(yùn)行調(diào)試
程序編寫(xiě)完畢之后,點(diǎn)擊“保存”按鈕,將程序保存為“四支小燈多線程”,接著點(diǎn)擊右上角的“運(yùn)行”按鈕進(jìn)行程序的調(diào)試。此時(shí),主程序就會(huì)“同時(shí)”調(diào)用四個(gè)函數(shù)進(jìn)行多線程運(yùn)行,每個(gè)子線程函數(shù)都會(huì)“自私”地按照自己的指令來(lái)控制LED燈閃爍,互不干擾,我們就會(huì)看到四支不同顏色的LED燈各自以各自的頻率閃爍起來(lái)(如圖4所示),這就是古德微樹(shù)莓派多線程實(shí)現(xiàn)LED燈陣的“頻閃”效果。
圖4
責(zé)任編輯人:CC
-
led燈
+關(guān)注
關(guān)注
22文章
1592瀏覽量
108188 -
樹(shù)莓派
+關(guān)注
關(guān)注
117文章
1710瀏覽量
105760
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論