亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        樹莓派自定義“燈帶函數(shù)”

        2021-07-07 05:58:35牟曉東
        電腦報 2021年17期
        關(guān)鍵詞:命令行燈珠燈帶

        牟曉東

        眾所周知,函數(shù)是程序設(shè)計語言的“基石”,即“組織好的、可重復(fù)使用的、用來實現(xiàn)單一或相關(guān)功能的代碼段”。Python本身提供了功能豐富的“內(nèi)置函數(shù)”,可以在命令行模式中輸入“dir (__builtins__)”命令進行查看,例如求絕對值函數(shù)、求最大值和最小值函數(shù),還包括input輸入和print輸出函數(shù)等(如圖1)。

        此時,可以直接在命令行交互模式下使用內(nèi)置函數(shù),比如輸入“abs(-7)”來求解-7的絕對值,回車后就會返回數(shù)值7;輸入“max(0,6,-99,28)”求解四個數(shù)中的最大值,就會返回數(shù)值28。另外,Python還支持用戶根據(jù)自己的不同需求進行自定義函數(shù)操作,比如編寫一個能夠同時求解二數(shù)之和、之差的函數(shù)sum_sub():

        def sum_sub(a,b):

        return(a+b,a-b)

        輸入“sum_sub(8,5)”進行測試,回車后就會返回兩個結(jié)果:13和3(如圖2)。

        在開源硬件編程中使用Python可以靈活地控制各種周邊硬件,從而實現(xiàn)更為豐富的功能。我們在樹莓派中使用Python進行函數(shù)的自定義編寫,控制燈帶模仿現(xiàn)實生活中十字路口的紅綠燈,分別是單函數(shù)“帶參”的紅綠燈帶和雙函數(shù)“無參”的紅綠燈帶。

        1.準備工作

        將可編程ws281x燈帶通過古德微擴展板的18號接口與樹莓派連接,注意燈帶的三根引線分別標注+5V、GND和Din,不要接反。

        在樹莓派中通過Python編程控制燈帶需要安裝rpi_ws281x庫模塊,因此需要通過“Windows的遠程桌面”連接樹莓派。在控制終端命令行模式中輸入命令:“sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixel”,回車后等待進度條到達100%后會有“Successfully installed”的提示(如圖3)。

        2.Python單函數(shù)“帶參”控制紅綠燈帶

        (1)首先,以“ws”為別名導(dǎo)入rpi_ws281x庫:“import rpi_ws281x as ws”,再導(dǎo)入time庫中的sleep函數(shù):“from time import sleep”;接著,設(shè)置燈帶中激活的“燈珠”數(shù)量LED_COUNT值為60:“LED_COUNT = 60”,燈帶接入的端口號LED_PIN是18號:“LED_PIN = 18”,并且創(chuàng)建燈帶對象strip,實例化PixelStrip,參數(shù)為LED_COUNT和LED_PIN:“strip = ws.PixelStrip(LED_COUNT, LED_PIN)”,語句“strip.begin()”的作用是對燈帶進行初始化。

        (2)接下來自定義“帶參”(參數(shù)為color)的lights()函數(shù):“def lights(color):”,注意后面有英文冒號。

        (3)建立四分支選擇結(jié)構(gòu),特別要注意Python的“四空格”縮進。

        第一分支為“if color == 'red':”,即函數(shù)參數(shù)為“red”時,使用循環(huán)結(jié)構(gòu)控制60個燈珠全部發(fā)紅光,RGB值為(100,0,0);不要忘記對燈帶進行刷新操作:“strip.show()”。

        第二和第三分支分別為“elif color == 'green':”和“elif color == 'yellow':”,即函數(shù)參數(shù)為“green”和“yellow”時,使用循環(huán)結(jié)構(gòu)控制60個燈珠全部發(fā)綠光、黃光,RGB值分別為(0,100,0) 和(100,100,0);也要對燈帶進行刷新操作:“strip.show()”。

        第四分支為“else:”,即函數(shù)參數(shù)為空字符串,控制60個燈珠全部熄滅,RGB值為(0,0,0)。

        (4)主程序是一個“while True:”循環(huán)結(jié)構(gòu),通過傳遞不同的參數(shù)對lights()函數(shù)進行調(diào)用。先傳遞“green”參數(shù)亮綠燈:“l(fā)ights('green')”,持續(xù)4秒鐘:“sleep(4)”;再建立執(zhí)行三次的循環(huán)結(jié)構(gòu):“for i in range(3):”,傳遞參數(shù)為空字符串,關(guān)閉燈帶:“l(fā)ights(' ')”,0.1秒后再次亮起綠燈:“l(fā)ights('green')”,持續(xù)0.1秒后傳遞“yellow”參數(shù)亮黃燈:“l(fā)ights('yellow')”;持續(xù)2秒后傳遞“red”參數(shù)亮紅燈:“l(fā)ights('red')”,再持續(xù)5秒后結(jié)束本次循環(huán);進入下一次循環(huán):亮綠燈……

        (5)保存程序為test_lights11.py,在命令行窗口中輸入命令“sudo python3 test_lights11.py”運行測試,一個燈帶式的“紅綠燈”開始工作起來,這就是Python單函數(shù)“帶參”紅綠燈帶(如圖4)。

        3.Python雙函數(shù)“無參”控制紅綠燈帶

        (1)第一部分庫模塊的導(dǎo)入和對燈帶進行初始化的代碼與剛才一致,直接復(fù)制和粘貼。整條燈帶的60個燈珠編號為0-59,將其均分為四組:0-14、15-29、30-44和45-59,其中的0-14和30-44對應(yīng)“十字路口”的X方向,而15-29和45-59則對應(yīng)Y方向。

        (2)定義X方向上的x_lights()函數(shù):“def x_lights():”:

        第一部分的“for i in range(15)”“亮綠燈”(0,100,0)代碼,包括0-14、30-44兩組燈珠,注意30-44的表示方法是“i+30”,也就是同時控制X方向馬路正面和對面;不要忘記添加燈帶刷新代碼“strip.show()”,綠燈保持亮5秒:“sleep(5)”,省略了綠燈閃爍過程(可自行添加內(nèi)循環(huán)來實現(xiàn));

        第二部分“亮黃燈”(100,100,0)代碼,復(fù)制粘貼后,只須改RGB顏色值即可,黃燈保持亮2秒:“sleep(2)”;

        第三部分“亮紅燈”代碼,也是粘貼操作,改RGB值為(100,0,0),注意最后不必使用sleep()控制紅燈持續(xù)亮的時間。

        (3)定義Y方向上的y_lights()函數(shù):“def y_lights():”:

        復(fù)制x_lights()函數(shù)粘貼為y_lights()函數(shù),只修改三個循環(huán)結(jié)構(gòu)中range()的參數(shù)為“15,30”即可,因為Y方向控制的是15-29、45-59兩組燈珠,同樣也是使用“i+30”來表示45-59。

        兩個函數(shù)代碼編寫完畢,最后寫主程序的“while True:”循環(huán)結(jié)構(gòu),直接調(diào)用x_lights()和y_lights()即可。

        保存程序為test_lights12.py,在命令行窗口中輸入命令“sudo python3 test_lights12.py”運行測試,模擬十字路口的四個方向紅綠燈工作過程:紅燈停、綠燈行,黃燈亮了等一等……這就是Python雙函數(shù)“無參”紅綠燈帶(如圖5)。

        猜你喜歡
        命令行燈珠燈帶
        生活中的周期問題
        電路狀態(tài)展示教具制作
        今日自動化(2022年7期)2022-09-08 04:18:12
        圖形化編程與炫彩多變的燈珠矩陣
        LED 成品燈具中鋁基板通用不同品牌3030-LED燈珠焊盤的設(shè)計
        便攜式可收放LED燈帶
        Windows 10新版CMD更新
        隱形燈帶點亮家的光芒
        小米雜貨鋪又添新品:支持1600萬種色彩的燈帶
        流行色(2016年8期)2016-10-20 00:09:30
        Linux系統(tǒng)下GRIB2格式GFS資料轉(zhuǎn)為GRIB1格式的方法詳解
        ACME LED—ST1000/LED—ST2000燈具
        演藝科技(2014年9期)2015-04-02 16:21:40
        亚洲视频专区一区二区三区| 国产午夜福利精品久久2021| 欧美在线三级艳情网站| 亚洲午夜成人片| 国内精品嫩模av私拍在线观看| av免费网站免费久久网| 婷婷久久国产综合精品| 午夜理论片yy6080私人影院| 边做边流奶水的人妻| 久久精品久久精品中文字幕| 娇柔白嫩呻吟人妻尤物| 一区二区三区熟妇人妻18| 日本一区二区三区清视频| 亚洲国产av自拍一区| 亚洲精品无码久久久久去q| 久久综合九色综合网站| 国产免费午夜a无码v视频| 国产成人亚洲综合无码DVD| 一片内射视频在线观看| 人日本中文字幕免费精品| 国产av自拍视频在线观看| 六月丁香综合在线视频| 国产成a人亚洲精v品无码性色| 中文字幕无码人妻丝袜| 亚洲国产精品一区二区第一| 国产一区二区在线免费视频观看| 欧美性猛交xxx嘿人猛交| 中文字幕欧美人妻精品一区 | 一二三四在线视频社区3| 91精品91| 亚洲24小时免费视频| av人摸人人人澡人人超碰下载| 成人国内精品久久久久一区| 少妇太爽了在线观看免费视频| 亚洲区精选网址| 午夜少妇高潮在线观看视频| 一边摸一边抽搐一进一出视频| 4hu四虎永久在线观看| 国产精品无需播放器| 精品国产自拍在线视频| 亚洲视频一区二区免费看|