0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在樹莓派中使用Python編程實現(xiàn)對LED燈的控制

h1654155282.3538 ? 來源:電子報 ? 作者:h1654155268.1688 ? 2021-06-06 17:51 ? 次閱讀

一、樹莓派Python語言編程

樹莓派是一塊僅為信用卡般大小的微型電腦,可用于嵌入式開發(fā)和計算機編程,目前在中小學(xué)創(chuàng)客教育活動領(lǐng)域有著極為廣泛的應(yīng)用。借助于擴展板及“積木”編程(比如古德微機器人網(wǎng)站),中小學(xué)生就可以比較輕松地使用樹莓派開發(fā)出例如超聲波測距、定時鬧鐘、聲控樓道燈、倒車提醒器等具有實際應(yīng)用價值的“產(chǎn)品”,甚至還有智能語音輸出、文字識別等更為高端的人工智能方面的應(yīng)用(與百度AI關(guān)聯(lián))。作為樹莓派的編程“黃金搭檔”,Python語言是目前正在廣泛使用的通用高級編程語言,它主要是為了強調(diào)代碼可讀性而開發(fā)的,語法允許使用更少的代碼行來表達(dá)概念;配合使用豐富的通用型傳感器和功能強大的語言“庫”模塊,使用Python語言編程進(jìn)行創(chuàng)客實驗已經(jīng)成為樹莓派最為強勢的應(yīng)用之一(如圖1所示)。

圖1

二、簡易紅綠燈實驗的預(yù)備知識

1.實驗的預(yù)期效果三只并列排布的LED燈依次閃亮——先是綠燈亮10秒,熄滅;接著是黃燈持續(xù)閃爍三次,每次1秒;然后是紅燈亮10秒,熄滅,再綠燈亮10秒……反復(fù)循環(huán)這一過程,這是生活中最為常見的十字路口一組紅綠燈中的雛形。

2.實驗器材樹莓派(帶電源線)主板一塊、紅黃綠LED燈各一只、六根母對母杜邦線,一臺聯(lián)網(wǎng)電腦(或直接給樹莓派接上顯示器、鼠標(biāo)和鍵盤)。

3.樹莓派的40Pin引腳樹莓派主板一側(cè)有兩排引腳,共40Pin(物理引腳BOARD編碼是從1依次到40)。在樹莓派的命令行窗口(通過遠(yuǎn)程桌面連接)中輸入“gpioreadall”命令,可顯示出所有的引腳編號及功能對應(yīng)關(guān)系(如圖2所示)。

pYYBAGC8moyAbMhHAAI_eSYMXdw668.png

圖2

通常情況下,Python語言編程庫都是使用BCM編碼(WiringPi編碼一般應(yīng)用于C++等編程平臺),這種編碼依據(jù)是BCM2835芯片的GPIO寄存器編號。如果按照功能來分類,除了8個GND(接地)端、3.3V和5V的電源正極各兩個之外,最為主要的部分就是17個可編程的GPIO(GeneralPurposeInput/Output:“通用型輸入輸出接口”),其BCM編碼分別是0-7、21-29兩組(物理引腳位置并非連續(xù)分布),可以用來驅(qū)動傳感器、舵機等各種外設(shè)。使用樹莓派GPIO引腳與外設(shè)連接時必須要仔細(xì),在確定好待用的BCM編碼號后再與物理引腳一一對應(yīng)。本次實驗所使用的紅、黃、綠三只LED燈的長引腳(正極)BCM編碼分別設(shè)置為5、6和13,所對應(yīng)的物理引腳BOARD編碼是29、31和33,分別用母對母杜邦線連接好;短引腳(負(fù)極)同樣使用杜邦線與三個GND連接,比如物理引腳BOARD編碼為25、30和39(如圖3所示)。

poYBAGC8mouAfGTxAAI6l9BjTRY207.png

圖3

三、在樹莓派中使用Python編程實現(xiàn)對LED燈的控制

1.測試控制一只紅色LED燈的亮與滅連接好實驗設(shè)備后給樹莓派通電開機,稍后在聯(lián)網(wǎng)電腦的遠(yuǎn)程桌面連接中進(jìn)入命令行模式(出現(xiàn)“pi@raspberrypi:~$”提示符),輸入“python”后回車進(jìn)入Python界面(命令提示符變?yōu)椤啊贰贰贰保?;接著再輸入“importRPi.GPIOasGPIO”命令,作用是以GPIO為名導(dǎo)入RPi.GPIO庫,無錯誤提示的話就代表Python已經(jīng)成功加載了RPi.GHIO庫(出現(xiàn)錯誤提示就必須按照提示進(jìn)行更新或安裝);值得一提的是,RPi.GPIO本身是Python的一個庫模塊,樹莓派官方系統(tǒng)默認(rèn)已經(jīng)安裝,共作用就是允許用戶從代碼中控制各GPIO引腳。接著,輸入“GPIO.setmode(GPIO.BCM)”命令,意思是“通知”Python準(zhǔn)備使用樹莓派的BCM編碼模式來對各引腳進(jìn)行控制。由于紅色LED燈正極是接在BCM編碼5號上,因此在使用Python編程控制時就必須通過數(shù)字“5”來控制(而不是其對應(yīng)的物理引腳BOARD編碼25)。輸入命令“GPIO.setup(5,GPIO.OUT)”,意思是設(shè)置5號GPIO為輸出端(GPIO.OUT);接著輸入“GPIO.output(5,GPIO.HIGH)”命令,設(shè)置5號GPIO輸出高電平(GPIO.HIGH)。此時回車執(zhí)行該命令后,樹莓派上的紅色LED燈就會瞬間被“點亮”(如圖4所示)。

pYYBAGC8mpmAX_1dAAJR6HAJq5w141.png

圖4

發(fā)光測試成功后,接著再發(fā)一條“GPIO.output(5,GPIO.LOW)”命令,設(shè)置5號GPIO輸出低電平(GPIO.LOW);回車,紅色LED燈熄滅,測試工作完成。2.編寫完整的Python程序在聯(lián)網(wǎng)電腦的Windows系統(tǒng)中使用PyCharm程序編輯器來編寫TrafficLED.py(或者可以直接遠(yuǎn)程進(jìn)入樹莓派系統(tǒng)中調(diào)用“編程”-“ThonnyPythonIDE”來編寫),程序的主體內(nèi)容就是控制三個LED燈依次點亮和熄滅(如圖5),以綠燈亮10秒為例,其命令語句為:GPIO.output(13,GPIO.HIGH)time.sleep(10.0)GPIO.output(13,GPIO.LOW)值得注意的地方:一是程序的最開始語句“#!/usr/bin/python3”的作用是指定由哪個Python解釋器來執(zhí)行腳本,因為有的操作系統(tǒng)同時安裝了Python2和Python3(二者并不兼容);二是需要通過“importtime”命令來導(dǎo)入時間庫,因為程序中使用了sleep語句來控制燈亮、滅的持續(xù)時間,其中的數(shù)值參數(shù)單位為秒;三是程序的主體需要一直循環(huán),可使用語句“while1:”(條件永遠(yuǎn)為真);四是分別設(shè)置print語句用來顯示提示當(dāng)前LED燈的狀態(tài),比如“黃燈閃3s”。所有命令語句均輸入完成后,將其保存為Python文件TrafficLED.py(如圖5所示),并通過遠(yuǎn)程桌面復(fù)制粘貼到樹莓派的用戶目錄中(/home/pi/)。

poYBAGC8mpqAMAIEAAGcjND5W3I754.png

圖53.調(diào)試運行Python程序,控制LED燈實現(xiàn)紅綠燈效果在遠(yuǎn)程桌面窗口中雙擊從Windows中傳遞過來的TrafficLED.py程序文件,調(diào)用樹莓派中已經(jīng)安裝的ThonnyPythonIDE來打開;接著點擊上方的“Run”按鈕,程序就開始運行:IDE窗口下方的Shell區(qū)域先是顯示“綠燈亮10s”的提示,此時連接在樹莓派上的綠色LED燈開始發(fā)光;10秒鐘后,提示信息變?yōu)椤包S燈閃3s”,綠色LED燈熄滅,黃色LED燈閃爍3秒;之后,提示信息變?yōu)椤凹t燈亮10s”,綠色和黃色LED燈都為熄滅狀態(tài),紅色LED燈發(fā)光(如圖6所示);10秒之后,提示信息變?yōu)椤氨据喗Y(jié)束,進(jìn)行下一輪”、“綠燈亮10s”,綠色LED燈又會再次亮起……

圖6
責(zé)任編輯人:CC

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4813

    瀏覽量

    85316
  • 樹莓派
    +關(guān)注

    關(guān)注

    118

    文章

    1714

    瀏覽量

    106121
收藏 人收藏

    評論

    相關(guān)推薦

    用筆記本控制運行樹莓坦克車 相當(dāng)好玩

    想到用樹莓GPIO接口控制些硬件設(shè)備,如,馬達(dá),LED等;于是用python寫了個小程序來
    發(fā)表于 09-12 17:58

    樹莓2控制一個LED

    ` 本帖最后由 348081236 于 2016-1-19 16:57 編輯 這個教程教你怎樣用樹莓控制一個LED。這是比較基礎(chǔ)、簡
    發(fā)表于 01-19 16:55

    樹莓Python與自美人工智能系統(tǒng)實現(xiàn)人臉識別

    ,就能執(zhí)行如電子表格、文字處理、玩游戲、播放高清視頻等諸多功能。 (圖為樹莓4)二、PythonPython是目前被廣泛應(yīng)用的編程語言之
    發(fā)表于 12-26 11:24

    Python樹莓編程

    Python樹莓編程
    發(fā)表于 04-04 12:06

    Python樹莓編程

    Python樹莓編程
    發(fā)表于 05-03 09:45

    樹莓如何點亮一個LED?

    本章將簡介在樹莓派上面通過shell,sysfs,bcm2835,wiringPi,python等不同的編程方式點亮一個LED。
    發(fā)表于 11-05 07:04

    樹莓能做什么

    第一課:什么是樹莓第二課:樹莓能做什么第三課:購買您的第一個樹莓第四課:如何安裝
    發(fā)表于 09-10 07:28

    請問樹莓如何使用Python控制步進(jìn)電機?

    請問樹莓如何使用Python控制步進(jìn)電機?
    發(fā)表于 10-27 06:53

    關(guān)閉樹莓電源LED

    關(guān)閉樹莓的電源指示和狀態(tài)指示中,對關(guān)閉樹莓
    發(fā)表于 12-28 08:18

    樹莓Python編程指南分享

    樹莓python編程指南
    發(fā)表于 10-07 08:43

    樹莓用什么語言編程_樹莓python編程詳解

    樹莓是一個非常廉價的、只有手掌大小的完全可編程的計算機。雖然樹莓的體積小,但是它的潛力無限。你可以像使用常規(guī)臺式計算機一樣
    發(fā)表于 01-15 17:00 ?3.9w次閱讀

    樹莓Python編程指南中文.pdf

    樹莓Python編程指南 PDF電子書下載 帶書簽?zāi)夸?sample
    發(fā)表于 05-07 15:21 ?0次下載

    關(guān)閉樹莓電源LED,禁用wifi、藍(lán)牙

    關(guān)閉樹莓的電源指示和狀態(tài)指示中,對關(guān)閉樹莓
    發(fā)表于 01-06 11:55 ?3次下載
    關(guān)閉<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>電源<b class='flag-5'>LED</b><b class='flag-5'>燈</b>,禁用wifi、藍(lán)牙

    基于樹莓點亮RGB三基色LED

    上一篇實現(xiàn)樹莓的第一個基礎(chǔ)實驗——點亮雙色LED,并了解了樹莓
    的頭像 發(fā)表于 07-04 11:34 ?2356次閱讀
    基于<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>點亮RGB三基色<b class='flag-5'>LED</b><b class='flag-5'>燈</b>

    學(xué)習(xí)Python的雙重選擇: 樹莓和行空板

    Python是一種流行并簡單和易用的編程語言, 吸引了眾多初學(xué)者和專業(yè)開發(fā)人員。許多人選擇使用樹莓(Raspberry Pi)作為學(xué)習(xí)Python
    的頭像 發(fā)表于 09-08 13:53 ?739次閱讀