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

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

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

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

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

一、樹莓派Python語言編程

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

圖1

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

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

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

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

pYYBAGC8moyAbMhHAAI_eSYMXdw668.png

圖2

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

poYBAGC8mouAfGTxAAI6l9BjTRY207.png

圖3

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

1.測試控制一只紅色LED燈的亮與滅連接好實(shí)驗(yàn)設(shè)備后給樹莓派通電開機(jī),稍后在聯(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庫,無錯(cuò)誤提示的話就代表Python已經(jīng)成功加載了RPi.GHIO庫(出現(xiàn)錯(cuò)誤提示就必須按照提示進(jìn)行更新或安裝);值得一提的是,RPi.GPIO本身是Python的一個(gè)庫模塊,樹莓派官方系統(tǒng)默認(rèn)已經(jīng)安裝,共作用就是允許用戶從代碼中控制各GPIO引腳。接著,輸入“GPIO.setmode(GPIO.BCM)”命令,意思是“通知”Python準(zhǔn)備使用樹莓派的BCM編碼模式來對各引腳進(jìn)行控制。由于紅色LED燈正極是接在BCM編碼5號(hào)上,因此在使用Python編程控制時(shí)就必須通過數(shù)字“5”來控制(而不是其對應(yīng)的物理引腳BOARD編碼25)。輸入命令“GPIO.setup(5,GPIO.OUT)”,意思是設(shè)置5號(hào)GPIO為輸出端(GPIO.OUT);接著輸入“GPIO.output(5,GPIO.HIGH)”命令,設(shè)置5號(hào)GPIO輸出高電平(GPIO.HIGH)。此時(shí)回車執(zhí)行該命令后,樹莓派上的紅色LED燈就會(huì)瞬間被“點(diǎn)亮”(如圖4所示)。

pYYBAGC8mpmAX_1dAAJR6HAJq5w141.png

圖4

發(fā)光測試成功后,接著再發(fā)一條“GPIO.output(5,GPIO.LOW)”命令,設(shè)置5號(hào)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)容就是控制三個(gè)LED燈依次點(diǎn)亮和熄滅(如圖5),以綠燈亮10秒為例,其命令語句為:GPIO.output(13,GPIO.HIGH)time.sleep(10.0)GPIO.output(13,GPIO.LOW)值得注意的地方:一是程序的最開始語句“#!/usr/bin/python3”的作用是指定由哪個(gè)Python解釋器來執(zhí)行腳本,因?yàn)橛械?a target="_blank">操作系統(tǒng)同時(shí)安裝了Python2和Python3(二者并不兼容);二是需要通過“importtime”命令來導(dǎo)入時(shí)間庫,因?yàn)槌绦蛑惺褂昧藄leep語句來控制燈亮、滅的持續(xù)時(shí)間,其中的數(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)試運(yùn)行Python程序,控制LED燈實(shí)現(xiàn)紅綠燈效果在遠(yuǎn)程桌面窗口中雙擊從Windows中傳遞過來的TrafficLED.py程序文件,調(diào)用樹莓派中已經(jīng)安裝的ThonnyPythonIDE來打開;接著點(diǎn)擊上方的“Run”按鈕,程序就開始運(yùn)行:IDE窗口下方的Shell區(qū)域先是顯示“綠燈亮10s”的提示,此時(shí)連接在樹莓派上的綠色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燈又會(huì)再次亮起……

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

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

    關(guān)注

    55

    文章

    4767

    瀏覽量

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

    關(guān)注

    116

    文章

    1688

    瀏覽量

    105456
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    樹莓2控制一個(gè)LED

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

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

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

    Python樹莓編程

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

    Python樹莓編程

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

    樹莓如何點(diǎn)亮一個(gè)LED

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

    樹莓能做什么

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

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

    請問樹莓如何使用Python控制步進(jìn)電機(jī)?
    發(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編程詳解

    樹莓是一個(gè)非常廉價(jià)的、只有手掌大小的完全可編程的計(jì)算機(jī)。雖然樹莓的體積小,但是它的潛力無限。你可以像使用常規(guī)臺(tái)式計(jì)算機(jī)一樣
    發(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)牙

    基于樹莓點(diǎn)亮RGB三基色LED

    上一篇實(shí)現(xiàn)樹莓的第一個(gè)基礎(chǔ)實(shí)驗(yàn)——點(diǎn)亮雙色LED,并了解了樹莓
    的頭像 發(fā)表于 07-04 11:34 ?1971次閱讀
    基于<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>點(diǎn)亮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 ?576次閱讀