眾所周知,“線程”指的是一組可以在程序中獨(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瀏覽量
108407 -
樹(shù)莓派
+關(guān)注
關(guān)注
117文章
1710瀏覽量
105875
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
![](https://file1.elecfans.com/web2/M00/84/4A/wKgaomRmAh6ABAl0AABN4q0KEMQ969.png)
#硬聲創(chuàng)作季 樹(shù)莓派教程:14微課:古德微樹(shù)莓派多線程實(shí)現(xiàn)LED燈陣“頻閃”
用樹(shù)莓派2控制一個(gè)LED燈
關(guān)閉樹(shù)莓派電源LED燈
利用線程的互斥實(shí)現(xiàn)串口多線程收發(fā)數(shù)據(jù)
LED頻閃燈的制作方法
![<b class='flag-5'>LED</b><b class='flag-5'>頻</b><b class='flag-5'>閃</b><b class='flag-5'>燈</b>的制作方法](https://file1.elecfans.com//web2/M00/A5/90/wKgZomUMOQSAU93pAACp8pzj5iM118.jpg)
五路藍(lán)牙智能無(wú)頻閃LED燈電源方案
LED頻閃警示燈密封性測(cè)試解決方案的介紹
關(guān)閉樹(shù)莓派電源LED燈,禁用wifi、藍(lán)牙
![關(guān)閉<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>電源<b class='flag-5'>LED</b><b class='flag-5'>燈</b>,禁用wifi、藍(lán)牙](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
關(guān)閉樹(shù)莓派的電源指示燈(紅)和狀態(tài)指示燈(黃)
![關(guān)閉<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>的電源指示<b class='flag-5'>燈</b>(紅)和狀態(tài)指示<b class='flag-5'>燈</b>(黃)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用樹(shù)莓派GPIO口點(diǎn)亮雙色LED燈
![使用<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>GPIO口點(diǎn)亮雙色<b class='flag-5'>LED</b><b class='flag-5'>燈</b>](https://file1.elecfans.com/web2/M00/8B/F9/wKgaomSjkdaACxA2AANesavyNq0885.jpg)
基于樹(shù)莓派點(diǎn)亮RGB三基色LED燈
![基于<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>點(diǎn)亮RGB三基色<b class='flag-5'>LED</b><b class='flag-5'>燈</b>](https://file1.elecfans.com/web2/M00/8B/F7/wKgZomSjkUqAFIYVAALvY0rnrWo633.jpg)
評(píng)論