• 
    

    
    

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

      ?

      藍(lán)橋杯樹(shù)莓派模擬題解析三:“電子測(cè)距儀”

      2021-07-27 23:03:58牟曉東
      電腦報(bào) 2021年6期
      關(guān)鍵詞:測(cè)距儀數(shù)碼管按鍵

      牟曉東

      本文以模擬題“電子測(cè)距儀”為例,進(jìn)行題目解析。

      第三題“電子測(cè)距儀”(難度系數(shù)3,25個(gè)計(jì)分點(diǎn)):

      在日常生活中,我們經(jīng)常會(huì)需要測(cè)量距離,電子測(cè)距儀作為一種測(cè)距設(shè)備,可以很方便地幫助我們測(cè)出距離,現(xiàn)制作一個(gè)簡(jiǎn)易的電子測(cè)距儀。

      硬件準(zhǔn)備:

      1個(gè)按鍵模塊【接入25#引腳】,1個(gè)數(shù)碼管【接入IIC接口】,1個(gè)超聲波傳感器【接入超聲波專用接口】,杜邦線若干。

      編程實(shí)現(xiàn):

      (1)程序開(kāi)始時(shí),數(shù)碼管沒(méi)有顯示;

      (2)當(dāng)按鍵按下并且按住時(shí),數(shù)碼管顯示當(dāng)前設(shè)備測(cè)試的距離值(只顯示整數(shù)部分),測(cè)量顯示的距離范圍為2-400cm;

      (3)當(dāng)測(cè)量到的距離大于400或者小于2cm時(shí),數(shù)碼管顯示4個(gè)0;

      (4)當(dāng)按鍵松開(kāi)時(shí),數(shù)碼管不顯示;

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

      判斷標(biāo)準(zhǔn):

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

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

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

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

      5分:完全符合題意。

      1.審題

      “電子測(cè)距儀”的關(guān)鍵考點(diǎn)是使用分支選擇結(jié)構(gòu)的嵌套,將超聲波傳感器檢測(cè)到的不同范圍距離值在數(shù)碼管上進(jìn)行顯示;另外,還必須要特別注意數(shù)碼管的使用前設(shè)置(如先關(guān)閉再調(diào)節(jié)亮度等),以及如何單獨(dú)控制各個(gè)數(shù)字位的數(shù)據(jù)顯示。

      (1)通常使用的HC-SR04超聲波傳感器的有效測(cè)距范圍為2-400cm,數(shù)碼管則最多可顯示四位數(shù)字;因此,題目中的要求(2)其實(shí)也只是使用了右側(cè)的1號(hào)、2號(hào)和3號(hào)低位數(shù)碼管,最左側(cè)的0號(hào)是處于“空閑”狀態(tài)。

      (2)超聲波傳感器進(jìn)行測(cè)距的返回值為9位小數(shù),必須在輸出至數(shù)碼管顯示前進(jìn)行“取整”操作;還要將這個(gè)三位數(shù)進(jìn)行百位、十位和個(gè)位的逐一“分解”,分別輸出至數(shù)碼管的1號(hào)、2號(hào)、3號(hào),這步操作是該題的難點(diǎn),需要使用數(shù)學(xué)中的“除法”和“取余數(shù)”相結(jié)合的操作方法來(lái)實(shí)現(xiàn)。

      (3)按鍵的編程控制部分需要使用“獲取25號(hào)按鈕檢測(cè)結(jié)果”語(yǔ)句,其返回結(jié)果為0和1,分別對(duì)應(yīng)“松開(kāi)”和“按下”兩種狀態(tài)。

      2.實(shí)驗(yàn)器材的安裝

      按照題目要求,將按鍵模塊接入25號(hào)的三個(gè)引腳;超聲波傳感器有四個(gè)引腳,接入專用接口(擴(kuò)展板的20和21號(hào));將數(shù)碼管的四個(gè)引腳(VCC、GND、SCL和SDA)接入IIC接口(Up列);最后,給樹(shù)莓派接通電源,啟動(dòng)操作系統(tǒng)(如圖1)。

      3.編程實(shí)現(xiàn)“電子測(cè)距儀”

      (1)進(jìn)入平臺(tái)編程環(huán)境

      訪問(wèn)古德微機(jī)器人平臺(tái)(www.gdwrobot.cn)。

      (2)數(shù)碼管的“預(yù)處理”

      數(shù)碼管在調(diào)用前必須要先進(jìn)行“關(guān)閉”的操作,而且題目(4)也明確有“按鍵松開(kāi)時(shí)不顯示”的要求;由于數(shù)碼管的關(guān)閉需要逐個(gè)進(jìn)行,為減少代碼數(shù)量,此時(shí)應(yīng)該考慮建立函數(shù)“關(guān)閉數(shù)碼管”,順序關(guān)閉0-3號(hào)數(shù)碼管。同時(shí),在程序開(kāi)始調(diào)用該函數(shù)后,添加一條“設(shè)置0號(hào)數(shù)碼管的亮度為1”語(yǔ)句。

      (3)構(gòu)建“外層”分支選擇結(jié)構(gòu)

      建立變量“按鍵”,為其賦值為“獲取25號(hào)按鈕檢測(cè)結(jié)果”;接著建立“如果…執(zhí)行…否則…”分支選擇結(jié)構(gòu),對(duì)變量“按鍵”的值是否為1進(jìn)行判斷,是的話表示為“按下”狀態(tài),準(zhǔn)備實(shí)現(xiàn)題目中(2)和(3)的要求;否的話(值為0),關(guān)閉數(shù)碼管顯示,實(shí)現(xiàn)題目中(4)的要求。

      (4)構(gòu)建“內(nèi)層”分支選擇結(jié)構(gòu)

      如果判斷按鍵為“按下”的狀態(tài),則建立變量“距離”,賦值為“超聲波測(cè)距”,并且增加“獲取整數(shù)”處理后進(jìn)行調(diào)試信息的LOG區(qū)輸出;接著再構(gòu)建“如果…執(zhí)行…否則…”分支選擇結(jié)構(gòu),判斷超聲波測(cè)量的距離值是否在2-400cm的正常測(cè)量范圍內(nèi);否的話,使用“設(shè)置0/1/2/3號(hào)數(shù)碼管顯示0”四個(gè)語(yǔ)句,控制顯示4個(gè)0,實(shí)現(xiàn)題目(3)的要求;是的話,建立變量“百位”、“十位”和“個(gè)位”:

      為變量“百位”賦值為“距離除以100”,取出該三位數(shù)的最高位;

      為變量“十位”賦值為先“距離除以100”后取余數(shù)、再將余數(shù)“除以10”;

      為變量“個(gè)位”賦值為先“距離除以10”、再將商“取余數(shù)”。

      最后,分別使用三個(gè)“設(shè)置1/2/3號(hào)數(shù)碼管顯示百位/十位/個(gè)位”,其中的“并顯示點(diǎn)0”的意思是控制不顯示數(shù)碼管中的小數(shù)點(diǎn)。

      (5)完善細(xì)節(jié)

      將相關(guān)語(yǔ)句按照題目要求放置于“重復(fù)當(dāng)真”的循環(huán)結(jié)構(gòu)中,在循環(huán)體內(nèi)的兩層分支選擇結(jié)構(gòu)的最后均添加一條“等待0.1秒”語(yǔ)句,防止循環(huán)過(guò)快(如圖2)。

      4.調(diào)試程序

      在平臺(tái)編程環(huán)境中點(diǎn)擊“連接設(shè)備”,正常的話再點(diǎn)擊“運(yùn)行”按鈕,對(duì)照題目中的各種情況進(jìn)行多次測(cè)試,包括程序開(kāi)始和按鍵松開(kāi)時(shí)“數(shù)碼管不顯示”、按鍵按下并且按住時(shí)的正常測(cè)距范圍(2-400cm)顯示實(shí)際測(cè)量值與超范圍時(shí)顯示4個(gè)0(如圖3),均實(shí)現(xiàn)了題目要求。

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

      5.程序“升級(jí)”

      程序代碼仍然可以進(jìn)行兩處改寫(xiě)“升級(jí)”:

      一是不建立變量“按鍵”,直接在外層分支選擇結(jié)構(gòu)中將“獲取25號(hào)按鈕檢測(cè)結(jié)果”作為判斷條件,因?yàn)樵摲祷刂抵挥?和1,與按鍵的“松開(kāi)”與“按下”是對(duì)應(yīng)的——數(shù)值“1”在很多編程語(yǔ)言中都是表示邏輯真;二是將數(shù)碼管顯示0的四行語(yǔ)句從主程序中去除,將它們?cè)黾又列潞瘮?shù)“數(shù)碼管顯示0”中,雖然在主程序中只調(diào)用一次,但整體的簡(jiǎn)潔性會(huì)更好(如圖4)。

      再次運(yùn)行程序,同樣也能夠?qū)崿F(xiàn)題目要求。

      猜你喜歡
      測(cè)距儀數(shù)碼管按鍵
      基于cSVB算法的DME脈沖干擾抑制方法
      基于有限狀態(tài)機(jī)的按鍵檢測(cè)程序設(shè)計(jì)
      電子制作(2021年3期)2021-06-16 03:14:26
      DME/N詢問(wèn)脈沖波形優(yōu)化與計(jì)算
      Arduino編程
      電腦報(bào)(2019年2期)2019-09-10 07:22:44
      MC9S08FL16單片機(jī)數(shù)碼管靜態(tài)顯示分析
      單片機(jī)控制的四位數(shù)碼管動(dòng)態(tài)顯示編程
      基于Qt的數(shù)碼管數(shù)字編碼系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      一種多方向?qū)Ч獍存I結(jié)構(gòu)設(shè)計(jì)
      電子制作(2016年1期)2016-11-07 08:43:05
      基于JADE的測(cè)距儀脈沖干擾抑制方法
      基于小波變換的測(cè)距儀脈沖干擾抑制方法
      双牌县| 三江| 昌黎县| 高淳县| 三门峡市| 光泽县| 济南市| 吉木乃县| 锡林浩特市| 泰兴市| 仙桃市| 梧州市| 思茅市| 竹溪县| 双牌县| 舒城县| 吉隆县| 锡林郭勒盟| 萝北县| 沭阳县| 汤阴县| 同江市| 谷城县| 克东县| 靖江市| 南城县| 苍梧县| 五指山市| 大方县| 山东省| 泸水县| 龙游县| 南岸区| 博野县| 常宁市| 湟中县| 天祝| 武义县| 德清县| 买车| 长春市|