• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      藍橋杯青少年創(chuàng)意編程大賽樹莓派模擬題四:“絢麗彩燈”

      2021-07-01 10:55牟曉東
      電腦報 2021年7期
      關(guān)鍵詞:燈帶數(shù)碼管彩燈

      牟曉東

      本文以模擬題“絢麗彩燈”為例,進行題目解析。

      第四題“絢麗彩燈”(難度系數(shù)4,30個計分點):

      每逢節(jié)日,可以看到商場各地都掛著絢麗的彩燈,它們通過顏色變換,可以實現(xiàn)各種各樣的絢麗效果,現(xiàn)制作一些絢麗的彩燈效果。

      硬件準備:

      1個按鍵模塊【接入25#引腳】,1個數(shù)碼管【接入IIC接口】,燈帶(60顆燈珠)【接入18#引腳】,杜邦線若干。

      編程實現(xiàn):

      (1)程序開始時,數(shù)碼管只有最后一位顯示0,燈帶熄滅;

      (2)當(dāng)按鍵每被按一次時,數(shù)碼管最后一位顯示的數(shù)字都在之前的基礎(chǔ)上加1,當(dāng)數(shù)碼管最后一位顯示4時,再按一次,數(shù)碼管顯示1,如此重復(fù)1-4的顯示;

      (3)當(dāng)數(shù)碼管顯示1的時候,燈帶前面30個燈亮紅色,后面30個燈亮藍色;

      (4)當(dāng)數(shù)碼管顯示2的時候,燈帶以紅色和藍色交叉顯示,最前面為紅色;

      (5)當(dāng)數(shù)碼管顯示3的時候,燈帶以紅色和藍色交叉顯示,每隔0.5秒,紅色和藍色位置交換一次;

      (6)當(dāng)數(shù)碼管顯示4的時候,燈帶從中間位置向兩邊同時每隔0.1秒各點亮一個燈珠,向前點亮燈珠的顏色為紅色,向后點亮燈珠的顏色為藍色;

      (7)如此循環(huán)。

      判斷標準:

      2分:實現(xiàn)“編程實現(xiàn)”中的(1);

      5分:實現(xiàn)“編程實現(xiàn)”中的(2);

      5分:實現(xiàn)“編程實現(xiàn)”中的(3);

      5分:實現(xiàn)“編程實現(xiàn)”中的(4);

      5分:實現(xiàn)“編程實現(xiàn)”中的(5);

      5分:實現(xiàn)“編程實現(xiàn)”中的(6);

      3分:完全符合題意。

      1.審清題意,抓住關(guān)鍵點

      “絢麗彩燈”的考點有分支選擇結(jié)構(gòu)的嵌套、按鍵模塊的循環(huán)計數(shù)和燈帶的初始化設(shè)置及各種效果的實現(xiàn)。此外,還要注意數(shù)碼管的初始化和顯示控制方法。

      (1)分支選擇結(jié)構(gòu)的最“內(nèi)層”嵌套是匹配按鍵模塊的1-4按下次數(shù),對應(yīng)控制數(shù)碼管最低位(3號)顯示該數(shù)字,以及燈帶的一種顯示效果。

      (2)按鍵模塊的按下次數(shù)最大值為4,必須使用條件語句判斷其是否超出范圍,當(dāng)該值大于4時需要使用賦值語句重新將其值改寫為1,進行下一次的循環(huán)。

      (3)燈帶的60顆燈珠編號為0-59,每顆燈珠均可獨立控制其顯示顏色(也可用RGB值來控制);當(dāng)數(shù)碼管分別顯示1-4時,對應(yīng)燈帶的四種顯示效果中多次提到“前30、后30”、“中間位置”,編程時注意分別使用0-29和30-59來區(qū)分前后兩大組燈珠。

      2.實驗器材的安裝

      按照題目要求,首先將按鍵模塊接入25#引腳;燈帶需要接入18#引腳,注意燈帶的三根異色引線的標注,通常是紅色為+5V(電源正極)、白色為GND、綠色為Din(數(shù)字信號輸入),對應(yīng)擴展板18#引腳的VCC、GND和D(數(shù)字端);由于燈帶接入18#引腳占用了IIC接口Up列一側(cè)的空間,因此數(shù)碼管必須要旋轉(zhuǎn)180度,接至IIC接口Down列對角線位置;最后,給樹莓派接通電源,啟動操作系統(tǒng)(如圖1)。

      3.編程實現(xiàn)“絢麗彩燈”

      (1)進入平臺編程環(huán)境

      登錄古德微機器人平臺切換至“積木”編程區(qū)。

      (2)編寫“初始化數(shù)碼管”函數(shù)

      建立函數(shù)“初始化數(shù)碼管”,先關(guān)閉0-3號數(shù)碼管,再設(shè)置亮度為1(對四個數(shù)碼管均有效);最后設(shè)置3號數(shù)碼管顯示“0”(不顯示點),實現(xiàn)題目中(1)對數(shù)碼管“只有最后一位顯示0”的顯示要求(如圖2)。

      (3)編寫“初始化燈帶”函數(shù)

      燈帶的初始化操作需要先使用“設(shè)置GPIO18可控制燈帶60個燈并設(shè)置亮度為50”語句;然后構(gòu)建一個循環(huán)結(jié)構(gòu),控制變量i從0增至59(步長為1),依次設(shè)置每個燈珠的顏色為黑色,實現(xiàn)題目中(1)對燈帶“熄滅”的要求(黑色即“熄滅”)。特別要注意的是,最后必須添加一條“燈帶刷新顯示”語句,否則之前對燈帶的設(shè)置控制均是無效的(如圖3)。

      (4)構(gòu)建循環(huán)結(jié)構(gòu)中的多分支選擇嵌套結(jié)構(gòu)

      在主程序中分別調(diào)用“初始化數(shù)碼管”和“初始化燈帶”函數(shù)后,建立變量“數(shù)字”并賦值為0,用來存儲按鍵次數(shù)(數(shù)字1-4);接著建立“重復(fù)當(dāng)真”的循環(huán)結(jié)構(gòu),進行外層分支選擇的判斷,條件為是否從25號按鍵獲取到“按下”動作;然后,將變量“數(shù)字”進行“自增1”賦值運算,并且通過一個“如果…執(zhí)行…”語句設(shè)置其運算規(guī)律(大于4時重新“回歸”為1);通過“設(shè)置3號數(shù)碼管顯示‘?dāng)?shù)字,并顯示點‘0”語句,將變量數(shù)字的值根據(jù)變化(1、2、3、4)均在數(shù)碼管的最低位上顯示輸出。

      建立“如果…執(zhí)行…否則如果…執(zhí)行……”四分支選擇結(jié)構(gòu),準備實現(xiàn)題目中(3)-(6)所要求的燈帶四種顯示效果:

      ①當(dāng)數(shù)字為1時,為了實現(xiàn)“前面30個燈亮紅色、后面30個燈亮藍色”(注意二者應(yīng)該是同步進行的)效果,應(yīng)該只建立一個循環(huán)結(jié)構(gòu)來控制兩組燈珠;如果是兩個循環(huán)結(jié)構(gòu)來分別控制兩組燈珠的話,效果就變成了先亮一組30個、再亮另一組30個??刂谱兞縤從初值0自增至終值29(步長為1),前30個燈珠設(shè)置為亮紅色;后30個燈珠的序號是在前30個的基礎(chǔ)上對應(yīng)“加30”,即“i+30”,設(shè)置為亮藍色。切記:最后一定要添加一條“燈帶刷新顯示”語句(下同),控制燈帶發(fā)光。

      ②當(dāng)數(shù)字為2時,為了實現(xiàn)“以紅色和藍色交叉顯示且最前面為紅色”效果,同樣是只建立一個循環(huán)結(jié)構(gòu),注意變量i的取值范圍是從0至59,步長設(shè)置為2(實現(xiàn)奇偶數(shù)燈珠的“交叉”控制);排序為奇數(shù)的燈珠(編號為i)發(fā)光顏色設(shè)置為紅色,偶數(shù)燈珠(編號為“i+1”)發(fā)光顏色設(shè)置為藍色。

      ③當(dāng)數(shù)字為3時,為了實現(xiàn)“以紅色和藍色交叉顯示,每隔0.5秒,紅色和藍色位置交換一次”效果,需要建立兩個循環(huán)結(jié)構(gòu);相當(dāng)于重復(fù)執(zhí)行了兩次“數(shù)字為2時”的操作:先奇數(shù)燈珠發(fā)紅光、偶數(shù)燈珠發(fā)藍光,完成后停頓0.5秒,再奇數(shù)燈珠發(fā)藍光、偶數(shù)燈珠發(fā)紅光。

      ④當(dāng)數(shù)字為4時,為了實現(xiàn)“從中間位置向兩邊同時每隔0.1秒各點亮一個燈珠,向前點亮燈珠的顏色為紅色,向后點亮燈珠的顏色為藍色”效果,同樣是使用一個循環(huán)結(jié)構(gòu),注意變量i的取值范圍是從29至0(“每隔1”:步長為-1),第一組是從第29個燈珠向前發(fā)紅光,第二組是從第30個燈珠向后發(fā)藍光——特別要注意該組的編號構(gòu)建規(guī)則算式是“59-i”(如圖4)。

      (5)其他細節(jié)

      不管是主程序循環(huán)結(jié)構(gòu)的最后,還是各分支選擇結(jié)構(gòu)的最后(個別的還有中間位置),都需要考慮是否應(yīng)該添加等待語句,作用同樣是防止循環(huán)過多和過快地占用系統(tǒng)資源。

      4.運行程序,檢測“絢麗彩燈”

      在平臺編程環(huán)境中點擊“連接設(shè)備”,正常的話再點擊“運行”按鈕,對照題目進行多次測試,不斷按下按鍵,數(shù)碼管重復(fù)顯示1、2、3、4,同時燈帶也進行亮紅燈和藍燈等不同效果的對應(yīng)顯示,實現(xiàn)了題目要求。

      最后將程序按照要求保存為“04.txt”,下載并上傳至考試系統(tǒng)中即可。

      猜你喜歡
      燈帶數(shù)碼管彩燈
      LED COB燈帶在LED燈帶中演繹及應(yīng)用
      物理項目教學(xué)設(shè)計,用單片機控制四位數(shù)碼管顯示
      彩燈
      LED燈串顯示屏的設(shè)計與應(yīng)用
      藍橋杯樹莓派模擬題解析三:“電子測距儀”
      樹莓派自定義“燈帶函數(shù)”
      便攜式可收放LED燈帶
      Arduino編程
      MC9S08FL16單片機數(shù)碼管靜態(tài)顯示分析
      有多少盞彩燈
      阿合奇县| 铜川市| 泰宁县| 开化县| 磴口县| 平谷区| 商城县| 镇雄县| 扎兰屯市| 万安县| 柳州市| 凌源市| 陆河县| 高州市| 友谊县| 循化| 新昌县| 高淳县| 阿城市| 昌乐县| 巴马| 仙桃市| 成武县| 麻栗坡县| 喀喇沁旗| 伊宁县| 东兰县| 缙云县| 和田市| 鹿邑县| 吉隆县| 吴川市| 塔城市| 郁南县| 禹州市| 和林格尔县| 枣强县| 页游| 四平市| 塘沽区| 宁陕县|