眾所周知,“線程”指的是一組可以在程序中獨(dú)立執(zhí)行的計算機(jī)指令集合,引入“多線程”運(yùn)行機(jī)制的根本目的是為了更好利用CPU資源。如果程序在運(yùn)行過程中只有一個線程的話(單線程方式),那么下一個任務(wù)必須要等到上一個任務(wù)結(jié)束后才能進(jìn)行,這是一種低效的“串行”流程;如果使用多線程,就可以在主線程執(zhí)行任務(wù)的同時來“并行”執(zhí)行其他的任務(wù),不需要等待時間,從而極大提高了程序的運(yùn)行效率。
【實(shí)驗(yàn)?zāi)康摹?/p>
在樹莓派中通過古德微機(jī)器人平臺編程,實(shí)現(xiàn)多線程控制LED燈陣彼此獨(dú)立地運(yùn)行,各個LED燈的閃亮頻率均不同(“頻閃”效果),驗(yàn)證計算機(jī)編程中多線程運(yùn)行機(jī)制的高效性。
【實(shí)驗(yàn)器材及連接】
樹莓派一塊,古德微擴(kuò)展板一塊,紅、綠、黃、藍(lán)色LED燈各一支。
首先將古德微擴(kuò)展板正確插入樹莓派中,注意要四周均勻小心用力,然后將四支LED燈分別插入到擴(kuò)展板的5號、6號、12號和16號插孔,注意LED燈的長腳為正極、短腳為負(fù)極,必須正確插入插孔上標(biāo)注有“+”、“-”標(biāo)記的對應(yīng)處,最后將樹莓派電源線連接好,通電啟動系統(tǒng)(如圖1所示)。
圖1
【平臺編程與程序運(yùn)行調(diào)試】
1.登錄古德微機(jī)器人平臺
使用瀏覽器訪問http://www.gdwrobot.cn,點(diǎn)擊右上角的“登錄”并輸入自己的賬號和密碼,然后點(diǎn)擊“設(shè)備控制”進(jìn)入“積木”編程界面,再點(diǎn)擊“連接設(shè)備”按鈕出現(xiàn)五個連續(xù)的綠色對勾提示,表示連接成功(如圖2所示)。

圖2
2.進(jìn)行“積木”編程
“積木”編程非常簡單,我們只需將對應(yīng)的命令語句塊從左側(cè)“積木”區(qū)域拖至中央空白編程區(qū)進(jìn)行組合即可。程序包括主程序和四個函數(shù)共兩大部分,主程序是順序執(zhí)行的四個子線程調(diào)用語句塊,操作方法是從左側(cè)的“線程”處將“添加子線程,線程函數(shù)名為‘xxx’”拖入編程區(qū),注意其中的線程函數(shù)名必須是英文名稱。每個子線程就對應(yīng)主程序待調(diào)用的一個函數(shù),而每一個函數(shù)都是控制所對應(yīng)的LED燈亮滅交替,通過設(shè)置不同的等待時間來實(shí)現(xiàn)不同的閃爍頻率,以第一個LED5函數(shù)為例:
首先調(diào)用“控制5號小燈亮”命令語句,然后通過“等待0.1秒”命令語句讓其保持通電的發(fā)光狀態(tài)持續(xù)0.1秒;接著“控制5號小燈滅”,第二條“等待0.1秒”命令語句的作用是保持該LED的熄滅狀態(tài)持續(xù)0.1秒。四個命令語句循環(huán)執(zhí)行,最終實(shí)現(xiàn)的效果就是控制插在古德微擴(kuò)展5號插孔的紅色LED燈先亮0.1秒、再滅0.1秒,然后再亮0.1秒、滅0.1秒……即控制該LED燈以5Hz的頻率(周期是兩個0.1秒相加)進(jìn)行“頻閃”。其它三支LED燈的控制函數(shù)分別對應(yīng)LED6、LED12和LED16,語句基本一致,惟一不同的是等待的時間分別設(shè)置為0.2秒、0.5秒和1秒(可自行設(shè)置,目的是進(jìn)行對比觀察),即分別實(shí)現(xiàn)2.5Hz、1Hz和0.5Hz頻率亮、滅的“頻閃”效果(如圖3所示)。

圖3
3.程序的運(yùn)行調(diào)試
程序編寫完畢之后,點(diǎn)擊“保存”按鈕,將程序保存為“四支小燈多線程”,接著點(diǎn)擊右上角的“運(yùn)行”按鈕進(jìn)行程序的調(diào)試。此時,主程序就會“同時”調(diào)用四個函數(shù)進(jìn)行多線程運(yùn)行,每個子線程函數(shù)都會“自私”地按照自己的指令來控制LED燈閃爍,互不干擾,我們就會看到四支不同顏色的LED燈各自以各自的頻率閃爍起來(如圖4所示),這就是古德微樹莓派多線程實(shí)現(xiàn)LED燈陣的“頻閃”效果。
圖4
責(zé)任編輯人:CC
-
led燈
+關(guān)注
關(guān)注
22文章
1606瀏覽量
111861 -
樹莓派
+關(guān)注
關(guān)注
122文章
2078瀏覽量
110470
發(fā)布評論請先 登錄
#硬聲創(chuàng)作季 樹莓派教程:14微課:古德微樹莓派多線程實(shí)現(xiàn)LED燈陣“頻閃”
用樹莓派2控制一個LED燈
利用線程的互斥實(shí)現(xiàn)串口多線程收發(fā)數(shù)據(jù)
LED頻閃燈的制作方法
LED頻閃警示燈密封性測試解決方案的介紹
關(guān)閉樹莓派電源LED燈,禁用wifi、藍(lán)牙
關(guān)閉樹莓派的電源指示燈(紅)和狀態(tài)指示燈(黃)
使用樹莓派GPIO口點(diǎn)亮雙色LED燈
如何利用樹莓派多線程實(shí)現(xiàn)LED燈陣頻閃
評論